From 6e1491fd41f080e0e4456298d71f877897231fd8 Mon Sep 17 00:00:00 2001 From: tqcq <99722391+tqcq@users.noreply.github.com> Date: Sun, 21 Jan 2024 12:01:15 +0800 Subject: [PATCH 1/3] feat add asio --- 3party/asio/COPYING | 4 + 3party/asio/INSTALL | 5 + 3party/asio/LICENSE_1_0.txt | 23 + 3party/asio/Makefile.am | 21 + 3party/asio/Makefile.in | 845 ++ 3party/asio/README | 4 + 3party/asio/aclocal.m4 | 1462 ++++ 3party/asio/asio.pc.in | 11 + 3party/asio/compile | 348 + 3party/asio/config.guess | 1748 ++++ 3party/asio/config.sub | 1884 ++++ 3party/asio/configure | 7134 ++++++++++++++++ 3party/asio/configure.ac | 259 + 3party/asio/depcomp | 791 ++ 3party/asio/doc/1.png | Bin 0 -> 391 bytes 3party/asio/doc/2.png | Bin 0 -> 446 bytes 3party/asio/doc/3.png | Bin 0 -> 431 bytes 3party/asio/doc/4.png | Bin 0 -> 441 bytes 3party/asio/doc/5.png | Bin 0 -> 423 bytes 3party/asio/doc/6.png | Bin 0 -> 431 bytes 3party/asio/doc/7.png | Bin 0 -> 397 bytes 3party/asio/doc/8.png | Bin 0 -> 434 bytes 3party/asio/doc/asio.png | Bin 0 -> 3164 bytes 3party/asio/doc/asio/examples.html | 62 + .../doc/asio/examples/cpp03_examples.html | 633 ++ .../doc/asio/examples/cpp11_examples.html | 524 ++ .../doc/asio/examples/cpp14_examples.html | 208 + .../doc/asio/examples/cpp17_examples.html | 57 + .../doc/asio/examples/cpp20_examples.html | 155 + 3party/asio/doc/asio/history.html | 5379 ++++++++++++ 3party/asio/doc/asio/index.html | 7511 ++++++++++++++++ 3party/asio/doc/asio/net_ts.html | 1221 +++ 3party/asio/doc/asio/overview.html | 271 + 3party/asio/doc/asio/overview/basics.html | 167 + 3party/asio/doc/asio/overview/channels.html | 92 + .../asio/doc/asio/overview/composition.html | 81 + .../asio/overview/composition/compose.html | 136 + .../doc/asio/overview/composition/coro.html | 587 ++ .../asio/overview/composition/coroutine.html | 82 + .../composition/cpp20_coroutines.html | 360 + .../asio/overview/composition/deferred.html | 86 + .../asio/overview/composition/futures.html | 78 + .../composition/immediate_completion.html | 82 + .../overview/composition/parallel_group.html | 104 + .../asio/overview/composition/promises.html | 131 + .../doc/asio/overview/composition/spawn.html | 144 + .../overview/composition/token_adapters.html | 316 + .../overview/composition/type_erasure.html | 126 + 3party/asio/doc/asio/overview/core.html | 72 + .../doc/asio/overview/core/allocation.html | 139 + 3party/asio/doc/asio/overview/core/async.html | 278 + .../asio/doc/asio/overview/core/buffers.html | 258 + .../doc/asio/overview/core/cancellation.html | 386 + .../asio/overview/core/concurrency_hint.html | 173 + .../asio/overview/core/handler_tracking.html | 487 ++ .../doc/asio/overview/core/line_based.html | 155 + .../asio/doc/asio/overview/core/reactor.html | 76 + .../asio/doc/asio/overview/core/strands.html | 158 + .../asio/doc/asio/overview/core/streams.html | 118 + .../asio/doc/asio/overview/core/threads.html | 121 + 3party/asio/doc/asio/overview/cpp2011.html | 59 + .../asio/doc/asio/overview/cpp2011/array.html | 60 + .../doc/asio/overview/cpp2011/atomic.html | 44 + .../doc/asio/overview/cpp2011/chrono.html | 56 + .../asio/overview/cpp2011/move_handlers.html | 77 + .../asio/overview/cpp2011/move_objects.html | 99 + .../doc/asio/overview/cpp2011/shared_ptr.html | 44 + .../asio/overview/cpp2011/system_error.html | 48 + .../doc/asio/overview/cpp2011/variadic.html | 46 + 3party/asio/doc/asio/overview/files.html | 85 + .../doc/asio/overview/implementation.html | 553 ++ 3party/asio/doc/asio/overview/model.html | 77 + .../doc/asio/overview/model/allocators.html | 113 + .../doc/asio/overview/model/associators.html | 150 + .../doc/asio/overview/model/async_agents.html | 69 + .../doc/asio/overview/model/async_ops.html | 139 + .../doc/asio/overview/model/cancellation.html | 64 + .../doc/asio/overview/model/child_agents.html | 108 + .../overview/model/completion_tokens.html | 325 + .../doc/asio/overview/model/executors.html | 104 + .../asio/overview/model/higher_levels.html | 71 + .../asio/overview/model/library_elements.html | 185 + 3party/asio/doc/asio/overview/networking.html | 50 + .../asio/overview/networking/bsd_sockets.html | 554 ++ .../asio/overview/networking/iostreams.html | 110 + .../overview/networking/other_protocols.html | 147 + .../asio/overview/networking/protocols.html | 201 + 3party/asio/doc/asio/overview/pipes.html | 66 + 3party/asio/doc/asio/overview/posix.html | 44 + 3party/asio/doc/asio/overview/posix/fork.html | 74 + .../asio/doc/asio/overview/posix/local.html | 101 + .../overview/posix/stream_descriptor.html | 83 + 3party/asio/doc/asio/overview/rationale.html | 94 + .../asio/doc/asio/overview/serial_ports.html | 81 + 3party/asio/doc/asio/overview/signals.html | 73 + 3party/asio/doc/asio/overview/ssl.html | 185 + 3party/asio/doc/asio/overview/timers.html | 86 + 3party/asio/doc/asio/overview/windows.html | 44 + .../asio/overview/windows/object_handle.html | 94 + .../windows/random_access_handle.html | 76 + .../asio/overview/windows/stream_handle.html | 78 + 3party/asio/doc/asio/reference.html | 933 ++ .../doc/asio/reference/AcceptHandler.html | 41 + .../asio/doc/asio/reference/AcceptToken.html | 133 + .../asio/reference/AcceptableProtocol.html | 85 + .../AsyncRandomAccessReadDevice.html | 133 + .../AsyncRandomAccessWriteDevice.html | 133 + .../doc/asio/reference/AsyncReadStream.html | 135 + .../doc/asio/reference/AsyncWriteStream.html | 131 + .../reference/BufferedHandshakeHandler.html | 45 + .../reference/BufferedHandshakeToken.html | 147 + .../asio/reference/CancellationHandler.html | 81 + .../doc/asio/reference/CancellationSlot.html | 182 + .../asio/reference/CompletionCondition.html | 107 + .../doc/asio/reference/ConnectCondition.html | 99 + .../doc/asio/reference/ConnectHandler.html | 41 + .../asio/doc/asio/reference/ConnectToken.html | 133 + .../asio/reference/ConstBufferSequence.html | 123 + .../doc/asio/reference/DynamicBuffer.html | 47 + .../doc/asio/reference/DynamicBuffer_v1.html | 260 + .../doc/asio/reference/DynamicBuffer_v2.html | 271 + 3party/asio/doc/asio/reference/Endpoint.html | 260 + .../doc/asio/reference/EndpointSequence.html | 94 + .../doc/asio/reference/ExecutionContext.html | 120 + 3party/asio/doc/asio/reference/Executor1.html | 424 + .../reference/GettableSerialPortOption.html | 95 + .../asio/reference/GettableSocketOption.html | 175 + 3party/asio/doc/asio/reference/Handler.html | 43 + .../doc/asio/reference/HandshakeHandler.html | 42 + .../doc/asio/reference/HandshakeToken.html | 133 + .../doc/asio/reference/InternetProtocol.html | 164 + .../doc/asio/reference/IoControlCommand.html | 108 + .../doc/asio/reference/IoObjectService.html | 153 + .../reference/IteratorConnectHandler.html | 45 + .../asio/reference/IteratorConnectToken.html | 149 + .../reference/LegacyCompletionHandler.html | 97 + .../doc/asio/reference/MoveAcceptHandler.html | 46 + .../doc/asio/reference/MoveAcceptToken.html | 128 + .../asio/reference/MutableBufferSequence.html | 124 + .../asio/doc/asio/reference/NullaryToken.html | 113 + .../doc/asio/reference/OperationState.html | 65 + .../doc/asio/reference/ProtoAllocator.html | 45 + 3party/asio/doc/asio/reference/Protocol.html | 179 + .../asio/reference/RangeConnectHandler.html | 46 + .../doc/asio/reference/RangeConnectToken.html | 150 + .../asio/doc/asio/reference/ReadHandler.html | 44 + 3party/asio/doc/asio/reference/ReadToken.html | 144 + 3party/asio/doc/asio/reference/Receiver.html | 85 + .../doc/asio/reference/ResolveHandler.html | 46 + .../asio/doc/asio/reference/ResolveToken.html | 145 + 3party/asio/doc/asio/reference/Scheduler.html | 197 + 3party/asio/doc/asio/reference/Sender.html | 95 + 3party/asio/doc/asio/reference/Service.html | 73 + .../reference/SettableSerialPortOption.html | 95 + .../asio/reference/SettableSocketOption.html | 152 + .../doc/asio/reference/ShutdownHandler.html | 42 + .../doc/asio/reference/ShutdownToken.html | 133 + .../doc/asio/reference/SignalHandler.html | 44 + .../asio/doc/asio/reference/SignalToken.html | 143 + .../reference/SyncRandomAccessReadDevice.html | 128 + .../SyncRandomAccessWriteDevice.html | 129 + .../doc/asio/reference/SyncReadStream.html | 108 + .../doc/asio/reference/SyncWriteStream.html | 105 + .../asio/doc/asio/reference/TimeTraits.html | 200 + .../asio/doc/asio/reference/WaitHandler.html | 41 + 3party/asio/doc/asio/reference/WaitToken.html | 133 + .../asio/doc/asio/reference/WaitTraits.html | 136 + .../asio/doc/asio/reference/WriteHandler.html | 44 + .../asio/doc/asio/reference/WriteToken.html | 144 + .../doc/asio/reference/allocator_binder.html | 243 + .../allocator_binder/_allocator_binder.html | 40 + .../allocator_binder/allocator_binder.html | 120 + .../allocator_binder/overload1.html | 48 + .../allocator_binder/overload2.html | 41 + .../allocator_binder/overload3.html | 42 + .../allocator_binder/overload4.html | 50 + .../allocator_binder/overload5.html | 50 + .../allocator_binder/overload6.html | 41 + .../allocator_binder/overload7.html | 42 + .../allocator_binder/overload8.html | 44 + .../allocator_binder/overload9.html | 46 + .../allocator_binder/allocator_type.html | 51 + .../allocator_binder/argument_type.html | 73 + .../allocator_binder/first_argument_type.html | 73 + .../asio/reference/allocator_binder/get.html | 45 + .../allocator_binder/get/overload1.html | 40 + .../allocator_binder/get/overload2.html | 40 + .../allocator_binder/get_allocator.html | 41 + .../allocator_binder/operator_lp__rp_.html | 49 + .../operator_lp__rp_/overload1.html | 40 + .../operator_lp__rp_/overload2.html | 40 + .../allocator_binder/result_type.html | 73 + .../second_argument_type.html | 73 + .../allocator_binder/target_type.html | 51 + .../reference/any_completion_executor.html | 291 + .../_any_completion_executor.html | 40 + .../any_completion_executor.html | 105 + .../any_completion_executor/overload1.html | 40 + .../any_completion_executor/overload10.html | 44 + .../any_completion_executor/overload2.html | 41 + .../any_completion_executor/overload3.html | 41 + .../any_completion_executor/overload4.html | 41 + .../any_completion_executor/overload5.html | 43 + .../any_completion_executor/overload6.html | 44 + .../any_completion_executor/overload7.html | 42 + .../any_completion_executor/overload8.html | 42 + .../any_completion_executor/overload9.html | 43 + .../any_completion_executor/context.html | 49 + .../any_completion_executor/execute.html | 51 + .../operator_bool.html | 54 + .../any_completion_executor/operator_eq_.html | 57 + .../operator_eq_/overload1.html | 41 + .../operator_eq_/overload2.html | 41 + .../operator_eq_/overload3.html | 41 + .../operator_eq__eq_.html | 54 + .../operator_eq__eq_/overload1.html | 45 + .../operator_eq__eq_/overload2.html | 45 + .../operator_eq__eq_/overload3.html | 45 + .../operator_not__eq_.html | 54 + .../operator_not__eq_/overload1.html | 45 + .../operator_not__eq_/overload2.html | 45 + .../operator_not__eq_/overload3.html | 45 + .../any_completion_executor/prefer.html | 78 + .../prefer/overload1.html | 55 + .../prefer/overload2.html | 40 + .../prefer/overload3.html | 40 + .../prefer/overload4.html | 40 + .../prefer/overload5.html | 40 + .../prefer/overload6.html | 57 + .../any_completion_executor/query.html | 57 + .../any_completion_executor/require.html | 52 + .../require/overload1.html | 56 + .../require/overload2.html | 58 + .../any_completion_executor/swap.html | 47 + .../swap/overload1.html | 41 + .../swap/overload2.html | 44 + .../any_completion_executor/target.html | 49 + .../target/overload1.html | 45 + .../target/overload2.html | 45 + .../any_completion_executor/target_type.html | 44 + .../reference/any_completion_handler.html | 264 + .../_any_completion_handler.html | 40 + .../any_completion_handler.html | 67 + .../any_completion_handler/overload1.html | 41 + .../any_completion_handler/overload2.html | 42 + .../any_completion_handler/overload3.html | 46 + .../any_completion_handler/overload4.html | 46 + .../any_completion_handler/get_allocator.html | 41 + .../get_cancellation_slot.html | 41 + .../any_completion_handler/operator_bool.html | 42 + .../any_completion_handler/operator_eq_.html | 51 + .../operator_eq_/overload1.html | 46 + .../operator_eq_/overload2.html | 41 + .../operator_eq__eq_.html | 49 + .../operator_eq__eq_/overload1.html | 52 + .../operator_eq__eq_/overload2.html | 52 + .../operator_lp__rp_.html | 55 + .../any_completion_handler/operator_not_.html | 41 + .../operator_not__eq_.html | 49 + .../operator_not__eq_/overload1.html | 52 + .../operator_not__eq_/overload2.html | 52 + .../any_completion_handler/swap.html | 43 + .../any_completion_handler_allocator.html | 176 + .../allocate.html | 43 + .../any_completion_handler_allocator.html | 44 + .../deallocate.html | 44 + .../operator_eq__eq_.html | 42 + .../operator_not__eq_.html | 42 + .../value_type.html | 51 + ..._completion_handler_allocator__rebind.html | 88 + .../other.html | 171 + ..._void_comma__Signatures_ellipsis__gt_.html | 151 + .../any_completion_handler_allocator.html | 44 + .../operator_eq__eq_.html | 42 + .../operator_not__eq_.html | 42 + .../value_type.html | 52 + ...mma__Signatures_ellipsis__gt___rebind.html | 89 + .../other.html | 171 + .../doc/asio/reference/any_io_executor.html | 294 + .../any_io_executor/_any_io_executor.html | 40 + .../any_io_executor/any_io_executor.html | 105 + .../any_io_executor/overload1.html | 40 + .../any_io_executor/overload10.html | 44 + .../any_io_executor/overload2.html | 41 + .../any_io_executor/overload3.html | 41 + .../any_io_executor/overload4.html | 41 + .../any_io_executor/overload5.html | 43 + .../any_io_executor/overload6.html | 44 + .../any_io_executor/overload7.html | 42 + .../any_io_executor/overload8.html | 42 + .../any_io_executor/overload9.html | 43 + .../reference/any_io_executor/context.html | 49 + .../reference/any_io_executor/execute.html | 51 + .../any_io_executor/operator_bool.html | 54 + .../any_io_executor/operator_eq_.html | 57 + .../operator_eq_/overload1.html | 41 + .../operator_eq_/overload2.html | 41 + .../operator_eq_/overload3.html | 41 + .../any_io_executor/operator_eq__eq_.html | 54 + .../operator_eq__eq_/overload1.html | 45 + .../operator_eq__eq_/overload2.html | 45 + .../operator_eq__eq_/overload3.html | 45 + .../any_io_executor/operator_not__eq_.html | 54 + .../operator_not__eq_/overload1.html | 45 + .../operator_not__eq_/overload2.html | 45 + .../operator_not__eq_/overload3.html | 45 + .../reference/any_io_executor/prefer.html | 82 + .../any_io_executor/prefer/overload1.html | 55 + .../any_io_executor/prefer/overload2.html | 40 + .../any_io_executor/prefer/overload3.html | 40 + .../any_io_executor/prefer/overload4.html | 40 + .../any_io_executor/prefer/overload5.html | 40 + .../any_io_executor/prefer/overload6.html | 40 + .../any_io_executor/prefer/overload7.html | 57 + .../asio/reference/any_io_executor/query.html | 57 + .../reference/any_io_executor/require.html | 60 + .../any_io_executor/require/overload1.html | 56 + .../any_io_executor/require/overload2.html | 40 + .../any_io_executor/require/overload3.html | 58 + .../asio/reference/any_io_executor/swap.html | 47 + .../any_io_executor/swap/overload1.html | 41 + .../any_io_executor/swap/overload2.html | 44 + .../reference/any_io_executor/target.html | 49 + .../any_io_executor/target/overload1.html | 45 + .../any_io_executor/target/overload2.html | 45 + .../any_io_executor/target_type.html | 44 + 3party/asio/doc/asio/reference/append.html | 58 + 3party/asio/doc/asio/reference/append_t.html | 135 + .../doc/asio/reference/append_t/append_t.html | 45 + .../doc/asio/reference/append_t/token_.html | 39 + .../doc/asio/reference/append_t/values_.html | 39 + 3party/asio/doc/asio/reference/as_tuple.html | 57 + .../asio/doc/asio/reference/as_tuple_t.html | 195 + .../reference/as_tuple_t/as_default_on.html | 45 + .../asio/reference/as_tuple_t/as_tuple_t.html | 52 + .../as_tuple_t/as_tuple_t/overload1.html | 48 + .../as_tuple_t/as_tuple_t/overload2.html | 43 + .../doc/asio/reference/as_tuple_t/token_.html | 39 + .../as_tuple_t__default_constructor_tag.html | 53 + .../as_tuple_t__executor_with_default.html | 124 + .../default_completion_token_type.html | 191 + .../executor_with_default.html | 45 + .../asio/reference/asio_handler_allocate.html | 95 + .../reference/asio_handler_deallocate.html | 64 + .../asio/reference/asio_handler_invoke.html | 114 + .../asio_handler_invoke/overload1.html | 44 + .../asio_handler_invoke/overload2.html | 44 + .../asio_handler_is_continuation.html | 76 + .../asio/reference/associated_allocator.html | 186 + .../associated_allocator/decltype.html | 53 + .../decltype/overload1.html | 44 + .../decltype/overload2.html | 44 + .../associated_allocator/noexcept.html | 39 + .../reference/associated_allocator/type.html | 51 + ...pper_lt__T__gt__comma__Allocator__gt_.html | 127 + .../get.html | 50 + .../get/overload1.html | 42 + .../get/overload2.html | 43 + .../type.html | 185 + .../associated_cancellation_slot.html | 188 + .../decltype.html | 53 + .../decltype/overload1.html | 44 + .../decltype/overload2.html | 44 + .../noexcept.html | 39 + .../associated_cancellation_slot/type.html | 52 + ...__T__gt__comma__CancellationSlot__gt_.html | 128 + .../get.html | 50 + .../get/overload1.html | 42 + .../get/overload2.html | 43 + .../type.html | 185 + .../asio/reference/associated_executor.html | 187 + .../associated_executor/decltype.html | 53 + .../decltype/overload1.html | 44 + .../decltype/overload2.html | 44 + .../associated_executor/noexcept.html | 39 + .../reference/associated_executor/type.html | 51 + ...apper_lt__T__gt__comma__Executor__gt_.html | 127 + .../get.html | 49 + .../get/overload1.html | 42 + .../get/overload2.html | 43 + .../type.html | 184 + .../associated_immediate_executor.html | 185 + .../decltype.html | 43 + .../noexcept.html | 39 + .../associated_immediate_executor/type.html | 51 + ...apper_lt__T__gt__comma__Executor__gt_.html | 128 + .../get.html | 44 + .../type.html | 182 + .../asio/doc/asio/reference/associator.html | 56 + .../doc/asio/reference/async_completion.html | 174 + .../async_completion/async_completion.html | 45 + .../async_completion/completion_handler.html | 41 + .../completion_handler_type.html | 186 + .../reference/async_completion/result.html | 41 + .../doc/asio/reference/async_compose.html | 150 + .../doc/asio/reference/async_connect.html | 150 + .../reference/async_connect/overload1.html | 166 + .../reference/async_connect/overload2.html | 141 + .../reference/async_connect/overload3.html | 156 + .../reference/async_connect/overload4.html | 217 + .../reference/async_connect/overload5.html | 163 + .../reference/async_connect/overload6.html | 222 + .../doc/asio/reference/async_initiate.html | 57 + .../asio/doc/asio/reference/async_read.html | 151 + .../asio/reference/async_read/overload1.html | 178 + .../asio/reference/async_read/overload2.html | 184 + .../asio/reference/async_read/overload3.html | 163 + .../asio/reference/async_read/overload4.html | 173 + .../asio/reference/async_read/overload5.html | 160 + .../asio/reference/async_read/overload6.html | 170 + .../asio/reference/async_read/overload7.html | 162 + .../asio/reference/async_read/overload8.html | 172 + .../doc/asio/reference/async_read_at.html | 104 + .../reference/async_read_at/overload1.html | 179 + .../reference/async_read_at/overload2.html | 188 + .../reference/async_read_at/overload3.html | 157 + .../reference/async_read_at/overload4.html | 167 + .../doc/asio/reference/async_read_until.html | 239 + .../reference/async_read_until/overload1.html | 215 + .../async_read_until/overload10.html | 214 + .../async_read_until/overload11.html | 218 + .../async_read_until/overload12.html | 264 + .../reference/async_read_until/overload2.html | 215 + .../reference/async_read_until/overload3.html | 219 + .../reference/async_read_until/overload4.html | 265 + .../reference/async_read_until/overload5.html | 210 + .../reference/async_read_until/overload6.html | 210 + .../reference/async_read_until/overload7.html | 213 + .../reference/async_read_until/overload8.html | 259 + .../reference/async_read_until/overload9.html | 215 + .../asio/doc/asio/reference/async_result.html | 189 + .../reference/async_result/async_result.html | 47 + .../async_result/completion_handler_type.html | 51 + .../doc/asio/reference/async_result/get.html | 41 + .../asio/reference/async_result/initiate.html | 49 + .../reference/async_result/return_type.html | 51 + ...__Executor__gt__comma__Signature__gt_.html | 127 + .../handler_type.html | 50 + .../initiate.html | 44 + .../return_type.html | 50 + ...lipsis__rp__gt__comma__Signature__gt_.html | 156 + .../async_result.html | 43 + .../completion_handler_type.html | 52 + .../get.html | 42 + .../return_type.html | 52 + .../asio/doc/asio/reference/async_write.html | 172 + .../asio/reference/async_write/overload1.html | 163 + .../asio/reference/async_write/overload2.html | 188 + .../asio/reference/async_write/overload3.html | 150 + .../asio/reference/async_write/overload4.html | 172 + .../asio/reference/async_write/overload5.html | 147 + .../asio/reference/async_write/overload6.html | 169 + .../asio/reference/async_write/overload7.html | 149 + .../asio/reference/async_write/overload8.html | 171 + .../doc/asio/reference/async_write_at.html | 116 + .../reference/async_write_at/overload1.html | 169 + .../reference/async_write_at/overload2.html | 194 + .../reference/async_write_at/overload3.html | 154 + .../reference/async_write_at/overload4.html | 176 + .../reference/asynchronous_operations.html | 601 ++ .../asynchronous_socket_operations.html | 78 + 3party/asio/doc/asio/reference/awaitable.html | 178 + .../asio/reference/awaitable/_awaitable.html | 40 + .../asio/reference/awaitable/awaitable.html | 48 + .../awaitable/awaitable/overload1.html | 40 + .../awaitable/awaitable/overload2.html | 41 + .../reference/awaitable/executor_type.html | 51 + .../reference/awaitable/operator_eq_.html | 41 + .../doc/asio/reference/awaitable/valid.html | 41 + .../asio/reference/awaitable/value_type.html | 51 + .../asio/doc/asio/reference/bad_executor.html | 102 + .../reference/bad_executor/bad_executor.html | 40 + .../doc/asio/reference/bad_executor/what.html | 41 + .../asio/reference/basic_datagram_socket.html | 928 ++ .../_basic_datagram_socket.html | 45 + .../basic_datagram_socket/assign.html | 50 + .../assign/overload1.html | 45 + .../assign/overload2.html | 46 + .../basic_datagram_socket/async_connect.html | 141 + .../basic_datagram_socket/async_receive.html | 56 + .../async_receive/overload1.html | 139 + .../async_receive/overload2.html | 130 + .../async_receive_from.html | 58 + .../async_receive_from/overload1.html | 139 + .../async_receive_from/overload2.html | 129 + .../basic_datagram_socket/async_send.html | 56 + .../async_send/overload1.html | 137 + .../async_send/overload2.html | 128 + .../basic_datagram_socket/async_send_to.html | 58 + .../async_send_to/overload1.html | 139 + .../async_send_to/overload2.html | 127 + .../basic_datagram_socket/async_wait.html | 136 + .../basic_datagram_socket/at_mark.html | 46 + .../at_mark/overload1.html | 68 + .../at_mark/overload2.html | 69 + .../basic_datagram_socket/available.html | 46 + .../available/overload1.html | 69 + .../available/overload2.html | 70 + .../basic_datagram_socket.html | 122 + .../basic_datagram_socket/overload1.html | 60 + .../basic_datagram_socket/overload10.html | 72 + .../basic_datagram_socket/overload2.html | 64 + .../basic_datagram_socket/overload3.html | 76 + .../basic_datagram_socket/overload4.html | 80 + .../basic_datagram_socket/overload5.html | 80 + .../basic_datagram_socket/overload6.html | 84 + .../basic_datagram_socket/overload7.html | 83 + .../basic_datagram_socket/overload8.html | 87 + .../basic_datagram_socket/overload9.html | 67 + .../reference/basic_datagram_socket/bind.html | 48 + .../basic_datagram_socket/bind/overload1.html | 83 + .../basic_datagram_socket/bind/overload2.html | 80 + .../basic_datagram_socket/broadcast.html | 78 + .../basic_datagram_socket/bytes_readable.html | 67 + .../basic_datagram_socket/cancel.html | 46 + .../cancel/overload1.html | 104 + .../cancel/overload2.html | 105 + .../basic_datagram_socket/close.html | 46 + .../close/overload1.html | 70 + .../close/overload2.html | 84 + .../basic_datagram_socket/connect.html | 48 + .../connect/overload1.html | 89 + .../connect/overload2.html | 86 + .../basic_datagram_socket/debug.html | 78 + .../basic_datagram_socket/do_not_route.html | 78 + .../enable_connection_aborted.html | 80 + .../basic_datagram_socket/endpoint_type.html | 51 + .../basic_datagram_socket/executor_type.html | 51 + .../basic_datagram_socket/get_executor.html | 44 + .../basic_datagram_socket/get_option.html | 52 + .../get_option/overload1.html | 88 + .../get_option/overload2.html | 85 + .../basic_datagram_socket/io_control.html | 52 + .../io_control/overload1.html | 88 + .../io_control/overload2.html | 85 + .../basic_datagram_socket/is_open.html | 44 + .../basic_datagram_socket/keep_alive.html | 78 + .../basic_datagram_socket/linger.html | 80 + .../basic_datagram_socket/local_endpoint.html | 46 + .../local_endpoint/overload1.html | 75 + .../local_endpoint/overload2.html | 82 + .../basic_datagram_socket/lowest_layer.html | 48 + .../lowest_layer/overload1.html | 57 + .../lowest_layer/overload2.html | 57 + .../lowest_layer_type.html | 846 ++ .../max_connections.html | 45 + .../max_listen_connections.html | 44 + .../message_do_not_route.html | 44 + .../message_end_of_record.html | 44 + .../basic_datagram_socket/message_flags.html | 54 + .../message_out_of_band.html | 44 + .../basic_datagram_socket/message_peek.html | 44 + .../basic_datagram_socket/native_handle.html | 49 + .../native_handle_type.html | 51 + .../native_non_blocking.html | 54 + .../native_non_blocking/overload1.html | 143 + .../native_non_blocking/overload2.html | 158 + .../native_non_blocking/overload3.html | 149 + .../basic_datagram_socket/non_blocking.html | 54 + .../non_blocking/overload1.html | 63 + .../non_blocking/overload2.html | 82 + .../non_blocking/overload3.html | 74 + .../reference/basic_datagram_socket/open.html | 48 + .../basic_datagram_socket/open/overload1.html | 80 + .../basic_datagram_socket/open/overload2.html | 77 + .../basic_datagram_socket/operator_eq_.html | 55 + .../operator_eq_/overload1.html | 67 + .../operator_eq_/overload2.html | 71 + .../out_of_band_inline.html | 78 + .../basic_datagram_socket/protocol_type.html | 51 + .../basic_datagram_socket/receive.html | 60 + .../receive/overload1.html | 104 + .../receive/overload2.html | 95 + .../receive/overload3.html | 87 + .../receive_buffer_size.html | 78 + .../basic_datagram_socket/receive_from.html | 63 + .../receive_from/overload1.html | 103 + .../receive_from/overload2.html | 92 + .../receive_from/overload3.html | 84 + .../receive_low_watermark.html | 78 + .../basic_datagram_socket/release.html | 46 + .../release/overload1.html | 71 + .../release/overload2.html | 72 + .../remote_endpoint.html | 46 + .../remote_endpoint/overload1.html | 75 + .../remote_endpoint/overload2.html | 82 + .../basic_datagram_socket/reuse_address.html | 79 + .../reference/basic_datagram_socket/send.html | 60 + .../basic_datagram_socket/send/overload1.html | 104 + .../basic_datagram_socket/send/overload2.html | 95 + .../basic_datagram_socket/send/overload3.html | 87 + .../send_buffer_size.html | 78 + .../send_low_watermark.html | 78 + .../basic_datagram_socket/send_to.html | 63 + .../send_to/overload1.html | 103 + .../send_to/overload2.html | 92 + .../send_to/overload3.html | 84 + .../basic_datagram_socket/set_option.html | 52 + .../set_option/overload1.html | 87 + .../set_option/overload2.html | 84 + .../basic_datagram_socket/shutdown.html | 48 + .../shutdown/overload1.html | 85 + .../shutdown/overload2.html | 82 + .../basic_datagram_socket/shutdown_type.html | 70 + .../reference/basic_datagram_socket/wait.html | 49 + .../basic_datagram_socket/wait/overload1.html | 73 + .../basic_datagram_socket/wait/overload2.html | 79 + .../basic_datagram_socket/wait_type.html | 73 + ...asic_datagram_socket__rebind_executor.html | 88 + .../other.html | 925 ++ .../asio/reference/basic_deadline_timer.html | 394 + .../_basic_deadline_timer.html | 45 + .../basic_deadline_timer/async_wait.html | 121 + .../basic_deadline_timer.html | 88 + .../basic_deadline_timer/overload1.html | 62 + .../basic_deadline_timer/overload2.html | 66 + .../basic_deadline_timer/overload3.html | 64 + .../basic_deadline_timer/overload4.html | 68 + .../basic_deadline_timer/overload5.html | 63 + .../basic_deadline_timer/overload6.html | 67 + .../basic_deadline_timer/overload7.html | 67 + .../basic_deadline_timer/cancel.html | 46 + .../cancel/overload1.html | 90 + .../cancel/overload2.html | 91 + .../basic_deadline_timer/cancel_one.html | 46 + .../cancel_one/overload1.html | 90 + .../cancel_one/overload2.html | 91 + .../basic_deadline_timer/duration_type.html | 51 + .../basic_deadline_timer/executor_type.html | 51 + .../basic_deadline_timer/expires_at.html | 54 + .../expires_at/overload1.html | 44 + .../expires_at/overload2.html | 100 + .../expires_at/overload3.html | 92 + .../expires_from_now.html | 54 + .../expires_from_now/overload1.html | 44 + .../expires_from_now/overload2.html | 100 + .../expires_from_now/overload3.html | 92 + .../basic_deadline_timer/get_executor.html | 41 + .../basic_deadline_timer/operator_eq_.html | 70 + .../basic_deadline_timer/time_type.html | 51 + .../basic_deadline_timer/traits_type.html | 51 + .../reference/basic_deadline_timer/wait.html | 46 + .../basic_deadline_timer/wait/overload1.html | 57 + .../basic_deadline_timer/wait/overload2.html | 58 + ...basic_deadline_timer__rebind_executor.html | 88 + .../other.html | 391 + .../asio/doc/asio/reference/basic_file.html | 516 ++ .../reference/basic_file/_basic_file.html | 45 + .../doc/asio/reference/basic_file/append.html | 44 + .../doc/asio/reference/basic_file/assign.html | 48 + .../basic_file/assign/overload1.html | 41 + .../basic_file/assign/overload2.html | 42 + .../asio/reference/basic_file/basic_file.html | 122 + .../basic_file/basic_file/overload1.html | 59 + .../basic_file/basic_file/overload10.html | 71 + .../basic_file/basic_file/overload2.html | 63 + .../basic_file/basic_file/overload3.html | 68 + .../basic_file/basic_file/overload4.html | 73 + .../basic_file/basic_file/overload5.html | 68 + .../basic_file/basic_file/overload6.html | 73 + .../basic_file/basic_file/overload7.html | 78 + .../basic_file/basic_file/overload8.html | 82 + .../basic_file/basic_file/overload9.html | 67 + .../doc/asio/reference/basic_file/cancel.html | 46 + .../basic_file/cancel/overload1.html | 91 + .../basic_file/cancel/overload2.html | 92 + .../doc/asio/reference/basic_file/close.html | 45 + .../reference/basic_file/close/overload1.html | 59 + .../reference/basic_file/close/overload2.html | 73 + .../doc/asio/reference/basic_file/create.html | 44 + .../asio/reference/basic_file/exclusive.html | 44 + .../reference/basic_file/executor_type.html | 51 + .../doc/asio/reference/basic_file/flags.html | 53 + .../reference/basic_file/get_executor.html | 41 + .../asio/reference/basic_file/is_open.html | 41 + .../reference/basic_file/native_handle.html | 46 + .../basic_file/native_handle_type.html | 51 + .../doc/asio/reference/basic_file/open.html | 61 + .../reference/basic_file/open/overload1.html | 82 + .../reference/basic_file/open/overload2.html | 79 + .../reference/basic_file/open/overload3.html | 82 + .../reference/basic_file/open/overload4.html | 79 + .../reference/basic_file/operator_eq_.html | 54 + .../basic_file/operator_eq_/overload1.html | 67 + .../basic_file/operator_eq_/overload2.html | 70 + .../asio/reference/basic_file/read_only.html | 44 + .../asio/reference/basic_file/read_write.html | 44 + .../asio/reference/basic_file/release.html | 46 + .../basic_file/release/overload1.html | 68 + .../basic_file/release/overload2.html | 69 + .../doc/asio/reference/basic_file/resize.html | 47 + .../basic_file/resize/overload1.html | 73 + .../basic_file/resize/overload2.html | 65 + .../asio/reference/basic_file/seek_basis.html | 70 + .../doc/asio/reference/basic_file/size.html | 45 + .../reference/basic_file/size/overload1.html | 56 + .../reference/basic_file/size/overload2.html | 57 + .../asio/reference/basic_file/sync_all.html | 46 + .../basic_file/sync_all/overload1.html | 57 + .../basic_file/sync_all/overload2.html | 58 + .../basic_file/sync_all_on_write.html | 45 + .../asio/reference/basic_file/sync_data.html | 46 + .../basic_file/sync_data/overload1.html | 57 + .../basic_file/sync_data/overload2.html | 58 + .../asio/reference/basic_file/truncate.html | 44 + .../asio/reference/basic_file/write_only.html | 44 + .../basic_file__rebind_executor.html | 88 + .../basic_file__rebind_executor/other.html | 509 ++ .../doc/asio/reference/basic_io_object.html | 271 + .../basic_io_object/_basic_io_object.html | 46 + .../basic_io_object/basic_io_object.html | 60 + .../basic_io_object/overload1.html | 46 + .../basic_io_object/overload2.html | 54 + .../basic_io_object/overload3.html | 44 + .../basic_io_object/executor_type.html | 51 + .../basic_io_object/get_executor.html | 41 + .../basic_io_object/get_implementation.html | 45 + .../get_implementation/overload1.html | 40 + .../get_implementation/overload2.html | 40 + .../basic_io_object/get_io_context.html | 57 + .../basic_io_object/get_io_service.html | 57 + .../basic_io_object/get_service.html | 45 + .../get_service/overload1.html | 40 + .../get_service/overload2.html | 40 + .../basic_io_object/implementation_type.html | 51 + .../basic_io_object/operator_eq_.html | 55 + .../basic_io_object/service_type.html | 51 + .../reference/basic_random_access_file.html | 544 ++ .../_basic_random_access_file.html | 45 + .../basic_random_access_file/append.html | 44 + .../basic_random_access_file/assign.html | 48 + .../assign/overload1.html | 44 + .../assign/overload2.html | 45 + .../async_read_some_at.html | 147 + .../async_write_some_at.html | 147 + .../basic_random_access_file.html | 120 + .../basic_random_access_file/overload1.html | 60 + .../basic_random_access_file/overload10.html | 71 + .../basic_random_access_file/overload2.html | 64 + .../basic_random_access_file/overload3.html | 81 + .../basic_random_access_file/overload4.html | 85 + .../basic_random_access_file/overload5.html | 81 + .../basic_random_access_file/overload6.html | 85 + .../basic_random_access_file/overload7.html | 78 + .../basic_random_access_file/overload8.html | 82 + .../basic_random_access_file/overload9.html | 68 + .../basic_random_access_file/cancel.html | 46 + .../cancel/overload1.html | 94 + .../cancel/overload2.html | 95 + .../basic_random_access_file/close.html | 46 + .../close/overload1.html | 62 + .../close/overload2.html | 76 + .../basic_random_access_file/create.html | 44 + .../basic_random_access_file/exclusive.html | 44 + .../executor_type.html | 51 + .../basic_random_access_file/flags.html | 54 + .../get_executor.html | 44 + .../basic_random_access_file/is_open.html | 44 + .../native_handle.html | 49 + .../native_handle_type.html | 51 + .../basic_random_access_file/open.html | 61 + .../open/overload1.html | 85 + .../open/overload2.html | 82 + .../open/overload3.html | 85 + .../open/overload4.html | 82 + .../operator_eq_.html | 54 + .../operator_eq_/overload1.html | 69 + .../operator_eq_/overload2.html | 71 + .../basic_random_access_file/read_only.html | 44 + .../read_some_at.html | 54 + .../read_some_at/overload1.html | 112 + .../read_some_at/overload2.html | 89 + .../basic_random_access_file/read_write.html | 44 + .../basic_random_access_file/release.html | 46 + .../release/overload1.html | 71 + .../release/overload2.html | 72 + .../basic_random_access_file/resize.html | 48 + .../resize/overload1.html | 76 + .../resize/overload2.html | 68 + .../basic_random_access_file/seek_basis.html | 70 + .../basic_random_access_file/size.html | 46 + .../size/overload1.html | 59 + .../size/overload2.html | 60 + .../basic_random_access_file/sync_all.html | 46 + .../sync_all/overload1.html | 60 + .../sync_all/overload2.html | 61 + .../sync_all_on_write.html | 45 + .../basic_random_access_file/sync_data.html | 46 + .../sync_data/overload1.html | 60 + .../sync_data/overload2.html | 61 + .../basic_random_access_file/truncate.html | 44 + .../basic_random_access_file/write_only.html | 44 + .../write_some_at.html | 54 + .../write_some_at/overload1.html | 112 + .../write_some_at/overload2.html | 89 + ...c_random_access_file__rebind_executor.html | 88 + .../other.html | 542 ++ .../doc/asio/reference/basic_raw_socket.html | 927 ++ .../basic_raw_socket/_basic_raw_socket.html | 45 + .../reference/basic_raw_socket/assign.html | 50 + .../basic_raw_socket/assign/overload1.html | 45 + .../basic_raw_socket/assign/overload2.html | 46 + .../basic_raw_socket/async_connect.html | 141 + .../basic_raw_socket/async_receive.html | 56 + .../async_receive/overload1.html | 139 + .../async_receive/overload2.html | 130 + .../basic_raw_socket/async_receive_from.html | 58 + .../async_receive_from/overload1.html | 139 + .../async_receive_from/overload2.html | 129 + .../basic_raw_socket/async_send.html | 56 + .../async_send/overload1.html | 137 + .../async_send/overload2.html | 128 + .../basic_raw_socket/async_send_to.html | 58 + .../async_send_to/overload1.html | 139 + .../async_send_to/overload2.html | 127 + .../basic_raw_socket/async_wait.html | 136 + .../reference/basic_raw_socket/at_mark.html | 46 + .../basic_raw_socket/at_mark/overload1.html | 68 + .../basic_raw_socket/at_mark/overload2.html | 69 + .../reference/basic_raw_socket/available.html | 46 + .../basic_raw_socket/available/overload1.html | 69 + .../basic_raw_socket/available/overload2.html | 70 + .../basic_raw_socket/basic_raw_socket.html | 122 + .../basic_raw_socket/overload1.html | 60 + .../basic_raw_socket/overload10.html | 72 + .../basic_raw_socket/overload2.html | 64 + .../basic_raw_socket/overload3.html | 76 + .../basic_raw_socket/overload4.html | 80 + .../basic_raw_socket/overload5.html | 80 + .../basic_raw_socket/overload6.html | 84 + .../basic_raw_socket/overload7.html | 83 + .../basic_raw_socket/overload8.html | 87 + .../basic_raw_socket/overload9.html | 67 + .../asio/reference/basic_raw_socket/bind.html | 48 + .../basic_raw_socket/bind/overload1.html | 83 + .../basic_raw_socket/bind/overload2.html | 80 + .../reference/basic_raw_socket/broadcast.html | 78 + .../basic_raw_socket/bytes_readable.html | 67 + .../reference/basic_raw_socket/cancel.html | 46 + .../basic_raw_socket/cancel/overload1.html | 104 + .../basic_raw_socket/cancel/overload2.html | 105 + .../reference/basic_raw_socket/close.html | 45 + .../basic_raw_socket/close/overload1.html | 70 + .../basic_raw_socket/close/overload2.html | 84 + .../reference/basic_raw_socket/connect.html | 48 + .../basic_raw_socket/connect/overload1.html | 89 + .../basic_raw_socket/connect/overload2.html | 86 + .../reference/basic_raw_socket/debug.html | 78 + .../basic_raw_socket/do_not_route.html | 78 + .../enable_connection_aborted.html | 80 + .../basic_raw_socket/endpoint_type.html | 51 + .../basic_raw_socket/executor_type.html | 51 + .../basic_raw_socket/get_executor.html | 44 + .../basic_raw_socket/get_option.html | 52 + .../get_option/overload1.html | 88 + .../get_option/overload2.html | 85 + .../basic_raw_socket/io_control.html | 52 + .../io_control/overload1.html | 88 + .../io_control/overload2.html | 85 + .../reference/basic_raw_socket/is_open.html | 44 + .../basic_raw_socket/keep_alive.html | 78 + .../reference/basic_raw_socket/linger.html | 79 + .../basic_raw_socket/local_endpoint.html | 46 + .../local_endpoint/overload1.html | 75 + .../local_endpoint/overload2.html | 82 + .../basic_raw_socket/lowest_layer.html | 48 + .../lowest_layer/overload1.html | 57 + .../lowest_layer/overload2.html | 57 + .../basic_raw_socket/lowest_layer_type.html | 846 ++ .../basic_raw_socket/max_connections.html | 45 + .../max_listen_connections.html | 44 + .../message_do_not_route.html | 44 + .../message_end_of_record.html | 44 + .../basic_raw_socket/message_flags.html | 54 + .../basic_raw_socket/message_out_of_band.html | 44 + .../basic_raw_socket/message_peek.html | 44 + .../basic_raw_socket/native_handle.html | 49 + .../basic_raw_socket/native_handle_type.html | 51 + .../basic_raw_socket/native_non_blocking.html | 54 + .../native_non_blocking/overload1.html | 143 + .../native_non_blocking/overload2.html | 158 + .../native_non_blocking/overload3.html | 149 + .../basic_raw_socket/non_blocking.html | 54 + .../non_blocking/overload1.html | 63 + .../non_blocking/overload2.html | 82 + .../non_blocking/overload3.html | 74 + .../asio/reference/basic_raw_socket/open.html | 48 + .../basic_raw_socket/open/overload1.html | 80 + .../basic_raw_socket/open/overload2.html | 77 + .../basic_raw_socket/operator_eq_.html | 55 + .../operator_eq_/overload1.html | 67 + .../operator_eq_/overload2.html | 71 + .../basic_raw_socket/out_of_band_inline.html | 78 + .../basic_raw_socket/protocol_type.html | 51 + .../reference/basic_raw_socket/receive.html | 60 + .../basic_raw_socket/receive/overload1.html | 104 + .../basic_raw_socket/receive/overload2.html | 95 + .../basic_raw_socket/receive/overload3.html | 87 + .../basic_raw_socket/receive_buffer_size.html | 78 + .../basic_raw_socket/receive_from.html | 63 + .../receive_from/overload1.html | 103 + .../receive_from/overload2.html | 92 + .../receive_from/overload3.html | 84 + .../receive_low_watermark.html | 78 + .../reference/basic_raw_socket/release.html | 46 + .../basic_raw_socket/release/overload1.html | 71 + .../basic_raw_socket/release/overload2.html | 72 + .../basic_raw_socket/remote_endpoint.html | 46 + .../remote_endpoint/overload1.html | 75 + .../remote_endpoint/overload2.html | 82 + .../basic_raw_socket/reuse_address.html | 79 + .../asio/reference/basic_raw_socket/send.html | 60 + .../basic_raw_socket/send/overload1.html | 103 + .../basic_raw_socket/send/overload2.html | 94 + .../basic_raw_socket/send/overload3.html | 86 + .../basic_raw_socket/send_buffer_size.html | 78 + .../basic_raw_socket/send_low_watermark.html | 78 + .../reference/basic_raw_socket/send_to.html | 63 + .../basic_raw_socket/send_to/overload1.html | 103 + .../basic_raw_socket/send_to/overload2.html | 92 + .../basic_raw_socket/send_to/overload3.html | 84 + .../basic_raw_socket/set_option.html | 52 + .../set_option/overload1.html | 87 + .../set_option/overload2.html | 84 + .../reference/basic_raw_socket/shutdown.html | 48 + .../basic_raw_socket/shutdown/overload1.html | 85 + .../basic_raw_socket/shutdown/overload2.html | 82 + .../basic_raw_socket/shutdown_type.html | 70 + .../asio/reference/basic_raw_socket/wait.html | 48 + .../basic_raw_socket/wait/overload1.html | 73 + .../basic_raw_socket/wait/overload2.html | 79 + .../reference/basic_raw_socket/wait_type.html | 73 + .../basic_raw_socket__rebind_executor.html | 88 + .../other.html | 924 ++ .../asio/reference/basic_readable_pipe.html | 328 + .../_basic_readable_pipe.html | 45 + .../reference/basic_readable_pipe/assign.html | 48 + .../basic_readable_pipe/assign/overload1.html | 41 + .../basic_readable_pipe/assign/overload2.html | 42 + .../basic_readable_pipe/async_read_some.html | 123 + .../basic_readable_pipe.html | 86 + .../basic_readable_pipe/overload1.html | 59 + .../basic_readable_pipe/overload2.html | 63 + .../basic_readable_pipe/overload3.html | 77 + .../basic_readable_pipe/overload4.html | 81 + .../basic_readable_pipe/overload5.html | 67 + .../basic_readable_pipe/overload6.html | 71 + .../reference/basic_readable_pipe/cancel.html | 46 + .../basic_readable_pipe/cancel/overload1.html | 58 + .../basic_readable_pipe/cancel/overload2.html | 59 + .../reference/basic_readable_pipe/close.html | 46 + .../basic_readable_pipe/close/overload1.html | 57 + .../basic_readable_pipe/close/overload2.html | 58 + .../basic_readable_pipe/executor_type.html | 51 + .../basic_readable_pipe/get_executor.html | 41 + .../basic_readable_pipe/is_open.html | 41 + .../basic_readable_pipe/lowest_layer.html | 48 + .../lowest_layer/overload1.html | 54 + .../lowest_layer/overload2.html | 54 + .../lowest_layer_type.html | 327 + .../basic_readable_pipe/native_handle.html | 46 + .../native_handle_type.html | 51 + .../basic_readable_pipe/operator_eq_.html | 54 + .../operator_eq_/overload1.html | 67 + .../operator_eq_/overload2.html | 70 + .../basic_readable_pipe/read_some.html | 52 + .../read_some/overload1.html | 107 + .../read_some/overload2.html | 84 + .../basic_readable_pipe/release.html | 46 + .../release/overload1.html | 68 + .../release/overload2.html | 69 + .../basic_readable_pipe__rebind_executor.html | 88 + .../other.html | 326 + .../reference/basic_seq_packet_socket.html | 880 ++ .../_basic_seq_packet_socket.html | 45 + .../basic_seq_packet_socket/assign.html | 50 + .../assign/overload1.html | 45 + .../assign/overload2.html | 46 + .../async_connect.html | 141 + .../async_receive.html | 58 + .../async_receive/overload1.html | 139 + .../async_receive/overload2.html | 146 + .../basic_seq_packet_socket/async_send.html | 137 + .../basic_seq_packet_socket/async_wait.html | 136 + .../basic_seq_packet_socket/at_mark.html | 46 + .../at_mark/overload1.html | 68 + .../at_mark/overload2.html | 69 + .../basic_seq_packet_socket/available.html | 46 + .../available/overload1.html | 69 + .../available/overload2.html | 70 + .../basic_seq_packet_socket.html | 122 + .../basic_seq_packet_socket/overload1.html | 61 + .../basic_seq_packet_socket/overload10.html | 72 + .../basic_seq_packet_socket/overload2.html | 65 + .../basic_seq_packet_socket/overload3.html | 78 + .../basic_seq_packet_socket/overload4.html | 82 + .../basic_seq_packet_socket/overload5.html | 80 + .../basic_seq_packet_socket/overload6.html | 84 + .../basic_seq_packet_socket/overload7.html | 83 + .../basic_seq_packet_socket/overload8.html | 87 + .../basic_seq_packet_socket/overload9.html | 68 + .../basic_seq_packet_socket/bind.html | 48 + .../bind/overload1.html | 83 + .../bind/overload2.html | 80 + .../basic_seq_packet_socket/broadcast.html | 78 + .../bytes_readable.html | 67 + .../basic_seq_packet_socket/cancel.html | 46 + .../cancel/overload1.html | 104 + .../cancel/overload2.html | 105 + .../basic_seq_packet_socket/close.html | 46 + .../close/overload1.html | 70 + .../close/overload2.html | 84 + .../basic_seq_packet_socket/connect.html | 48 + .../connect/overload1.html | 89 + .../connect/overload2.html | 86 + .../basic_seq_packet_socket/debug.html | 78 + .../basic_seq_packet_socket/do_not_route.html | 78 + .../enable_connection_aborted.html | 80 + .../endpoint_type.html | 51 + .../executor_type.html | 51 + .../basic_seq_packet_socket/get_executor.html | 44 + .../basic_seq_packet_socket/get_option.html | 52 + .../get_option/overload1.html | 88 + .../get_option/overload2.html | 85 + .../basic_seq_packet_socket/io_control.html | 52 + .../io_control/overload1.html | 88 + .../io_control/overload2.html | 85 + .../basic_seq_packet_socket/is_open.html | 44 + .../basic_seq_packet_socket/keep_alive.html | 78 + .../basic_seq_packet_socket/linger.html | 80 + .../local_endpoint.html | 46 + .../local_endpoint/overload1.html | 75 + .../local_endpoint/overload2.html | 82 + .../basic_seq_packet_socket/lowest_layer.html | 48 + .../lowest_layer/overload1.html | 57 + .../lowest_layer/overload2.html | 57 + .../lowest_layer_type.html | 846 ++ .../max_connections.html | 45 + .../max_listen_connections.html | 44 + .../message_do_not_route.html | 44 + .../message_end_of_record.html | 44 + .../message_flags.html | 54 + .../message_out_of_band.html | 44 + .../basic_seq_packet_socket/message_peek.html | 44 + .../native_handle.html | 49 + .../native_handle_type.html | 51 + .../native_non_blocking.html | 54 + .../native_non_blocking/overload1.html | 143 + .../native_non_blocking/overload2.html | 158 + .../native_non_blocking/overload3.html | 149 + .../basic_seq_packet_socket/non_blocking.html | 54 + .../non_blocking/overload1.html | 63 + .../non_blocking/overload2.html | 82 + .../non_blocking/overload3.html | 74 + .../basic_seq_packet_socket/open.html | 48 + .../open/overload1.html | 80 + .../open/overload2.html | 77 + .../basic_seq_packet_socket/operator_eq_.html | 54 + .../operator_eq_/overload1.html | 69 + .../operator_eq_/overload2.html | 72 + .../out_of_band_inline.html | 78 + .../protocol_type.html | 51 + .../basic_seq_packet_socket/receive.html | 66 + .../receive/overload1.html | 104 + .../receive/overload2.html | 119 + .../receive/overload3.html | 96 + .../receive_buffer_size.html | 78 + .../receive_low_watermark.html | 78 + .../basic_seq_packet_socket/release.html | 46 + .../release/overload1.html | 71 + .../release/overload2.html | 72 + .../remote_endpoint.html | 46 + .../remote_endpoint/overload1.html | 75 + .../remote_endpoint/overload2.html | 82 + .../reuse_address.html | 79 + .../basic_seq_packet_socket/send.html | 54 + .../send/overload1.html | 101 + .../send/overload2.html | 89 + .../send_buffer_size.html | 78 + .../send_low_watermark.html | 78 + .../basic_seq_packet_socket/set_option.html | 52 + .../set_option/overload1.html | 87 + .../set_option/overload2.html | 84 + .../basic_seq_packet_socket/shutdown.html | 48 + .../shutdown/overload1.html | 85 + .../shutdown/overload2.html | 82 + .../shutdown_type.html | 70 + .../basic_seq_packet_socket/wait.html | 49 + .../wait/overload1.html | 73 + .../wait/overload2.html | 79 + .../basic_seq_packet_socket/wait_type.html | 73 + ...ic_seq_packet_socket__rebind_executor.html | 88 + .../other.html | 878 ++ .../doc/asio/reference/basic_serial_port.html | 390 + .../basic_serial_port/_basic_serial_port.html | 45 + .../reference/basic_serial_port/assign.html | 48 + .../basic_serial_port/assign/overload1.html | 41 + .../basic_serial_port/assign/overload2.html | 42 + .../basic_serial_port/async_read_some.html | 143 + .../basic_serial_port/async_write_some.html | 143 + .../basic_serial_port/basic_serial_port.html | 115 + .../basic_serial_port/overload1.html | 60 + .../basic_serial_port/overload10.html | 71 + .../basic_serial_port/overload2.html | 63 + .../basic_serial_port/overload3.html | 65 + .../basic_serial_port/overload4.html | 68 + .../basic_serial_port/overload5.html | 65 + .../basic_serial_port/overload6.html | 68 + .../basic_serial_port/overload7.html | 79 + .../basic_serial_port/overload8.html | 82 + .../basic_serial_port/overload9.html | 67 + .../reference/basic_serial_port/cancel.html | 46 + .../basic_serial_port/cancel/overload1.html | 58 + .../basic_serial_port/cancel/overload2.html | 59 + .../reference/basic_serial_port/close.html | 46 + .../basic_serial_port/close/overload1.html | 58 + .../basic_serial_port/close/overload2.html | 59 + .../basic_serial_port/executor_type.html | 51 + .../basic_serial_port/get_executor.html | 41 + .../basic_serial_port/get_option.html | 52 + .../get_option/overload1.html | 73 + .../get_option/overload2.html | 65 + .../reference/basic_serial_port/is_open.html | 41 + .../basic_serial_port/lowest_layer.html | 48 + .../lowest_layer/overload1.html | 54 + .../lowest_layer/overload2.html | 54 + .../basic_serial_port/lowest_layer_type.html | 387 + .../basic_serial_port/native_handle.html | 46 + .../basic_serial_port/native_handle_type.html | 51 + .../reference/basic_serial_port/open.html | 48 + .../basic_serial_port/open/overload1.html | 70 + .../basic_serial_port/open/overload2.html | 63 + .../basic_serial_port/operator_eq_.html | 54 + .../operator_eq_/overload1.html | 67 + .../operator_eq_/overload2.html | 70 + .../basic_serial_port/read_some.html | 52 + .../read_some/overload1.html | 107 + .../read_some/overload2.html | 84 + .../basic_serial_port/send_break.html | 46 + .../send_break/overload1.html | 57 + .../send_break/overload2.html | 58 + .../basic_serial_port/set_option.html | 52 + .../set_option/overload1.html | 72 + .../set_option/overload2.html | 64 + .../basic_serial_port/write_some.html | 52 + .../write_some/overload1.html | 106 + .../write_some/overload2.html | 83 + .../basic_serial_port__rebind_executor.html | 88 + .../other.html | 387 + .../doc/asio/reference/basic_signal_set.html | 336 + .../basic_signal_set/_basic_signal_set.html | 45 + .../asio/reference/basic_signal_set/add.html | 62 + .../basic_signal_set/add/overload1.html | 71 + .../basic_signal_set/add/overload2.html | 63 + .../basic_signal_set/add/overload3.html | 87 + .../basic_signal_set/add/overload4.html | 79 + .../basic_signal_set/async_wait.html | 122 + .../basic_signal_set/basic_signal_set.html | 104 + .../basic_signal_set/overload1.html | 59 + .../basic_signal_set/overload2.html | 62 + .../basic_signal_set/overload3.html | 74 + .../basic_signal_set/overload4.html | 77 + .../basic_signal_set/overload5.html | 80 + .../basic_signal_set/overload6.html | 83 + .../basic_signal_set/overload7.html | 86 + .../basic_signal_set/overload8.html | 89 + .../reference/basic_signal_set/cancel.html | 46 + .../basic_signal_set/cancel/overload1.html | 82 + .../basic_signal_set/cancel/overload2.html | 83 + .../reference/basic_signal_set/clear.html | 46 + .../basic_signal_set/clear/overload1.html | 64 + .../basic_signal_set/clear/overload2.html | 65 + .../basic_signal_set/executor_type.html | 51 + .../reference/basic_signal_set/flags.html | 87 + .../reference/basic_signal_set/flags_t.html | 54 + .../basic_signal_set/get_executor.html | 41 + .../reference/basic_signal_set/remove.html | 48 + .../basic_signal_set/remove/overload1.html | 79 + .../basic_signal_set/remove/overload2.html | 71 + .../basic_signal_set__rebind_executor.html | 88 + .../other.html | 332 + .../asio/doc/asio/reference/basic_socket.html | 845 ++ .../reference/basic_socket/_basic_socket.html | 45 + .../asio/reference/basic_socket/assign.html | 50 + .../basic_socket/assign/overload1.html | 42 + .../basic_socket/assign/overload2.html | 43 + .../reference/basic_socket/async_connect.html | 138 + .../reference/basic_socket/async_wait.html | 133 + .../asio/reference/basic_socket/at_mark.html | 46 + .../basic_socket/at_mark/overload1.html | 65 + .../basic_socket/at_mark/overload2.html | 66 + .../reference/basic_socket/available.html | 46 + .../basic_socket/available/overload1.html | 66 + .../basic_socket/available/overload2.html | 67 + .../reference/basic_socket/basic_socket.html | 122 + .../basic_socket/basic_socket/overload1.html | 59 + .../basic_socket/basic_socket/overload10.html | 72 + .../basic_socket/basic_socket/overload2.html | 63 + .../basic_socket/basic_socket/overload3.html | 76 + .../basic_socket/basic_socket/overload4.html | 80 + .../basic_socket/basic_socket/overload5.html | 79 + .../basic_socket/basic_socket/overload6.html | 83 + .../basic_socket/basic_socket/overload7.html | 82 + .../basic_socket/basic_socket/overload8.html | 86 + .../basic_socket/basic_socket/overload9.html | 67 + .../doc/asio/reference/basic_socket/bind.html | 48 + .../basic_socket/bind/overload1.html | 80 + .../basic_socket/bind/overload2.html | 77 + .../reference/basic_socket/broadcast.html | 78 + .../basic_socket/bytes_readable.html | 67 + .../asio/reference/basic_socket/cancel.html | 46 + .../basic_socket/cancel/overload1.html | 101 + .../basic_socket/cancel/overload2.html | 102 + .../asio/reference/basic_socket/close.html | 45 + .../basic_socket/close/overload1.html | 67 + .../basic_socket/close/overload2.html | 81 + .../asio/reference/basic_socket/connect.html | 48 + .../basic_socket/connect/overload1.html | 86 + .../basic_socket/connect/overload2.html | 83 + .../asio/reference/basic_socket/debug.html | 78 + .../reference/basic_socket/do_not_route.html | 78 + .../enable_connection_aborted.html | 80 + .../reference/basic_socket/endpoint_type.html | 51 + .../reference/basic_socket/executor_type.html | 51 + .../reference/basic_socket/get_executor.html | 41 + .../reference/basic_socket/get_option.html | 52 + .../basic_socket/get_option/overload1.html | 85 + .../basic_socket/get_option/overload2.html | 82 + .../reference/basic_socket/io_control.html | 52 + .../basic_socket/io_control/overload1.html | 85 + .../basic_socket/io_control/overload2.html | 82 + .../asio/reference/basic_socket/is_open.html | 41 + .../reference/basic_socket/keep_alive.html | 78 + .../asio/reference/basic_socket/linger.html | 79 + .../basic_socket/local_endpoint.html | 46 + .../local_endpoint/overload1.html | 72 + .../local_endpoint/overload2.html | 79 + .../reference/basic_socket/lowest_layer.html | 48 + .../basic_socket/lowest_layer/overload1.html | 54 + .../basic_socket/lowest_layer/overload2.html | 54 + .../basic_socket/lowest_layer_type.html | 843 ++ .../basic_socket/max_connections.html | 45 + .../basic_socket/max_listen_connections.html | 44 + .../basic_socket/message_do_not_route.html | 44 + .../basic_socket/message_end_of_record.html | 44 + .../reference/basic_socket/message_flags.html | 54 + .../basic_socket/message_out_of_band.html | 44 + .../reference/basic_socket/message_peek.html | 44 + .../reference/basic_socket/native_handle.html | 46 + .../basic_socket/native_handle_type.html | 51 + .../basic_socket/native_non_blocking.html | 54 + .../native_non_blocking/overload1.html | 140 + .../native_non_blocking/overload2.html | 155 + .../native_non_blocking/overload3.html | 146 + .../reference/basic_socket/non_blocking.html | 54 + .../basic_socket/non_blocking/overload1.html | 60 + .../basic_socket/non_blocking/overload2.html | 79 + .../basic_socket/non_blocking/overload3.html | 71 + .../doc/asio/reference/basic_socket/open.html | 48 + .../basic_socket/open/overload1.html | 77 + .../basic_socket/open/overload2.html | 74 + .../reference/basic_socket/operator_eq_.html | 55 + .../basic_socket/operator_eq_/overload1.html | 67 + .../basic_socket/operator_eq_/overload2.html | 71 + .../basic_socket/out_of_band_inline.html | 78 + .../reference/basic_socket/protocol_type.html | 51 + .../basic_socket/receive_buffer_size.html | 78 + .../basic_socket/receive_low_watermark.html | 78 + .../asio/reference/basic_socket/release.html | 46 + .../basic_socket/release/overload1.html | 68 + .../basic_socket/release/overload2.html | 69 + .../basic_socket/remote_endpoint.html | 46 + .../remote_endpoint/overload1.html | 72 + .../remote_endpoint/overload2.html | 79 + .../reference/basic_socket/reuse_address.html | 79 + .../basic_socket/send_buffer_size.html | 78 + .../basic_socket/send_low_watermark.html | 78 + .../reference/basic_socket/set_option.html | 52 + .../basic_socket/set_option/overload1.html | 84 + .../basic_socket/set_option/overload2.html | 81 + .../asio/reference/basic_socket/shutdown.html | 48 + .../basic_socket/shutdown/overload1.html | 82 + .../basic_socket/shutdown/overload2.html | 79 + .../reference/basic_socket/shutdown_type.html | 70 + .../doc/asio/reference/basic_socket/wait.html | 48 + .../basic_socket/wait/overload1.html | 70 + .../basic_socket/wait/overload2.html | 76 + .../reference/basic_socket/wait_type.html | 72 + .../basic_socket__rebind_executor.html | 88 + .../basic_socket__rebind_executor/other.html | 842 ++ .../asio/reference/basic_socket_acceptor.html | 785 ++ .../_basic_socket_acceptor.html | 45 + .../basic_socket_acceptor/accept.html | 154 + .../accept/overload1.html | 85 + .../accept/overload10.html | 93 + .../accept/overload11.html | 94 + .../accept/overload12.html | 91 + .../accept/overload13.html | 103 + .../accept/overload14.html | 104 + .../accept/overload15.html | 100 + .../accept/overload16.html | 101 + .../accept/overload2.html | 82 + .../accept/overload3.html | 91 + .../accept/overload4.html | 88 + .../accept/overload5.html | 78 + .../accept/overload6.html | 84 + .../accept/overload7.html | 95 + .../accept/overload8.html | 96 + .../accept/overload9.html | 92 + .../basic_socket_acceptor/assign.html | 50 + .../assign/overload1.html | 42 + .../assign/overload2.html | 43 + .../basic_socket_acceptor/async_accept.html | 109 + .../async_accept/overload1.html | 135 + .../async_accept/overload2.html | 122 + .../async_accept/overload3.html | 135 + .../async_accept/overload4.html | 142 + .../async_accept/overload5.html | 143 + .../async_accept/overload6.html | 144 + .../async_accept/overload7.html | 151 + .../async_accept/overload8.html | 152 + .../basic_socket_acceptor/async_wait.html | 135 + .../basic_socket_acceptor.html | 122 + .../basic_socket_acceptor/overload1.html | 60 + .../basic_socket_acceptor/overload10.html | 72 + .../basic_socket_acceptor/overload2.html | 64 + .../basic_socket_acceptor/overload3.html | 76 + .../basic_socket_acceptor/overload4.html | 80 + .../basic_socket_acceptor/overload5.html | 97 + .../basic_socket_acceptor/overload6.html | 101 + .../basic_socket_acceptor/overload7.html | 83 + .../basic_socket_acceptor/overload8.html | 87 + .../basic_socket_acceptor/overload9.html | 67 + .../reference/basic_socket_acceptor/bind.html | 48 + .../basic_socket_acceptor/bind/overload1.html | 81 + .../basic_socket_acceptor/bind/overload2.html | 78 + .../basic_socket_acceptor/broadcast.html | 78 + .../basic_socket_acceptor/bytes_readable.html | 67 + .../basic_socket_acceptor/cancel.html | 46 + .../cancel/overload1.html | 59 + .../cancel/overload2.html | 60 + .../basic_socket_acceptor/close.html | 46 + .../close/overload1.html | 61 + .../close/overload2.html | 75 + .../basic_socket_acceptor/debug.html | 78 + .../basic_socket_acceptor/do_not_route.html | 78 + .../enable_connection_aborted.html | 80 + .../basic_socket_acceptor/endpoint_type.html | 51 + .../basic_socket_acceptor/executor_type.html | 51 + .../basic_socket_acceptor/get_executor.html | 41 + .../basic_socket_acceptor/get_option.html | 52 + .../get_option/overload1.html | 85 + .../get_option/overload2.html | 82 + .../basic_socket_acceptor/io_control.html | 52 + .../io_control/overload1.html | 84 + .../io_control/overload2.html | 81 + .../basic_socket_acceptor/is_open.html | 41 + .../basic_socket_acceptor/keep_alive.html | 78 + .../basic_socket_acceptor/linger.html | 80 + .../basic_socket_acceptor/listen.html | 48 + .../listen/overload1.html | 71 + .../listen/overload2.html | 76 + .../basic_socket_acceptor/local_endpoint.html | 46 + .../local_endpoint/overload1.html | 72 + .../local_endpoint/overload2.html | 80 + .../max_connections.html | 45 + .../max_listen_connections.html | 44 + .../message_do_not_route.html | 44 + .../message_end_of_record.html | 44 + .../basic_socket_acceptor/message_flags.html | 54 + .../message_out_of_band.html | 44 + .../basic_socket_acceptor/message_peek.html | 44 + .../basic_socket_acceptor/native_handle.html | 46 + .../native_handle_type.html | 51 + .../native_non_blocking.html | 54 + .../native_non_blocking/overload1.html | 64 + .../native_non_blocking/overload2.html | 79 + .../native_non_blocking/overload3.html | 70 + .../basic_socket_acceptor/non_blocking.html | 54 + .../non_blocking/overload1.html | 60 + .../non_blocking/overload2.html | 79 + .../non_blocking/overload3.html | 71 + .../reference/basic_socket_acceptor/open.html | 48 + .../basic_socket_acceptor/open/overload1.html | 78 + .../basic_socket_acceptor/open/overload2.html | 75 + .../basic_socket_acceptor/operator_eq_.html | 55 + .../operator_eq_/overload1.html | 67 + .../operator_eq_/overload2.html | 71 + .../out_of_band_inline.html | 78 + .../basic_socket_acceptor/protocol_type.html | 51 + .../receive_buffer_size.html | 78 + .../receive_low_watermark.html | 78 + .../basic_socket_acceptor/release.html | 46 + .../release/overload1.html | 68 + .../release/overload2.html | 69 + .../basic_socket_acceptor/reuse_address.html | 79 + .../send_buffer_size.html | 78 + .../send_low_watermark.html | 78 + .../basic_socket_acceptor/set_option.html | 52 + .../set_option/overload1.html | 84 + .../set_option/overload2.html | 81 + .../basic_socket_acceptor/shutdown_type.html | 70 + .../reference/basic_socket_acceptor/wait.html | 49 + .../basic_socket_acceptor/wait/overload1.html | 70 + .../basic_socket_acceptor/wait/overload2.html | 76 + .../basic_socket_acceptor/wait_type.html | 73 + ...asic_socket_acceptor__rebind_executor.html | 88 + .../other.html | 782 ++ .../asio/reference/basic_socket_iostream.html | 329 + .../basic_socket_iostream.html | 71 + .../basic_socket_iostream/overload1.html | 41 + .../basic_socket_iostream/overload2.html | 42 + .../basic_socket_iostream/overload3.html | 41 + .../basic_socket_iostream/overload4.html | 52 + .../basic_socket_iostream/clock_type.html | 51 + .../basic_socket_iostream/close.html | 41 + .../basic_socket_iostream/connect.html | 53 + .../basic_socket_iostream/duration.html | 51 + .../basic_socket_iostream/duration_type.html | 51 + .../basic_socket_iostream/endpoint_type.html | 51 + .../basic_socket_iostream/error.html | 63 + .../basic_socket_iostream/expires_after.html | 60 + .../basic_socket_iostream/expires_at.html | 50 + .../expires_at/overload1.html | 49 + .../expires_at/overload2.html | 59 + .../expires_from_now.html | 51 + .../expires_from_now/overload1.html | 49 + .../expires_from_now/overload2.html | 60 + .../basic_socket_iostream/expiry.html | 49 + .../basic_socket_iostream/operator_eq_.html | 43 + .../basic_socket_iostream/protocol_type.html | 51 + .../basic_socket_iostream/rdbuf.html | 41 + .../basic_socket_iostream/socket.html | 41 + .../basic_socket_iostream/time_point.html | 51 + .../basic_socket_iostream/time_type.html | 51 + .../reference/basic_socket_streambuf.html | 402 + .../_basic_socket_streambuf.html | 41 + .../basic_socket_streambuf.html | 58 + .../basic_socket_streambuf/overload1.html | 41 + .../basic_socket_streambuf/overload2.html | 42 + .../basic_socket_streambuf/overload3.html | 42 + .../basic_socket_streambuf/clock_type.html | 51 + .../basic_socket_streambuf/close.html | 50 + .../basic_socket_streambuf/connect.html | 53 + .../connect/overload1.html | 53 + .../connect/overload2.html | 61 + .../basic_socket_streambuf/duration.html | 51 + .../basic_socket_streambuf/duration_type.html | 51 + .../basic_socket_streambuf/endpoint_type.html | 51 + .../basic_socket_streambuf/error.html | 50 + .../basic_socket_streambuf/expires_after.html | 60 + .../basic_socket_streambuf/expires_at.html | 50 + .../expires_at/overload1.html | 49 + .../expires_at/overload2.html | 59 + .../expires_from_now.html | 51 + .../expires_from_now/overload1.html | 49 + .../expires_from_now/overload2.html | 60 + .../basic_socket_streambuf/expiry.html | 49 + .../basic_socket_streambuf/operator_eq_.html | 43 + .../basic_socket_streambuf/overflow.html | 40 + .../basic_socket_streambuf/protocol_type.html | 51 + .../basic_socket_streambuf/puberror.html | 51 + .../basic_socket_streambuf/setbuf.html | 41 + .../basic_socket_streambuf/socket.html | 41 + .../basic_socket_streambuf/sync.html | 39 + .../basic_socket_streambuf/time_point.html | 51 + .../basic_socket_streambuf/time_type.html | 51 + .../basic_socket_streambuf/underflow.html | 39 + .../doc/asio/reference/basic_stream_file.html | 546 ++ .../basic_stream_file/_basic_stream_file.html | 45 + .../reference/basic_stream_file/append.html | 44 + .../reference/basic_stream_file/assign.html | 48 + .../basic_stream_file/assign/overload1.html | 44 + .../basic_stream_file/assign/overload2.html | 45 + .../basic_stream_file/async_read_some.html | 142 + .../basic_stream_file/async_write_some.html | 142 + .../basic_stream_file/basic_stream_file.html | 119 + .../basic_stream_file/overload1.html | 60 + .../basic_stream_file/overload10.html | 71 + .../basic_stream_file/overload2.html | 64 + .../basic_stream_file/overload3.html | 81 + .../basic_stream_file/overload4.html | 85 + .../basic_stream_file/overload5.html | 81 + .../basic_stream_file/overload6.html | 85 + .../basic_stream_file/overload7.html | 78 + .../basic_stream_file/overload8.html | 82 + .../basic_stream_file/overload9.html | 67 + .../reference/basic_stream_file/cancel.html | 46 + .../basic_stream_file/cancel/overload1.html | 94 + .../basic_stream_file/cancel/overload2.html | 95 + .../reference/basic_stream_file/close.html | 45 + .../basic_stream_file/close/overload1.html | 62 + .../basic_stream_file/close/overload2.html | 76 + .../reference/basic_stream_file/create.html | 44 + .../basic_stream_file/exclusive.html | 44 + .../basic_stream_file/executor_type.html | 51 + .../reference/basic_stream_file/flags.html | 54 + .../basic_stream_file/get_executor.html | 44 + .../reference/basic_stream_file/is_open.html | 44 + .../basic_stream_file/native_handle.html | 49 + .../basic_stream_file/native_handle_type.html | 51 + .../reference/basic_stream_file/open.html | 61 + .../basic_stream_file/open/overload1.html | 85 + .../basic_stream_file/open/overload2.html | 82 + .../basic_stream_file/open/overload3.html | 85 + .../basic_stream_file/open/overload4.html | 82 + .../basic_stream_file/operator_eq_.html | 54 + .../operator_eq_/overload1.html | 67 + .../operator_eq_/overload2.html | 70 + .../basic_stream_file/read_only.html | 44 + .../basic_stream_file/read_some.html | 52 + .../read_some/overload1.html | 107 + .../read_some/overload2.html | 84 + .../basic_stream_file/read_write.html | 44 + .../reference/basic_stream_file/release.html | 46 + .../basic_stream_file/release/overload1.html | 71 + .../basic_stream_file/release/overload2.html | 72 + .../reference/basic_stream_file/resize.html | 48 + .../basic_stream_file/resize/overload1.html | 76 + .../basic_stream_file/resize/overload2.html | 68 + .../reference/basic_stream_file/seek.html | 50 + .../basic_stream_file/seek/overload1.html | 84 + .../basic_stream_file/seek/overload2.html | 76 + .../basic_stream_file/seek_basis.html | 70 + .../reference/basic_stream_file/size.html | 46 + .../basic_stream_file/size/overload1.html | 59 + .../basic_stream_file/size/overload2.html | 60 + .../reference/basic_stream_file/sync_all.html | 46 + .../basic_stream_file/sync_all/overload1.html | 60 + .../basic_stream_file/sync_all/overload2.html | 61 + .../basic_stream_file/sync_all_on_write.html | 45 + .../basic_stream_file/sync_data.html | 46 + .../sync_data/overload1.html | 60 + .../sync_data/overload2.html | 61 + .../reference/basic_stream_file/truncate.html | 44 + .../basic_stream_file/write_only.html | 44 + .../basic_stream_file/write_some.html | 52 + .../write_some/overload1.html | 106 + .../write_some/overload2.html | 83 + .../basic_stream_file__rebind_executor.html | 88 + .../other.html | 544 ++ .../asio/reference/basic_stream_socket.html | 929 ++ .../_basic_stream_socket.html | 45 + .../reference/basic_stream_socket/assign.html | 50 + .../basic_stream_socket/assign/overload1.html | 45 + .../basic_stream_socket/assign/overload2.html | 46 + .../basic_stream_socket/async_connect.html | 141 + .../basic_stream_socket/async_read_some.html | 142 + .../basic_stream_socket/async_receive.html | 56 + .../async_receive/overload1.html | 140 + .../async_receive/overload2.html | 145 + .../basic_stream_socket/async_send.html | 56 + .../async_send/overload1.html | 139 + .../async_send/overload2.html | 144 + .../basic_stream_socket/async_wait.html | 136 + .../basic_stream_socket/async_write_some.html | 142 + .../basic_stream_socket/at_mark.html | 46 + .../at_mark/overload1.html | 68 + .../at_mark/overload2.html | 69 + .../basic_stream_socket/available.html | 46 + .../available/overload1.html | 69 + .../available/overload2.html | 70 + .../basic_stream_socket.html | 122 + .../basic_stream_socket/overload1.html | 61 + .../basic_stream_socket/overload10.html | 72 + .../basic_stream_socket/overload2.html | 65 + .../basic_stream_socket/overload3.html | 77 + .../basic_stream_socket/overload4.html | 81 + .../basic_stream_socket/overload5.html | 80 + .../basic_stream_socket/overload6.html | 84 + .../basic_stream_socket/overload7.html | 83 + .../basic_stream_socket/overload8.html | 87 + .../basic_stream_socket/overload9.html | 67 + .../reference/basic_stream_socket/bind.html | 48 + .../basic_stream_socket/bind/overload1.html | 83 + .../basic_stream_socket/bind/overload2.html | 80 + .../basic_stream_socket/broadcast.html | 78 + .../basic_stream_socket/bytes_readable.html | 67 + .../reference/basic_stream_socket/cancel.html | 46 + .../basic_stream_socket/cancel/overload1.html | 104 + .../basic_stream_socket/cancel/overload2.html | 105 + .../reference/basic_stream_socket/close.html | 46 + .../basic_stream_socket/close/overload1.html | 70 + .../basic_stream_socket/close/overload2.html | 84 + .../basic_stream_socket/connect.html | 48 + .../connect/overload1.html | 89 + .../connect/overload2.html | 86 + .../reference/basic_stream_socket/debug.html | 78 + .../basic_stream_socket/do_not_route.html | 78 + .../enable_connection_aborted.html | 80 + .../basic_stream_socket/endpoint_type.html | 51 + .../basic_stream_socket/executor_type.html | 51 + .../basic_stream_socket/get_executor.html | 44 + .../basic_stream_socket/get_option.html | 52 + .../get_option/overload1.html | 88 + .../get_option/overload2.html | 85 + .../basic_stream_socket/io_control.html | 52 + .../io_control/overload1.html | 88 + .../io_control/overload2.html | 85 + .../basic_stream_socket/is_open.html | 44 + .../basic_stream_socket/keep_alive.html | 78 + .../reference/basic_stream_socket/linger.html | 80 + .../basic_stream_socket/local_endpoint.html | 46 + .../local_endpoint/overload1.html | 75 + .../local_endpoint/overload2.html | 82 + .../basic_stream_socket/lowest_layer.html | 48 + .../lowest_layer/overload1.html | 57 + .../lowest_layer/overload2.html | 57 + .../lowest_layer_type.html | 846 ++ .../basic_stream_socket/max_connections.html | 45 + .../max_listen_connections.html | 44 + .../message_do_not_route.html | 44 + .../message_end_of_record.html | 44 + .../basic_stream_socket/message_flags.html | 54 + .../message_out_of_band.html | 44 + .../basic_stream_socket/message_peek.html | 44 + .../basic_stream_socket/native_handle.html | 49 + .../native_handle_type.html | 51 + .../native_non_blocking.html | 54 + .../native_non_blocking/overload1.html | 143 + .../native_non_blocking/overload2.html | 158 + .../native_non_blocking/overload3.html | 149 + .../basic_stream_socket/non_blocking.html | 54 + .../non_blocking/overload1.html | 63 + .../non_blocking/overload2.html | 82 + .../non_blocking/overload3.html | 74 + .../reference/basic_stream_socket/open.html | 48 + .../basic_stream_socket/open/overload1.html | 80 + .../basic_stream_socket/open/overload2.html | 77 + .../basic_stream_socket/operator_eq_.html | 55 + .../operator_eq_/overload1.html | 67 + .../operator_eq_/overload2.html | 71 + .../out_of_band_inline.html | 78 + .../basic_stream_socket/protocol_type.html | 51 + .../basic_stream_socket/read_some.html | 52 + .../read_some/overload1.html | 107 + .../read_some/overload2.html | 84 + .../basic_stream_socket/receive.html | 63 + .../receive/overload1.html | 107 + .../receive/overload2.html | 112 + .../receive/overload3.html | 89 + .../receive_buffer_size.html | 78 + .../receive_low_watermark.html | 78 + .../basic_stream_socket/release.html | 46 + .../release/overload1.html | 71 + .../release/overload2.html | 72 + .../basic_stream_socket/remote_endpoint.html | 46 + .../remote_endpoint/overload1.html | 75 + .../remote_endpoint/overload2.html | 82 + .../basic_stream_socket/reuse_address.html | 79 + .../reference/basic_stream_socket/send.html | 60 + .../basic_stream_socket/send/overload1.html | 106 + .../basic_stream_socket/send/overload2.html | 111 + .../basic_stream_socket/send/overload3.html | 89 + .../basic_stream_socket/send_buffer_size.html | 78 + .../send_low_watermark.html | 78 + .../basic_stream_socket/set_option.html | 52 + .../set_option/overload1.html | 87 + .../set_option/overload2.html | 84 + .../basic_stream_socket/shutdown.html | 48 + .../shutdown/overload1.html | 85 + .../shutdown/overload2.html | 82 + .../basic_stream_socket/shutdown_type.html | 70 + .../reference/basic_stream_socket/wait.html | 49 + .../basic_stream_socket/wait/overload1.html | 73 + .../basic_stream_socket/wait/overload2.html | 79 + .../basic_stream_socket/wait_type.html | 73 + .../basic_stream_socket/write_some.html | 52 + .../write_some/overload1.html | 106 + .../write_some/overload2.html | 83 + .../basic_stream_socket__rebind_executor.html | 88 + .../other.html | 927 ++ .../doc/asio/reference/basic_streambuf.html | 366 + .../basic_streambuf/basic_streambuf.html | 48 + .../reference/basic_streambuf/capacity.html | 49 + .../reference/basic_streambuf/commit.html | 63 + .../basic_streambuf/const_buffers_type.html | 51 + .../reference/basic_streambuf/consume.html | 55 + .../asio/reference/basic_streambuf/data.html | 59 + .../reference/basic_streambuf/max_size.html | 49 + .../basic_streambuf/mutable_buffers_type.html | 51 + .../reference/basic_streambuf/overflow.html | 46 + .../reference/basic_streambuf/prepare.html | 79 + .../reference/basic_streambuf/reserve.html | 40 + .../asio/reference/basic_streambuf/size.html | 59 + .../reference/basic_streambuf/underflow.html | 44 + .../asio/reference/basic_streambuf_ref.html | 227 + .../basic_streambuf_ref.html | 58 + .../basic_streambuf_ref/overload1.html | 43 + .../basic_streambuf_ref/overload2.html | 41 + .../basic_streambuf_ref/overload3.html | 41 + .../basic_streambuf_ref/capacity.html | 41 + .../reference/basic_streambuf_ref/commit.html | 42 + .../const_buffers_type.html | 362 + .../basic_streambuf_ref/consume.html | 42 + .../reference/basic_streambuf_ref/data.html | 41 + .../basic_streambuf_ref/max_size.html | 41 + .../mutable_buffers_type.html | 362 + .../basic_streambuf_ref/prepare.html | 42 + .../reference/basic_streambuf_ref/size.html | 41 + .../asio/reference/basic_system_executor.html | 278 + .../basic_system_executor.html | 41 + .../basic_system_executor/context.html | 41 + .../basic_system_executor/defer.html | 75 + .../basic_system_executor/dispatch.html | 74 + .../basic_system_executor/execute.html | 44 + .../on_work_finished.html | 44 + .../on_work_started.html | 44 + .../operator_eq__eq_.html | 56 + .../operator_not__eq_.html | 56 + .../reference/basic_system_executor/post.html | 75 + .../basic_system_executor/query.html | 57 + .../query/overload1.html | 56 + .../query/overload2.html | 54 + .../query/overload3.html | 54 + .../basic_system_executor/query__static.html | 68 + .../query__static/overload1.html | 55 + .../query__static/overload2.html | 54 + .../query__static/overload3.html | 55 + .../query__static/overload4.html | 55 + .../basic_system_executor/require.html | 94 + .../require/overload1.html | 54 + .../require/overload2.html | 54 + .../require/overload3.html | 54 + .../require/overload4.html | 54 + .../require/overload5.html | 54 + .../require/overload6.html | 56 + .../require/overload7.html | 54 + .../asio/reference/basic_waitable_timer.html | 445 + .../_basic_waitable_timer.html | 45 + .../basic_waitable_timer/async_wait.html | 121 + .../basic_waitable_timer.html | 95 + .../basic_waitable_timer/overload1.html | 62 + .../basic_waitable_timer/overload2.html | 66 + .../basic_waitable_timer/overload3.html | 65 + .../basic_waitable_timer/overload4.html | 68 + .../basic_waitable_timer/overload5.html | 63 + .../basic_waitable_timer/overload6.html | 67 + .../basic_waitable_timer/overload7.html | 67 + .../basic_waitable_timer/overload8.html | 70 + .../basic_waitable_timer/cancel.html | 50 + .../cancel/overload1.html | 90 + .../cancel/overload2.html | 92 + .../basic_waitable_timer/cancel_one.html | 50 + .../cancel_one/overload1.html | 90 + .../cancel_one/overload2.html | 92 + .../basic_waitable_timer/clock_type.html | 51 + .../basic_waitable_timer/duration.html | 51 + .../basic_waitable_timer/executor_type.html | 51 + .../basic_waitable_timer/expires_after.html | 101 + .../basic_waitable_timer/expires_at.html | 59 + .../expires_at/overload1.html | 45 + .../expires_at/overload2.html | 100 + .../expires_at/overload3.html | 93 + .../expires_from_now.html | 56 + .../expires_from_now/overload1.html | 45 + .../expires_from_now/overload2.html | 101 + .../expires_from_now/overload3.html | 93 + .../basic_waitable_timer/expiry.html | 45 + .../basic_waitable_timer/get_executor.html | 41 + .../basic_waitable_timer/operator_eq_.html | 50 + .../operator_eq_/overload1.html | 68 + .../operator_eq_/overload2.html | 70 + .../basic_waitable_timer/time_point.html | 51 + .../basic_waitable_timer/traits_type.html | 51 + .../reference/basic_waitable_timer/wait.html | 46 + .../basic_waitable_timer/wait/overload1.html | 57 + .../basic_waitable_timer/wait/overload2.html | 58 + ...basic_waitable_timer__rebind_executor.html | 88 + .../other.html | 443 + .../asio/reference/basic_writable_pipe.html | 328 + .../_basic_writable_pipe.html | 45 + .../reference/basic_writable_pipe/assign.html | 48 + .../basic_writable_pipe/assign/overload1.html | 41 + .../basic_writable_pipe/assign/overload2.html | 42 + .../basic_writable_pipe/async_write_some.html | 122 + .../basic_writable_pipe.html | 86 + .../basic_writable_pipe/overload1.html | 59 + .../basic_writable_pipe/overload2.html | 63 + .../basic_writable_pipe/overload3.html | 77 + .../basic_writable_pipe/overload4.html | 81 + .../basic_writable_pipe/overload5.html | 67 + .../basic_writable_pipe/overload6.html | 71 + .../reference/basic_writable_pipe/cancel.html | 46 + .../basic_writable_pipe/cancel/overload1.html | 58 + .../basic_writable_pipe/cancel/overload2.html | 59 + .../reference/basic_writable_pipe/close.html | 46 + .../basic_writable_pipe/close/overload1.html | 57 + .../basic_writable_pipe/close/overload2.html | 58 + .../basic_writable_pipe/executor_type.html | 51 + .../basic_writable_pipe/get_executor.html | 41 + .../basic_writable_pipe/is_open.html | 41 + .../basic_writable_pipe/lowest_layer.html | 48 + .../lowest_layer/overload1.html | 54 + .../lowest_layer/overload2.html | 54 + .../lowest_layer_type.html | 327 + .../basic_writable_pipe/native_handle.html | 46 + .../native_handle_type.html | 51 + .../basic_writable_pipe/operator_eq_.html | 54 + .../operator_eq_/overload1.html | 67 + .../operator_eq_/overload2.html | 70 + .../basic_writable_pipe/release.html | 46 + .../release/overload1.html | 68 + .../release/overload2.html | 69 + .../basic_writable_pipe/write_some.html | 52 + .../write_some/overload1.html | 106 + .../write_some/overload2.html | 83 + .../basic_writable_pipe__rebind_executor.html | 88 + .../other.html | 326 + .../asio/reference/basic_yield_context.html | 245 + .../basic_yield_context.html | 48 + .../cancellation_slot_type.html | 197 + .../basic_yield_context/cancelled.html | 41 + .../basic_yield_context/executor_type.html | 51 + .../get_cancellation_slot.html | 41 + .../get_cancellation_state.html | 41 + .../basic_yield_context/get_executor.html | 41 + .../basic_yield_context/operator_lb__rb_.html | 61 + .../reset_cancellation_state.html | 56 + .../reset_cancellation_state/overload1.html | 46 + .../reset_cancellation_state/overload2.html | 49 + .../reset_cancellation_state/overload3.html | 51 + .../throw_if_cancelled.html | 50 + .../throw_if_cancelled/overload1.html | 41 + .../throw_if_cancelled/overload2.html | 42 + .../doc/asio/reference/bind_allocator.html | 58 + .../reference/bind_cancellation_slot.html | 58 + .../doc/asio/reference/bind_executor.html | 73 + .../reference/bind_executor/overload1.html | 47 + .../reference/bind_executor/overload2.html | 47 + .../reference/bind_immediate_executor.html | 58 + 3party/asio/doc/asio/reference/buffer.html | 642 ++ .../doc/asio/reference/buffer/overload1.html | 48 + .../doc/asio/reference/buffer/overload10.html | 58 + .../doc/asio/reference/buffer/overload11.html | 57 + .../doc/asio/reference/buffer/overload12.html | 58 + .../doc/asio/reference/buffer/overload13.html | 57 + .../doc/asio/reference/buffer/overload14.html | 58 + .../doc/asio/reference/buffer/overload15.html | 57 + .../doc/asio/reference/buffer/overload16.html | 58 + .../doc/asio/reference/buffer/overload17.html | 57 + .../doc/asio/reference/buffer/overload18.html | 58 + .../doc/asio/reference/buffer/overload19.html | 57 + .../doc/asio/reference/buffer/overload2.html | 54 + .../doc/asio/reference/buffer/overload20.html | 58 + .../doc/asio/reference/buffer/overload21.html | 57 + .../doc/asio/reference/buffer/overload22.html | 58 + .../doc/asio/reference/buffer/overload23.html | 65 + .../doc/asio/reference/buffer/overload24.html | 66 + .../doc/asio/reference/buffer/overload25.html | 65 + .../doc/asio/reference/buffer/overload26.html | 66 + .../doc/asio/reference/buffer/overload27.html | 62 + .../doc/asio/reference/buffer/overload28.html | 67 + .../doc/asio/reference/buffer/overload29.html | 61 + .../doc/asio/reference/buffer/overload3.html | 48 + .../doc/asio/reference/buffer/overload30.html | 67 + .../doc/asio/reference/buffer/overload31.html | 53 + .../doc/asio/reference/buffer/overload32.html | 58 + .../doc/asio/reference/buffer/overload33.html | 60 + .../doc/asio/reference/buffer/overload34.html | 63 + .../doc/asio/reference/buffer/overload35.html | 60 + .../doc/asio/reference/buffer/overload36.html | 63 + .../doc/asio/reference/buffer/overload37.html | 59 + .../doc/asio/reference/buffer/overload38.html | 62 + .../doc/asio/reference/buffer/overload39.html | 41 + .../doc/asio/reference/buffer/overload4.html | 54 + .../doc/asio/reference/buffer/overload40.html | 41 + .../doc/asio/reference/buffer/overload41.html | 42 + .../doc/asio/reference/buffer/overload42.html | 42 + .../doc/asio/reference/buffer/overload5.html | 49 + .../doc/asio/reference/buffer/overload6.html | 49 + .../doc/asio/reference/buffer/overload7.html | 56 + .../doc/asio/reference/buffer/overload8.html | 57 + .../doc/asio/reference/buffer/overload9.html | 56 + .../asio/doc/asio/reference/buffer_cast.html | 87 + .../asio/reference/buffer_cast/overload1.html | 43 + .../asio/reference/buffer_cast/overload2.html | 43 + .../asio/doc/asio/reference/buffer_copy.html | 111 + .../asio/reference/buffer_copy/overload1.html | 91 + .../asio/reference/buffer_copy/overload2.html | 100 + ...er_literals__operator_quot__quot__buf.html | 65 + .../overload1.html | 43 + .../overload2.html | 43 + .../asio/reference/buffer_registration.html | 267 + .../_buffer_registration.html | 41 + .../buffer_registration/allocator_type.html | 51 + .../reference/buffer_registration/at.html | 42 + .../reference/buffer_registration/begin.html | 41 + .../buffer_registration.html | 67 + .../buffer_registration/overload1.html | 46 + .../buffer_registration/overload2.html | 46 + .../buffer_registration/overload3.html | 41 + .../reference/buffer_registration/cbegin.html | 41 + .../reference/buffer_registration/cend.html | 41 + .../buffer_registration/const_iterator.html | 51 + .../reference/buffer_registration/end.html | 41 + .../buffer_registration/iterator.html | 51 + .../buffer_registration/operator_eq_.html | 42 + .../buffer_registration/operator_lb__rb_.html | 42 + .../reference/buffer_registration/size.html | 41 + .../asio/reference/buffer_sequence_begin.html | 93 + .../buffer_sequence_begin/overload1.html | 44 + .../buffer_sequence_begin/overload2.html | 44 + .../buffer_sequence_begin/overload3.html | 44 + .../buffer_sequence_begin/overload4.html | 44 + .../buffer_sequence_begin/overload5.html | 41 + .../buffer_sequence_begin/overload6.html | 41 + .../asio/reference/buffer_sequence_end.html | 93 + .../buffer_sequence_end/overload1.html | 44 + .../buffer_sequence_end/overload2.html | 44 + .../buffer_sequence_end/overload3.html | 44 + .../buffer_sequence_end/overload4.html | 44 + .../buffer_sequence_end/overload5.html | 41 + .../buffer_sequence_end/overload6.html | 41 + .../asio/doc/asio/reference/buffer_size.html | 76 + .../asio/reference/buffered_read_stream.html | 362 + .../buffered_read_stream/async_fill.html | 51 + .../buffered_read_stream/async_read_some.html | 54 + .../async_write_some.html | 54 + .../buffered_read_stream.html | 52 + .../buffered_read_stream/overload1.html | 43 + .../buffered_read_stream/overload2.html | 44 + .../reference/buffered_read_stream/close.html | 46 + .../buffered_read_stream/close/overload1.html | 40 + .../buffered_read_stream/close/overload2.html | 41 + .../default_buffer_size.html | 41 + .../buffered_read_stream/executor_type.html | 51 + .../reference/buffered_read_stream/fill.html | 51 + .../buffered_read_stream/fill/overload1.html | 41 + .../buffered_read_stream/fill/overload2.html | 42 + .../buffered_read_stream/get_executor.html | 41 + .../buffered_read_stream/in_avail.html | 46 + .../in_avail/overload1.html | 40 + .../in_avail/overload2.html | 41 + .../buffered_read_stream/lowest_layer.html | 48 + .../lowest_layer/overload1.html | 40 + .../lowest_layer/overload2.html | 40 + .../lowest_layer_type.html | 51 + .../buffered_read_stream/next_layer.html | 41 + .../buffered_read_stream/next_layer_type.html | 51 + .../reference/buffered_read_stream/peek.html | 57 + .../buffered_read_stream/peek/overload1.html | 44 + .../buffered_read_stream/peek/overload2.html | 45 + .../buffered_read_stream/read_some.html | 57 + .../read_some/overload1.html | 44 + .../read_some/overload2.html | 45 + .../buffered_read_stream/write_some.html | 57 + .../write_some/overload1.html | 44 + .../write_some/overload2.html | 45 + .../doc/asio/reference/buffered_stream.html | 357 + .../reference/buffered_stream/async_fill.html | 51 + .../buffered_stream/async_flush.html | 51 + .../buffered_stream/async_read_some.html | 54 + .../buffered_stream/async_write_some.html | 54 + .../buffered_stream/buffered_stream.html | 53 + .../buffered_stream/overload1.html | 43 + .../buffered_stream/overload2.html | 45 + .../asio/reference/buffered_stream/close.html | 45 + .../buffered_stream/close/overload1.html | 40 + .../buffered_stream/close/overload2.html | 41 + .../buffered_stream/executor_type.html | 51 + .../asio/reference/buffered_stream/fill.html | 51 + .../buffered_stream/fill/overload1.html | 41 + .../buffered_stream/fill/overload2.html | 42 + .../asio/reference/buffered_stream/flush.html | 52 + .../buffered_stream/flush/overload1.html | 42 + .../buffered_stream/flush/overload2.html | 43 + .../buffered_stream/get_executor.html | 41 + .../reference/buffered_stream/in_avail.html | 46 + .../buffered_stream/in_avail/overload1.html | 40 + .../buffered_stream/in_avail/overload2.html | 41 + .../buffered_stream/lowest_layer.html | 48 + .../lowest_layer/overload1.html | 40 + .../lowest_layer/overload2.html | 40 + .../buffered_stream/lowest_layer_type.html | 51 + .../reference/buffered_stream/next_layer.html | 41 + .../buffered_stream/next_layer_type.html | 51 + .../asio/reference/buffered_stream/peek.html | 57 + .../buffered_stream/peek/overload1.html | 44 + .../buffered_stream/peek/overload2.html | 45 + .../reference/buffered_stream/read_some.html | 57 + .../buffered_stream/read_some/overload1.html | 44 + .../buffered_stream/read_some/overload2.html | 45 + .../reference/buffered_stream/write_some.html | 57 + .../buffered_stream/write_some/overload1.html | 44 + .../buffered_stream/write_some/overload2.html | 45 + .../asio/reference/buffered_write_stream.html | 363 + .../buffered_write_stream/async_flush.html | 51 + .../async_read_some.html | 54 + .../async_write_some.html | 54 + .../buffered_write_stream.html | 52 + .../buffered_write_stream/overload1.html | 43 + .../buffered_write_stream/overload2.html | 44 + .../buffered_write_stream/close.html | 46 + .../close/overload1.html | 40 + .../close/overload2.html | 41 + .../default_buffer_size.html | 41 + .../buffered_write_stream/executor_type.html | 51 + .../buffered_write_stream/flush.html | 53 + .../flush/overload1.html | 42 + .../flush/overload2.html | 43 + .../buffered_write_stream/get_executor.html | 41 + .../buffered_write_stream/in_avail.html | 46 + .../in_avail/overload1.html | 40 + .../in_avail/overload2.html | 41 + .../buffered_write_stream/lowest_layer.html | 48 + .../lowest_layer/overload1.html | 40 + .../lowest_layer/overload2.html | 40 + .../lowest_layer_type.html | 51 + .../buffered_write_stream/next_layer.html | 41 + .../next_layer_type.html | 51 + .../reference/buffered_write_stream/peek.html | 57 + .../buffered_write_stream/peek/overload1.html | 44 + .../buffered_write_stream/peek/overload2.html | 45 + .../buffered_write_stream/read_some.html | 57 + .../read_some/overload1.html | 44 + .../read_some/overload2.html | 45 + .../buffered_write_stream/write_some.html | 57 + .../write_some/overload1.html | 44 + .../write_some/overload2.html | 45 + .../doc/asio/reference/buffers_begin.html | 55 + .../asio/doc/asio/reference/buffers_end.html | 55 + .../doc/asio/reference/buffers_iterator.html | 406 + .../reference/buffers_iterator/begin.html | 42 + .../buffers_iterator/buffers_iterator.html | 41 + .../buffers_iterator/difference_type.html | 51 + .../asio/reference/buffers_iterator/end.html | 42 + .../buffers_iterator/iterator_category.html | 51 + .../buffers_iterator/operator__star_.html | 42 + .../buffers_iterator/operator_arrow_.html | 41 + .../buffers_iterator/operator_eq__eq_.html | 53 + .../buffers_iterator/operator_gt_.html | 53 + .../buffers_iterator/operator_gt__eq_.html | 53 + .../buffers_iterator/operator_lb__rb_.html | 42 + .../buffers_iterator/operator_lt_.html | 53 + .../buffers_iterator/operator_lt__eq_.html | 53 + .../buffers_iterator/operator_minus_.html | 49 + .../operator_minus_/overload1.html | 52 + .../operator_minus_/overload2.html | 52 + .../buffers_iterator/operator_minus__eq_.html | 42 + .../operator_minus__minus_.html | 49 + .../operator_minus__minus_/overload1.html | 40 + .../operator_minus__minus_/overload2.html | 41 + .../buffers_iterator/operator_not__eq_.html | 53 + .../buffers_iterator/operator_plus_.html | 49 + .../operator_plus_/overload1.html | 52 + .../operator_plus_/overload2.html | 52 + .../buffers_iterator/operator_plus__eq_.html | 42 + .../operator_plus__plus_.html | 49 + .../operator_plus__plus_/overload1.html | 40 + .../operator_plus__plus_/overload2.html | 41 + .../reference/buffers_iterator/pointer.html | 56 + .../reference/buffers_iterator/reference.html | 56 + .../buffers_iterator/value_type.html | 51 + .../asio/doc/asio/reference/can_prefer.html | 63 + 3party/asio/doc/asio/reference/can_query.html | 63 + .../asio/doc/asio/reference/can_require.html | 63 + .../asio/reference/can_require_concept.html | 63 + .../asio/reference/cancellation_filter.html | 89 + .../cancellation_filter/operator_lp__rp_.html | 43 + .../asio/reference/cancellation_signal.html | 120 + .../_cancellation_signal.html | 39 + .../cancellation_signal.html | 39 + .../reference/cancellation_signal/emit.html | 42 + .../reference/cancellation_signal/slot.html | 45 + .../doc/asio/reference/cancellation_slot.html | 197 + .../reference/cancellation_slot/assign.html | 74 + .../cancellation_slot/cancellation_slot.html | 41 + .../reference/cancellation_slot/clear.html | 44 + .../reference/cancellation_slot/emplace.html | 85 + .../cancellation_slot/has_handler.html | 41 + .../cancellation_slot/is_connected.html | 41 + .../cancellation_slot/operator_eq__eq_.html | 53 + .../cancellation_slot/operator_not__eq_.html | 53 + .../reference/cancellation_slot_binder.html | 244 + .../_cancellation_slot_binder.html | 40 + .../argument_type.html | 73 + .../cancellation_slot_binder.html | 121 + .../cancellation_slot_binder/overload1.html | 48 + .../cancellation_slot_binder/overload2.html | 41 + .../cancellation_slot_binder/overload3.html | 42 + .../cancellation_slot_binder/overload4.html | 50 + .../cancellation_slot_binder/overload5.html | 50 + .../cancellation_slot_binder/overload6.html | 41 + .../cancellation_slot_binder/overload7.html | 43 + .../cancellation_slot_binder/overload8.html | 44 + .../cancellation_slot_binder/overload9.html | 46 + .../cancellation_slot_type.html | 51 + .../first_argument_type.html | 73 + .../cancellation_slot_binder/get.html | 45 + .../get/overload1.html | 40 + .../get/overload2.html | 40 + .../get_cancellation_slot.html | 41 + .../operator_lp__rp_.html | 49 + .../operator_lp__rp_/overload1.html | 40 + .../operator_lp__rp_/overload2.html | 40 + .../cancellation_slot_binder/result_type.html | 73 + .../second_argument_type.html | 73 + .../cancellation_slot_binder/target_type.html | 51 + .../asio/reference/cancellation_state.html | 126 + .../cancellation_state.html | 69 + .../cancellation_state/overload1.html | 40 + .../cancellation_state/overload2.html | 60 + .../cancellation_state/overload3.html | 86 + .../cancellation_state/overload4.html | 99 + .../cancellation_state/cancelled.html | 41 + .../reference/cancellation_state/clear.html | 42 + .../reference/cancellation_state/slot.html | 44 + .../doc/asio/reference/cancellation_type.html | 94 + .../asio/reference/cancellation_type_t.html | 52 + 3party/asio/doc/asio/reference/co_spawn.html | 118 + .../asio/reference/co_spawn/overload1.html | 134 + .../asio/reference/co_spawn/overload2.html | 125 + .../asio/reference/co_spawn/overload3.html | 135 + .../asio/reference/co_spawn/overload4.html | 126 + .../asio/reference/co_spawn/overload5.html | 158 + .../asio/reference/co_spawn/overload6.html | 159 + .../reference/completion_signature_of.html | 100 + .../completion_signature_of/type.html | 49 + 3party/asio/doc/asio/reference/connect.html | 207 + .../doc/asio/reference/connect/overload1.html | 102 + .../asio/reference/connect/overload10.html | 118 + .../asio/reference/connect/overload11.html | 151 + .../asio/reference/connect/overload12.html | 153 + .../doc/asio/reference/connect/overload2.html | 101 + .../doc/asio/reference/connect/overload3.html | 103 + .../doc/asio/reference/connect/overload4.html | 96 + .../doc/asio/reference/connect/overload5.html | 107 + .../doc/asio/reference/connect/overload6.html | 106 + .../doc/asio/reference/connect/overload7.html | 146 + .../doc/asio/reference/connect/overload8.html | 148 + .../doc/asio/reference/connect/overload9.html | 125 + .../asio/doc/asio/reference/connect_pipe.html | 67 + .../reference/connect_pipe/overload1.html | 75 + .../reference/connect_pipe/overload2.html | 89 + 3party/asio/doc/asio/reference/consign.html | 63 + 3party/asio/doc/asio/reference/consign_t.html | 97 + .../asio/reference/consign_t/consign_t.html | 45 + .../asio/doc/asio/reference/const_buffer.html | 185 + .../reference/const_buffer/const_buffer.html | 57 + .../const_buffer/const_buffer/overload1.html | 40 + .../const_buffer/const_buffer/overload2.html | 42 + .../const_buffer/const_buffer/overload3.html | 41 + .../doc/asio/reference/const_buffer/data.html | 41 + .../const_buffer/operator_plus_.html | 49 + .../operator_plus_/overload1.html | 42 + .../operator_plus_/overload2.html | 42 + .../const_buffer/operator_plus__eq_.html | 42 + .../doc/asio/reference/const_buffer/size.html | 41 + .../doc/asio/reference/const_buffers_1.html | 236 + .../asio/reference/const_buffers_1/begin.html | 41 + .../const_buffers_1/const_buffers_1.html | 51 + .../const_buffers_1/overload1.html | 42 + .../const_buffers_1/overload2.html | 41 + .../const_buffers_1/const_iterator.html | 51 + .../asio/reference/const_buffers_1/data.html | 44 + .../asio/reference/const_buffers_1/end.html | 41 + .../const_buffers_1/operator_plus_.html | 49 + .../operator_plus_/overload1.html | 45 + .../operator_plus_/overload2.html | 45 + .../const_buffers_1/operator_plus__eq_.html | 45 + .../asio/reference/const_buffers_1/size.html | 44 + .../reference/const_buffers_1/value_type.html | 184 + .../reference/const_registered_buffer.html | 194 + .../const_registered_buffer/buffer.html | 41 + .../const_registered_buffer.html | 49 + .../const_registered_buffer/overload1.html | 40 + .../const_registered_buffer/overload2.html | 41 + .../const_registered_buffer/data.html | 49 + .../reference/const_registered_buffer/id.html | 41 + .../operator_plus_.html | 53 + .../operator_plus_/overload1.html | 43 + .../operator_plus_/overload2.html | 42 + .../operator_plus__eq_.html | 42 + .../const_registered_buffer/size.html | 49 + 3party/asio/doc/asio/reference/coroutine.html | 449 + .../asio/reference/coroutine/coroutine.html | 41 + .../asio/reference/coroutine/is_child.html | 41 + .../asio/reference/coroutine/is_complete.html | 41 + .../asio/reference/coroutine/is_parent.html | 41 + .../doc/asio/reference/deadline_timer.html | 391 + .../reference/default_completion_token.html | 98 + .../default_completion_token/type.html | 53 + 3party/asio/doc/asio/reference/defer.html | 74 + .../doc/asio/reference/defer/overload1.html | 139 + .../doc/asio/reference/defer/overload2.html | 177 + .../doc/asio/reference/defer/overload3.html | 84 + 3party/asio/doc/asio/reference/deferred.html | 57 + .../reference/deferred_async_operation.html | 116 + .../deferred_async_operation.html | 48 + .../detail__index_sequence_for.html | 39 + .../operator_lp__rp_.html | 44 + ...tiation_comma__InitArgs_ellipsis__gt_.html | 118 + .../deferred_async_operation.html | 49 + .../detail__index_sequence_for.html | 40 + .../operator_lp__rp_.html | 45 + .../asio/reference/deferred_conditional.html | 128 + .../deferred_conditional.html | 43 + .../operator_lp__rp_.html | 44 + .../deferred_conditional/otherwise.html | 47 + .../reference/deferred_conditional/then.html | 46 + .../doc/asio/reference/deferred_function.html | 133 + .../deferred_function/deferred_function.html | 44 + .../deferred_function/function_.html | 39 + .../deferred_function/operator_lp__rp_.html | 42 + .../doc/asio/reference/deferred_init_tag.html | 52 + .../doc/asio/reference/deferred_noop.html | 87 + .../deferred_noop/operator_lp__rp_.html | 44 + .../doc/asio/reference/deferred_sequence.html | 98 + .../deferred_sequence/deferred_sequence.html | 45 + .../deferred_sequence/operator_lp__rp_.html | 49 + .../operator_lp__rp_/overload1.html | 40 + .../operator_lp__rp_/overload2.html | 40 + .../asio/reference/deferred_signatures.html | 54 + .../asio/doc/asio/reference/deferred_t.html | 192 + .../reference/deferred_t/as_default_on.html | 45 + .../asio/reference/deferred_t/deferred_t.html | 40 + .../deferred_t/operator_lp__rp_.html | 54 + .../operator_lp__rp_/overload1.html | 43 + .../operator_lp__rp_/overload2.html | 43 + .../doc/asio/reference/deferred_t/values.html | 44 + .../doc/asio/reference/deferred_t/when.html | 42 + .../deferred_t__executor_with_default.html | 124 + .../default_completion_token_type.html | 191 + .../executor_with_default.html | 45 + .../doc/asio/reference/deferred_values.html | 113 + .../deferred_values/deferred_values.html | 46 + .../detail__index_sequence_for.html | 39 + .../deferred_values/operator_lp__rp_.html | 44 + .../reference/deferred_values__initiate.html | 81 + .../operator_lp__rp_.html | 44 + 3party/asio/doc/asio/reference/detached.html | 56 + .../asio/doc/asio/reference/detached_t.html | 149 + .../reference/detached_t/as_default_on.html | 45 + .../asio/reference/detached_t/detached_t.html | 40 + .../detached_t__executor_with_default.html | 126 + .../default_completion_token_type.html | 148 + .../executor_with_default.html | 54 + .../executor_with_default/overload1.html | 41 + .../executor_with_default/overload2.html | 45 + .../asio/reference/disable_cancellation.html | 86 + 3party/asio/doc/asio/reference/dispatch.html | 74 + .../asio/reference/dispatch/overload1.html | 129 + .../asio/reference/dispatch/overload2.html | 167 + .../asio/reference/dispatch/overload3.html | 85 + .../doc/asio/reference/dynamic_buffer.html | 90 + .../reference/dynamic_buffer/overload1.html | 52 + .../reference/dynamic_buffer/overload2.html | 53 + .../reference/dynamic_buffer/overload3.html | 51 + .../reference/dynamic_buffer/overload4.html | 52 + .../asio/reference/dynamic_string_buffer.html | 265 + .../dynamic_string_buffer/capacity.html | 50 + .../dynamic_string_buffer/commit.html | 72 + .../const_buffers_type.html | 185 + .../dynamic_string_buffer/consume.html | 61 + .../reference/dynamic_string_buffer/data.html | 56 + .../dynamic_string_buffer/data/overload1.html | 60 + .../dynamic_string_buffer/data/overload2.html | 81 + .../dynamic_string_buffer/data/overload3.html | 71 + .../dynamic_string_buffer.html | 59 + .../dynamic_string_buffer/overload1.html | 75 + .../dynamic_string_buffer/overload2.html | 42 + .../dynamic_string_buffer/overload3.html | 41 + .../reference/dynamic_string_buffer/grow.html | 61 + .../dynamic_string_buffer/max_size.html | 49 + .../mutable_buffers_type.html | 184 + .../dynamic_string_buffer/prepare.html | 80 + .../dynamic_string_buffer/shrink.html | 47 + .../reference/dynamic_string_buffer/size.html | 52 + .../asio/reference/dynamic_vector_buffer.html | 264 + .../dynamic_vector_buffer/capacity.html | 51 + .../dynamic_vector_buffer/commit.html | 72 + .../const_buffers_type.html | 185 + .../dynamic_vector_buffer/consume.html | 61 + .../reference/dynamic_vector_buffer/data.html | 56 + .../dynamic_vector_buffer/data/overload1.html | 60 + .../dynamic_vector_buffer/data/overload2.html | 81 + .../dynamic_vector_buffer/data/overload3.html | 71 + .../dynamic_vector_buffer.html | 59 + .../dynamic_vector_buffer/overload1.html | 62 + .../dynamic_vector_buffer/overload2.html | 42 + .../dynamic_vector_buffer/overload3.html | 41 + .../reference/dynamic_vector_buffer/grow.html | 61 + .../dynamic_vector_buffer/max_size.html | 51 + .../mutable_buffers_type.html | 184 + .../dynamic_vector_buffer/prepare.html | 80 + .../dynamic_vector_buffer/shrink.html | 47 + .../reference/dynamic_vector_buffer/size.html | 52 + .../enable_partial_cancellation.html | 87 + .../enable_terminal_cancellation.html | 87 + .../reference/enable_total_cancellation.html | 87 + .../reference/error__addrinfo_category.html | 49 + .../reference/error__addrinfo_errors.html | 70 + .../asio/reference/error__basic_errors.html | 231 + .../asio/doc/asio/reference/error__clear.html | 50 + .../error__get_addrinfo_category.html | 49 + .../reference/error__get_misc_category.html | 49 + .../reference/error__get_netdb_category.html | 49 + .../reference/error__get_ssl_category.html | 49 + .../reference/error__get_system_category.html | 49 + .../reference/error__make_error_code.html | 67 + .../error__make_error_code/overload1.html | 38 + .../error__make_error_code/overload2.html | 38 + .../error__make_error_code/overload3.html | 38 + .../error__make_error_code/overload4.html | 38 + .../error__make_error_code/overload5.html | 38 + .../asio/reference/error__misc_category.html | 49 + .../asio/reference/error__misc_errors.html | 80 + .../asio/reference/error__netdb_category.html | 49 + .../asio/reference/error__netdb_errors.html | 80 + .../asio/reference/error__ssl_category.html | 49 + .../doc/asio/reference/error__ssl_errors.html | 49 + .../reference/error__system_category.html | 49 + .../doc/asio/reference/error_category.html | 138 + .../error_category/_error_category.html | 40 + .../reference/error_category/message.html | 42 + .../asio/reference/error_category/name.html | 41 + .../error_category/operator_eq__eq_.html | 42 + .../error_category/operator_not__eq_.html | 42 + .../asio/doc/asio/reference/error_code.html | 273 + .../doc/asio/reference/error_code/assign.html | 42 + .../asio/reference/error_code/category.html | 40 + .../doc/asio/reference/error_code/clear.html | 41 + .../asio/reference/error_code/error_code.html | 58 + .../error_code/error_code/overload1.html | 40 + .../error_code/error_code/overload2.html | 42 + .../error_code/error_code/overload3.html | 43 + .../asio/reference/error_code/message.html | 41 + .../error_code/operator_eq__eq_.html | 53 + .../reference/error_code/operator_not_.html | 41 + .../error_code/operator_not__eq_.html | 53 + .../operator_unspecified_bool_type.html | 42 + .../error_code/unspecified_bool_true.html | 40 + .../error_code/unspecified_bool_type.html | 49 + .../doc/asio/reference/error_code/value.html | 40 + .../error_code__unspecified_bool_type_t.html | 49 + .../asio/reference/execution__allocator.html | 52 + .../reference/execution__allocator_t.html | 164 + .../execution__allocator_t/allocator_t.html | 41 + .../is_applicable_property_v.html | 44 + .../execution__allocator_t/is_preferable.html | 42 + .../execution__allocator_t/is_requirable.html | 42 + .../execution__allocator_t/value.html | 45 + .../reference/execution__any_executor.html | 279 + .../_any_executor.html | 40 + .../execution__any_executor/any_executor.html | 105 + .../any_executor/overload1.html | 40 + .../any_executor/overload10.html | 44 + .../any_executor/overload2.html | 41 + .../any_executor/overload3.html | 41 + .../any_executor/overload4.html | 41 + .../any_executor/overload5.html | 43 + .../any_executor/overload6.html | 44 + .../any_executor/overload7.html | 42 + .../any_executor/overload8.html | 42 + .../any_executor/overload9.html | 43 + .../execution__any_executor/context.html | 46 + .../execution__any_executor/execute.html | 48 + .../operator_bool.html | 51 + .../execution__any_executor/operator_eq_.html | 66 + .../operator_eq_/overload1.html | 41 + .../operator_eq_/overload2.html | 41 + .../operator_eq_/overload3.html | 41 + .../operator_eq_/overload4.html | 44 + .../operator_eq__eq_.html | 54 + .../operator_eq__eq_/overload1.html | 42 + .../operator_eq__eq_/overload2.html | 42 + .../operator_eq__eq_/overload3.html | 42 + .../operator_not__eq_.html | 54 + .../operator_not__eq_/overload1.html | 42 + .../operator_not__eq_/overload2.html | 42 + .../operator_not__eq_/overload3.html | 42 + .../execution__any_executor/prefer.html | 54 + .../execution__any_executor/query.html | 54 + .../execution__any_executor/require.html | 55 + .../execution__any_executor/swap.html | 42 + .../execution__any_executor/target.html | 49 + .../target/overload1.html | 42 + .../target/overload2.html | 42 + .../execution__any_executor/target_type.html | 41 + .../reference/execution__bad_executor.html | 102 + .../execution__bad_executor/bad_executor.html | 40 + .../execution__bad_executor/what.html | 41 + .../asio/reference/execution__blocking.html | 52 + .../execution__blocking_adaptation.html | 52 + .../execution__blocking_adaptation_t.html | 286 + .../allowed.html | 41 + .../blocking_adaptation_t.html | 53 + .../blocking_adaptation_t/overload1.html | 40 + .../blocking_adaptation_t/overload2.html | 41 + .../blocking_adaptation_t/overload3.html | 41 + .../disallowed.html | 41 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 42 + .../is_requirable.html | 42 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../polymorphic_query_result_type.html | 51 + ...ion__blocking_adaptation_t__allowed_t.html | 197 + .../allowed_t.html | 41 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../polymorphic_query_result_type.html | 51 + .../value.html | 49 + ...__blocking_adaptation_t__disallowed_t.html | 197 + .../disallowed_t.html | 41 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../polymorphic_query_result_type.html | 51 + .../value.html | 49 + .../asio/reference/execution__blocking_t.html | 311 + .../execution__blocking_t/always.html | 41 + .../execution__blocking_t/blocking_t.html | 57 + .../blocking_t/overload1.html | 40 + .../blocking_t/overload2.html | 41 + .../blocking_t/overload3.html | 41 + .../blocking_t/overload4.html | 41 + .../is_applicable_property_v.html | 44 + .../execution__blocking_t/is_preferable.html | 42 + .../execution__blocking_t/is_requirable.html | 42 + .../execution__blocking_t/never.html | 41 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../polymorphic_query_result_type.html | 51 + .../execution__blocking_t/possibly.html | 41 + .../execution__blocking_t__always_t.html | 199 + .../always_t.html | 41 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../polymorphic_query_result_type.html | 51 + .../value.html | 49 + .../execution__blocking_t__never_t.html | 199 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../never_t.html | 41 + .../polymorphic_query_result_type.html | 51 + .../execution__blocking_t__never_t/value.html | 49 + .../execution__blocking_t__possibly_t.html | 199 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../polymorphic_query_result_type.html | 51 + .../possibly_t.html | 41 + .../value.html | 49 + .../reference/execution__bulk_execute.html | 111 + .../reference/execution__bulk_guarantee.html | 52 + .../execution__bulk_guarantee_t.html | 312 + .../bulk_guarantee_t.html | 57 + .../bulk_guarantee_t/overload1.html | 40 + .../bulk_guarantee_t/overload2.html | 41 + .../bulk_guarantee_t/overload3.html | 41 + .../bulk_guarantee_t/overload4.html | 41 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 42 + .../is_requirable.html | 42 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../execution__bulk_guarantee_t/parallel.html | 41 + .../polymorphic_query_result_type.html | 51 + .../sequenced.html | 41 + .../unsequenced.html | 41 + ...ecution__bulk_guarantee_t__parallel_t.html | 198 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../parallel_t.html | 41 + .../polymorphic_query_result_type.html | 51 + .../value.html | 49 + ...cution__bulk_guarantee_t__sequenced_t.html | 198 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../polymorphic_query_result_type.html | 51 + .../sequenced_t.html | 41 + .../value.html | 49 + ...tion__bulk_guarantee_t__unsequenced_t.html | 198 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 42 + .../is_requirable.html | 42 + .../polymorphic_query_result_type.html | 51 + .../unsequenced_t.html | 41 + .../value.html | 49 + .../execution__can_bulk_execute.html | 64 + .../reference/execution__can_connect.html | 62 + .../reference/execution__can_execute.html | 62 + .../reference/execution__can_schedule.html | 61 + .../reference/execution__can_set_done.html | 61 + .../reference/execution__can_set_error.html | 62 + .../reference/execution__can_set_value.html | 61 + .../asio/reference/execution__can_start.html | 61 + .../asio/reference/execution__can_submit.html | 62 + .../asio/reference/execution__connect.html | 124 + .../reference/execution__connect_result.html | 90 + .../execution__connect_result/type.html | 54 + .../asio/reference/execution__context.html | 52 + .../asio/reference/execution__context_as.html | 53 + .../reference/execution__context_as_t.html | 150 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 42 + .../is_requirable.html | 42 + .../polymorphic_query_result_type.html | 51 + .../asio/reference/execution__context_t.html | 148 + .../is_applicable_property_v.html | 44 + .../execution__context_t/is_preferable.html | 42 + .../execution__context_t/is_requirable.html | 42 + .../polymorphic_query_result_type.html | 51 + .../asio/reference/execution__execute.html | 86 + .../reference/execution__executor_index.html | 95 + .../execution__executor_index/type.html | 51 + .../reference/execution__executor_shape.html | 95 + .../execution__executor_shape/type.html | 51 + .../execution__invocable_archetype.html | 88 + .../operator_lp__rp_.html | 44 + .../reference/execution__is_executor.html | 61 + .../reference/execution__is_executor_of.html | 64 + .../execution__is_nothrow_receiver_of.html | 67 + .../execution__is_operation_state.html | 62 + .../reference/execution__is_receiver.html | 63 + .../reference/execution__is_receiver_of.html | 64 + .../reference/execution__is_scheduler.html | 62 + .../asio/reference/execution__is_sender.html | 61 + .../reference/execution__is_sender_to.html | 62 + .../reference/execution__is_typed_sender.html | 61 + .../asio/reference/execution__mapping.html | 52 + .../asio/reference/execution__mapping_t.html | 309 + .../is_applicable_property_v.html | 44 + .../execution__mapping_t/is_preferable.html | 41 + .../execution__mapping_t/is_requirable.html | 41 + .../execution__mapping_t/mapping_t.html | 57 + .../mapping_t/overload1.html | 40 + .../mapping_t/overload2.html | 41 + .../mapping_t/overload3.html | 41 + .../mapping_t/overload4.html | 41 + .../execution__mapping_t/new_thread.html | 41 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../reference/execution__mapping_t/other.html | 41 + .../polymorphic_query_result_type.html | 51 + .../execution__mapping_t/thread.html | 41 + .../execution__mapping_t__new_thread_t.html | 198 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../new_thread_t.html | 41 + .../polymorphic_query_result_type.html | 51 + .../value.html | 49 + .../execution__mapping_t__other_t.html | 197 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../other_t.html | 41 + .../polymorphic_query_result_type.html | 51 + .../execution__mapping_t__other_t/value.html | 49 + .../execution__mapping_t__thread_t.html | 198 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../polymorphic_query_result_type.html | 51 + .../thread_t.html | 41 + .../execution__mapping_t__thread_t/value.html | 49 + .../asio/reference/execution__occupancy.html | 52 + .../reference/execution__occupancy_t.html | 148 + .../is_applicable_property_v.html | 44 + .../execution__occupancy_t/is_preferable.html | 42 + .../execution__occupancy_t/is_requirable.html | 42 + .../polymorphic_query_result_type.html | 51 + .../execution__outstanding_work.html | 52 + .../execution__outstanding_work_t.html | 286 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 42 + .../is_requirable.html | 42 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../outstanding_work_t.html | 53 + .../outstanding_work_t/overload1.html | 40 + .../outstanding_work_t/overload2.html | 41 + .../outstanding_work_t/overload3.html | 41 + .../polymorphic_query_result_type.html | 51 + .../tracked.html | 41 + .../untracked.html | 41 + ...cution__outstanding_work_t__tracked_t.html | 198 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../polymorphic_query_result_type.html | 51 + .../tracked_t.html | 41 + .../value.html | 49 + ...tion__outstanding_work_t__untracked_t.html | 198 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../polymorphic_query_result_type.html | 51 + .../untracked_t.html | 41 + .../value.html | 49 + .../reference/execution__prefer_only.html | 152 + .../is_applicable_property_v.html | 43 + .../execution__prefer_only/is_preferable.html | 46 + .../execution__prefer_only/is_requirable.html | 42 + .../polymorphic_query_result_type.html | 51 + .../execution__receiver_invocation_error.html | 88 + .../receiver_invocation_error.html | 40 + .../reference/execution__relationship.html | 52 + .../reference/execution__relationship_t.html | 285 + .../continuation.html | 41 + .../execution__relationship_t/fork.html | 41 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 42 + .../is_requirable.html | 42 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../polymorphic_query_result_type.html | 51 + .../relationship_t.html | 53 + .../relationship_t/overload1.html | 40 + .../relationship_t/overload2.html | 41 + .../relationship_t/overload3.html | 41 + ...ution__relationship_t__continuation_t.html | 198 + .../continuation_t.html | 41 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 42 + .../is_requirable.html | 42 + .../polymorphic_query_result_type.html | 51 + .../value.html | 49 + .../execution__relationship_t__fork_t.html | 198 + .../fork_t.html | 41 + .../is_applicable_property_v.html | 44 + .../is_preferable.html | 41 + .../is_requirable.html | 41 + .../polymorphic_query_result_type.html | 51 + .../value.html | 49 + .../asio/reference/execution__schedule.html | 79 + .../reference/execution__sender_base.html | 52 + .../reference/execution__sender_traits.html | 54 + .../asio/reference/execution__set_done.html | 79 + .../asio/reference/execution__set_error.html | 80 + .../asio/reference/execution__set_value.html | 80 + .../doc/asio/reference/execution__start.html | 75 + .../doc/asio/reference/execution__submit.html | 117 + .../doc/asio/reference/execution_context.html | 390 + .../execution_context/_execution_context.html | 40 + .../execution_context/add_service.html | 105 + .../reference/execution_context/destroy.html | 50 + .../execution_context/execution_context.html | 40 + .../execution_context/fork_event.html | 67 + .../execution_context/has_service.html | 82 + .../execution_context/make_service.html | 91 + .../execution_context/notify_fork.html | 115 + .../reference/execution_context/shutdown.html | 50 + .../execution_context/use_service.html | 51 + .../use_service/overload1.html | 82 + .../use_service/overload2.html | 90 + .../asio/reference/execution_context__id.html | 87 + .../reference/execution_context__id/id.html | 40 + .../reference/execution_context__service.html | 187 + .../execution_context__service/_service.html | 40 + .../execution_context__service/context.html | 41 + .../notify_fork.html | 46 + .../execution_context__service/service.html | 55 + .../execution_context__service/shutdown.html | 41 + 3party/asio/doc/asio/reference/executor.html | 331 + .../asio/reference/executor/_executor.html | 40 + .../doc/asio/reference/executor/context.html | 41 + .../doc/asio/reference/executor/defer.html | 75 + .../doc/asio/reference/executor/dispatch.html | 75 + .../doc/asio/reference/executor/executor.html | 84 + .../executor/executor/overload1.html | 40 + .../executor/executor/overload2.html | 41 + .../executor/executor/overload3.html | 41 + .../executor/executor/overload4.html | 41 + .../executor/executor/overload5.html | 43 + .../executor/executor/overload6.html | 47 + .../reference/executor/on_work_finished.html | 41 + .../reference/executor/on_work_started.html | 41 + .../asio/reference/executor/operator_eq_.html | 64 + .../executor/operator_eq_/overload1.html | 41 + .../executor/operator_eq_/overload2.html | 38 + .../executor/operator_eq_/overload3.html | 41 + .../executor/operator_eq_/overload4.html | 44 + .../reference/executor/operator_eq__eq_.html | 53 + .../reference/executor/operator_not__eq_.html | 53 + .../operator_unspecified_bool_type.html | 42 + .../doc/asio/reference/executor/post.html | 75 + .../doc/asio/reference/executor/target.html | 49 + .../reference/executor/target/overload1.html | 52 + .../reference/executor/target/overload2.html | 52 + .../asio/reference/executor/target_type.html | 52 + .../executor/unspecified_bool_true.html | 40 + .../executor/unspecified_bool_type.html | 49 + .../executor__unspecified_bool_type_t.html | 49 + .../asio/doc/asio/reference/executor_arg.html | 58 + .../doc/asio/reference/executor_arg_t.html | 96 + .../executor_arg_t/executor_arg_t.html | 40 + .../doc/asio/reference/executor_binder.html | 243 + .../executor_binder/_executor_binder.html | 40 + .../executor_binder/argument_type.html | 73 + .../executor_binder/executor_binder.html | 125 + .../executor_binder/overload1.html | 49 + .../executor_binder/overload2.html | 41 + .../executor_binder/overload3.html | 43 + .../executor_binder/overload4.html | 50 + .../executor_binder/overload5.html | 51 + .../executor_binder/overload6.html | 41 + .../executor_binder/overload7.html | 43 + .../executor_binder/overload8.html | 44 + .../executor_binder/overload9.html | 47 + .../executor_binder/executor_type.html | 51 + .../executor_binder/first_argument_type.html | 73 + .../asio/reference/executor_binder/get.html | 45 + .../executor_binder/get/overload1.html | 40 + .../executor_binder/get/overload2.html | 40 + .../executor_binder/get_executor.html | 41 + .../executor_binder/operator_lp__rp_.html | 49 + .../operator_lp__rp_/overload1.html | 40 + .../operator_lp__rp_/overload2.html | 40 + .../executor_binder/result_type.html | 73 + .../executor_binder/second_argument_type.html | 73 + .../executor_binder/target_type.html | 51 + .../asio/reference/executor_work_guard.html | 175 + .../_executor_work_guard.html | 44 + .../executor_work_guard/executor_type.html | 51 + .../executor_work_guard.html | 58 + .../executor_work_guard/overload1.html | 46 + .../executor_work_guard/overload2.html | 41 + .../executor_work_guard/overload3.html | 41 + .../executor_work_guard/get_executor.html | 41 + .../executor_work_guard/owns_work.html | 42 + .../reference/executor_work_guard/reset.html | 45 + .../reference/experimental__as_single.html | 57 + .../reference/experimental__as_single_t.html | 195 + .../as_default_on.html | 45 + .../as_single_t.html | 53 + .../as_single_t/overload1.html | 48 + .../as_single_t/overload2.html | 43 + .../experimental__as_single_t/token_.html | 39 + ..._as_single_t__default_constructor_tag.html | 53 + ...l__as_single_t__executor_with_default.html | 126 + .../default_completion_token_type.html | 192 + .../executor_with_default.html | 54 + .../executor_with_default/overload1.html | 41 + .../executor_with_default/overload2.html | 45 + ...itable_operators__operator__amp__amp_.html | 100 + .../overload1.html | 48 + .../overload2.html | 49 + .../overload3.html | 49 + .../overload4.html | 50 + .../overload5.html | 49 + .../overload6.html | 50 + ...table_operators__operator_pipe__pipe_.html | 99 + .../overload1.html | 48 + .../overload2.html | 49 + .../overload3.html | 49 + .../overload4.html | 50 + .../overload5.html | 49 + .../overload6.html | 50 + .../experimental__basic_channel.html | 395 + .../_basic_channel.html | 40 + .../async_receive.html | 52 + .../async_send.html | 53 + .../basic_channel.html | 69 + .../basic_channel/overload1.html | 63 + .../basic_channel/overload2.html | 67 + .../basic_channel/overload3.html | 67 + .../basic_channel/overload4.html | 70 + .../experimental__basic_channel/cancel.html | 45 + .../experimental__basic_channel/capacity.html | 41 + .../experimental__basic_channel/close.html | 41 + .../executor_type.html | 51 + .../get_executor.html | 41 + .../experimental__basic_channel/is_open.html | 41 + .../operator_eq_.html | 49 + .../operator_eq_/overload1.html | 69 + .../operator_eq_/overload2.html | 71 + .../experimental__basic_channel/ready.html | 41 + .../experimental__basic_channel/reset.html | 41 + .../traits_type.html | 51 + .../try_receive.html | 55 + .../experimental__basic_channel/try_send.html | 55 + .../try_send_n.html | 53 + ...ental__basic_channel__rebind_executor.html | 88 + .../other.html | 391 + ...xperimental__basic_concurrent_channel.html | 396 + .../_basic_concurrent_channel.html | 40 + .../async_receive.html | 44 + .../async_send.html | 46 + .../basic_concurrent_channel.html | 70 + .../basic_concurrent_channel/overload1.html | 63 + .../basic_concurrent_channel/overload2.html | 67 + .../basic_concurrent_channel/overload3.html | 68 + .../basic_concurrent_channel/overload4.html | 71 + .../cancel.html | 45 + .../capacity.html | 41 + .../close.html | 41 + .../executor_type.html | 51 + .../get_executor.html | 41 + .../is_open.html | 41 + .../operator_eq_.html | 50 + .../operator_eq_/overload1.html | 70 + .../operator_eq_/overload2.html | 72 + .../ready.html | 41 + .../reset.html | 41 + .../traits_type.html | 51 + .../try_receive.html | 55 + .../try_send.html | 55 + .../try_send_n.html | 53 + ...c_concurrent_channel__rebind_executor.html | 88 + .../other.html | 392 + .../experimental__channel_traits.html | 172 + .../invoke_receive_cancelled.html | 44 + .../invoke_receive_closed.html | 44 + .../receive_cancelled_signature.html | 51 + .../receive_closed_signature.html | 51 + ...perimental__channel_traits__container.html | 89 + .../type.html | 49 + .../experimental__channel_traits__rebind.html | 89 + .../other.html | 49 + .../reference/experimental__co_composed.html | 190 + .../reference/experimental__co_spawn.html | 101 + .../experimental__co_spawn/overload1.html | 75 + .../experimental__co_spawn/overload2.html | 75 + .../experimental__co_spawn/overload3.html | 75 + .../experimental__co_spawn/overload4.html | 74 + .../experimental__co_spawn/overload5.html | 74 + .../experimental__co_spawn/overload6.html | 74 + .../asio/reference/experimental__coro.html | 244 + .../reference/experimental__coro/_coro.html | 50 + .../experimental__coro/async_resume.html | 53 + .../async_resume/overload1.html | 70 + .../async_resume/overload2.html | 72 + .../reference/experimental__coro/coro.html | 55 + .../experimental__coro/coro/overload1.html | 40 + .../experimental__coro/coro/overload2.html | 41 + .../experimental__coro/coro/overload3.html | 38 + .../experimental__coro/get_allocator.html | 41 + .../experimental__coro/get_executor.html | 41 + .../experimental__coro/is_noexcept.html | 41 + .../reference/experimental__coro/is_open.html | 41 + .../experimental__coro/operator_bool.html | 42 + .../experimental__coro/operator_co_await.html | 42 + .../experimental__coro/operator_eq_.html | 47 + .../operator_eq_/overload1.html | 41 + .../operator_eq_/overload2.html | 38 + .../experimental__coro/operator_lp__rp_.html | 70 + .../reference/experimental__coro_traits.html | 96 + .../is_noexcept.html | 41 + ...experimental__error__channel_category.html | 49 + .../experimental__error__channel_errors.html | 70 + ...rimental__error__get_channel_category.html | 49 + .../experimental__error__make_error_code.html | 50 + ...xperimental__is_async_operation_range.html | 91 + .../value.html | 42 + .../reference/experimental__is_promise.html | 51 + ..._lt__promise_lt__Ts_ellipsis__gt__gt_.html | 52 + .../reference/experimental__is_promise_v.html | 49 + .../experimental__make_parallel_group.html | 73 + .../overload1.html | 79 + .../overload2.html | 100 + .../overload3.html | 111 + .../experimental__parallel_group.html | 141 + .../async_wait.html | 92 + .../parallel_group.html | 41 + .../signature.html | 94 + .../asio/reference/experimental__promise.html | 169 + .../experimental__promise/_promise.html | 44 + .../experimental__promise/cancel.html | 42 + .../experimental__promise/completed.html | 41 + .../operator_lp__rp_.html | 44 + .../experimental__promise/promise.html | 48 + .../promise/overload1.html | 37 + .../promise/overload2.html | 38 + .../promise/overload3.html | 38 + .../experimental__promise_value_type.html | 51 + ...mental__promise_value_type_lt__T__gt_.html | 52 + ...erimental__promise_value_type_lt__gt_.html | 50 + .../experimental__ranged_parallel_group.html | 142 + .../async_wait.html | 92 + .../ranged_parallel_group.html | 42 + .../signature.html | 51 + .../reference/experimental__use_coro.html | 56 + .../reference/experimental__use_coro_t.html | 203 + .../allocator_type.html | 52 + .../as_default_on.html | 45 + .../get_allocator.html | 41 + .../experimental__use_coro_t/rebind.html | 44 + .../experimental__use_coro_t/use_coro_t.html | 51 + .../use_coro_t/overload1.html | 40 + .../use_coro_t/overload2.html | 43 + ...al__use_coro_t__executor_with_default.html | 124 + .../default_completion_token_type.html | 200 + .../executor_with_default.html | 45 + .../reference/experimental__use_promise.html | 49 + .../experimental__use_promise_t.html | 176 + .../allocator_type.html | 52 + .../as_default_on.html | 45 + .../get_allocator.html | 41 + .../experimental__use_promise_t/rebind.html | 44 + .../use_promise_t.html | 49 + .../use_promise_t/overload1.html | 40 + .../use_promise_t/overload2.html | 41 + ..._use_promise_t__executor_with_default.html | 126 + .../default_completion_token_type.html | 177 + .../executor_with_default.html | 54 + .../executor_with_default/overload1.html | 41 + .../executor_with_default/overload2.html | 45 + .../reference/experimental__wait_for_all.html | 84 + .../operator_lp__rp_.html | 42 + .../reference/experimental__wait_for_one.html | 95 + .../operator_lp__rp_.html | 42 + .../wait_for_one.html | 40 + .../experimental__wait_for_one_error.html | 98 + .../operator_lp__rp_.html | 56 + .../operator_lp__rp_/overload1.html | 37 + .../operator_lp__rp_/overload2.html | 42 + .../operator_lp__rp_/overload3.html | 42 + .../wait_for_one_error.html | 40 + .../experimental__wait_for_one_success.html | 98 + .../operator_lp__rp_.html | 56 + .../operator_lp__rp_/overload1.html | 37 + .../operator_lp__rp_/overload2.html | 42 + .../operator_lp__rp_/overload3.html | 42 + .../wait_for_one_success.html | 40 + 3party/asio/doc/asio/reference/file_base.html | 267 + .../asio/reference/file_base/_file_base.html | 41 + .../doc/asio/reference/file_base/append.html | 40 + .../doc/asio/reference/file_base/create.html | 41 + .../asio/reference/file_base/exclusive.html | 41 + .../doc/asio/reference/file_base/flags.html | 50 + .../asio/reference/file_base/read_only.html | 40 + .../asio/reference/file_base/read_write.html | 41 + .../asio/reference/file_base/seek_basis.html | 67 + .../file_base/sync_all_on_write.html | 42 + .../asio/reference/file_base/truncate.html | 41 + .../asio/reference/file_base/write_only.html | 41 + .../reference/generic__basic_endpoint.html | 332 + .../basic_endpoint.html | 67 + .../basic_endpoint/overload1.html | 40 + .../basic_endpoint/overload2.html | 43 + .../basic_endpoint/overload3.html | 43 + .../basic_endpoint/overload4.html | 41 + .../generic__basic_endpoint/capacity.html | 41 + .../generic__basic_endpoint/data.html | 45 + .../data/overload1.html | 40 + .../data/overload2.html | 40 + .../generic__basic_endpoint/data_type.html | 52 + .../generic__basic_endpoint/operator_eq_.html | 42 + .../operator_eq__eq_.html | 53 + .../generic__basic_endpoint/operator_gt_.html | 53 + .../operator_gt__eq_.html | 53 + .../generic__basic_endpoint/operator_lt_.html | 53 + .../operator_lt__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../generic__basic_endpoint/protocol.html | 41 + .../protocol_type.html | 51 + .../generic__basic_endpoint/resize.html | 42 + .../generic__basic_endpoint/size.html | 41 + .../reference/generic__datagram_protocol.html | 252 + .../datagram_protocol.html | 53 + .../datagram_protocol/overload1.html | 42 + .../datagram_protocol/overload2.html | 56 + .../generic__datagram_protocol/endpoint.html | 329 + .../generic__datagram_protocol/family.html | 41 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../generic__datagram_protocol/protocol.html | 41 + .../generic__datagram_protocol/socket.html | 925 ++ .../generic__datagram_protocol/type.html | 41 + .../asio/reference/generic__raw_protocol.html | 252 + .../generic__raw_protocol/endpoint.html | 329 + .../generic__raw_protocol/family.html | 41 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../generic__raw_protocol/protocol.html | 41 + .../generic__raw_protocol/raw_protocol.html | 53 + .../raw_protocol/overload1.html | 42 + .../raw_protocol/overload2.html | 56 + .../generic__raw_protocol/socket.html | 924 ++ .../reference/generic__raw_protocol/type.html | 41 + .../generic__seq_packet_protocol.html | 248 + .../endpoint.html | 329 + .../generic__seq_packet_protocol/family.html | 41 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../protocol.html | 41 + .../seq_packet_protocol.html | 53 + .../seq_packet_protocol/overload1.html | 42 + .../seq_packet_protocol/overload2.html | 57 + .../generic__seq_packet_protocol/socket.html | 878 ++ .../generic__seq_packet_protocol/type.html | 41 + .../reference/generic__stream_protocol.html | 263 + .../generic__stream_protocol/endpoint.html | 329 + .../generic__stream_protocol/family.html | 41 + .../generic__stream_protocol/iostream.html | 325 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../generic__stream_protocol/protocol.html | 41 + .../generic__stream_protocol/socket.html | 927 ++ .../stream_protocol.html | 53 + .../stream_protocol/overload1.html | 42 + .../stream_protocol/overload2.html | 56 + .../generic__stream_protocol/type.html | 41 + .../reference/get_associated_allocator.html | 64 + .../get_associated_allocator/overload1.html | 51 + .../get_associated_allocator/overload2.html | 54 + .../get_associated_cancellation_slot.html | 64 + .../overload1.html | 51 + .../overload2.html | 54 + .../reference/get_associated_executor.html | 74 + .../get_associated_executor/overload1.html | 51 + .../get_associated_executor/overload2.html | 55 + .../get_associated_executor/overload3.html | 55 + .../get_associated_immediate_executor.html | 68 + .../overload1.html | 55 + .../overload2.html | 54 + .../asio/reference/high_resolution_timer.html | 448 + .../reference/immediate_executor_binder.html | 244 + .../_immediate_executor_binder.html | 40 + .../argument_type.html | 73 + .../first_argument_type.html | 73 + .../immediate_executor_binder/get.html | 45 + .../get/overload1.html | 40 + .../get/overload2.html | 40 + .../get_immediate_executor.html | 41 + .../immediate_executor_binder.html | 120 + .../immediate_executor_binder/overload1.html | 48 + .../immediate_executor_binder/overload2.html | 41 + .../immediate_executor_binder/overload3.html | 42 + .../immediate_executor_binder/overload4.html | 50 + .../immediate_executor_binder/overload5.html | 50 + .../immediate_executor_binder/overload6.html | 41 + .../immediate_executor_binder/overload7.html | 42 + .../immediate_executor_binder/overload8.html | 44 + .../immediate_executor_binder/overload9.html | 46 + .../immediate_executor_type.html | 51 + .../operator_lp__rp_.html | 49 + .../operator_lp__rp_/overload1.html | 40 + .../operator_lp__rp_/overload2.html | 40 + .../result_type.html | 73 + .../second_argument_type.html | 73 + .../target_type.html | 51 + .../asio/reference/invalid_service_owner.html | 84 + .../invalid_service_owner.html | 39 + .../asio/doc/asio/reference/io_context.html | 729 ++ .../reference/io_context/_io_context.html | 89 + .../reference/io_context/add_service.html | 108 + .../asio/reference/io_context/count_type.html | 51 + .../asio/reference/io_context/destroy.html | 53 + .../asio/reference/io_context/dispatch.html | 97 + .../reference/io_context/executor_type.html | 304 + .../asio/reference/io_context/fork_event.html | 70 + .../reference/io_context/get_executor.html | 41 + .../reference/io_context/has_service.html | 84 + .../asio/reference/io_context/io_context.html | 45 + .../io_context/io_context/overload1.html | 40 + .../io_context/io_context/overload2.html | 58 + .../reference/io_context/make_service.html | 94 + .../reference/io_context/notify_fork.html | 117 + .../doc/asio/reference/io_context/poll.html | 50 + .../reference/io_context/poll/overload1.html | 55 + .../reference/io_context/poll/overload2.html | 69 + .../asio/reference/io_context/poll_one.html | 50 + .../io_context/poll_one/overload1.html | 53 + .../io_context/poll_one/overload2.html | 67 + .../doc/asio/reference/io_context/post.html | 96 + .../doc/asio/reference/io_context/reset.html | 61 + .../asio/reference/io_context/restart.html | 61 + .../doc/asio/reference/io_context/run.html | 50 + .../reference/io_context/run/overload1.html | 87 + .../reference/io_context/run/overload2.html | 101 + .../asio/reference/io_context/run_for.html | 72 + .../asio/reference/io_context/run_one.html | 50 + .../io_context/run_one/overload1.html | 75 + .../io_context/run_one/overload2.html | 79 + .../reference/io_context/run_one_for.html | 71 + .../reference/io_context/run_one_until.html | 72 + .../asio/reference/io_context/run_until.html | 72 + .../asio/reference/io_context/shutdown.html | 53 + .../doc/asio/reference/io_context/stop.html | 52 + .../asio/reference/io_context/stopped.html | 58 + .../reference/io_context/use_service.html | 52 + .../io_context/use_service/overload1.html | 50 + .../io_context/use_service/overload2.html | 85 + .../doc/asio/reference/io_context/wrap.html | 94 + .../io_context__basic_executor_type.html | 308 + .../_basic_executor_type.html | 40 + .../basic_executor_type.html | 50 + .../basic_executor_type/overload1.html | 41 + .../basic_executor_type/overload2.html | 41 + .../context.html | 41 + .../defer.html | 80 + .../dispatch.html | 76 + .../execute.html | 44 + .../on_work_finished.html | 49 + .../on_work_started.html | 47 + .../operator_eq_.html | 50 + .../operator_eq_/overload1.html | 41 + .../operator_eq_/overload2.html | 41 + .../operator_eq__eq_.html | 56 + .../operator_not__eq_.html | 56 + .../io_context__basic_executor_type/post.html | 76 + .../query.html | 74 + .../query/overload1.html | 54 + .../query/overload2.html | 55 + .../query/overload3.html | 55 + .../query/overload4.html | 56 + .../query/overload5.html | 54 + .../query__static.html | 52 + .../query__static/overload1.html | 55 + .../query__static/overload2.html | 55 + .../require.html | 102 + .../require/overload1.html | 54 + .../require/overload2.html | 54 + .../require/overload3.html | 54 + .../require/overload4.html | 54 + .../require/overload5.html | 54 + .../require/overload6.html | 54 + .../require/overload7.html | 56 + .../require/overload8.html | 54 + .../running_in_this_thread.html | 52 + .../asio/reference/io_context__service.html | 136 + .../io_context__service/_service.html | 40 + .../io_context__service/get_io_context.html | 42 + .../io_context__service/service.html | 55 + .../asio/reference/io_context__strand.html | 348 + .../reference/io_context__strand/_strand.html | 47 + .../reference/io_context__strand/context.html | 41 + .../reference/io_context__strand/defer.html | 75 + .../io_context__strand/dispatch.html | 57 + .../dispatch/overload1.html | 76 + .../dispatch/overload2.html | 80 + .../io_context__strand/on_work_finished.html | 44 + .../io_context__strand/on_work_started.html | 44 + .../io_context__strand/operator_eq__eq_.html | 57 + .../io_context__strand/operator_not__eq_.html | 57 + .../reference/io_context__strand/post.html | 57 + .../io_context__strand/post/overload1.html | 74 + .../io_context__strand/post/overload2.html | 75 + .../running_in_this_thread.html | 53 + .../reference/io_context__strand/strand.html | 59 + .../reference/io_context__strand/wrap.html | 94 + .../doc/asio/reference/io_context__work.html | 126 + .../reference/io_context__work/_work.html | 47 + .../io_context__work/get_io_context.html | 42 + .../asio/reference/io_context__work/work.html | 51 + .../io_context__work/work/overload1.html | 46 + .../io_context__work/work/overload2.html | 46 + .../asio/doc/asio/reference/io_service.html | 728 ++ .../asio/doc/asio/reference/ip__address.html | 377 + .../asio/reference/ip__address/address.html | 62 + .../ip__address/address/overload1.html | 40 + .../ip__address/address/overload2.html | 41 + .../ip__address/address/overload3.html | 41 + .../ip__address/address/overload4.html | 41 + .../reference/ip__address/from_string.html | 59 + .../ip__address/from_string/overload1.html | 43 + .../ip__address/from_string/overload2.html | 44 + .../ip__address/from_string/overload3.html | 43 + .../ip__address/from_string/overload4.html | 44 + .../reference/ip__address/is_loopback.html | 41 + .../reference/ip__address/is_multicast.html | 41 + .../reference/ip__address/is_unspecified.html | 41 + .../doc/asio/reference/ip__address/is_v4.html | 41 + .../doc/asio/reference/ip__address/is_v6.html | 41 + .../reference/ip__address/make_address.html | 67 + .../ip__address/make_address/overload1.html | 42 + .../ip__address/make_address/overload2.html | 43 + .../ip__address/make_address/overload3.html | 42 + .../ip__address/make_address/overload4.html | 43 + .../ip__address/make_address/overload5.html | 42 + .../ip__address/make_address/overload6.html | 43 + .../reference/ip__address/operator_eq_.html | 57 + .../ip__address/operator_eq_/overload1.html | 41 + .../ip__address/operator_eq_/overload2.html | 41 + .../ip__address/operator_eq_/overload3.html | 41 + .../ip__address/operator_eq__eq_.html | 53 + .../reference/ip__address/operator_gt_.html | 53 + .../ip__address/operator_gt__eq_.html | 53 + .../reference/ip__address/operator_lt_.html | 53 + .../ip__address/operator_lt__eq_.html | 53 + .../ip__address/operator_lt__lt_.html | 74 + .../ip__address/operator_not__eq_.html | 53 + .../asio/reference/ip__address/to_string.html | 49 + .../ip__address/to_string/overload1.html | 40 + .../ip__address/to_string/overload2.html | 41 + .../doc/asio/reference/ip__address/to_v4.html | 41 + .../doc/asio/reference/ip__address/to_v6.html | 41 + .../doc/asio/reference/ip__address_v4.html | 531 ++ .../reference/ip__address_v4/address_v4.html | 63 + .../ip__address_v4/address_v4/overload1.html | 50 + .../ip__address_v4/address_v4/overload2.html | 60 + .../ip__address_v4/address_v4/overload3.html | 45 + .../ip__address_v4/address_v4/overload4.html | 41 + .../asio/reference/ip__address_v4/any.html | 54 + .../reference/ip__address_v4/broadcast.html | 52 + .../ip__address_v4/broadcast/overload1.html | 52 + .../ip__address_v4/broadcast/overload2.html | 44 + .../reference/ip__address_v4/bytes_type.html | 59 + .../reference/ip__address_v4/from_string.html | 58 + .../ip__address_v4/from_string/overload1.html | 42 + .../ip__address_v4/from_string/overload2.html | 43 + .../ip__address_v4/from_string/overload3.html | 42 + .../ip__address_v4/from_string/overload4.html | 43 + .../reference/ip__address_v4/is_class_a.html | 42 + .../reference/ip__address_v4/is_class_b.html | 42 + .../reference/ip__address_v4/is_class_c.html | 42 + .../reference/ip__address_v4/is_loopback.html | 54 + .../ip__address_v4/is_multicast.html | 55 + .../ip__address_v4/is_unspecified.html | 53 + .../reference/ip__address_v4/loopback.html | 52 + .../ip__address_v4/make_address_v4.html | 88 + .../make_address_v4/overload1.html | 41 + .../make_address_v4/overload2.html | 41 + .../make_address_v4/overload3.html | 41 + .../make_address_v4/overload4.html | 42 + .../make_address_v4/overload5.html | 41 + .../make_address_v4/overload6.html | 42 + .../make_address_v4/overload7.html | 41 + .../make_address_v4/overload8.html | 42 + .../make_address_v4/overload9.html | 42 + .../ip__address_v4/make_network_v4.html | 52 + .../make_network_v4/overload1.html | 42 + .../make_network_v4/overload2.html | 42 + .../reference/ip__address_v4/netmask.html | 44 + .../ip__address_v4/operator_eq_.html | 42 + .../ip__address_v4/operator_eq__eq_.html | 53 + .../ip__address_v4/operator_gt_.html | 64 + .../ip__address_v4/operator_gt__eq_.html | 64 + .../ip__address_v4/operator_lt_.html | 64 + .../ip__address_v4/operator_lt__eq_.html | 64 + .../ip__address_v4/operator_lt__lt_.html | 58 + .../operator_lt__lt_/overload1.html | 73 + .../operator_lt__lt_/overload2.html | 73 + .../ip__address_v4/operator_not__eq_.html | 53 + .../reference/ip__address_v4/to_bytes.html | 41 + .../reference/ip__address_v4/to_string.html | 50 + .../ip__address_v4/to_string/overload1.html | 40 + .../ip__address_v4/to_string/overload2.html | 42 + .../reference/ip__address_v4/to_uint.html | 41 + .../reference/ip__address_v4/to_ulong.html | 42 + .../reference/ip__address_v4/uint_type.html | 51 + .../reference/ip__address_v4_iterator.html | 296 + .../asio/reference/ip__address_v4_range.html | 206 + .../doc/asio/reference/ip__address_v6.html | 578 ++ .../reference/ip__address_v6/address_v6.html | 57 + .../ip__address_v6/address_v6/overload1.html | 48 + .../ip__address_v6/address_v6/overload2.html | 65 + .../ip__address_v6/address_v6/overload3.html | 41 + .../asio/reference/ip__address_v6/any.html | 54 + .../reference/ip__address_v6/bytes_type.html | 59 + .../reference/ip__address_v6/from_string.html | 58 + .../ip__address_v6/from_string/overload1.html | 42 + .../ip__address_v6/from_string/overload2.html | 43 + .../ip__address_v6/from_string/overload3.html | 42 + .../ip__address_v6/from_string/overload4.html | 43 + .../ip__address_v6/is_link_local.html | 41 + .../reference/ip__address_v6/is_loopback.html | 44 + .../ip__address_v6/is_multicast.html | 41 + .../ip__address_v6/is_multicast_global.html | 41 + .../is_multicast_link_local.html | 41 + .../is_multicast_node_local.html | 41 + .../is_multicast_org_local.html | 41 + .../is_multicast_site_local.html | 41 + .../ip__address_v6/is_site_local.html | 41 + .../ip__address_v6/is_unspecified.html | 44 + .../ip__address_v6/is_v4_compatible.html | 41 + .../ip__address_v6/is_v4_mapped.html | 41 + .../reference/ip__address_v6/loopback.html | 45 + .../ip__address_v6/make_address_v6.html | 85 + .../make_address_v6/overload1.html | 42 + .../make_address_v6/overload2.html | 41 + .../make_address_v6/overload3.html | 42 + .../make_address_v6/overload4.html | 41 + .../make_address_v6/overload5.html | 42 + .../make_address_v6/overload6.html | 41 + .../make_address_v6/overload7.html | 42 + .../make_address_v6/overload8.html | 42 + .../ip__address_v6/make_network_v6.html | 43 + .../ip__address_v6/operator_eq_.html | 42 + .../ip__address_v6/operator_eq__eq_.html | 53 + .../ip__address_v6/operator_gt_.html | 53 + .../ip__address_v6/operator_gt__eq_.html | 53 + .../ip__address_v6/operator_lt_.html | 53 + .../ip__address_v6/operator_lt__eq_.html | 53 + .../ip__address_v6/operator_lt__lt_.html | 58 + .../operator_lt__lt_/overload1.html | 73 + .../operator_lt__lt_/overload2.html | 73 + .../ip__address_v6/operator_not__eq_.html | 53 + .../reference/ip__address_v6/scope_id.html | 46 + .../ip__address_v6/scope_id/overload1.html | 43 + .../ip__address_v6/scope_id/overload2.html | 57 + .../reference/ip__address_v6/to_bytes.html | 41 + .../reference/ip__address_v6/to_string.html | 49 + .../ip__address_v6/to_string/overload1.html | 40 + .../ip__address_v6/to_string/overload2.html | 41 + .../asio/reference/ip__address_v6/to_v4.html | 42 + .../ip__address_v6/v4_compatible.html | 42 + .../reference/ip__address_v6/v4_mapped.html | 43 + .../reference/ip__address_v6_iterator.html | 296 + .../asio/reference/ip__address_v6_range.html | 194 + .../asio/reference/ip__bad_address_cast.html | 112 + .../_bad_address_cast.html | 40 + .../bad_address_cast.html | 41 + .../reference/ip__bad_address_cast/what.html | 41 + ..._address_iterator_lt__address_v4__gt_.html | 299 + .../basic_address_iterator.html | 50 + .../basic_address_iterator/overload1.html | 41 + .../basic_address_iterator/overload2.html | 41 + .../difference_type.html | 51 + .../iterator_category.html | 51 + .../operator__star_.html | 41 + .../operator_arrow_.html | 41 + .../operator_eq_.html | 42 + .../operator_eq__eq_.html | 53 + .../operator_minus__minus_.html | 49 + .../operator_minus__minus_/overload1.html | 40 + .../operator_minus__minus_/overload2.html | 41 + .../operator_not__eq_.html | 53 + .../operator_plus__plus_.html | 49 + .../operator_plus__plus_/overload1.html | 40 + .../operator_plus__plus_/overload2.html | 41 + .../pointer.html | 51 + .../reference.html | 532 ++ .../value_type.html | 531 ++ ..._address_iterator_lt__address_v6__gt_.html | 299 + .../basic_address_iterator.html | 50 + .../basic_address_iterator/overload1.html | 41 + .../basic_address_iterator/overload2.html | 41 + .../difference_type.html | 51 + .../iterator_category.html | 51 + .../operator__star_.html | 41 + .../operator_arrow_.html | 41 + .../operator_eq_.html | 42 + .../operator_eq__eq_.html | 53 + .../operator_minus__minus_.html | 49 + .../operator_minus__minus_/overload1.html | 40 + .../operator_minus__minus_/overload2.html | 41 + .../operator_not__eq_.html | 53 + .../operator_plus__plus_.html | 49 + .../operator_plus__plus_/overload1.html | 40 + .../operator_plus__plus_/overload2.html | 41 + .../pointer.html | 51 + .../reference.html | 579 ++ .../value_type.html | 578 ++ ...sic_address_range_lt__address_v4__gt_.html | 209 + .../basic_address_range.html | 57 + .../basic_address_range/overload1.html | 40 + .../basic_address_range/overload2.html | 42 + .../basic_address_range/overload3.html | 41 + .../begin.html | 41 + .../empty.html | 41 + .../end.html | 41 + .../find.html | 42 + .../iterator.html | 296 + .../operator_eq_.html | 42 + .../size.html | 41 + ...sic_address_range_lt__address_v6__gt_.html | 197 + .../basic_address_range.html | 57 + .../basic_address_range/overload1.html | 40 + .../basic_address_range/overload2.html | 42 + .../basic_address_range/overload3.html | 41 + .../begin.html | 41 + .../empty.html | 41 + .../end.html | 41 + .../find.html | 42 + .../iterator.html | 296 + .../operator_eq_.html | 42 + .../asio/reference/ip__basic_endpoint.html | 395 + .../reference/ip__basic_endpoint/address.html | 49 + .../ip__basic_endpoint/address/overload1.html | 40 + .../ip__basic_endpoint/address/overload2.html | 41 + .../ip__basic_endpoint/basic_endpoint.html | 76 + .../basic_endpoint/overload1.html | 40 + .../basic_endpoint/overload2.html | 58 + .../basic_endpoint/overload3.html | 44 + .../basic_endpoint/overload4.html | 41 + .../basic_endpoint/overload5.html | 41 + .../ip__basic_endpoint/capacity.html | 41 + .../reference/ip__basic_endpoint/data.html | 45 + .../ip__basic_endpoint/data/overload1.html | 40 + .../ip__basic_endpoint/data/overload2.html | 40 + .../ip__basic_endpoint/data_type.html | 52 + .../ip__basic_endpoint/operator_eq_.html | 50 + .../operator_eq_/overload1.html | 41 + .../operator_eq_/overload2.html | 41 + .../ip__basic_endpoint/operator_eq__eq_.html | 53 + .../ip__basic_endpoint/operator_gt_.html | 53 + .../ip__basic_endpoint/operator_gt__eq_.html | 53 + .../ip__basic_endpoint/operator_lt_.html | 53 + .../ip__basic_endpoint/operator_lt__eq_.html | 53 + .../ip__basic_endpoint/operator_lt__lt_.html | 71 + .../ip__basic_endpoint/operator_not__eq_.html | 53 + .../reference/ip__basic_endpoint/port.html | 51 + .../ip__basic_endpoint/port/overload1.html | 41 + .../ip__basic_endpoint/port/overload2.html | 42 + .../ip__basic_endpoint/protocol.html | 41 + .../ip__basic_endpoint/protocol_type.html | 51 + .../reference/ip__basic_endpoint/resize.html | 42 + .../reference/ip__basic_endpoint/size.html | 41 + .../asio/reference/ip__basic_resolver.html | 424 + .../ip__basic_resolver/_basic_resolver.html | 45 + .../address_configured.html | 46 + .../ip__basic_resolver/all_matching.html | 44 + .../ip__basic_resolver/async_resolve.html | 96 + .../async_resolve/overload1.html | 96 + .../async_resolve/overload2.html | 123 + .../async_resolve/overload3.html | 132 + .../async_resolve/overload4.html | 130 + .../async_resolve/overload5.html | 138 + .../async_resolve/overload6.html | 96 + .../ip__basic_resolver/basic_resolver.html | 67 + .../basic_resolver/overload1.html | 58 + .../basic_resolver/overload2.html | 62 + .../basic_resolver/overload3.html | 67 + .../basic_resolver/overload4.html | 70 + .../reference/ip__basic_resolver/cancel.html | 46 + .../ip__basic_resolver/canonical_name.html | 44 + .../ip__basic_resolver/endpoint_type.html | 51 + .../ip__basic_resolver/executor_type.html | 51 + .../reference/ip__basic_resolver/flags.html | 54 + .../ip__basic_resolver/get_executor.html | 41 + .../ip__basic_resolver/iterator.html | 386 + .../ip__basic_resolver/numeric_host.html | 45 + .../ip__basic_resolver/numeric_service.html | 45 + .../ip__basic_resolver/operator_eq_.html | 50 + .../operator_eq_/overload1.html | 69 + .../operator_eq_/overload2.html | 71 + .../reference/ip__basic_resolver/passive.html | 44 + .../ip__basic_resolver/protocol_type.html | 51 + .../reference/ip__basic_resolver/query.html | 305 + .../reference/ip__basic_resolver/resolve.html | 116 + .../ip__basic_resolver/resolve/overload1.html | 80 + .../resolve/overload10.html | 116 + .../resolve/overload11.html | 80 + .../resolve/overload12.html | 73 + .../ip__basic_resolver/resolve/overload2.html | 73 + .../ip__basic_resolver/resolve/overload3.html | 109 + .../ip__basic_resolver/resolve/overload4.html | 102 + .../ip__basic_resolver/resolve/overload5.html | 117 + .../ip__basic_resolver/resolve/overload6.html | 110 + .../ip__basic_resolver/resolve/overload7.html | 115 + .../ip__basic_resolver/resolve/overload8.html | 108 + .../ip__basic_resolver/resolve/overload9.html | 123 + .../ip__basic_resolver/results_type.html | 564 ++ .../ip__basic_resolver/v4_mapped.html | 45 + .../ip__basic_resolver__rebind_executor.html | 88 + .../other.html | 419 + .../reference/ip__basic_resolver_entry.html | 202 + .../basic_resolver_entry.html | 51 + .../basic_resolver_entry/overload1.html | 40 + .../basic_resolver_entry/overload2.html | 43 + .../ip__basic_resolver_entry/endpoint.html | 41 + .../endpoint_type.html | 51 + .../ip__basic_resolver_entry/host_name.html | 48 + .../host_name/overload1.html | 40 + .../host_name/overload2.html | 43 + .../operator_endpoint_type.html | 42 + .../protocol_type.html | 51 + .../service_name.html | 48 + .../service_name/overload1.html | 40 + .../service_name/overload2.html | 43 + .../ip__basic_resolver_iterator.html | 388 + .../basic_resolver_iterator.html | 56 + .../basic_resolver_iterator/overload1.html | 40 + .../basic_resolver_iterator/overload2.html | 41 + .../basic_resolver_iterator/overload3.html | 41 + .../dereference.html | 39 + .../difference_type.html | 51 + .../ip__basic_resolver_iterator/equal.html | 40 + .../increment.html | 39 + .../ip__basic_resolver_iterator/index_.html | 39 + .../iterator_category.html | 51 + .../operator__star_.html | 42 + .../operator_arrow_.html | 41 + .../operator_eq_.html | 50 + .../operator_eq_/overload1.html | 41 + .../operator_eq_/overload2.html | 41 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../operator_plus__plus_.html | 49 + .../operator_plus__plus_/overload1.html | 40 + .../operator_plus__plus_/overload2.html | 41 + .../ip__basic_resolver_iterator/pointer.html | 51 + .../reference.html | 200 + .../value_type.html | 200 + .../ip__basic_resolver_iterator/values_.html | 39 + .../reference/ip__basic_resolver_query.html | 308 + .../address_configured.html | 46 + .../all_matching.html | 44 + .../basic_resolver_query.html | 72 + .../basic_resolver_query/overload1.html | 75 + .../basic_resolver_query/overload2.html | 81 + .../basic_resolver_query/overload3.html | 93 + .../basic_resolver_query/overload4.html | 99 + .../canonical_name.html | 44 + .../ip__basic_resolver_query/flags.html | 54 + .../ip__basic_resolver_query/hints.html | 41 + .../ip__basic_resolver_query/host_name.html | 41 + .../numeric_host.html | 45 + .../numeric_service.html | 45 + .../ip__basic_resolver_query/passive.html | 44 + .../protocol_type.html | 51 + .../service_name.html | 41 + .../ip__basic_resolver_query/v4_mapped.html | 45 + .../reference/ip__basic_resolver_results.html | 567 ++ .../basic_resolver_results.html | 56 + .../basic_resolver_results/overload1.html | 40 + .../basic_resolver_results/overload2.html | 41 + .../basic_resolver_results/overload3.html | 41 + .../ip__basic_resolver_results/begin.html | 41 + .../ip__basic_resolver_results/cbegin.html | 41 + .../ip__basic_resolver_results/cend.html | 41 + .../const_iterator.html | 386 + .../const_reference.html | 200 + .../dereference.html | 42 + .../difference_type.html | 51 + .../ip__basic_resolver_results/empty.html | 41 + .../ip__basic_resolver_results/end.html | 41 + .../endpoint_type.html | 51 + .../ip__basic_resolver_results/equal.html | 43 + .../ip__basic_resolver_results/increment.html | 42 + .../ip__basic_resolver_results/index_.html | 42 + .../ip__basic_resolver_results/iterator.html | 386 + .../iterator_category.html | 54 + .../ip__basic_resolver_results/max_size.html | 41 + .../operator__star_.html | 45 + .../operator_arrow_.html | 44 + .../operator_eq_.html | 50 + .../operator_eq_/overload1.html | 41 + .../operator_eq_/overload2.html | 41 + .../operator_eq__eq_.html | 49 + .../operator_eq__eq_/overload1.html | 52 + .../operator_eq__eq_/overload2.html | 55 + .../operator_not__eq_.html | 49 + .../operator_not__eq_/overload1.html | 52 + .../operator_not__eq_/overload2.html | 55 + .../operator_plus__plus_.html | 49 + .../operator_plus__plus_/overload1.html | 43 + .../operator_plus__plus_/overload2.html | 44 + .../ip__basic_resolver_results/pointer.html | 54 + .../protocol_type.html | 51 + .../ip__basic_resolver_results/reference.html | 200 + .../ip__basic_resolver_results/size.html | 41 + .../ip__basic_resolver_results/size_type.html | 51 + .../ip__basic_resolver_results/swap.html | 42 + .../value_type.html | 200 + .../ip__basic_resolver_results/values_.html | 42 + .../doc/asio/reference/ip__host_name.html | 57 + .../reference/ip__host_name/overload1.html | 40 + .../reference/ip__host_name/overload2.html | 41 + 3party/asio/doc/asio/reference/ip__icmp.html | 262 + .../doc/asio/reference/ip__icmp/endpoint.html | 391 + .../doc/asio/reference/ip__icmp/family.html | 41 + .../reference/ip__icmp/operator_eq__eq_.html | 53 + .../reference/ip__icmp/operator_not__eq_.html | 53 + .../doc/asio/reference/ip__icmp/protocol.html | 41 + .../doc/asio/reference/ip__icmp/resolver.html | 418 + .../doc/asio/reference/ip__icmp/socket.html | 923 ++ .../doc/asio/reference/ip__icmp/type.html | 41 + .../asio/doc/asio/reference/ip__icmp/v4.html | 41 + .../asio/doc/asio/reference/ip__icmp/v6.html | 41 + .../ip__multicast__enable_loopback.html | 77 + .../asio/reference/ip__multicast__hops.html | 76 + .../reference/ip__multicast__join_group.html | 69 + .../reference/ip__multicast__leave_group.html | 69 + .../ip__multicast__outbound_interface.html | 69 + .../doc/asio/reference/ip__network_v4.html | 327 + .../reference/ip__network_v4/address.html | 41 + .../reference/ip__network_v4/broadcast.html | 41 + .../reference/ip__network_v4/canonical.html | 41 + .../asio/reference/ip__network_v4/hosts.html | 41 + .../reference/ip__network_v4/is_host.html | 41 + .../ip__network_v4/is_subnet_of.html | 42 + .../ip__network_v4/make_network_v4.html | 66 + .../make_network_v4/overload1.html | 42 + .../make_network_v4/overload2.html | 43 + .../make_network_v4/overload3.html | 42 + .../make_network_v4/overload4.html | 43 + .../make_network_v4/overload5.html | 42 + .../make_network_v4/overload6.html | 43 + .../reference/ip__network_v4/netmask.html | 41 + .../reference/ip__network_v4/network.html | 41 + .../reference/ip__network_v4/network_v4.html | 65 + .../ip__network_v4/network_v4/overload1.html | 40 + .../ip__network_v4/network_v4/overload2.html | 42 + .../ip__network_v4/network_v4/overload3.html | 42 + .../ip__network_v4/network_v4/overload4.html | 41 + .../ip__network_v4/operator_eq_.html | 42 + .../ip__network_v4/operator_eq__eq_.html | 53 + .../ip__network_v4/operator_not__eq_.html | 53 + .../ip__network_v4/prefix_length.html | 41 + .../reference/ip__network_v4/to_string.html | 46 + .../ip__network_v4/to_string/overload1.html | 40 + .../ip__network_v4/to_string/overload2.html | 41 + .../doc/asio/reference/ip__network_v6.html | 299 + .../reference/ip__network_v6/address.html | 41 + .../reference/ip__network_v6/canonical.html | 41 + .../asio/reference/ip__network_v6/hosts.html | 41 + .../reference/ip__network_v6/is_host.html | 41 + .../ip__network_v6/is_subnet_of.html | 42 + .../ip__network_v6/make_network_v6.html | 66 + .../make_network_v6/overload1.html | 42 + .../make_network_v6/overload2.html | 43 + .../make_network_v6/overload3.html | 42 + .../make_network_v6/overload4.html | 43 + .../make_network_v6/overload5.html | 42 + .../make_network_v6/overload6.html | 43 + .../reference/ip__network_v6/network.html | 41 + .../reference/ip__network_v6/network_v6.html | 57 + .../ip__network_v6/network_v6/overload1.html | 40 + .../ip__network_v6/network_v6/overload2.html | 42 + .../ip__network_v6/network_v6/overload3.html | 41 + .../ip__network_v6/operator_eq_.html | 42 + .../ip__network_v6/operator_eq__eq_.html | 53 + .../ip__network_v6/operator_not__eq_.html | 53 + .../ip__network_v6/prefix_length.html | 41 + .../reference/ip__network_v6/to_string.html | 46 + .../ip__network_v6/to_string/overload1.html | 40 + .../ip__network_v6/to_string/overload2.html | 41 + .../doc/asio/reference/ip__port_type.html | 52 + .../doc/asio/reference/ip__resolver_base.html | 238 + .../ip__resolver_base/_resolver_base.html | 41 + .../ip__resolver_base/address_configured.html | 43 + .../ip__resolver_base/all_matching.html | 41 + .../ip__resolver_base/canonical_name.html | 41 + .../reference/ip__resolver_base/flags.html | 51 + .../ip__resolver_base/numeric_host.html | 42 + .../ip__resolver_base/numeric_service.html | 42 + .../reference/ip__resolver_base/passive.html | 41 + .../ip__resolver_base/v4_mapped.html | 42 + .../reference/ip__resolver_query_base.html | 239 + .../_resolver_query_base.html | 41 + .../address_configured.html | 46 + .../ip__resolver_query_base/all_matching.html | 44 + .../canonical_name.html | 44 + .../ip__resolver_query_base/flags.html | 54 + .../ip__resolver_query_base/numeric_host.html | 45 + .../numeric_service.html | 45 + .../ip__resolver_query_base/passive.html | 44 + .../ip__resolver_query_base/v4_mapped.html | 45 + .../doc/asio/reference/ip__scope_id_type.html | 52 + 3party/asio/doc/asio/reference/ip__tcp.html | 298 + .../doc/asio/reference/ip__tcp/acceptor.html | 781 ++ .../doc/asio/reference/ip__tcp/endpoint.html | 392 + .../doc/asio/reference/ip__tcp/family.html | 41 + .../doc/asio/reference/ip__tcp/iostream.html | 324 + .../doc/asio/reference/ip__tcp/no_delay.html | 75 + .../reference/ip__tcp/operator_eq__eq_.html | 53 + .../reference/ip__tcp/operator_not__eq_.html | 53 + .../doc/asio/reference/ip__tcp/protocol.html | 41 + .../doc/asio/reference/ip__tcp/resolver.html | 418 + .../doc/asio/reference/ip__tcp/socket.html | 926 ++ .../asio/doc/asio/reference/ip__tcp/type.html | 41 + .../asio/doc/asio/reference/ip__tcp/v4.html | 40 + .../asio/doc/asio/reference/ip__tcp/v6.html | 40 + 3party/asio/doc/asio/reference/ip__udp.html | 262 + .../doc/asio/reference/ip__udp/endpoint.html | 392 + .../doc/asio/reference/ip__udp/family.html | 41 + .../reference/ip__udp/operator_eq__eq_.html | 53 + .../reference/ip__udp/operator_not__eq_.html | 53 + .../doc/asio/reference/ip__udp/protocol.html | 41 + .../doc/asio/reference/ip__udp/resolver.html | 418 + .../doc/asio/reference/ip__udp/socket.html | 924 ++ .../asio/doc/asio/reference/ip__udp/type.html | 41 + .../asio/doc/asio/reference/ip__udp/v4.html | 40 + .../asio/doc/asio/reference/ip__udp/v6.html | 40 + .../doc/asio/reference/ip__unicast__hops.html | 76 + .../doc/asio/reference/ip__v4_mapped_t.html | 67 + .../asio/doc/asio/reference/ip__v6_only.html | 77 + .../reference/is_applicable_property.html | 53 + .../asio/reference/is_async_operation.html | 66 + .../reference/is_const_buffer_sequence.html | 54 + .../reference/is_contiguous_iterator.html | 56 + .../asio/doc/asio/reference/is_deferred.html | 55 + .../doc/asio/reference/is_dynamic_buffer.html | 60 + .../asio/reference/is_dynamic_buffer_v1.html | 54 + .../asio/reference/is_dynamic_buffer_v2.html | 54 + .../asio/reference/is_endpoint_sequence.html | 92 + .../reference/is_endpoint_sequence/value.html | 41 + .../asio/doc/asio/reference/is_executor.html | 61 + .../asio/reference/is_match_condition.html | 90 + .../reference/is_match_condition/value.html | 41 + .../reference/is_mutable_buffer_sequence.html | 54 + .../doc/asio/reference/is_nothrow_prefer.html | 63 + .../doc/asio/reference/is_nothrow_query.html | 63 + .../asio/reference/is_nothrow_require.html | 63 + .../reference/is_nothrow_require_concept.html | 63 + .../doc/asio/reference/is_read_buffered.html | 92 + .../reference/is_read_buffered/value.html | 41 + .../doc/asio/reference/is_write_buffered.html | 92 + .../reference/is_write_buffered/value.html | 41 + .../asio/reference/local__basic_endpoint.html | 372 + .../local__basic_endpoint/basic_endpoint.html | 60 + .../basic_endpoint/overload1.html | 40 + .../basic_endpoint/overload2.html | 41 + .../basic_endpoint/overload3.html | 41 + .../basic_endpoint/overload4.html | 41 + .../local__basic_endpoint/capacity.html | 41 + .../reference/local__basic_endpoint/data.html | 45 + .../local__basic_endpoint/data/overload1.html | 40 + .../local__basic_endpoint/data/overload2.html | 40 + .../local__basic_endpoint/data_type.html | 52 + .../local__basic_endpoint/operator_eq_.html | 42 + .../operator_eq__eq_.html | 53 + .../local__basic_endpoint/operator_gt_.html | 53 + .../operator_gt__eq_.html | 53 + .../local__basic_endpoint/operator_lt_.html | 53 + .../operator_lt__eq_.html | 53 + .../operator_lt__lt_.html | 71 + .../operator_not__eq_.html | 53 + .../reference/local__basic_endpoint/path.html | 53 + .../local__basic_endpoint/path/overload1.html | 40 + .../local__basic_endpoint/path/overload2.html | 41 + .../local__basic_endpoint/path/overload3.html | 41 + .../local__basic_endpoint/protocol.html | 41 + .../local__basic_endpoint/protocol_type.html | 51 + .../local__basic_endpoint/resize.html | 42 + .../reference/local__basic_endpoint/size.html | 41 + .../asio/reference/local__connect_pair.html | 69 + .../local__connect_pair/overload1.html | 46 + .../local__connect_pair/overload2.html | 47 + .../reference/local__datagram_protocol.html | 175 + .../local__datagram_protocol/endpoint.html | 369 + .../local__datagram_protocol/family.html | 41 + .../local__datagram_protocol/protocol.html | 41 + .../local__datagram_protocol/socket.html | 925 ++ .../local__datagram_protocol/type.html | 41 + .../reference/local__seq_packet_protocol.html | 188 + .../local__seq_packet_protocol/acceptor.html | 782 ++ .../local__seq_packet_protocol/endpoint.html | 369 + .../local__seq_packet_protocol/family.html | 41 + .../local__seq_packet_protocol/protocol.html | 41 + .../local__seq_packet_protocol/socket.html | 878 ++ .../local__seq_packet_protocol/type.html | 41 + .../reference/local__stream_protocol.html | 199 + .../local__stream_protocol/acceptor.html | 782 ++ .../local__stream_protocol/endpoint.html | 369 + .../local__stream_protocol/family.html | 41 + .../local__stream_protocol/iostream.html | 325 + .../local__stream_protocol/protocol.html | 41 + .../local__stream_protocol/socket.html | 927 ++ .../local__stream_protocol/type.html | 41 + .../asio/doc/asio/reference/make_strand.html | 73 + .../asio/reference/make_strand/overload1.html | 66 + .../asio/reference/make_strand/overload2.html | 67 + .../doc/asio/reference/make_work_guard.html | 91 + .../reference/make_work_guard/overload1.html | 65 + .../reference/make_work_guard/overload2.html | 66 + .../reference/make_work_guard/overload3.html | 66 + .../reference/make_work_guard/overload4.html | 75 + .../reference/make_work_guard/overload5.html | 78 + .../asio/reference/multiple_exceptions.html | 114 + .../multiple_exceptions/first_exception.html | 41 + .../multiple_exceptions.html | 41 + .../reference/multiple_exceptions/what.html | 41 + .../doc/asio/reference/mutable_buffer.html | 184 + .../asio/reference/mutable_buffer/data.html | 41 + .../mutable_buffer/mutable_buffer.html | 50 + .../mutable_buffer/overload1.html | 40 + .../mutable_buffer/overload2.html | 42 + .../mutable_buffer/operator_plus_.html | 49 + .../operator_plus_/overload1.html | 42 + .../operator_plus_/overload2.html | 42 + .../mutable_buffer/operator_plus__eq_.html | 42 + .../asio/reference/mutable_buffer/size.html | 41 + .../doc/asio/reference/mutable_buffers_1.html | 237 + .../reference/mutable_buffers_1/begin.html | 41 + .../mutable_buffers_1/const_iterator.html | 51 + .../reference/mutable_buffers_1/data.html | 44 + .../asio/reference/mutable_buffers_1/end.html | 41 + .../mutable_buffers_1/mutable_buffers_1.html | 51 + .../mutable_buffers_1/overload1.html | 42 + .../mutable_buffers_1/overload2.html | 41 + .../mutable_buffers_1/operator_plus_.html | 49 + .../operator_plus_/overload1.html | 45 + .../operator_plus_/overload2.html | 45 + .../mutable_buffers_1/operator_plus__eq_.html | 45 + .../reference/mutable_buffers_1/size.html | 44 + .../mutable_buffers_1/value_type.html | 183 + .../reference/mutable_registered_buffer.html | 193 + .../mutable_registered_buffer/buffer.html | 41 + .../mutable_registered_buffer/data.html | 49 + .../mutable_registered_buffer/id.html | 41 + .../mutable_registered_buffer.html | 41 + .../operator_plus_.html | 52 + .../operator_plus_/overload1.html | 43 + .../operator_plus_/overload2.html | 42 + .../operator_plus__eq_.html | 42 + .../mutable_registered_buffer/size.html | 49 + .../asio/doc/asio/reference/null_buffers.html | 151 + .../asio/reference/null_buffers/begin.html | 41 + .../null_buffers/const_iterator.html | 51 + .../doc/asio/reference/null_buffers/end.html | 41 + .../reference/null_buffers/value_type.html | 183 + .../doc/asio/reference/operator_lt__lt_.html | 57 + .../doc/asio/reference/operator_pipe_.html | 57 + .../placeholders__bytes_transferred.html | 54 + .../reference/placeholders__endpoint.html | 53 + .../asio/reference/placeholders__error.html | 53 + .../reference/placeholders__iterator.html | 53 + .../asio/reference/placeholders__results.html | 53 + .../placeholders__signal_number.html | 54 + .../reference/posix__basic_descriptor.html | 416 + .../_basic_descriptor.html | 45 + .../posix__basic_descriptor/assign.html | 48 + .../assign/overload1.html | 41 + .../assign/overload2.html | 42 + .../posix__basic_descriptor/async_wait.html | 135 + .../basic_descriptor.html | 84 + .../basic_descriptor/overload1.html | 58 + .../basic_descriptor/overload2.html | 62 + .../basic_descriptor/overload3.html | 77 + .../basic_descriptor/overload4.html | 81 + .../basic_descriptor/overload5.html | 66 + .../basic_descriptor/overload6.html | 71 + .../bytes_readable.html | 67 + .../posix__basic_descriptor/cancel.html | 46 + .../cancel/overload1.html | 58 + .../cancel/overload2.html | 59 + .../posix__basic_descriptor/close.html | 46 + .../close/overload1.html | 59 + .../close/overload2.html | 60 + .../executor_type.html | 51 + .../posix__basic_descriptor/get_executor.html | 41 + .../posix__basic_descriptor/io_control.html | 52 + .../io_control/overload1.html | 85 + .../io_control/overload2.html | 82 + .../posix__basic_descriptor/is_open.html | 41 + .../posix__basic_descriptor/lowest_layer.html | 48 + .../lowest_layer/overload1.html | 54 + .../lowest_layer/overload2.html | 54 + .../lowest_layer_type.html | 413 + .../native_handle.html | 46 + .../native_handle_type.html | 51 + .../native_non_blocking.html | 54 + .../native_non_blocking/overload1.html | 64 + .../native_non_blocking/overload2.html | 79 + .../native_non_blocking/overload3.html | 70 + .../posix__basic_descriptor/non_blocking.html | 54 + .../non_blocking/overload1.html | 60 + .../non_blocking/overload2.html | 79 + .../non_blocking/overload3.html | 71 + .../posix__basic_descriptor/operator_eq_.html | 53 + .../operator_eq_/overload1.html | 66 + .../operator_eq_/overload2.html | 70 + .../posix__basic_descriptor/release.html | 50 + .../posix__basic_descriptor/wait.html | 49 + .../wait/overload1.html | 70 + .../wait/overload2.html | 76 + .../posix__basic_descriptor/wait_type.html | 73 + ...ix__basic_descriptor__rebind_executor.html | 88 + .../other.html | 413 + .../posix__basic_stream_descriptor.html | 441 + .../assign.html | 48 + .../assign/overload1.html | 44 + .../assign/overload2.html | 45 + .../async_read_some.html | 142 + .../async_wait.html | 138 + .../async_write_some.html | 142 + .../basic_stream_descriptor.html | 84 + .../basic_stream_descriptor/overload1.html | 60 + .../basic_stream_descriptor/overload2.html | 64 + .../basic_stream_descriptor/overload3.html | 77 + .../basic_stream_descriptor/overload4.html | 81 + .../basic_stream_descriptor/overload5.html | 66 + .../basic_stream_descriptor/overload6.html | 71 + .../bytes_readable.html | 67 + .../cancel.html | 46 + .../cancel/overload1.html | 61 + .../cancel/overload2.html | 62 + .../posix__basic_stream_descriptor/close.html | 46 + .../close/overload1.html | 62 + .../close/overload2.html | 63 + .../executor_type.html | 51 + .../get_executor.html | 44 + .../io_control.html | 52 + .../io_control/overload1.html | 88 + .../io_control/overload2.html | 85 + .../is_open.html | 44 + .../lowest_layer.html | 48 + .../lowest_layer/overload1.html | 57 + .../lowest_layer/overload2.html | 57 + .../lowest_layer_type.html | 416 + .../native_handle.html | 49 + .../native_handle_type.html | 413 + .../native_non_blocking.html | 54 + .../native_non_blocking/overload1.html | 67 + .../native_non_blocking/overload2.html | 82 + .../native_non_blocking/overload3.html | 73 + .../non_blocking.html | 54 + .../non_blocking/overload1.html | 63 + .../non_blocking/overload2.html | 82 + .../non_blocking/overload3.html | 74 + .../operator_eq_.html | 53 + .../operator_eq_/overload1.html | 67 + .../operator_eq_/overload2.html | 70 + .../read_some.html | 52 + .../read_some/overload1.html | 107 + .../read_some/overload2.html | 84 + .../release.html | 53 + .../posix__basic_stream_descriptor/wait.html | 49 + .../wait/overload1.html | 73 + .../wait/overload2.html | 79 + .../wait_type.html | 73 + .../write_some.html | 52 + .../write_some/overload1.html | 106 + .../write_some/overload2.html | 83 + ...ic_stream_descriptor__rebind_executor.html | 88 + .../other.html | 438 + .../doc/asio/reference/posix__descriptor.html | 414 + .../reference/posix__descriptor_base.html | 138 + .../_descriptor_base.html | 41 + .../bytes_readable.html | 64 + .../posix__descriptor_base/wait_type.html | 70 + .../reference/posix__stream_descriptor.html | 437 + 3party/asio/doc/asio/reference/post.html | 74 + .../doc/asio/reference/post/overload1.html | 137 + .../doc/asio/reference/post/overload2.html | 175 + .../doc/asio/reference/post/overload3.html | 84 + 3party/asio/doc/asio/reference/prefer.html | 118 + .../doc/asio/reference/prefer_result.html | 95 + .../asio/reference/prefer_result/type.html | 50 + 3party/asio/doc/asio/reference/prepend.html | 58 + 3party/asio/doc/asio/reference/prepend_t.html | 135 + .../asio/reference/prepend_t/prepend_t.html | 45 + .../doc/asio/reference/prepend_t/token_.html | 39 + .../doc/asio/reference/prepend_t/values_.html | 39 + 3party/asio/doc/asio/reference/query.html | 88 + .../asio/doc/asio/reference/query_result.html | 95 + .../doc/asio/reference/query_result/type.html | 50 + .../asio/reference/random_access_file.html | 543 ++ 3party/asio/doc/asio/reference/read.html | 222 + .../doc/asio/reference/read/overload1.html | 128 + .../doc/asio/reference/read/overload10.html | 103 + .../doc/asio/reference/read/overload11.html | 122 + .../doc/asio/reference/read/overload12.html | 115 + .../doc/asio/reference/read/overload13.html | 112 + .../doc/asio/reference/read/overload14.html | 103 + .../doc/asio/reference/read/overload15.html | 123 + .../doc/asio/reference/read/overload16.html | 116 + .../doc/asio/reference/read/overload2.html | 120 + .../doc/asio/reference/read/overload3.html | 140 + .../doc/asio/reference/read/overload4.html | 118 + .../doc/asio/reference/read/overload5.html | 113 + .../doc/asio/reference/read/overload6.html | 104 + .../doc/asio/reference/read/overload7.html | 124 + .../doc/asio/reference/read/overload8.html | 117 + .../doc/asio/reference/read/overload9.html | 111 + 3party/asio/doc/asio/reference/read_at.html | 139 + .../doc/asio/reference/read_at/overload1.html | 134 + .../doc/asio/reference/read_at/overload2.html | 127 + .../doc/asio/reference/read_at/overload3.html | 146 + .../doc/asio/reference/read_at/overload4.html | 124 + .../doc/asio/reference/read_at/overload5.html | 113 + .../doc/asio/reference/read_at/overload6.html | 105 + .../doc/asio/reference/read_at/overload7.html | 124 + .../doc/asio/reference/read_at/overload8.html | 117 + .../asio/doc/asio/reference/read_until.html | 349 + .../asio/reference/read_until/overload1.html | 161 + .../asio/reference/read_until/overload10.html | 109 + .../asio/reference/read_until/overload11.html | 153 + .../asio/reference/read_until/overload12.html | 109 + .../asio/reference/read_until/overload13.html | 155 + .../asio/reference/read_until/overload14.html | 111 + .../asio/reference/read_until/overload15.html | 205 + .../asio/reference/read_until/overload16.html | 143 + .../asio/reference/read_until/overload17.html | 160 + .../asio/reference/read_until/overload18.html | 113 + .../asio/reference/read_until/overload19.html | 147 + .../asio/reference/read_until/overload2.html | 114 + .../asio/reference/read_until/overload20.html | 113 + .../asio/reference/read_until/overload21.html | 161 + .../asio/reference/read_until/overload22.html | 115 + .../asio/reference/read_until/overload23.html | 208 + .../asio/reference/read_until/overload24.html | 145 + .../asio/reference/read_until/overload3.html | 148 + .../asio/reference/read_until/overload4.html | 114 + .../asio/reference/read_until/overload5.html | 162 + .../asio/reference/read_until/overload6.html | 116 + .../asio/reference/read_until/overload7.html | 209 + .../asio/reference/read_until/overload8.html | 146 + .../asio/reference/read_until/overload9.html | 153 + .../asio/reference/read_write_operations.html | 65 + .../doc/asio/reference/readable_pipe.html | 326 + .../asio/reference/recycling_allocator.html | 193 + .../recycling_allocator/allocate.html | 42 + .../recycling_allocator/deallocate.html | 43 + .../recycling_allocator/operator_eq__eq_.html | 42 + .../operator_not__eq_.html | 42 + .../recycling_allocator.html | 51 + .../recycling_allocator/overload1.html | 40 + .../recycling_allocator/overload2.html | 43 + .../recycling_allocator/value_type.html | 51 + .../recycling_allocator__rebind.html | 88 + .../recycling_allocator__rebind/other.html | 190 + .../recycling_allocator_lt__void__gt_.html | 169 + .../operator_eq__eq_.html | 42 + .../operator_not__eq_.html | 42 + .../recycling_allocator.html | 51 + .../recycling_allocator/overload1.html | 40 + .../recycling_allocator/overload2.html | 43 + .../value_type.html | 51 + ...cling_allocator_lt__void__gt___rebind.html | 89 + .../other.html | 191 + .../doc/asio/reference/redirect_error.html | 57 + .../doc/asio/reference/redirect_error_t.html | 139 + .../asio/reference/redirect_error_t/ec_.html | 39 + .../redirect_error_t/redirect_error_t.html | 44 + .../reference/redirect_error_t/token_.html | 39 + .../doc/asio/reference/register_buffers.html | 90 + .../reference/register_buffers/overload1.html | 46 + .../reference/register_buffers/overload2.html | 48 + .../reference/register_buffers/overload3.html | 46 + .../reference/register_buffers/overload4.html | 48 + .../asio/reference/registered_buffer_id.html | 182 + .../registered_buffer_id/native_handle.html | 41 + .../native_handle_type.html | 51 + .../operator_eq__eq_.html | 53 + .../operator_not__eq_.html | 53 + .../registered_buffer_id.html | 41 + 3party/asio/doc/asio/reference/require.html | 102 + .../doc/asio/reference/require_concept.html | 90 + .../reference/require_concept_result.html | 95 + .../require_concept_result/type.html | 52 + .../doc/asio/reference/require_result.html | 95 + .../asio/reference/require_result/type.html | 51 + .../reference/resolver_errc__try_again.html | 49 + .../asio/doc/asio/reference/serial_port.html | 387 + .../doc/asio/reference/serial_port_base.html | 173 + .../serial_port_base/_serial_port_base.html | 41 + .../serial_port_base__baud_rate.html | 116 + .../baud_rate.html | 40 + .../serial_port_base__baud_rate/load.html | 41 + .../serial_port_base__baud_rate/store.html | 41 + .../serial_port_base__baud_rate/value.html | 39 + .../serial_port_base__character_size.html | 116 + .../character_size.html | 40 + .../load.html | 41 + .../store.html | 41 + .../value.html | 39 + .../serial_port_base__flow_control.html | 147 + .../flow_control.html | 40 + .../serial_port_base__flow_control/load.html | 41 + .../serial_port_base__flow_control/store.html | 41 + .../serial_port_base__flow_control/type.html | 59 + .../serial_port_base__flow_control/value.html | 39 + .../reference/serial_port_base__parity.html | 147 + .../serial_port_base__parity/load.html | 41 + .../serial_port_base__parity/parity.html | 40 + .../serial_port_base__parity/store.html | 41 + .../serial_port_base__parity/type.html | 59 + .../serial_port_base__parity/value.html | 39 + .../serial_port_base__stop_bits.html | 147 + .../serial_port_base__stop_bits/load.html | 41 + .../stop_bits.html | 40 + .../serial_port_base__stop_bits/store.html | 41 + .../serial_port_base__stop_bits/type.html | 59 + .../serial_port_base__stop_bits/value.html | 39 + .../reference/service_already_exists.html | 83 + .../service_already_exists.html | 39 + .../asio/doc/asio/reference/signal_set.html | 333 + .../doc/asio/reference/signal_set_base.html | 138 + .../signal_set_base/_signal_set_base.html | 41 + .../asio/reference/signal_set_base/flags.html | 84 + .../reference/signal_set_base/flags_t.html | 51 + .../asio/doc/asio/reference/socket_base.html | 406 + .../reference/socket_base/_socket_base.html | 41 + .../asio/reference/socket_base/broadcast.html | 75 + .../reference/socket_base/bytes_readable.html | 64 + .../doc/asio/reference/socket_base/debug.html | 75 + .../reference/socket_base/do_not_route.html | 75 + .../enable_connection_aborted.html | 77 + .../reference/socket_base/keep_alive.html | 75 + .../asio/reference/socket_base/linger.html | 76 + .../socket_base/max_connections.html | 42 + .../socket_base/max_listen_connections.html | 41 + .../socket_base/message_do_not_route.html | 41 + .../socket_base/message_end_of_record.html | 41 + .../reference/socket_base/message_flags.html | 51 + .../socket_base/message_out_of_band.html | 41 + .../reference/socket_base/message_peek.html | 41 + .../socket_base/out_of_band_inline.html | 75 + .../socket_base/receive_buffer_size.html | 75 + .../socket_base/receive_low_watermark.html | 75 + .../reference/socket_base/reuse_address.html | 76 + .../socket_base/send_buffer_size.html | 75 + .../socket_base/send_low_watermark.html | 75 + .../reference/socket_base/shutdown_type.html | 67 + .../asio/reference/socket_base/wait_type.html | 69 + 3party/asio/doc/asio/reference/spawn.html | 261 + .../doc/asio/reference/spawn/overload1.html | 108 + .../doc/asio/reference/spawn/overload10.html | 76 + .../doc/asio/reference/spawn/overload11.html | 74 + .../doc/asio/reference/spawn/overload12.html | 75 + .../doc/asio/reference/spawn/overload13.html | 77 + .../doc/asio/reference/spawn/overload2.html | 108 + .../doc/asio/reference/spawn/overload3.html | 112 + .../doc/asio/reference/spawn/overload4.html | 118 + .../doc/asio/reference/spawn/overload5.html | 117 + .../doc/asio/reference/spawn/overload6.html | 122 + .../doc/asio/reference/spawn/overload7.html | 71 + .../doc/asio/reference/spawn/overload8.html | 84 + .../doc/asio/reference/spawn/overload9.html | 78 + .../asio/doc/asio/reference/ssl__context.html | 586 ++ .../asio/reference/ssl__context/_context.html | 40 + .../add_certificate_authority.html | 48 + .../add_certificate_authority/overload1.html | 80 + .../add_certificate_authority/overload2.html | 72 + .../ssl__context/add_verify_path.html | 49 + .../add_verify_path/overload1.html | 81 + .../add_verify_path/overload2.html | 73 + .../reference/ssl__context/clear_options.html | 48 + .../ssl__context/clear_options/overload1.html | 79 + .../ssl__context/clear_options/overload2.html | 71 + .../asio/reference/ssl__context/context.html | 56 + .../ssl__context/context/overload1.html | 41 + .../ssl__context/context/overload2.html | 41 + .../ssl__context/context/overload3.html | 68 + .../ssl__context/default_workarounds.html | 41 + .../reference/ssl__context/file_format.html | 62 + .../ssl__context/load_verify_file.html | 48 + .../load_verify_file/overload1.html | 79 + .../load_verify_file/overload2.html | 71 + .../asio/reference/ssl__context/method.html | 172 + .../reference/ssl__context/native_handle.html | 46 + .../ssl__context/native_handle_type.html | 51 + .../ssl__context/no_compression.html | 41 + .../asio/reference/ssl__context/no_sslv2.html | 40 + .../asio/reference/ssl__context/no_sslv3.html | 40 + .../asio/reference/ssl__context/no_tlsv1.html | 40 + .../reference/ssl__context/no_tlsv1_1.html | 41 + .../reference/ssl__context/no_tlsv1_2.html | 41 + .../reference/ssl__context/no_tlsv1_3.html | 41 + .../reference/ssl__context/operator_eq_.html | 69 + .../asio/reference/ssl__context/options.html | 51 + .../ssl__context/password_purpose.html | 62 + .../set_default_verify_paths.html | 47 + .../set_default_verify_paths/overload1.html | 65 + .../set_default_verify_paths/overload2.html | 66 + .../reference/ssl__context/set_options.html | 48 + .../ssl__context/set_options/overload1.html | 79 + .../ssl__context/set_options/overload2.html | 71 + .../ssl__context/set_password_callback.html | 52 + .../set_password_callback/overload1.html | 91 + .../set_password_callback/overload2.html | 83 + .../ssl__context/set_verify_callback.html | 52 + .../set_verify_callback/overload1.html | 92 + .../set_verify_callback/overload2.html | 84 + .../ssl__context/set_verify_depth.html | 48 + .../set_verify_depth/overload1.html | 79 + .../set_verify_depth/overload2.html | 71 + .../ssl__context/set_verify_mode.html | 48 + .../set_verify_mode/overload1.html | 79 + .../set_verify_mode/overload2.html | 71 + .../reference/ssl__context/single_dh_use.html | 41 + .../ssl__context/use_certificate.html | 50 + .../use_certificate/overload1.html | 83 + .../use_certificate/overload2.html | 75 + .../ssl__context/use_certificate_chain.html | 48 + .../use_certificate_chain/overload1.html | 80 + .../use_certificate_chain/overload2.html | 72 + .../use_certificate_chain_file.html | 48 + .../use_certificate_chain_file/overload1.html | 79 + .../use_certificate_chain_file/overload2.html | 71 + .../ssl__context/use_certificate_file.html | 50 + .../use_certificate_file/overload1.html | 82 + .../use_certificate_file/overload2.html | 74 + .../ssl__context/use_private_key.html | 50 + .../use_private_key/overload1.html | 83 + .../use_private_key/overload2.html | 75 + .../ssl__context/use_private_key_file.html | 50 + .../use_private_key_file/overload1.html | 82 + .../use_private_key_file/overload2.html | 74 + .../ssl__context/use_rsa_private_key.html | 50 + .../use_rsa_private_key/overload1.html | 84 + .../use_rsa_private_key/overload2.html | 76 + .../use_rsa_private_key_file.html | 50 + .../use_rsa_private_key_file/overload1.html | 83 + .../use_rsa_private_key_file/overload2.html | 75 + .../reference/ssl__context/use_tmp_dh.html | 48 + .../ssl__context/use_tmp_dh/overload1.html | 80 + .../ssl__context/use_tmp_dh/overload2.html | 72 + .../ssl__context/use_tmp_dh_file.html | 48 + .../use_tmp_dh_file/overload1.html | 79 + .../use_tmp_dh_file/overload2.html | 71 + .../doc/asio/reference/ssl__context_base.html | 294 + .../ssl__context_base/_context_base.html | 41 + .../default_workarounds.html | 41 + .../ssl__context_base/file_format.html | 62 + .../reference/ssl__context_base/method.html | 172 + .../ssl__context_base/no_compression.html | 41 + .../reference/ssl__context_base/no_sslv2.html | 41 + .../reference/ssl__context_base/no_sslv3.html | 41 + .../reference/ssl__context_base/no_tlsv1.html | 41 + .../ssl__context_base/no_tlsv1_1.html | 41 + .../ssl__context_base/no_tlsv1_2.html | 41 + .../ssl__context_base/no_tlsv1_3.html | 41 + .../reference/ssl__context_base/options.html | 51 + .../ssl__context_base/password_purpose.html | 62 + .../ssl__context_base/single_dh_use.html | 41 + .../ssl__error__get_stream_category.html | 49 + .../ssl__error__make_error_code.html | 50 + .../ssl__error__stream_category.html | 49 + .../reference/ssl__error__stream_errors.html | 78 + .../ssl__host_name_verification.html | 167 + .../host_name_verification.html | 41 + .../operator_lp__rp_.html | 43 + .../result_type.html | 51 + .../reference/ssl__rfc2818_verification.html | 168 + .../operator_lp__rp_.html | 43 + .../result_type.html | 51 + .../rfc2818_verification.html | 41 + .../asio/doc/asio/reference/ssl__stream.html | 425 + .../asio/reference/ssl__stream/_stream.html | 49 + .../ssl__stream/async_handshake.html | 55 + .../async_handshake/overload1.html | 115 + .../async_handshake/overload2.html | 125 + .../ssl__stream/async_read_some.html | 130 + .../reference/ssl__stream/async_shutdown.html | 108 + .../ssl__stream/async_write_some.html | 129 + .../reference/ssl__stream/executor_type.html | 51 + .../reference/ssl__stream/get_executor.html | 52 + .../asio/reference/ssl__stream/handshake.html | 62 + .../ssl__stream/handshake/overload1.html | 72 + .../ssl__stream/handshake/overload2.html | 64 + .../ssl__stream/handshake/overload3.html | 79 + .../ssl__stream/handshake/overload4.html | 71 + .../reference/ssl__stream/handshake_type.html | 62 + .../reference/ssl__stream/lowest_layer.html | 45 + .../ssl__stream/lowest_layer/overload1.html | 53 + .../ssl__stream/lowest_layer/overload2.html | 53 + .../ssl__stream/lowest_layer_type.html | 51 + .../reference/ssl__stream/native_handle.html | 68 + .../ssl__stream/native_handle_type.html | 51 + .../reference/ssl__stream/next_layer.html | 45 + .../ssl__stream/next_layer/overload1.html | 53 + .../ssl__stream/next_layer/overload2.html | 53 + .../ssl__stream/next_layer_type.html | 51 + .../reference/ssl__stream/operator_eq_.html | 59 + .../asio/reference/ssl__stream/read_some.html | 52 + .../ssl__stream/read_some/overload1.html | 92 + .../ssl__stream/read_some/overload2.html | 84 + .../ssl__stream/set_verify_callback.html | 52 + .../set_verify_callback/overload1.html | 92 + .../set_verify_callback/overload2.html | 84 + .../ssl__stream/set_verify_depth.html | 48 + .../set_verify_depth/overload1.html | 79 + .../set_verify_depth/overload2.html | 71 + .../ssl__stream/set_verify_mode.html | 48 + .../set_verify_mode/overload1.html | 80 + .../set_verify_mode/overload2.html | 72 + .../asio/reference/ssl__stream/shutdown.html | 46 + .../ssl__stream/shutdown/overload1.html | 57 + .../ssl__stream/shutdown/overload2.html | 58 + .../asio/reference/ssl__stream/stream.html | 62 + .../ssl__stream/stream/overload1.html | 65 + .../ssl__stream/stream/overload2.html | 66 + .../ssl__stream/stream/overload3.html | 58 + .../reference/ssl__stream/write_some.html | 52 + .../ssl__stream/write_some/overload1.html | 91 + .../ssl__stream/write_some/overload2.html | 83 + .../reference/ssl__stream__impl_struct.html | 83 + .../ssl__stream__impl_struct/ssl.html | 39 + .../doc/asio/reference/ssl__stream_base.html | 123 + .../ssl__stream_base/_stream_base.html | 41 + .../ssl__stream_base/handshake_type.html | 62 + .../reference/ssl__verify_client_once.html | 53 + .../asio/reference/ssl__verify_context.html | 145 + .../ssl__verify_context/native_handle.html | 46 + .../native_handle_type.html | 51 + .../ssl__verify_context/verify_context.html | 41 + .../ssl__verify_fail_if_no_peer_cert.html | 53 + .../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/reference/static_thread_pool.html | 428 + .../asio/doc/asio/reference/steady_timer.html | 449 + 3party/asio/doc/asio/reference/strand.html | 348 + .../doc/asio/reference/strand/_strand.html | 40 + .../doc/asio/reference/strand/context.html | 41 + .../asio/doc/asio/reference/strand/defer.html | 75 + .../doc/asio/reference/strand/dispatch.html | 77 + .../doc/asio/reference/strand/execute.html | 68 + .../reference/strand/get_inner_executor.html | 41 + .../reference/strand/inner_executor_type.html | 51 + .../reference/strand/on_work_finished.html | 44 + .../reference/strand/on_work_started.html | 44 + .../asio/reference/strand/operator_eq_.html | 67 + .../strand/operator_eq_/overload1.html | 41 + .../strand/operator_eq_/overload2.html | 47 + .../strand/operator_eq_/overload3.html | 41 + .../strand/operator_eq_/overload4.html | 47 + .../reference/strand/operator_eq__eq_.html | 57 + .../reference/strand/operator_not__eq_.html | 57 + .../asio/doc/asio/reference/strand/post.html | 75 + .../doc/asio/reference/strand/prefer.html | 55 + .../asio/doc/asio/reference/strand/query.html | 56 + .../doc/asio/reference/strand/require.html | 55 + .../strand/running_in_this_thread.html | 53 + .../doc/asio/reference/strand/strand.html | 83 + .../reference/strand/strand/overload1.html | 44 + .../reference/strand/strand/overload2.html | 44 + .../reference/strand/strand/overload3.html | 41 + .../reference/strand/strand/overload4.html | 47 + .../reference/strand/strand/overload5.html | 41 + .../reference/strand/strand/overload6.html | 47 + .../asio/doc/asio/reference/stream_file.html | 543 ++ 3party/asio/doc/asio/reference/streambuf.html | 363 + .../synchronous_socket_operations.html | 76 + .../doc/asio/reference/system_category.html | 52 + .../doc/asio/reference/system_context.html | 320 + .../system_context/_system_context.html | 41 + .../reference/system_context/add_service.html | 108 + .../reference/system_context/destroy.html | 53 + .../system_context/executor_type.html | 275 + .../reference/system_context/fork_event.html | 70 + .../system_context/get_executor.html | 41 + .../reference/system_context/has_service.html | 85 + .../asio/reference/system_context/join.html | 41 + .../system_context/make_service.html | 94 + .../reference/system_context/notify_fork.html | 118 + .../reference/system_context/shutdown.html | 53 + .../asio/reference/system_context/stop.html | 41 + .../reference/system_context/stopped.html | 41 + .../reference/system_context/use_service.html | 51 + .../system_context/use_service/overload1.html | 85 + .../system_context/use_service/overload2.html | 93 + .../asio/doc/asio/reference/system_error.html | 141 + .../reference/system_error/_system_error.html | 40 + .../doc/asio/reference/system_error/code.html | 41 + .../reference/system_error/operator_eq_.html | 42 + .../reference/system_error/system_error.html | 58 + .../system_error/system_error/overload1.html | 41 + .../system_error/system_error/overload2.html | 42 + .../system_error/system_error/overload3.html | 41 + .../doc/asio/reference/system_error/what.html | 41 + .../doc/asio/reference/system_executor.html | 282 + .../asio/doc/asio/reference/system_timer.html | 449 + .../this_coro__cancellation_state.html | 67 + .../this_coro__cancellation_state_t.html | 84 + .../cancellation_state_t.html | 39 + .../asio/reference/this_coro__executor.html | 52 + .../asio/reference/this_coro__executor_t.html | 83 + .../this_coro__executor_t/executor_t.html | 39 + .../this_coro__reset_cancellation_state.html | 68 + .../overload1.html | 68 + .../overload2.html | 72 + .../overload3.html | 75 + .../this_coro__throw_if_cancelled.html | 62 + .../overload1.html | 53 + .../overload2.html | 53 + 3party/asio/doc/asio/reference/thread.html | 148 + .../doc/asio/reference/thread/_thread.html | 40 + .../asio/doc/asio/reference/thread/join.html | 48 + .../doc/asio/reference/thread/thread.html | 66 + .../asio/doc/asio/reference/thread_pool.html | 432 + .../reference/thread_pool/_thread_pool.html | 43 + .../reference/thread_pool/add_service.html | 108 + .../asio/reference/thread_pool/attach.html | 46 + .../asio/reference/thread_pool/destroy.html | 53 + .../asio/reference/thread_pool/executor.html | 41 + .../reference/thread_pool/executor_type.html | 405 + .../reference/thread_pool/fork_event.html | 70 + .../reference/thread_pool/get_executor.html | 41 + .../reference/thread_pool/has_service.html | 84 + .../doc/asio/reference/thread_pool/join.html | 46 + .../reference/thread_pool/make_service.html | 94 + .../reference/thread_pool/notify_fork.html | 118 + .../asio/reference/thread_pool/scheduler.html | 41 + .../reference/thread_pool/scheduler_type.html | 405 + .../asio/reference/thread_pool/shutdown.html | 53 + .../doc/asio/reference/thread_pool/stop.html | 45 + .../reference/thread_pool/thread_pool.html | 49 + .../thread_pool/thread_pool/overload1.html | 40 + .../thread_pool/thread_pool/overload2.html | 41 + .../reference/thread_pool/use_service.html | 51 + .../thread_pool/use_service/overload1.html | 85 + .../thread_pool/use_service/overload2.html | 93 + .../doc/asio/reference/thread_pool/wait.html | 46 + .../thread_pool__basic_executor_type.html | 408 + .../_basic_executor_type.html | 40 + .../basic_executor_type.html | 50 + .../basic_executor_type/overload1.html | 41 + .../basic_executor_type/overload2.html | 41 + .../bulk_execute.html | 45 + .../connect.html | 57 + .../context.html | 41 + .../defer.html | 79 + .../dispatch.html | 75 + .../execute.html | 44 + .../index_type.html | 51 + .../on_work_finished.html | 46 + .../on_work_started.html | 46 + .../operator_eq_.html | 50 + .../operator_eq_/overload1.html | 41 + .../operator_eq_/overload2.html | 41 + .../operator_eq__eq_.html | 56 + .../operator_not__eq_.html | 56 + .../post.html | 75 + .../query.html | 81 + .../query/overload1.html | 54 + .../query/overload2.html | 55 + .../query/overload3.html | 55 + .../query/overload4.html | 56 + .../query/overload5.html | 54 + .../query/overload6.html | 53 + .../query__static.html | 60 + .../query__static/overload1.html | 55 + .../query__static/overload2.html | 55 + .../query__static/overload3.html | 55 + .../require.html | 110 + .../require/overload1.html | 54 + .../require/overload2.html | 54 + .../require/overload3.html | 54 + .../require/overload4.html | 54 + .../require/overload5.html | 54 + .../require/overload6.html | 54 + .../require/overload7.html | 54 + .../require/overload8.html | 56 + .../require/overload9.html | 54 + .../running_in_this_thread.html | 50 + .../schedule.html | 53 + .../sender_type.html | 405 + .../shape_type.html | 51 + .../reference/time_traits_lt__ptime__gt_.html | 187 + .../time_traits_lt__ptime__gt_/add.html | 43 + .../duration_type.html | 51 + .../time_traits_lt__ptime__gt_/less_than.html | 43 + .../time_traits_lt__ptime__gt_/now.html | 41 + .../time_traits_lt__ptime__gt_/subtract.html | 43 + .../time_traits_lt__ptime__gt_/time_type.html | 51 + .../to_posix_duration.html | 42 + .../asio/doc/asio/reference/transfer_all.html | 79 + .../doc/asio/reference/transfer_at_least.html | 80 + .../doc/asio/reference/transfer_exactly.html | 80 + .../doc/asio/reference/use_awaitable.html | 56 + .../doc/asio/reference/use_awaitable_t.html | 159 + .../use_awaitable_t/as_default_on.html | 45 + .../use_awaitable_t/use_awaitable_t.html | 51 + .../use_awaitable_t/overload1.html | 40 + .../use_awaitable_t/overload2.html | 43 + ...se_awaitable_t__executor_with_default.html | 124 + .../default_completion_token_type.html | 156 + .../executor_with_default.html | 45 + .../asio/doc/asio/reference/use_future.html | 56 + .../asio/doc/asio/reference/use_future_t.html | 193 + .../use_future_t/allocator_type.html | 52 + .../reference/use_future_t/get_allocator.html | 41 + .../use_future_t/operator_lb__rb_.html | 45 + .../use_future_t/operator_lp__rp_.html | 63 + .../asio/reference/use_future_t/rebind.html | 44 + .../reference/use_future_t/use_future_t.html | 49 + .../use_future_t/use_future_t/overload1.html | 40 + .../use_future_t/use_future_t/overload2.html | 41 + .../doc/asio/reference/uses_executor.html | 66 + .../asio/doc/asio/reference/wait_traits.html | 89 + .../wait_traits/to_wait_duration.html | 47 + .../to_wait_duration/overload1.html | 49 + .../to_wait_duration/overload2.html | 49 + .../windows__basic_object_handle.html | 303 + .../windows__basic_object_handle/assign.html | 48 + .../assign/overload1.html | 41 + .../assign/overload2.html | 42 + .../async_wait.html | 88 + .../basic_object_handle.html | 83 + .../basic_object_handle/overload1.html | 59 + .../basic_object_handle/overload2.html | 62 + .../basic_object_handle/overload3.html | 78 + .../basic_object_handle/overload4.html | 81 + .../basic_object_handle/overload5.html | 66 + .../basic_object_handle/overload6.html | 69 + .../windows__basic_object_handle/cancel.html | 46 + .../cancel/overload1.html | 58 + .../cancel/overload2.html | 59 + .../windows__basic_object_handle/close.html | 46 + .../close/overload1.html | 58 + .../close/overload2.html | 59 + .../executor_type.html | 51 + .../get_executor.html | 41 + .../windows__basic_object_handle/is_open.html | 41 + .../lowest_layer.html | 48 + .../lowest_layer/overload1.html | 54 + .../lowest_layer/overload2.html | 54 + .../lowest_layer_type.html | 301 + .../native_handle.html | 46 + .../native_handle_type.html | 51 + .../operator_eq_.html | 52 + .../operator_eq_/overload1.html | 66 + .../operator_eq_/overload2.html | 68 + .../windows__basic_object_handle/wait.html | 46 + .../wait/overload1.html | 58 + .../wait/overload2.html | 59 + ..._basic_object_handle__rebind_executor.html | 88 + .../other.html | 301 + .../windows__basic_overlapped_handle.html | 329 + .../_basic_overlapped_handle.html | 45 + .../assign.html | 48 + .../assign/overload1.html | 41 + .../assign/overload2.html | 42 + .../basic_overlapped_handle.html | 83 + .../basic_overlapped_handle/overload1.html | 59 + .../basic_overlapped_handle/overload2.html | 62 + .../basic_overlapped_handle/overload3.html | 78 + .../basic_overlapped_handle/overload4.html | 81 + .../basic_overlapped_handle/overload5.html | 66 + .../basic_overlapped_handle/overload6.html | 70 + .../cancel.html | 46 + .../cancel/overload1.html | 58 + .../cancel/overload2.html | 59 + .../close.html | 46 + .../close/overload1.html | 58 + .../close/overload2.html | 59 + .../executor_type.html | 51 + .../get_executor.html | 41 + .../is_open.html | 41 + .../lowest_layer.html | 48 + .../lowest_layer/overload1.html | 54 + .../lowest_layer/overload2.html | 54 + .../lowest_layer_type.html | 326 + .../native_handle.html | 46 + .../native_handle_type.html | 51 + .../operator_eq_.html | 52 + .../operator_eq_/overload1.html | 66 + .../operator_eq_/overload2.html | 68 + .../release.html | 46 + .../release/overload1.html | 68 + .../release/overload2.html | 69 + ...ic_overlapped_handle__rebind_executor.html | 88 + .../other.html | 326 + .../windows__basic_random_access_handle.html | 342 + .../assign.html | 48 + .../assign/overload1.html | 44 + .../assign/overload2.html | 45 + .../async_read_some_at.html | 147 + .../async_write_some_at.html | 147 + .../basic_random_access_handle.html | 84 + .../basic_random_access_handle/overload1.html | 59 + .../basic_random_access_handle/overload2.html | 64 + .../basic_random_access_handle/overload3.html | 78 + .../basic_random_access_handle/overload4.html | 81 + .../basic_random_access_handle/overload5.html | 67 + .../basic_random_access_handle/overload6.html | 71 + .../cancel.html | 46 + .../cancel/overload1.html | 61 + .../cancel/overload2.html | 62 + .../close.html | 46 + .../close/overload1.html | 61 + .../close/overload2.html | 62 + .../executor_type.html | 51 + .../get_executor.html | 44 + .../is_open.html | 44 + .../lowest_layer.html | 48 + .../lowest_layer/overload1.html | 57 + .../lowest_layer/overload2.html | 57 + .../lowest_layer_type.html | 329 + .../native_handle.html | 49 + .../native_handle_type.html | 51 + .../operator_eq_.html | 52 + .../operator_eq_/overload1.html | 68 + .../operator_eq_/overload2.html | 71 + .../read_some_at.html | 54 + .../read_some_at/overload1.html | 112 + .../read_some_at/overload2.html | 89 + .../release.html | 46 + .../release/overload1.html | 71 + .../release/overload2.html | 72 + .../write_some_at.html | 54 + .../write_some_at/overload1.html | 112 + .../write_some_at/overload2.html | 88 + ...random_access_handle__rebind_executor.html | 88 + .../other.html | 338 + .../windows__basic_stream_handle.html | 340 + .../windows__basic_stream_handle/assign.html | 48 + .../assign/overload1.html | 44 + .../assign/overload2.html | 45 + .../async_read_some.html | 142 + .../async_write_some.html | 142 + .../basic_stream_handle.html | 83 + .../basic_stream_handle/overload1.html | 59 + .../basic_stream_handle/overload2.html | 64 + .../basic_stream_handle/overload3.html | 78 + .../basic_stream_handle/overload4.html | 81 + .../basic_stream_handle/overload5.html | 66 + .../basic_stream_handle/overload6.html | 69 + .../windows__basic_stream_handle/cancel.html | 46 + .../cancel/overload1.html | 61 + .../cancel/overload2.html | 62 + .../windows__basic_stream_handle/close.html | 46 + .../close/overload1.html | 61 + .../close/overload2.html | 62 + .../executor_type.html | 51 + .../get_executor.html | 44 + .../windows__basic_stream_handle/is_open.html | 44 + .../lowest_layer.html | 48 + .../lowest_layer/overload1.html | 57 + .../lowest_layer/overload2.html | 57 + .../lowest_layer_type.html | 329 + .../native_handle.html | 49 + .../native_handle_type.html | 51 + .../operator_eq_.html | 52 + .../operator_eq_/overload1.html | 66 + .../operator_eq_/overload2.html | 68 + .../read_some.html | 52 + .../read_some/overload1.html | 107 + .../read_some/overload2.html | 84 + .../windows__basic_stream_handle/release.html | 46 + .../release/overload1.html | 71 + .../release/overload2.html | 72 + .../write_some.html | 52 + .../write_some/overload1.html | 106 + .../write_some/overload2.html | 83 + ..._basic_stream_handle__rebind_executor.html | 88 + .../other.html | 336 + .../reference/windows__object_handle.html | 300 + .../reference/windows__overlapped_handle.html | 326 + .../reference/windows__overlapped_ptr.html | 167 + .../_overlapped_ptr.html | 41 + .../windows__overlapped_ptr/complete.html | 43 + .../windows__overlapped_ptr/get.html | 45 + .../get/overload1.html | 40 + .../get/overload2.html | 40 + .../overlapped_ptr.html | 64 + .../overlapped_ptr/overload1.html | 40 + .../overlapped_ptr/overload2.html | 47 + .../overlapped_ptr/overload3.html | 47 + .../windows__overlapped_ptr/release.html | 41 + .../windows__overlapped_ptr/reset.html | 64 + .../reset/overload1.html | 40 + .../reset/overload2.html | 47 + .../reset/overload3.html | 47 + .../windows__random_access_handle.html | 339 + .../reference/windows__stream_handle.html | 336 + .../doc/asio/reference/writable_pipe.html | 326 + 3party/asio/doc/asio/reference/write.html | 243 + .../doc/asio/reference/write/overload1.html | 128 + .../doc/asio/reference/write/overload10.html | 103 + .../doc/asio/reference/write/overload11.html | 122 + .../doc/asio/reference/write/overload12.html | 115 + .../doc/asio/reference/write/overload13.html | 112 + .../doc/asio/reference/write/overload14.html | 104 + .../doc/asio/reference/write/overload15.html | 123 + .../doc/asio/reference/write/overload16.html | 116 + .../doc/asio/reference/write/overload2.html | 120 + .../doc/asio/reference/write/overload3.html | 140 + .../doc/asio/reference/write/overload4.html | 118 + .../doc/asio/reference/write/overload5.html | 113 + .../doc/asio/reference/write/overload6.html | 105 + .../doc/asio/reference/write/overload7.html | 124 + .../doc/asio/reference/write/overload8.html | 117 + .../doc/asio/reference/write/overload9.html | 111 + 3party/asio/doc/asio/reference/write_at.html | 148 + .../asio/reference/write_at/overload1.html | 134 + .../asio/reference/write_at/overload2.html | 127 + .../asio/reference/write_at/overload3.html | 146 + .../asio/reference/write_at/overload4.html | 124 + .../asio/reference/write_at/overload5.html | 118 + .../asio/reference/write_at/overload6.html | 110 + .../asio/reference/write_at/overload7.html | 129 + .../asio/reference/write_at/overload8.html | 122 + .../doc/asio/reference/yield_context.html | 243 + 3party/asio/doc/asio/std_executors.html | 251 + 3party/asio/doc/asio/tutorial.html | 117 + 3party/asio/doc/asio/tutorial/boost_bind.html | 38 + .../asio/doc/asio/tutorial/tutdaytime1.html | 148 + .../doc/asio/tutorial/tutdaytime1/src.html | 96 + .../asio/doc/asio/tutorial/tutdaytime2.html | 116 + .../doc/asio/tutorial/tutdaytime2/src.html | 89 + .../asio/doc/asio/tutorial/tutdaytime3.html | 229 + .../doc/asio/tutorial/tutdaytime3/src.html | 158 + .../asio/doc/asio/tutorial/tutdaytime4.html | 124 + .../doc/asio/tutorial/tutdaytime4/src.html | 91 + .../asio/doc/asio/tutorial/tutdaytime5.html | 100 + .../doc/asio/tutorial/tutdaytime5/src.html | 92 + .../asio/doc/asio/tutorial/tutdaytime6.html | 179 + .../doc/asio/tutorial/tutdaytime6/src.html | 128 + .../asio/doc/asio/tutorial/tutdaytime7.html | 216 + .../doc/asio/tutorial/tutdaytime7/src.html | 199 + 3party/asio/doc/asio/tutorial/tuttimer1.html | 99 + .../asio/doc/asio/tutorial/tuttimer1/src.html | 63 + 3party/asio/doc/asio/tutorial/tuttimer2.html | 113 + .../asio/doc/asio/tutorial/tuttimer2/src.html | 68 + 3party/asio/doc/asio/tutorial/tuttimer3.html | 161 + .../asio/doc/asio/tutorial/tuttimer3/src.html | 82 + 3party/asio/doc/asio/tutorial/tuttimer4.html | 140 + .../asio/doc/asio/tutorial/tuttimer4/src.html | 93 + 3party/asio/doc/asio/tutorial/tuttimer5.html | 199 + .../asio/doc/asio/tutorial/tuttimer5/src.html | 119 + 3party/asio/doc/asio/using.html | 2424 ++++++ 3party/asio/doc/async_agent_chain.png | Bin 0 -> 110190 bytes 3party/asio/doc/async_agent_model.png | Bin 0 -> 170699 bytes 3party/asio/doc/async_child_agent_chain.png | Bin 0 -> 156939 bytes 3party/asio/doc/async_op1.png | Bin 0 -> 35992 bytes 3party/asio/doc/async_op2.png | Bin 0 -> 36247 bytes 3party/asio/doc/async_op_init_complete.png | Bin 0 -> 57136 bytes 3party/asio/doc/async_op_model.png | Bin 0 -> 59945 bytes 3party/asio/doc/async_op_phases.png | Bin 0 -> 105557 bytes 3party/asio/doc/async_op_trivial_chain.png | Bin 0 -> 57998 bytes 3party/asio/doc/blank.png | Bin 0 -> 374 bytes 3party/asio/doc/boostbook.css | 789 ++ 3party/asio/doc/caution.png | Bin 0 -> 1250 bytes 3party/asio/doc/completion_token_model.png | Bin 0 -> 145275 bytes .../asio/doc/completion_token_transform.png | Bin 0 -> 158291 bytes 3party/asio/doc/draft.png | Bin 0 -> 17454 bytes .../examples/diffs/allocation/server.cpp.html | 297 + .../diffs/buffers/reference_counted.cpp.html | 181 + .../examples/diffs/chat/chat_client.cpp.html | 238 + .../examples/diffs/chat/chat_message.hpp.html | 136 + .../examples/diffs/chat/chat_server.cpp.html | 303 + .../diffs/deferred/deferred_1.cpp.html | 39 + .../diffs/deferred/deferred_2.cpp.html | 39 + .../diffs/echo/async_tcp_echo_server.cpp.html | 181 + .../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 + .../diffs/files/async_file_copy.cpp.html | 39 + .../diffs/files/blocking_file_copy.cpp.html | 39 + .../doc/examples/diffs/fork/daemon.cpp.html | 237 + .../fork/process_per_connection.cpp.html | 230 + .../diffs/futures/daytime_client.cpp.html | 39 + .../async_tcp_echo_server.cpp.html | 39 + .../handler_tracking/custom_tracking.hpp.html | 39 + .../diffs/http/server/connection.cpp.html | 150 + .../diffs/http/server/connection.hpp.html | 128 + .../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 | 144 + .../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 | 201 + .../local/fd_passing_stream_client.cpp.html | 39 + .../local/fd_passing_stream_server.cpp.html | 39 + .../diffs/local/iostream_client.cpp.html | 102 + .../diffs/local/stream_client.cpp.html | 101 + .../diffs/local/stream_server.cpp.html | 188 + .../diffs/multicast/receiver.cpp.html | 138 + .../examples/diffs/multicast/sender.cpp.html | 147 + .../nonblocking/third_party_lib.cpp.html | 306 + .../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 + .../diffs/operations/composed_6.cpp.html | 39 + .../diffs/operations/composed_7.cpp.html | 39 + .../diffs/operations/composed_8.cpp.html | 39 + .../ranged_wait_for_all.cpp.html | 39 + .../parallel_group/wait_for_all.cpp.html | 39 + .../parallel_group/wait_for_one.cpp.html | 39 + .../wait_for_one_error.cpp.html | 39 + .../wait_for_one_success.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 | 210 + .../diffs/spawn/parallel_grep.cpp.html | 152 + .../doc/examples/diffs/ssl/client.cpp.html | 217 + .../doc/examples/diffs/ssl/server.cpp.html | 217 + .../diffs/timeouts/async_tcp_client.cpp.html | 353 + .../timeouts/blocking_tcp_client.cpp.html | 246 + .../blocking_token_tcp_client.cpp.html | 258 + .../timeouts/blocking_udp_client.cpp.html | 196 + .../examples/diffs/timeouts/server.cpp.html | 514 ++ .../diffs/timers/time_t_timer.cpp.html | 151 + .../diffs/type_erasure/line_reader.hpp.html | 39 + .../examples/diffs/type_erasure/main.cpp.html | 39 + .../diffs/type_erasure/sleep.cpp.html | 39 + .../diffs/type_erasure/sleep.hpp.html | 39 + .../type_erasure/stdin_line_reader.cpp.html | 39 + .../type_erasure/stdin_line_reader.hpp.html | 39 + 3party/asio/doc/higher_level_model.png | Bin 0 -> 291487 bytes 3party/asio/doc/home.png | Bin 0 -> 358 bytes 3party/asio/doc/important.png | Bin 0 -> 722 bytes 3party/asio/doc/index.html | 84 + 3party/asio/doc/next.png | Bin 0 -> 336 bytes 3party/asio/doc/next_disabled.png | Bin 0 -> 1110 bytes 3party/asio/doc/note.png | Bin 0 -> 490 bytes 3party/asio/doc/prev.png | Bin 0 -> 334 bytes 3party/asio/doc/prev_disabled.png | Bin 0 -> 1109 bytes 3party/asio/doc/proactor.png | Bin 0 -> 30877 bytes 3party/asio/doc/sync_op.png | Bin 0 -> 30701 bytes 3party/asio/doc/tip.png | Bin 0 -> 449 bytes 3party/asio/doc/up.png | Bin 0 -> 370 bytes 3party/asio/doc/up_disabled.png | Bin 0 -> 1115 bytes 3party/asio/doc/warning.png | Bin 0 -> 1241 bytes 3party/asio/include/Makefile.am | 678 ++ 3party/asio/include/Makefile.in | 1216 +++ 3party/asio/include/asio.hpp | 216 + .../include/asio/any_completion_executor.hpp | 342 + .../include/asio/any_completion_handler.hpp | 762 ++ 3party/asio/include/asio/any_io_executor.hpp | 359 + 3party/asio/include/asio/append.hpp | 78 + 3party/asio/include/asio/as_tuple.hpp | 139 + .../include/asio/associated_allocator.hpp | 233 + .../asio/associated_cancellation_slot.hpp | 238 + .../asio/include/asio/associated_executor.hpp | 253 + .../asio/associated_immediate_executor.hpp | 297 + 3party/asio/include/asio/associator.hpp | 35 + 3party/asio/include/asio/async_result.hpp | 1671 ++++ 3party/asio/include/asio/awaitable.hpp | 142 + .../include/asio/basic_datagram_socket.hpp | 1396 +++ .../include/asio/basic_deadline_timer.hpp | 715 ++ 3party/asio/include/asio/basic_file.hpp | 829 ++ 3party/asio/include/asio/basic_io_object.hpp | 290 + .../include/asio/basic_random_access_file.hpp | 701 ++ 3party/asio/include/asio/basic_raw_socket.hpp | 1387 +++ .../asio/include/asio/basic_readable_pipe.hpp | 635 ++ .../include/asio/basic_seq_packet_socket.hpp | 835 ++ .../asio/include/asio/basic_serial_port.hpp | 1000 +++ 3party/asio/include/asio/basic_signal_set.hpp | 651 ++ 3party/asio/include/asio/basic_socket.hpp | 1947 +++++ .../include/asio/basic_socket_acceptor.hpp | 2755 ++++++ .../include/asio/basic_socket_iostream.hpp | 407 + .../include/asio/basic_socket_streambuf.hpp | 687 ++ .../asio/include/asio/basic_stream_file.hpp | 754 ++ .../asio/include/asio/basic_stream_socket.hpp | 1189 +++ 3party/asio/include/asio/basic_streambuf.hpp | 452 + .../asio/include/asio/basic_streambuf_fwd.hpp | 36 + .../include/asio/basic_waitable_timer.hpp | 833 ++ .../asio/include/asio/basic_writable_pipe.hpp | 631 ++ 3party/asio/include/asio/bind_allocator.hpp | 733 ++ .../include/asio/bind_cancellation_slot.hpp | 736 ++ 3party/asio/include/asio/bind_executor.hpp | 781 ++ .../include/asio/bind_immediate_executor.hpp | 736 ++ 3party/asio/include/asio/buffer.hpp | 2909 +++++++ .../asio/include/asio/buffer_registration.hpp | 328 + .../include/asio/buffered_read_stream.hpp | 286 + .../include/asio/buffered_read_stream_fwd.hpp | 25 + 3party/asio/include/asio/buffered_stream.hpp | 308 + .../asio/include/asio/buffered_stream_fwd.hpp | 25 + .../include/asio/buffered_write_stream.hpp | 278 + .../asio/buffered_write_stream_fwd.hpp | 25 + 3party/asio/include/asio/buffers_iterator.hpp | 521 ++ .../asio/include/asio/cancellation_signal.hpp | 305 + .../asio/include/asio/cancellation_state.hpp | 235 + .../asio/include/asio/cancellation_type.hpp | 174 + 3party/asio/include/asio/co_spawn.hpp | 523 ++ .../include/asio/completion_condition.hpp | 218 + 3party/asio/include/asio/compose.hpp | 531 ++ 3party/asio/include/asio/connect.hpp | 1207 +++ 3party/asio/include/asio/connect_pipe.hpp | 83 + 3party/asio/include/asio/consign.hpp | 88 + 3party/asio/include/asio/coroutine.hpp | 328 + 3party/asio/include/asio/deadline_timer.hpp | 38 + 3party/asio/include/asio/defer.hpp | 222 + 3party/asio/include/asio/deferred.hpp | 802 ++ 3party/asio/include/asio/detached.hpp | 113 + 3party/asio/include/asio/detail/array.hpp | 38 + 3party/asio/include/asio/detail/array_fwd.hpp | 34 + 3party/asio/include/asio/detail/assert.hpp | 32 + .../asio/include/asio/detail/atomic_count.hpp | 67 + .../detail/base_from_cancellation_state.hpp | 163 + .../asio/detail/base_from_completion_cond.hpp | 69 + .../asio/include/asio/detail/bind_handler.hpp | 1145 +++ .../asio/detail/blocking_executor_op.hpp | 108 + .../asio/detail/buffer_resize_guard.hpp | 66 + .../asio/detail/buffer_sequence_adapter.hpp | 841 ++ .../asio/detail/buffered_stream_storage.hpp | 126 + .../include/asio/detail/bulk_executor_op.hpp | 89 + .../asio/include/asio/detail/call_stack.hpp | 125 + 3party/asio/include/asio/detail/chrono.hpp | 66 + .../asio/detail/chrono_time_traits.hpp | 190 + .../asio/detail/completion_handler.hpp | 88 + .../include/asio/detail/composed_work.hpp | 328 + .../include/asio/detail/concurrency_hint.hpp | 94 + .../detail/conditionally_enabled_event.hpp | 120 + .../detail/conditionally_enabled_mutex.hpp | 149 + 3party/asio/include/asio/detail/config.hpp | 2309 +++++ .../include/asio/detail/consuming_buffers.hpp | 451 + 3party/asio/include/asio/detail/cstddef.hpp | 31 + 3party/asio/include/asio/detail/cstdint.hpp | 62 + .../include/asio/detail/date_time_fwd.hpp | 34 + .../asio/detail/deadline_timer_service.hpp | 335 + .../include/asio/detail/dependent_type.hpp | 36 + .../include/asio/detail/descriptor_ops.hpp | 179 + .../asio/detail/descriptor_read_op.hpp | 188 + .../asio/detail/descriptor_write_op.hpp | 187 + .../include/asio/detail/dev_poll_reactor.hpp | 248 + .../include/asio/detail/epoll_reactor.hpp | 295 + 3party/asio/include/asio/detail/event.hpp | 48 + .../detail/eventfd_select_interrupter.hpp | 83 + 3party/asio/include/asio/detail/exception.hpp | 40 + .../include/asio/detail/executor_function.hpp | 204 + .../asio/include/asio/detail/executor_op.hpp | 85 + .../include/asio/detail/fd_set_adapter.hpp | 39 + .../asio/include/asio/detail/fenced_block.hpp | 80 + .../asio/include/asio/detail/functional.hpp | 44 + 3party/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 + 3party/asio/include/asio/detail/global.hpp | 52 + .../asio/detail/handler_alloc_helpers.hpp | 288 + .../asio/detail/handler_cont_helpers.hpp | 45 + .../asio/detail/handler_invoke_helpers.hpp | 80 + .../include/asio/detail/handler_tracking.hpp | 264 + .../asio/detail/handler_type_requirements.hpp | 559 ++ .../asio/include/asio/detail/handler_work.hpp | 565 ++ 3party/asio/include/asio/detail/hash_map.hpp | 331 + .../detail/impl/buffer_sequence_adapter.ipp | 118 + .../asio/detail/impl/descriptor_ops.ipp | 970 +++ .../asio/detail/impl/dev_poll_reactor.hpp | 111 + .../asio/detail/impl/dev_poll_reactor.ipp | 469 + .../asio/detail/impl/epoll_reactor.hpp | 109 + .../asio/detail/impl/epoll_reactor.ipp | 826 ++ .../impl/eventfd_select_interrupter.ipp | 171 + .../asio/detail/impl/handler_tracking.ipp | 398 + .../impl/io_uring_descriptor_service.ipp | 205 + .../detail/impl/io_uring_file_service.ipp | 140 + .../asio/detail/impl/io_uring_service.hpp | 112 + .../asio/detail/impl/io_uring_service.ipp | 909 ++ .../impl/io_uring_socket_service_base.ipp | 249 + .../asio/detail/impl/kqueue_reactor.hpp | 113 + .../asio/detail/impl/kqueue_reactor.ipp | 608 ++ .../include/asio/detail/impl/null_event.ipp | 74 + .../detail/impl/pipe_select_interrupter.ipp | 129 + .../include/asio/detail/impl/posix_event.ipp | 63 + .../include/asio/detail/impl/posix_mutex.ipp | 46 + .../detail/impl/posix_serial_port_service.ipp | 168 + .../include/asio/detail/impl/posix_thread.ipp | 84 + .../asio/detail/impl/posix_tss_ptr.ipp | 46 + .../impl/reactive_descriptor_service.ipp | 230 + .../impl/reactive_socket_service_base.ipp | 310 + .../detail/impl/resolver_service_base.ipp | 158 + .../include/asio/detail/impl/scheduler.ipp | 675 ++ .../asio/detail/impl/select_reactor.hpp | 124 + .../asio/detail/impl/select_reactor.ipp | 400 + .../asio/detail/impl/service_registry.hpp | 94 + .../asio/detail/impl/service_registry.ipp | 197 + .../asio/detail/impl/signal_set_service.ipp | 824 ++ .../include/asio/detail/impl/socket_ops.ipp | 3977 +++++++++ .../detail/impl/socket_select_interrupter.ipp | 185 + .../detail/impl/strand_executor_service.hpp | 367 + .../detail/impl/strand_executor_service.ipp | 158 + .../asio/detail/impl/strand_service.hpp | 87 + .../asio/detail/impl/strand_service.ipp | 202 + .../asio/detail/impl/thread_context.ipp | 35 + .../include/asio/detail/impl/throw_error.ipp | 70 + .../asio/detail/impl/timer_queue_ptime.ipp | 97 + .../asio/detail/impl/timer_queue_set.ipp | 101 + .../include/asio/detail/impl/win_event.ipp | 76 + .../detail/impl/win_iocp_file_service.ipp | 265 + .../detail/impl/win_iocp_handle_service.ipp | 619 ++ .../asio/detail/impl/win_iocp_io_context.hpp | 120 + .../asio/detail/impl/win_iocp_io_context.ipp | 615 ++ .../impl/win_iocp_serial_port_service.ipp | 200 + .../impl/win_iocp_socket_service_base.ipp | 821 ++ .../include/asio/detail/impl/win_mutex.ipp | 84 + .../detail/impl/win_object_handle_service.ipp | 452 + .../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 | 626 ++ .../detail/impl/winrt_timer_scheduler.hpp | 92 + .../detail/impl/winrt_timer_scheduler.ipp | 121 + .../include/asio/detail/impl/winsock_init.ipp | 82 + .../include/asio/detail/initiate_defer.hpp | 252 + .../include/asio/detail/initiate_dispatch.hpp | 229 + .../include/asio/detail/initiate_post.hpp | 252 + .../asio/include/asio/detail/io_control.hpp | 84 + .../include/asio/detail/io_object_impl.hpp | 181 + .../detail/io_uring_descriptor_read_at_op.hpp | 195 + .../detail/io_uring_descriptor_read_op.hpp | 190 + .../detail/io_uring_descriptor_service.hpp | 687 ++ .../io_uring_descriptor_write_at_op.hpp | 189 + .../detail/io_uring_descriptor_write_op.hpp | 185 + .../asio/detail/io_uring_file_service.hpp | 261 + .../asio/detail/io_uring_null_buffers_op.hpp | 115 + .../asio/detail/io_uring_operation.hpp | 84 + .../include/asio/detail/io_uring_service.hpp | 319 + .../asio/detail/io_uring_socket_accept_op.hpp | 285 + .../detail/io_uring_socket_connect_op.hpp | 141 + .../asio/detail/io_uring_socket_recv_op.hpp | 205 + .../detail/io_uring_socket_recvfrom_op.hpp | 206 + .../detail/io_uring_socket_recvmsg_op.hpp | 192 + .../asio/detail/io_uring_socket_send_op.hpp | 191 + .../asio/detail/io_uring_socket_sendto_op.hpp | 194 + .../asio/detail/io_uring_socket_service.hpp | 631 ++ .../detail/io_uring_socket_service_base.hpp | 663 ++ .../include/asio/detail/io_uring_wait_op.hpp | 113 + .../asio/detail/is_buffer_sequence.hpp | 338 + .../asio/include/asio/detail/is_executor.hpp | 126 + .../include/asio/detail/keyword_tss_ptr.hpp | 70 + .../include/asio/detail/kqueue_reactor.hpp | 271 + 3party/asio/include/asio/detail/limits.hpp | 26 + .../asio/detail/local_free_on_block_exit.hpp | 59 + .../asio/detail/macos_fenced_block.hpp | 62 + 3party/asio/include/asio/detail/memory.hpp | 167 + 3party/asio/include/asio/detail/mutex.hpp | 48 + .../include/asio/detail/non_const_lvalue.hpp | 54 + .../asio/include/asio/detail/noncopyable.hpp | 43 + .../asio/include/asio/detail/null_event.hpp | 106 + .../include/asio/detail/null_fenced_block.hpp | 47 + .../asio/include/asio/detail/null_global.hpp | 59 + .../asio/include/asio/detail/null_mutex.hpp | 60 + .../asio/include/asio/detail/null_reactor.hpp | 83 + .../asio/detail/null_signal_blocker.hpp | 69 + .../asio/detail/null_socket_service.hpp | 519 ++ .../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 + 3party/asio/include/asio/detail/op_queue.hpp | 162 + 3party/asio/include/asio/detail/operation.hpp | 38 + .../asio/detail/pipe_select_interrupter.hpp | 89 + .../asio/include/asio/detail/pop_options.hpp | 157 + .../asio/include/asio/detail/posix_event.hpp | 175 + .../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_serial_port_service.hpp | 249 + .../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 | 228 + .../detail/reactive_descriptor_service.hpp | 566 ++ .../asio/detail/reactive_null_buffers_op.hpp | 132 + .../asio/detail/reactive_socket_accept_op.hpp | 328 + .../detail/reactive_socket_connect_op.hpp | 163 + .../asio/detail/reactive_socket_recv_op.hpp | 198 + .../detail/reactive_socket_recvfrom_op.hpp | 204 + .../detail/reactive_socket_recvmsg_op.hpp | 185 + .../asio/detail/reactive_socket_send_op.hpp | 202 + .../asio/detail/reactive_socket_sendto_op.hpp | 195 + .../asio/detail/reactive_socket_service.hpp | 635 ++ .../detail/reactive_socket_service_base.hpp | 750 ++ .../include/asio/detail/reactive_wait_op.hpp | 132 + 3party/asio/include/asio/detail/reactor.hpp | 54 + .../asio/include/asio/detail/reactor_op.hpp | 71 + .../include/asio/detail/reactor_op_queue.hpp | 212 + .../asio/detail/recycling_allocator.hpp | 105 + 3party/asio/include/asio/detail/regex_fwd.hpp | 44 + .../asio/detail/resolve_endpoint_op.hpp | 141 + .../asio/include/asio/detail/resolve_op.hpp | 45 + .../include/asio/detail/resolve_query_op.hpp | 151 + .../include/asio/detail/resolver_service.hpp | 147 + .../asio/detail/resolver_service_base.hpp | 158 + 3party/asio/include/asio/detail/scheduler.hpp | 241 + .../asio/detail/scheduler_operation.hpp | 78 + .../include/asio/detail/scheduler_task.hpp | 49 + .../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 | 291 + .../include/asio/detail/service_registry.hpp | 164 + .../include/asio/detail/signal_blocker.hpp | 44 + .../include/asio/detail/signal_handler.hpp | 90 + .../asio/include/asio/detail/signal_init.hpp | 47 + 3party/asio/include/asio/detail/signal_op.hpp | 53 + .../asio/detail/signal_set_service.hpp | 292 + .../include/asio/detail/socket_holder.hpp | 98 + .../asio/include/asio/detail/socket_ops.hpp | 375 + .../include/asio/detail/socket_option.hpp | 316 + .../asio/detail/socket_select_interrupter.hpp | 91 + .../asio/include/asio/detail/socket_types.hpp | 427 + .../asio/detail/solaris_fenced_block.hpp | 62 + .../include/asio/detail/source_location.hpp | 45 + .../asio/include/asio/detail/static_mutex.hpp | 52 + 3party/asio/include/asio/detail/std_event.hpp | 188 + .../include/asio/detail/std_fenced_block.hpp | 62 + .../asio/include/asio/detail/std_global.hpp | 70 + 3party/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 | 173 + .../include/asio/detail/strand_service.hpp | 144 + .../asio/include/asio/detail/string_view.hpp | 47 + 3party/asio/include/asio/detail/thread.hpp | 60 + .../include/asio/detail/thread_context.hpp | 51 + .../asio/include/asio/detail/thread_group.hpp | 99 + .../include/asio/detail/thread_info_base.hpp | 260 + .../asio/include/asio/detail/throw_error.hpp | 62 + .../include/asio/detail/throw_exception.hpp | 55 + .../asio/include/asio/detail/timer_queue.hpp | 389 + .../include/asio/detail/timer_queue_base.hpp | 68 + .../include/asio/detail/timer_queue_ptime.hpp | 103 + .../include/asio/detail/timer_queue_set.hpp | 66 + .../include/asio/detail/timer_scheduler.hpp | 37 + .../asio/detail/timer_scheduler_fwd.hpp | 42 + 3party/asio/include/asio/detail/tss_ptr.hpp | 69 + .../asio/include/asio/detail/type_traits.hpp | 164 + 3party/asio/include/asio/detail/utility.hpp | 83 + .../asio/detail/variadic_templates.hpp | 294 + .../asio/include/asio/detail/wait_handler.hpp | 90 + 3party/asio/include/asio/detail/wait_op.hpp | 49 + 3party/asio/include/asio/detail/win_event.hpp | 164 + .../asio/detail/win_fd_set_adapter.hpp | 149 + .../include/asio/detail/win_fenced_block.hpp | 90 + .../asio/include/asio/detail/win_global.hpp | 71 + .../asio/detail/win_iocp_file_service.hpp | 287 + .../asio/detail/win_iocp_handle_read_op.hpp | 120 + .../asio/detail/win_iocp_handle_service.hpp | 431 + .../asio/detail/win_iocp_handle_write_op.hpp | 115 + .../asio/detail/win_iocp_io_context.hpp | 347 + .../asio/detail/win_iocp_null_buffers_op.hpp | 130 + .../asio/detail/win_iocp_operation.hpp | 96 + .../asio/detail/win_iocp_overlapped_op.hpp | 101 + .../asio/detail/win_iocp_overlapped_ptr.hpp | 171 + .../detail/win_iocp_serial_port_service.hpp | 233 + .../asio/detail/win_iocp_socket_accept_op.hpp | 344 + .../detail/win_iocp_socket_connect_op.hpp | 139 + .../asio/detail/win_iocp_socket_recv_op.hpp | 127 + .../detail/win_iocp_socket_recvfrom_op.hpp | 136 + .../detail/win_iocp_socket_recvmsg_op.hpp | 128 + .../asio/detail/win_iocp_socket_send_op.hpp | 121 + .../asio/detail/win_iocp_socket_service.hpp | 683 ++ .../detail/win_iocp_socket_service_base.hpp | 830 ++ .../asio/detail/win_iocp_thread_info.hpp | 34 + .../include/asio/detail/win_iocp_wait_op.hpp | 131 + 3party/asio/include/asio/detail/win_mutex.hpp | 78 + .../asio/detail/win_object_handle_service.hpp | 195 + .../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 | 305 + .../include/asio/detail/winrt_async_op.hpp | 65 + .../include/asio/detail/winrt_resolve_op.hpp | 126 + .../asio/detail/winrt_resolver_service.hpp | 212 + .../asio/detail/winrt_socket_connect_op.hpp | 99 + .../asio/detail/winrt_socket_recv_op.hpp | 120 + .../asio/detail/winrt_socket_send_op.hpp | 111 + .../asio/detail/winrt_ssocket_service.hpp | 250 + .../detail/winrt_ssocket_service_base.hpp | 362 + .../asio/detail/winrt_timer_scheduler.hpp | 147 + .../asio/include/asio/detail/winrt_utils.hpp | 106 + .../asio/include/asio/detail/winsock_init.hpp | 128 + .../include/asio/detail/work_dispatcher.hpp | 157 + .../include/asio/detail/wrapped_handler.hpp | 327 + 3party/asio/include/asio/dispatch.hpp | 202 + 3party/asio/include/asio/error.hpp | 391 + 3party/asio/include/asio/error_code.hpp | 202 + 3party/asio/include/asio/execution.hpp | 48 + .../asio/include/asio/execution/allocator.hpp | 356 + .../include/asio/execution/any_executor.hpp | 2663 ++++++ .../include/asio/execution/bad_executor.hpp | 47 + .../asio/include/asio/execution/blocking.hpp | 1600 ++++ .../asio/execution/blocking_adaptation.hpp | 1257 +++ .../include/asio/execution/bulk_execute.hpp | 402 + .../include/asio/execution/bulk_guarantee.hpp | 1252 +++ .../asio/include/asio/execution/connect.hpp | 494 ++ .../asio/include/asio/execution/context.hpp | 244 + .../include/asio/execution/context_as.hpp | 232 + .../asio/execution/detail/as_invocable.hpp | 152 + .../asio/execution/detail/as_operation.hpp | 109 + .../asio/execution/detail/as_receiver.hpp | 128 + .../asio/execution/detail/bulk_sender.hpp | 261 + .../asio/execution/detail/submit_receiver.hpp | 233 + .../asio/execution/detail/void_receiver.hpp | 90 + .../asio/include/asio/execution/execute.hpp | 290 + .../asio/include/asio/execution/executor.hpp | 262 + .../asio/execution/impl/bad_executor.ipp | 40 + .../impl/receiver_invocation_error.ipp | 36 + .../asio/execution/invocable_archetype.hpp | 71 + .../asio/include/asio/execution/mapping.hpp | 1160 +++ .../asio/include/asio/execution/occupancy.hpp | 237 + .../asio/execution/operation_state.hpp | 99 + .../asio/execution/outstanding_work.hpp | 900 ++ .../include/asio/execution/prefer_only.hpp | 331 + .../asio/include/asio/execution/receiver.hpp | 285 + .../execution/receiver_invocation_error.hpp | 48 + .../include/asio/execution/relationship.hpp | 898 ++ .../asio/include/asio/execution/schedule.hpp | 292 + .../asio/include/asio/execution/scheduler.hpp | 91 + 3party/asio/include/asio/execution/sender.hpp | 316 + .../asio/include/asio/execution/set_done.hpp | 255 + .../asio/include/asio/execution/set_error.hpp | 255 + .../asio/include/asio/execution/set_value.hpp | 488 ++ 3party/asio/include/asio/execution/start.hpp | 252 + 3party/asio/include/asio/execution/submit.hpp | 455 + .../asio/include/asio/execution_context.hpp | 412 + 3party/asio/include/asio/executor.hpp | 347 + .../asio/include/asio/executor_work_guard.hpp | 367 + .../asio/include/asio/experimental/append.hpp | 36 + .../include/asio/experimental/as_single.hpp | 136 + .../include/asio/experimental/as_tuple.hpp | 36 + .../asio/experimental/awaitable_operators.hpp | 536 ++ .../asio/experimental/basic_channel.hpp | 491 ++ .../experimental/basic_concurrent_channel.hpp | 491 ++ .../experimental/cancellation_condition.hpp | 155 + .../include/asio/experimental/channel.hpp | 70 + .../asio/experimental/channel_error.hpp | 84 + .../asio/experimental/channel_traits.hpp | 301 + .../include/asio/experimental/co_composed.hpp | 144 + .../include/asio/experimental/co_spawn.hpp | 187 + .../asio/experimental/concurrent_channel.hpp | 70 + .../asio/include/asio/experimental/coro.hpp | 293 + .../include/asio/experimental/coro_traits.hpp | 228 + .../include/asio/experimental/deferred.hpp | 36 + .../experimental/detail/channel_handler.hpp | 80 + .../experimental/detail/channel_message.hpp | 129 + .../experimental/detail/channel_operation.hpp | 284 + .../experimental/detail/channel_payload.hpp | 139 + .../detail/channel_receive_op.hpp | 120 + .../detail/channel_send_functions.hpp | 144 + .../experimental/detail/channel_send_op.hpp | 148 + .../experimental/detail/channel_service.hpp | 677 ++ .../detail/coro_completion_handler.hpp | 169 + .../detail/coro_promise_allocator.hpp | 141 + .../experimental/detail/has_signature.hpp | 54 + .../detail/impl/channel_service.hpp | 612 ++ .../experimental/detail/partial_promise.hpp | 197 + .../asio/experimental/impl/as_single.hpp | 239 + .../asio/experimental/impl/channel_error.ipp | 61 + .../asio/experimental/impl/co_composed.hpp | 1175 +++ .../include/asio/experimental/impl/coro.hpp | 1222 +++ .../asio/experimental/impl/parallel_group.hpp | 792 ++ .../asio/experimental/impl/promise.hpp | 254 + .../asio/experimental/impl/use_coro.hpp | 214 + .../asio/experimental/impl/use_promise.hpp | 66 + .../asio/experimental/parallel_group.hpp | 461 + .../include/asio/experimental/prepend.hpp | 36 + .../include/asio/experimental/promise.hpp | 224 + .../include/asio/experimental/use_coro.hpp | 195 + .../include/asio/experimental/use_promise.hpp | 111 + 3party/asio/include/asio/file_base.hpp | 166 + .../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 | 104 + .../asio/handler_continuation_hook.hpp | 54 + .../asio/include/asio/handler_invoke_hook.hpp | 111 + .../include/asio/high_resolution_timer.hpp | 44 + .../asio/impl/any_completion_executor.ipp | 130 + .../include/asio/impl/any_io_executor.ipp | 141 + 3party/asio/include/asio/impl/append.hpp | 225 + 3party/asio/include/asio/impl/as_tuple.hpp | 320 + 3party/asio/include/asio/impl/awaitable.hpp | 1195 +++ .../asio/impl/buffered_read_stream.hpp | 527 ++ .../asio/impl/buffered_write_stream.hpp | 507 ++ .../include/asio/impl/cancellation_signal.ipp | 96 + 3party/asio/include/asio/impl/co_spawn.hpp | 399 + 3party/asio/include/asio/impl/connect.hpp | 959 +++ .../asio/include/asio/impl/connect_pipe.hpp | 73 + .../asio/include/asio/impl/connect_pipe.ipp | 149 + 3party/asio/include/asio/impl/consign.hpp | 202 + 3party/asio/include/asio/impl/deferred.hpp | 156 + 3party/asio/include/asio/impl/detached.hpp | 130 + 3party/asio/include/asio/impl/error.ipp | 128 + 3party/asio/include/asio/impl/error_code.ipp | 206 + .../include/asio/impl/execution_context.hpp | 109 + .../include/asio/impl/execution_context.ipp | 82 + 3party/asio/include/asio/impl/executor.hpp | 300 + 3party/asio/include/asio/impl/executor.ipp | 43 + .../include/asio/impl/handler_alloc_hook.ipp | 62 + 3party/asio/include/asio/impl/io_context.hpp | 450 + 3party/asio/include/asio/impl/io_context.ipp | 176 + .../include/asio/impl/multiple_exceptions.ipp | 49 + 3party/asio/include/asio/impl/prepend.hpp | 225 + 3party/asio/include/asio/impl/read.hpp | 1276 +++ 3party/asio/include/asio/impl/read_at.hpp | 774 ++ 3party/asio/include/asio/impl/read_until.hpp | 3455 ++++++++ .../asio/include/asio/impl/redirect_error.hpp | 634 ++ .../include/asio/impl/serial_port_base.hpp | 59 + .../include/asio/impl/serial_port_base.ipp | 554 ++ 3party/asio/include/asio/impl/spawn.hpp | 1616 ++++ 3party/asio/include/asio/impl/src.hpp | 96 + .../asio/include/asio/impl/system_context.hpp | 34 + .../asio/include/asio/impl/system_context.ipp | 92 + .../include/asio/impl/system_executor.hpp | 185 + 3party/asio/include/asio/impl/thread_pool.hpp | 354 + 3party/asio/include/asio/impl/thread_pool.ipp | 142 + .../asio/include/asio/impl/use_awaitable.hpp | 301 + 3party/asio/include/asio/impl/use_future.hpp | 1053 +++ 3party/asio/include/asio/impl/write.hpp | 1153 +++ 3party/asio/include/asio/impl/write_at.hpp | 687 ++ 3party/asio/include/asio/io_context.hpp | 1534 ++++ .../asio/include/asio/io_context_strand.hpp | 388 + 3party/asio/include/asio/io_service.hpp | 33 + .../asio/include/asio/io_service_strand.hpp | 20 + 3party/asio/include/asio/ip/address.hpp | 290 + 3party/asio/include/asio/ip/address_v4.hpp | 430 + .../include/asio/ip/address_v4_iterator.hpp | 162 + .../asio/include/asio/ip/address_v4_range.hpp | 134 + 3party/asio/include/asio/ip/address_v6.hpp | 416 + .../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 | 291 + .../asio/include/asio/ip/basic_resolver.hpp | 1142 +++ .../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 | 141 + .../include/asio/ip/detail/impl/endpoint.ipp | 199 + .../include/asio/ip/detail/socket_option.hpp | 566 ++ 3party/asio/include/asio/ip/host_name.hpp | 42 + 3party/asio/include/asio/ip/icmp.hpp | 115 + 3party/asio/include/asio/ip/impl/address.hpp | 67 + 3party/asio/include/asio/ip/impl/address.ipp | 239 + .../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 | 218 + .../asio/include/asio/ip/impl/network_v6.hpp | 53 + .../asio/include/asio/ip/impl/network_v6.ipp | 187 + 3party/asio/include/asio/ip/multicast.hpp | 191 + 3party/asio/include/asio/ip/network_v4.hpp | 261 + 3party/asio/include/asio/ip/network_v6.hpp | 235 + 3party/asio/include/asio/ip/resolver_base.hpp | 129 + .../include/asio/ip/resolver_query_base.hpp | 43 + 3party/asio/include/asio/ip/tcp.hpp | 155 + 3party/asio/include/asio/ip/udp.hpp | 111 + 3party/asio/include/asio/ip/unicast.hpp | 70 + 3party/asio/include/asio/ip/v6_only.hpp | 69 + .../include/asio/is_applicable_property.hpp | 61 + .../include/asio/is_contiguous_iterator.hpp | 45 + 3party/asio/include/asio/is_executor.hpp | 46 + 3party/asio/include/asio/is_read_buffered.hpp | 59 + .../asio/include/asio/is_write_buffered.hpp | 59 + .../include/asio/local/basic_endpoint.hpp | 247 + .../asio/include/asio/local/connect_pair.hpp | 101 + .../include/asio/local/datagram_protocol.hpp | 80 + .../include/asio/local/detail/endpoint.hpp | 139 + .../asio/local/detail/impl/endpoint.ipp | 131 + .../asio/local/seq_packet_protocol.hpp | 84 + .../include/asio/local/stream_protocol.hpp | 90 + .../asio/include/asio/multiple_exceptions.hpp | 58 + 3party/asio/include/asio/packaged_task.hpp | 126 + 3party/asio/include/asio/placeholders.hpp | 151 + .../include/asio/posix/basic_descriptor.hpp | 781 ++ .../asio/posix/basic_stream_descriptor.hpp | 569 ++ 3party/asio/include/asio/posix/descriptor.hpp | 37 + .../include/asio/posix/descriptor_base.hpp | 90 + .../include/asio/posix/stream_descriptor.hpp | 37 + 3party/asio/include/asio/post.hpp | 218 + 3party/asio/include/asio/prefer.hpp | 734 ++ 3party/asio/include/asio/prepend.hpp | 78 + 3party/asio/include/asio/query.hpp | 324 + .../asio/include/asio/random_access_file.hpp | 35 + 3party/asio/include/asio/read.hpp | 1480 ++++ 3party/asio/include/asio/read_at.hpp | 795 ++ 3party/asio/include/asio/read_until.hpp | 3166 +++++++ 3party/asio/include/asio/readable_pipe.hpp | 35 + .../asio/include/asio/recycling_allocator.hpp | 138 + 3party/asio/include/asio/redirect_error.hpp | 66 + .../asio/include/asio/registered_buffer.hpp | 356 + 3party/asio/include/asio/require.hpp | 571 ++ 3party/asio/include/asio/require_concept.hpp | 352 + 3party/asio/include/asio/serial_port.hpp | 36 + 3party/asio/include/asio/serial_port_base.hpp | 167 + 3party/asio/include/asio/signal_set.hpp | 28 + 3party/asio/include/asio/signal_set_base.hpp | 182 + 3party/asio/include/asio/socket_base.hpp | 559 ++ 3party/asio/include/asio/spawn.hpp | 906 ++ 3party/asio/include/asio/ssl.hpp | 28 + 3party/asio/include/asio/ssl/context.hpp | 764 ++ 3party/asio/include/asio/ssl/context_base.hpp | 209 + .../asio/ssl/detail/buffered_handshake_op.hpp | 119 + .../asio/include/asio/ssl/detail/engine.hpp | 173 + .../include/asio/ssl/detail/handshake_op.hpp | 67 + .../include/asio/ssl/detail/impl/engine.ipp | 381 + .../asio/ssl/detail/impl/openssl_init.ipp | 169 + 3party/asio/include/asio/ssl/detail/io.hpp | 435 + .../include/asio/ssl/detail/openssl_init.hpp | 101 + .../include/asio/ssl/detail/openssl_types.hpp | 34 + .../asio/ssl/detail/password_callback.hpp | 66 + .../asio/include/asio/ssl/detail/read_op.hpp | 72 + .../include/asio/ssl/detail/shutdown_op.hpp | 69 + .../include/asio/ssl/detail/stream_core.hpp | 221 + .../asio/ssl/detail/verify_callback.hpp | 62 + .../asio/include/asio/ssl/detail/write_op.hpp | 76 + 3party/asio/include/asio/ssl/error.hpp | 125 + .../asio/ssl/host_name_verification.hpp | 90 + 3party/asio/include/asio/ssl/impl/context.hpp | 67 + 3party/asio/include/asio/ssl/impl/context.ipp | 1321 +++ 3party/asio/include/asio/ssl/impl/error.ipp | 124 + .../asio/ssl/impl/host_name_verification.ipp | 73 + .../asio/ssl/impl/rfc2818_verification.ipp | 164 + 3party/asio/include/asio/ssl/impl/src.hpp | 29 + .../include/asio/ssl/rfc2818_verification.hpp | 98 + 3party/asio/include/asio/ssl/stream.hpp | 1073 +++ 3party/asio/include/asio/ssl/stream_base.hpp | 52 + .../asio/include/asio/ssl/verify_context.hpp | 67 + 3party/asio/include/asio/ssl/verify_mode.hpp | 63 + .../asio/include/asio/static_thread_pool.hpp | 31 + 3party/asio/include/asio/steady_timer.hpp | 42 + 3party/asio/include/asio/strand.hpp | 584 ++ 3party/asio/include/asio/stream_file.hpp | 35 + 3party/asio/include/asio/streambuf.hpp | 33 + 3party/asio/include/asio/system_context.hpp | 90 + 3party/asio/include/asio/system_error.hpp | 131 + 3party/asio/include/asio/system_executor.hpp | 671 ++ 3party/asio/include/asio/system_timer.hpp | 42 + 3party/asio/include/asio/this_coro.hpp | 280 + 3party/asio/include/asio/thread.hpp | 92 + 3party/asio/include/asio/thread_pool.hpp | 1145 +++ 3party/asio/include/asio/time_traits.hpp | 86 + .../include/asio/traits/bulk_execute_free.hpp | 114 + .../asio/traits/bulk_execute_member.hpp | 114 + .../asio/include/asio/traits/connect_free.hpp | 112 + .../include/asio/traits/connect_member.hpp | 112 + .../asio/traits/equality_comparable.hpp | 104 + .../asio/include/asio/traits/execute_free.hpp | 108 + .../include/asio/traits/execute_member.hpp | 108 + .../asio/include/asio/traits/prefer_free.hpp | 108 + .../include/asio/traits/prefer_member.hpp | 108 + .../asio/include/asio/traits/query_free.hpp | 108 + .../asio/include/asio/traits/query_member.hpp | 108 + .../traits/query_static_constexpr_member.hpp | 108 + .../asio/traits/require_concept_free.hpp | 108 + .../asio/traits/require_concept_member.hpp | 108 + .../asio/include/asio/traits/require_free.hpp | 108 + .../include/asio/traits/require_member.hpp | 108 + .../include/asio/traits/schedule_free.hpp | 108 + .../include/asio/traits/schedule_member.hpp | 108 + .../include/asio/traits/set_done_free.hpp | 108 + .../include/asio/traits/set_done_member.hpp | 108 + .../include/asio/traits/set_error_free.hpp | 112 + .../include/asio/traits/set_error_member.hpp | 112 + .../include/asio/traits/set_value_free.hpp | 234 + .../include/asio/traits/set_value_member.hpp | 234 + .../asio/include/asio/traits/start_free.hpp | 108 + .../asio/include/asio/traits/start_member.hpp | 108 + .../asio/include/asio/traits/static_query.hpp | 108 + .../include/asio/traits/static_require.hpp | 123 + .../asio/traits/static_require_concept.hpp | 124 + .../asio/include/asio/traits/submit_free.hpp | 112 + .../include/asio/traits/submit_member.hpp | 112 + 3party/asio/include/asio/ts/buffer.hpp | 24 + 3party/asio/include/asio/ts/executor.hpp | 35 + 3party/asio/include/asio/ts/internet.hpp | 40 + 3party/asio/include/asio/ts/io_context.hpp | 20 + 3party/asio/include/asio/ts/net.hpp | 26 + 3party/asio/include/asio/ts/netfwd.hpp | 254 + 3party/asio/include/asio/ts/socket.hpp | 27 + 3party/asio/include/asio/ts/timer.hpp | 26 + 3party/asio/include/asio/unyield.hpp | 21 + 3party/asio/include/asio/use_awaitable.hpp | 167 + 3party/asio/include/asio/use_future.hpp | 163 + 3party/asio/include/asio/uses_executor.hpp | 71 + 3party/asio/include/asio/version.hpp | 23 + 3party/asio/include/asio/wait_traits.hpp | 56 + .../asio/windows/basic_object_handle.hpp | 493 ++ .../asio/windows/basic_overlapped_handle.hpp | 460 + .../windows/basic_random_access_handle.hpp | 579 ++ .../asio/windows/basic_stream_handle.hpp | 561 ++ .../include/asio/windows/object_handle.hpp | 38 + .../asio/windows/overlapped_handle.hpp | 39 + .../include/asio/windows/overlapped_ptr.hpp | 145 + .../asio/windows/random_access_handle.hpp | 37 + .../include/asio/windows/stream_handle.hpp | 37 + 3party/asio/include/asio/writable_pipe.hpp | 35 + 3party/asio/include/asio/write.hpp | 1438 ++++ 3party/asio/include/asio/write_at.hpp | 805 ++ 3party/asio/include/asio/yield.hpp | 23 + 3party/asio/install-sh | 541 ++ 3party/asio/missing | 215 + 3party/asio/src/Makefile.am | 45 + 3party/asio/src/Makefile.in | 622 ++ 3party/asio/src/Makefile.mgw | 301 + 3party/asio/src/Makefile.msc | 560 ++ 3party/asio/src/asio.cpp | 11 + 3party/asio/src/asio_ssl.cpp | 11 + 3party/asio/src/examples/cpp03/Makefile.am | 251 + 3party/asio/src/examples/cpp03/Makefile.in | 2338 +++++ .../src/examples/cpp03/allocation/server.cpp | 242 + .../cpp03/buffers/reference_counted.cpp | 131 + .../src/examples/cpp03/chat/chat_client.cpp | 177 + .../src/examples/cpp03/chat/chat_message.hpp | 96 + .../src/examples/cpp03/chat/chat_server.cpp | 249 + .../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 | 190 + .../cpp03/fork/process_per_connection.cpp | 161 + .../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 | 94 + .../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 + 3party/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 | 187 + .../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 | 77 + .../cpp03/services/daytime_client.cpp | 101 + .../src/examples/cpp03/services/logger.hpp | 24 + .../cpp03/services/logger_service.cpp | 11 + .../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 | 126 + .../examples/cpp03/spawn/parallel_grep.cpp | 93 + 3party/asio/src/examples/cpp03/ssl/README | 8 + 3party/asio/src/examples/cpp03/ssl/ca.pem | 50 + 3party/asio/src/examples/cpp03/ssl/client.cpp | 157 + 3party/asio/src/examples/cpp03/ssl/dh4096.pem | 25 + 3party/asio/src/examples/cpp03/ssl/server.cpp | 170 + 3party/asio/src/examples/cpp03/ssl/server.pem | 99 + .../cpp03/timeouts/async_tcp_client.cpp | 311 + .../cpp03/timeouts/blocking_tcp_client.cpp | 191 + .../timeouts/blocking_token_tcp_client.cpp | 201 + .../cpp03/timeouts/blocking_udp_client.cpp | 154 + .../src/examples/cpp03/timeouts/server.cpp | 433 + .../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 | 119 + .../cpp03/tutorial/daytime4/client.cpp | 52 + .../cpp03/tutorial/daytime5/server.cpp | 53 + .../cpp03/tutorial/daytime6/server.cpp | 89 + .../cpp03/tutorial/daytime7/server.cpp | 160 + .../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 | 177 + 3party/asio/src/examples/cpp11/Makefile.am | 195 + 3party/asio/src/examples/cpp11/Makefile.in | 2106 +++++ .../src/examples/cpp11/allocation/server.cpp | 217 + .../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 + .../examples/cpp11/deferred/deferred_1.cpp | 35 + .../examples/cpp11/deferred/deferred_2.cpp | 44 + .../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 | 57 + .../cpp11/executors/bank_account_2.cpp | 54 + .../examples/cpp11/executors/fork_join.cpp | 289 + .../src/examples/cpp11/executors/pipeline.cpp | 288 + .../cpp11/executors/priority_scheduler.cpp | 148 + .../examples/cpp11/files/async_file_copy.cpp | 101 + .../cpp11/files/blocking_file_copy.cpp | 65 + .../asio/src/examples/cpp11/fork/daemon.cpp | 189 + .../cpp11/fork/process_per_connection.cpp | 162 + .../examples/cpp11/futures/daytime_client.cpp | 94 + .../async_tcp_echo_server.cpp | 135 + .../handler_tracking/custom_tracking.hpp | 211 + .../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 + .../cpp11/local/fd_passing_stream_client.cpp | 102 + .../cpp11/local/fd_passing_stream_server.cpp | 160 + .../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 | 159 + .../examples/cpp11/operations/composed_2.cpp | 229 + .../examples/cpp11/operations/composed_3.cpp | 238 + .../examples/cpp11/operations/composed_4.cpp | 252 + .../examples/cpp11/operations/composed_5.cpp | 289 + .../examples/cpp11/operations/composed_6.cpp | 349 + .../examples/cpp11/operations/composed_7.cpp | 268 + .../examples/cpp11/operations/composed_8.cpp | 263 + .../parallel_group/ranged_wait_for_all.cpp | 70 + .../cpp11/parallel_group/wait_for_all.cpp | 62 + .../cpp11/parallel_group/wait_for_one.cpp | 62 + .../parallel_group/wait_for_one_error.cpp | 62 + .../parallel_group/wait_for_one_success.cpp | 62 + .../asio/src/examples/cpp11/socks4/socks4.hpp | 143 + .../src/examples/cpp11/socks4/sync_client.cpp | 94 + .../src/examples/cpp11/spawn/echo_server.cpp | 117 + .../examples/cpp11/spawn/parallel_grep.cpp | 86 + 3party/asio/src/examples/cpp11/ssl/README | 8 + 3party/asio/src/examples/cpp11/ssl/ca.pem | 50 + 3party/asio/src/examples/cpp11/ssl/client.cpp | 165 + 3party/asio/src/examples/cpp11/ssl/dh4096.pem | 25 + 3party/asio/src/examples/cpp11/ssl/server.cpp | 145 + 3party/asio/src/examples/cpp11/ssl/server.pem | 99 + .../cpp11/timeouts/async_tcp_client.cpp | 311 + .../cpp11/timeouts/blocking_tcp_client.cpp | 192 + .../timeouts/blocking_token_tcp_client.cpp | 171 + .../cpp11/timeouts/blocking_udp_client.cpp | 155 + .../src/examples/cpp11/timeouts/server.cpp | 433 + .../examples/cpp11/timers/time_t_timer.cpp | 106 + .../cpp11/type_erasure/line_reader.hpp | 48 + .../src/examples/cpp11/type_erasure/main.cpp | 60 + .../src/examples/cpp11/type_erasure/sleep.cpp | 22 + .../src/examples/cpp11/type_erasure/sleep.hpp | 35 + .../cpp11/type_erasure/stdin_line_reader.cpp | 44 + .../cpp11/type_erasure/stdin_line_reader.hpp | 30 + 3party/asio/src/examples/cpp14/Makefile.am | 95 + 3party/asio/src/examples/cpp14/Makefile.in | 1378 +++ .../examples/cpp14/deferred/deferred_1.cpp | 35 + .../examples/cpp14/deferred/deferred_2.cpp | 44 + .../examples/cpp14/deferred/deferred_3.cpp | 51 + .../examples/cpp14/deferred/deferred_4.cpp | 59 + .../examples/cpp14/deferred/deferred_5.cpp | 66 + .../examples/cpp14/deferred/deferred_6.cpp | 75 + .../examples/cpp14/deferred/deferred_7.cpp | 71 + .../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 | 285 + .../src/examples/cpp14/executors/async_1.cpp | 54 + .../src/examples/cpp14/executors/async_2.cpp | 79 + .../cpp14/executors/bank_account_1.cpp | 57 + .../cpp14/executors/bank_account_2.cpp | 55 + .../examples/cpp14/executors/fork_join.cpp | 289 + .../src/examples/cpp14/executors/pipeline.cpp | 280 + .../cpp14/executors/priority_scheduler.cpp | 181 + .../examples/cpp14/iostreams/http_client.cpp | 91 + .../cpp14/operations/c_callback_wrapper.cpp | 230 + .../cpp14/operations/callback_wrapper.cpp | 152 + .../examples/cpp14/operations/composed_1.cpp | 155 + .../examples/cpp14/operations/composed_2.cpp | 219 + .../examples/cpp14/operations/composed_3.cpp | 228 + .../examples/cpp14/operations/composed_4.cpp | 242 + .../examples/cpp14/operations/composed_5.cpp | 280 + .../examples/cpp14/operations/composed_6.cpp | 340 + .../examples/cpp14/operations/composed_7.cpp | 261 + .../examples/cpp14/operations/composed_8.cpp | 254 + .../cpp14/parallel_group/parallel_sort.cpp | 133 + .../parallel_group/ranged_wait_for_all.cpp | 70 + .../cpp14/parallel_group/wait_for_all.cpp | 64 + .../cpp14/parallel_group/wait_for_one.cpp | 64 + .../parallel_group/wait_for_one_error.cpp | 64 + .../parallel_group/wait_for_one_success.cpp | 64 + 3party/asio/src/examples/cpp17/Makefile.am | 37 + 3party/asio/src/examples/cpp17/Makefile.in | 738 ++ .../cpp17/coroutines_ts/chat_server.cpp | 222 + .../cpp17/coroutines_ts/echo_server.cpp | 76 + .../echo_server_with_as_single_default.cpp | 71 + .../echo_server_with_as_tuple_default.cpp | 71 + .../echo_server_with_default.cpp | 73 + .../cpp17/coroutines_ts/range_based_for.cpp | 102 + .../coroutines_ts/refactored_echo_server.cpp | 80 + 3party/asio/src/examples/cpp20/Makefile.am | 73 + 3party/asio/src/examples/cpp20/Makefile.in | 1095 +++ .../cpp20/channels/throttling_proxy.cpp | 135 + .../examples/cpp20/coroutines/chat_server.cpp | 222 + .../examples/cpp20/coroutines/echo_server.cpp | 76 + .../echo_server_with_as_single_default.cpp | 71 + .../echo_server_with_as_tuple_default.cpp | 71 + .../coroutines/echo_server_with_default.cpp | 73 + .../coroutines/echo_server_with_deferred.cpp | 72 + .../echo_server_with_deferred_default.cpp | 74 + .../coroutines/refactored_echo_server.cpp | 80 + .../src/examples/cpp20/coroutines/timeout.cpp | 66 + .../cpp20/operations/c_callback_wrapper.cpp | 232 + .../cpp20/operations/callback_wrapper.cpp | 154 + .../examples/cpp20/operations/composed_1.cpp | 157 + .../examples/cpp20/operations/composed_2.cpp | 225 + .../examples/cpp20/operations/composed_3.cpp | 232 + .../examples/cpp20/operations/composed_4.cpp | 247 + .../examples/cpp20/operations/composed_5.cpp | 284 + .../examples/cpp20/operations/composed_6.cpp | 345 + .../examples/cpp20/operations/composed_7.cpp | 262 + .../examples/cpp20/operations/composed_8.cpp | 255 + .../cpp20/type_erasure/line_reader.hpp | 39 + .../src/examples/cpp20/type_erasure/main.cpp | 35 + .../src/examples/cpp20/type_erasure/sleep.cpp | 22 + .../src/examples/cpp20/type_erasure/sleep.hpp | 32 + .../cpp20/type_erasure/stdin_line_reader.cpp | 44 + .../cpp20/type_erasure/stdin_line_reader.hpp | 30 + 3party/asio/src/tests/Makefile.am | 686 ++ 3party/asio/src/tests/Makefile.in | 6647 +++++++++++++++ 3party/asio/src/tests/latency/allocator.hpp | 52 + .../asio/src/tests/latency/high_res_clock.hpp | 53 + 3party/asio/src/tests/latency/tcp_client.cpp | 124 + 3party/asio/src/tests/latency/tcp_server.cpp | 114 + 3party/asio/src/tests/latency/udp_client.cpp | 104 + 3party/asio/src/tests/latency/udp_server.cpp | 125 + 3party/asio/src/tests/performance/client.cpp | 286 + .../tests/performance/handler_allocator.hpp | 112 + 3party/asio/src/tests/performance/server.cpp | 233 + 3party/asio/src/tests/properties/Makefile.am | 367 + 3party/asio/src/tests/properties/Makefile.in | 5585 ++++++++++++ .../cpp03/can_prefer_free_prefer.cpp | 59 + .../cpp03/can_prefer_free_require.cpp | 59 + .../cpp03/can_prefer_member_prefer.cpp | 59 + .../cpp03/can_prefer_member_require.cpp | 59 + .../can_prefer_not_applicable_free_prefer.cpp | 52 + ...can_prefer_not_applicable_free_require.cpp | 52 + ...an_prefer_not_applicable_member_prefer.cpp | 52 + ...n_prefer_not_applicable_member_require.cpp | 52 + .../can_prefer_not_applicable_static.cpp | 45 + .../can_prefer_not_applicable_unsupported.cpp | 33 + .../can_prefer_not_preferable_free_prefer.cpp | 59 + ...can_prefer_not_preferable_free_require.cpp | 59 + ...an_prefer_not_preferable_member_prefer.cpp | 59 + ...n_prefer_not_preferable_member_require.cpp | 59 + .../can_prefer_not_preferable_static.cpp | 52 + .../can_prefer_not_preferable_unsupported.cpp | 43 + .../properties/cpp03/can_prefer_static.cpp | 52 + .../cpp03/can_prefer_unsupported.cpp | 43 + .../tests/properties/cpp03/can_query_free.cpp | 48 + .../properties/cpp03/can_query_member.cpp | 48 + .../cpp03/can_query_not_applicable_free.cpp | 41 + .../cpp03/can_query_not_applicable_member.cpp | 41 + .../cpp03/can_query_not_applicable_static.cpp | 41 + .../can_query_not_applicable_unsupported.cpp | 26 + .../properties/cpp03/can_query_static.cpp | 48 + .../cpp03/can_query_unsupported.cpp | 36 + .../cpp03/can_require_concept_free.cpp | 55 + .../cpp03/can_require_concept_member.cpp | 55 + ...an_require_concept_not_applicable_free.cpp | 48 + ..._require_concept_not_applicable_member.cpp | 48 + ..._require_concept_not_applicable_static.cpp | 41 + ...ire_concept_not_applicable_unsupported.cpp | 28 + .../cpp03/can_require_concept_static.cpp | 48 + .../cpp03/can_require_concept_unsupported.cpp | 38 + .../properties/cpp03/can_require_free.cpp | 59 + .../properties/cpp03/can_require_member.cpp | 59 + .../cpp03/can_require_not_applicable_free.cpp | 52 + .../can_require_not_applicable_member.cpp | 52 + .../can_require_not_applicable_static.cpp | 45 + ...can_require_not_applicable_unsupported.cpp | 32 + .../properties/cpp03/can_require_static.cpp | 52 + .../cpp03/can_require_unsupported.cpp | 42 + .../properties/cpp03/prefer_free_prefer.cpp | 68 + .../properties/cpp03/prefer_free_require.cpp | 68 + .../properties/cpp03/prefer_member_prefer.cpp | 68 + .../cpp03/prefer_member_require.cpp | 68 + .../tests/properties/cpp03/prefer_static.cpp | 61 + .../properties/cpp03/prefer_unsupported.cpp | 46 + .../src/tests/properties/cpp03/query_free.cpp | 55 + .../tests/properties/cpp03/query_member.cpp | 55 + .../tests/properties/cpp03/query_static.cpp | 55 + .../properties/cpp03/require_concept_free.cpp | 60 + .../cpp03/require_concept_member.cpp | 60 + .../cpp03/require_concept_static.cpp | 55 + .../tests/properties/cpp03/require_free.cpp | 68 + .../tests/properties/cpp03/require_member.cpp | 68 + .../tests/properties/cpp03/require_static.cpp | 61 + .../cpp11/can_prefer_free_prefer.cpp | 48 + .../cpp11/can_prefer_free_require.cpp | 48 + .../cpp11/can_prefer_member_prefer.cpp | 48 + .../cpp11/can_prefer_member_require.cpp | 48 + .../can_prefer_not_applicable_free_prefer.cpp | 38 + ...can_prefer_not_applicable_free_require.cpp | 38 + ...an_prefer_not_applicable_member_prefer.cpp | 38 + ...n_prefer_not_applicable_member_require.cpp | 38 + .../can_prefer_not_applicable_static.cpp | 45 + .../can_prefer_not_applicable_unsupported.cpp | 33 + .../can_prefer_not_preferable_free_prefer.cpp | 48 + ...can_prefer_not_preferable_free_require.cpp | 48 + ...an_prefer_not_preferable_member_prefer.cpp | 48 + ...n_prefer_not_preferable_member_require.cpp | 48 + .../can_prefer_not_preferable_static.cpp | 43 + .../can_prefer_not_preferable_unsupported.cpp | 43 + .../properties/cpp11/can_prefer_static.cpp | 52 + .../cpp11/can_prefer_unsupported.cpp | 43 + .../tests/properties/cpp11/can_query_free.cpp | 37 + .../properties/cpp11/can_query_member.cpp | 37 + .../cpp11/can_query_not_applicable_free.cpp | 27 + .../cpp11/can_query_not_applicable_member.cpp | 27 + .../cpp11/can_query_not_applicable_static.cpp | 41 + .../can_query_not_applicable_unsupported.cpp | 26 + .../properties/cpp11/can_query_static.cpp | 48 + .../cpp11/can_query_unsupported.cpp | 36 + .../cpp11/can_require_concept_free.cpp | 44 + .../cpp11/can_require_concept_member.cpp | 44 + ...an_require_concept_not_applicable_free.cpp | 34 + ..._require_concept_not_applicable_member.cpp | 34 + ..._require_concept_not_applicable_static.cpp | 41 + ...ire_concept_not_applicable_unsupported.cpp | 28 + .../cpp11/can_require_concept_static.cpp | 48 + .../cpp11/can_require_concept_unsupported.cpp | 38 + .../properties/cpp11/can_require_free.cpp | 48 + .../properties/cpp11/can_require_member.cpp | 48 + .../cpp11/can_require_not_applicable_free.cpp | 38 + .../can_require_not_applicable_member.cpp | 38 + .../can_require_not_applicable_static.cpp | 45 + ...can_require_not_applicable_unsupported.cpp | 32 + .../properties/cpp11/can_require_static.cpp | 52 + .../cpp11/can_require_unsupported.cpp | 42 + .../properties/cpp11/prefer_free_prefer.cpp | 64 + .../properties/cpp11/prefer_free_require.cpp | 64 + .../properties/cpp11/prefer_member_prefer.cpp | 64 + .../cpp11/prefer_member_require.cpp | 64 + .../tests/properties/cpp11/prefer_static.cpp | 68 + .../properties/cpp11/prefer_unsupported.cpp | 59 + .../src/tests/properties/cpp11/query_free.cpp | 49 + .../tests/properties/cpp11/query_member.cpp | 49 + .../tests/properties/cpp11/query_static.cpp | 60 + .../properties/cpp11/require_concept_free.cpp | 52 + .../cpp11/require_concept_member.cpp | 52 + .../cpp11/require_concept_static.cpp | 58 + .../tests/properties/cpp11/require_free.cpp | 64 + .../tests/properties/cpp11/require_member.cpp | 64 + .../tests/properties/cpp11/require_static.cpp | 68 + .../cpp14/can_prefer_free_prefer.cpp | 39 + .../cpp14/can_prefer_free_require.cpp | 39 + .../cpp14/can_prefer_member_prefer.cpp | 39 + .../cpp14/can_prefer_member_require.cpp | 39 + .../can_prefer_not_applicable_free_prefer.cpp | 38 + ...can_prefer_not_applicable_free_require.cpp | 38 + ...an_prefer_not_applicable_member_prefer.cpp | 38 + ...n_prefer_not_applicable_member_require.cpp | 38 + .../can_prefer_not_applicable_static.cpp | 35 + .../can_prefer_not_applicable_unsupported.cpp | 32 + .../can_prefer_not_preferable_free_prefer.cpp | 39 + ...can_prefer_not_preferable_free_require.cpp | 39 + ...an_prefer_not_preferable_member_prefer.cpp | 39 + ...n_prefer_not_preferable_member_require.cpp | 39 + .../can_prefer_not_preferable_static.cpp | 34 + .../can_prefer_not_preferable_unsupported.cpp | 34 + .../properties/cpp14/can_prefer_static.cpp | 36 + .../cpp14/can_prefer_unsupported.cpp | 42 + .../tests/properties/cpp14/can_query_free.cpp | 28 + .../properties/cpp14/can_query_member.cpp | 28 + .../cpp14/can_query_not_applicable_free.cpp | 27 + .../cpp14/can_query_not_applicable_member.cpp | 27 + .../cpp14/can_query_not_applicable_static.cpp | 27 + .../can_query_not_applicable_unsupported.cpp | 26 + .../properties/cpp14/can_query_static.cpp | 28 + .../cpp14/can_query_unsupported.cpp | 27 + .../cpp14/can_require_concept_free.cpp | 35 + .../cpp14/can_require_concept_member.cpp | 35 + ...an_require_concept_not_applicable_free.cpp | 34 + ..._require_concept_not_applicable_member.cpp | 34 + ..._require_concept_not_applicable_static.cpp | 31 + ...ire_concept_not_applicable_unsupported.cpp | 28 + .../cpp14/can_require_concept_static.cpp | 32 + .../cpp14/can_require_concept_unsupported.cpp | 38 + .../properties/cpp14/can_require_free.cpp | 39 + .../properties/cpp14/can_require_member.cpp | 39 + .../cpp14/can_require_not_applicable_free.cpp | 38 + .../can_require_not_applicable_member.cpp | 38 + .../can_require_not_applicable_static.cpp | 35 + ...can_require_not_applicable_unsupported.cpp | 32 + .../properties/cpp14/can_require_static.cpp | 36 + .../cpp14/can_require_unsupported.cpp | 42 + .../properties/cpp14/prefer_free_prefer.cpp | 55 + .../properties/cpp14/prefer_free_require.cpp | 55 + .../properties/cpp14/prefer_member_prefer.cpp | 55 + .../cpp14/prefer_member_require.cpp | 55 + .../tests/properties/cpp14/prefer_static.cpp | 52 + .../properties/cpp14/prefer_unsupported.cpp | 50 + .../src/tests/properties/cpp14/query_free.cpp | 40 + .../tests/properties/cpp14/query_member.cpp | 40 + .../tests/properties/cpp14/query_static.cpp | 40 + .../properties/cpp14/require_concept_free.cpp | 43 + .../cpp14/require_concept_member.cpp | 43 + .../cpp14/require_concept_static.cpp | 42 + .../tests/properties/cpp14/require_free.cpp | 55 + .../tests/properties/cpp14/require_member.cpp | 55 + .../tests/properties/cpp14/require_static.cpp | 52 + 3party/asio/src/tests/unit/append.cpp | 62 + .../src/tests/unit/archetypes/async_ops.hpp | 415 + .../tests/unit/archetypes/async_result.hpp | 156 + .../archetypes/gettable_socket_option.hpp | 54 + .../unit/archetypes/io_control_command.hpp | 32 + .../archetypes/settable_socket_option.hpp | 49 + 3party/asio/src/tests/unit/as_tuple.cpp | 134 + .../src/tests/unit/associated_allocator.cpp | 25 + .../unit/associated_cancellation_slot.cpp | 25 + .../src/tests/unit/associated_executor.cpp | 25 + .../unit/associated_immediate_executor.cpp | 25 + 3party/asio/src/tests/unit/associator.cpp | 25 + 3party/asio/src/tests/unit/async_result.cpp | 25 + 3party/asio/src/tests/unit/awaitable.cpp | 25 + .../src/tests/unit/basic_datagram_socket.cpp | 25 + .../src/tests/unit/basic_deadline_timer.cpp | 25 + 3party/asio/src/tests/unit/basic_file.cpp | 25 + .../tests/unit/basic_random_access_file.cpp | 25 + .../asio/src/tests/unit/basic_raw_socket.cpp | 25 + .../src/tests/unit/basic_readable_pipe.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 + 3party/asio/src/tests/unit/basic_socket.cpp | 25 + .../src/tests/unit/basic_socket_acceptor.cpp | 25 + .../asio/src/tests/unit/basic_stream_file.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 + .../src/tests/unit/basic_writable_pipe.cpp | 25 + 3party/asio/src/tests/unit/bind_allocator.cpp | 253 + .../src/tests/unit/bind_cancellation_slot.cpp | 221 + 3party/asio/src/tests/unit/bind_executor.cpp | 204 + .../tests/unit/bind_immediate_executor.cpp | 25 + 3party/asio/src/tests/unit/buffer.cpp | 938 ++ .../src/tests/unit/buffer_registration.cpp | 25 + .../src/tests/unit/buffered_read_stream.cpp | 338 + .../asio/src/tests/unit/buffered_stream.cpp | 364 + .../src/tests/unit/buffered_write_stream.cpp | 353 + .../asio/src/tests/unit/buffers_iterator.cpp | 292 + .../src/tests/unit/cancellation_signal.cpp | 25 + .../src/tests/unit/cancellation_state.cpp | 25 + .../asio/src/tests/unit/cancellation_type.cpp | 25 + 3party/asio/src/tests/unit/co_spawn.cpp | 84 + .../src/tests/unit/completion_condition.cpp | 25 + 3party/asio/src/tests/unit/compose.cpp | 554 ++ 3party/asio/src/tests/unit/connect.cpp | 1190 +++ 3party/asio/src/tests/unit/connect_pipe.cpp | 163 + 3party/asio/src/tests/unit/consign.cpp | 60 + 3party/asio/src/tests/unit/coroutine.cpp | 112 + 3party/asio/src/tests/unit/deadline_timer.cpp | 448 + 3party/asio/src/tests/unit/defer.cpp | 25 + 3party/asio/src/tests/unit/deferred.cpp | 25 + 3party/asio/src/tests/unit/detached.cpp | 25 + 3party/asio/src/tests/unit/dispatch.cpp | 25 + 3party/asio/src/tests/unit/error.cpp | 89 + .../src/tests/unit/execution/any_executor.cpp | 1230 +++ .../src/tests/unit/execution/blocking.cpp | 1914 +++++ .../unit/execution/blocking_adaptation.cpp | 1321 +++ .../src/tests/unit/execution/bulk_execute.cpp | 334 + .../tests/unit/execution/bulk_guarantee.cpp | 1990 +++++ .../asio/src/tests/unit/execution/connect.cpp | 493 ++ .../src/tests/unit/execution/context_as.cpp | 157 + .../asio/src/tests/unit/execution/execute.cpp | 400 + .../src/tests/unit/execution/executor.cpp | 184 + .../unit/execution/invocable_archetype.cpp | 25 + .../asio/src/tests/unit/execution/mapping.cpp | 1978 +++++ .../tests/unit/execution/operation_state.cpp | 116 + .../tests/unit/execution/outstanding_work.cpp | 1250 +++ .../src/tests/unit/execution/prefer_only.cpp | 543 ++ .../src/tests/unit/execution/receiver.cpp | 561 ++ .../src/tests/unit/execution/relationship.cpp | 1250 +++ .../src/tests/unit/execution/schedule.cpp | 502 ++ .../src/tests/unit/execution/scheduler.cpp | 111 + .../asio/src/tests/unit/execution/sender.cpp | 243 + .../src/tests/unit/execution/set_done.cpp | 240 + .../src/tests/unit/execution/set_error.cpp | 256 + .../src/tests/unit/execution/set_value.cpp | 832 ++ .../asio/src/tests/unit/execution/start.cpp | 240 + .../asio/src/tests/unit/execution/submit.cpp | 558 ++ .../asio/src/tests/unit/execution_context.cpp | 25 + 3party/asio/src/tests/unit/executor.cpp | 25 + .../src/tests/unit/executor_work_guard.cpp | 25 + .../unit/experimental/awaitable_operators.cpp | 297 + .../tests/unit/experimental/basic_channel.cpp | 25 + .../experimental/basic_concurrent_channel.cpp | 25 + .../src/tests/unit/experimental/channel.cpp | 679 ++ .../unit/experimental/channel_traits.cpp | 25 + .../tests/unit/experimental/co_composed.cpp | 518 ++ .../unit/experimental/concurrent_channel.cpp | 165 + .../unit/experimental/coro/allocator.cpp | 112 + .../tests/unit/experimental/coro/cancel.cpp | 179 + .../tests/unit/experimental/coro/co_spawn.cpp | 67 + .../unit/experimental/coro/exception.cpp | 172 + .../tests/unit/experimental/coro/executor.cpp | 116 + .../tests/unit/experimental/coro/partial.cpp | 45 + .../unit/experimental/coro/simple_test.cpp | 264 + .../unit/experimental/coro/stack_test.cpp | 83 + .../tests/unit/experimental/coro/use_coro.cpp | 77 + .../src/tests/unit/experimental/promise.cpp | 226 + 3party/asio/src/tests/unit/file_base.cpp | 25 + .../src/tests/unit/generic/basic_endpoint.cpp | 25 + .../tests/unit/generic/datagram_protocol.cpp | 296 + .../src/tests/unit/generic/raw_protocol.cpp | 297 + .../unit/generic/seq_packet_protocol.cpp | 216 + .../tests/unit/generic/stream_protocol.cpp | 267 + .../src/tests/unit/high_resolution_timer.cpp | 30 + 3party/asio/src/tests/unit/io_context.cpp | 576 ++ .../asio/src/tests/unit/io_context_strand.cpp | 325 + 3party/asio/src/tests/unit/ip/address.cpp | 149 + 3party/asio/src/tests/unit/ip/address_v4.cpp | 329 + .../src/tests/unit/ip/address_v4_iterator.cpp | 27 + .../src/tests/unit/ip/address_v4_range.cpp | 27 + 3party/asio/src/tests/unit/ip/address_v6.cpp | 414 + .../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 + 3party/asio/src/tests/unit/ip/host_name.cpp | 55 + 3party/asio/src/tests/unit/ip/icmp.cpp | 622 ++ 3party/asio/src/tests/unit/ip/multicast.cpp | 363 + 3party/asio/src/tests/unit/ip/network_v4.cpp | 314 + 3party/asio/src/tests/unit/ip/network_v6.cpp | 238 + .../src/tests/unit/ip/resolver_query_base.cpp | 25 + 3party/asio/src/tests/unit/ip/tcp.cpp | 1391 +++ 3party/asio/src/tests/unit/ip/udp.cpp | 719 ++ 3party/asio/src/tests/unit/ip/unicast.cpp | 171 + 3party/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 | 242 + .../tests/unit/local/seq_packet_protocol.cpp | 213 + .../src/tests/unit/local/stream_protocol.cpp | 219 + 3party/asio/src/tests/unit/packaged_task.cpp | 25 + 3party/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 | 194 + 3party/asio/src/tests/unit/post.cpp | 25 + 3party/asio/src/tests/unit/prepend.cpp | 62 + .../src/tests/unit/random_access_file.cpp | 179 + 3party/asio/src/tests/unit/read.cpp | 4997 +++++++++++ 3party/asio/src/tests/unit/read_at.cpp | 7502 ++++++++++++++++ 3party/asio/src/tests/unit/read_until.cpp | 1658 ++++ 3party/asio/src/tests/unit/readable_pipe.cpp | 139 + .../src/tests/unit/recycling_allocator.cpp | 82 + 3party/asio/src/tests/unit/redirect_error.cpp | 127 + .../asio/src/tests/unit/registered_buffer.cpp | 111 + 3party/asio/src/tests/unit/serial_port.cpp | 177 + .../asio/src/tests/unit/serial_port_base.cpp | 99 + 3party/asio/src/tests/unit/signal_set.cpp | 98 + .../asio/src/tests/unit/signal_set_base.cpp | 30 + 3party/asio/src/tests/unit/socket_base.cpp | 650 ++ 3party/asio/src/tests/unit/ssl/context.cpp | 25 + .../asio/src/tests/unit/ssl/context_base.cpp | 25 + 3party/asio/src/tests/unit/ssl/error.cpp | 25 + .../tests/unit/ssl/host_name_verification.cpp | 25 + .../tests/unit/ssl/rfc2818_verification.cpp | 25 + 3party/asio/src/tests/unit/ssl/stream.cpp | 203 + .../asio/src/tests/unit/ssl/stream_base.cpp | 25 + .../src/tests/unit/static_thread_pool.cpp | 30 + 3party/asio/src/tests/unit/steady_timer.cpp | 30 + 3party/asio/src/tests/unit/strand.cpp | 468 + 3party/asio/src/tests/unit/stream_file.cpp | 181 + 3party/asio/src/tests/unit/streambuf.cpp | 62 + 3party/asio/src/tests/unit/system_context.cpp | 30 + .../asio/src/tests/unit/system_executor.cpp | 163 + 3party/asio/src/tests/unit/system_timer.cpp | 525 ++ 3party/asio/src/tests/unit/this_coro.cpp | 25 + 3party/asio/src/tests/unit/thread.cpp | 25 + 3party/asio/src/tests/unit/thread_pool.cpp | 527 ++ 3party/asio/src/tests/unit/time_traits.cpp | 25 + 3party/asio/src/tests/unit/ts/buffer.cpp | 30 + 3party/asio/src/tests/unit/ts/executor.cpp | 30 + 3party/asio/src/tests/unit/ts/internet.cpp | 30 + 3party/asio/src/tests/unit/ts/io_context.cpp | 30 + 3party/asio/src/tests/unit/ts/net.cpp | 30 + 3party/asio/src/tests/unit/ts/netfwd.cpp | 33 + 3party/asio/src/tests/unit/ts/socket.cpp | 30 + 3party/asio/src/tests/unit/ts/timer.cpp | 30 + 3party/asio/src/tests/unit/unit_test.hpp | 190 + 3party/asio/src/tests/unit/use_awaitable.cpp | 25 + 3party/asio/src/tests/unit/use_future.cpp | 670 ++ 3party/asio/src/tests/unit/uses_executor.cpp | 25 + 3party/asio/src/tests/unit/wait_traits.cpp | 25 + .../unit/windows/basic_object_handle.cpp | 25 + .../unit/windows/basic_overlapped_handle.cpp | 25 + .../windows/basic_random_access_handle.cpp | 25 + .../unit/windows/basic_stream_handle.cpp | 25 + .../src/tests/unit/windows/object_handle.cpp | 134 + .../tests/unit/windows/overlapped_handle.cpp | 26 + .../src/tests/unit/windows/overlapped_ptr.cpp | 119 + .../unit/windows/random_access_handle.cpp | 166 + .../src/tests/unit/windows/stream_handle.cpp | 159 + 3party/asio/src/tests/unit/writable_pipe.cpp | 144 + 3party/asio/src/tests/unit/write.cpp | 4904 +++++++++++ 3party/asio/src/tests/unit/write_at.cpp | 7563 +++++++++++++++++ 3party/asio/src/tools/handlerlive.pl | 89 + 3party/asio/src/tools/handlertree.pl | 140 + 3party/asio/src/tools/handlerviz.pl | 375 + 3party/asio/test-driver | 153 + CMakeLists.txt | 111 +- src/ulib/utils/fsm.h | 77 + tests/3party/asio/udp_unittest.cpp | 30 + tests/CMakeLists.txt | 25 +- tests/ulib/system/timer_unittest.cpp | 4 +- tests/ulib/utils/fsm_unittest.cpp | 58 + 6187 files changed, 765104 insertions(+), 68 deletions(-) create mode 100644 3party/asio/COPYING create mode 100644 3party/asio/INSTALL create mode 100644 3party/asio/LICENSE_1_0.txt create mode 100644 3party/asio/Makefile.am create mode 100644 3party/asio/Makefile.in create mode 100644 3party/asio/README create mode 100644 3party/asio/aclocal.m4 create mode 100644 3party/asio/asio.pc.in create mode 100755 3party/asio/compile create mode 100755 3party/asio/config.guess create mode 100755 3party/asio/config.sub create mode 100755 3party/asio/configure create mode 100644 3party/asio/configure.ac create mode 100755 3party/asio/depcomp create mode 100644 3party/asio/doc/1.png create mode 100644 3party/asio/doc/2.png create mode 100644 3party/asio/doc/3.png create mode 100644 3party/asio/doc/4.png create mode 100644 3party/asio/doc/5.png create mode 100644 3party/asio/doc/6.png create mode 100644 3party/asio/doc/7.png create mode 100644 3party/asio/doc/8.png create mode 100644 3party/asio/doc/asio.png create mode 100644 3party/asio/doc/asio/examples.html create mode 100644 3party/asio/doc/asio/examples/cpp03_examples.html create mode 100644 3party/asio/doc/asio/examples/cpp11_examples.html create mode 100644 3party/asio/doc/asio/examples/cpp14_examples.html create mode 100644 3party/asio/doc/asio/examples/cpp17_examples.html create mode 100644 3party/asio/doc/asio/examples/cpp20_examples.html create mode 100644 3party/asio/doc/asio/history.html create mode 100644 3party/asio/doc/asio/index.html create mode 100644 3party/asio/doc/asio/net_ts.html create mode 100644 3party/asio/doc/asio/overview.html create mode 100644 3party/asio/doc/asio/overview/basics.html create mode 100644 3party/asio/doc/asio/overview/channels.html create mode 100644 3party/asio/doc/asio/overview/composition.html create mode 100644 3party/asio/doc/asio/overview/composition/compose.html create mode 100644 3party/asio/doc/asio/overview/composition/coro.html create mode 100644 3party/asio/doc/asio/overview/composition/coroutine.html create mode 100644 3party/asio/doc/asio/overview/composition/cpp20_coroutines.html create mode 100644 3party/asio/doc/asio/overview/composition/deferred.html create mode 100644 3party/asio/doc/asio/overview/composition/futures.html create mode 100644 3party/asio/doc/asio/overview/composition/immediate_completion.html create mode 100644 3party/asio/doc/asio/overview/composition/parallel_group.html create mode 100644 3party/asio/doc/asio/overview/composition/promises.html create mode 100644 3party/asio/doc/asio/overview/composition/spawn.html create mode 100644 3party/asio/doc/asio/overview/composition/token_adapters.html create mode 100644 3party/asio/doc/asio/overview/composition/type_erasure.html create mode 100644 3party/asio/doc/asio/overview/core.html create mode 100644 3party/asio/doc/asio/overview/core/allocation.html create mode 100644 3party/asio/doc/asio/overview/core/async.html create mode 100644 3party/asio/doc/asio/overview/core/buffers.html create mode 100644 3party/asio/doc/asio/overview/core/cancellation.html create mode 100644 3party/asio/doc/asio/overview/core/concurrency_hint.html create mode 100644 3party/asio/doc/asio/overview/core/handler_tracking.html create mode 100644 3party/asio/doc/asio/overview/core/line_based.html create mode 100644 3party/asio/doc/asio/overview/core/reactor.html create mode 100644 3party/asio/doc/asio/overview/core/strands.html create mode 100644 3party/asio/doc/asio/overview/core/streams.html create mode 100644 3party/asio/doc/asio/overview/core/threads.html create mode 100644 3party/asio/doc/asio/overview/cpp2011.html create mode 100644 3party/asio/doc/asio/overview/cpp2011/array.html create mode 100644 3party/asio/doc/asio/overview/cpp2011/atomic.html create mode 100644 3party/asio/doc/asio/overview/cpp2011/chrono.html create mode 100644 3party/asio/doc/asio/overview/cpp2011/move_handlers.html create mode 100644 3party/asio/doc/asio/overview/cpp2011/move_objects.html create mode 100644 3party/asio/doc/asio/overview/cpp2011/shared_ptr.html create mode 100644 3party/asio/doc/asio/overview/cpp2011/system_error.html create mode 100644 3party/asio/doc/asio/overview/cpp2011/variadic.html create mode 100644 3party/asio/doc/asio/overview/files.html create mode 100644 3party/asio/doc/asio/overview/implementation.html create mode 100644 3party/asio/doc/asio/overview/model.html create mode 100644 3party/asio/doc/asio/overview/model/allocators.html create mode 100644 3party/asio/doc/asio/overview/model/associators.html create mode 100644 3party/asio/doc/asio/overview/model/async_agents.html create mode 100644 3party/asio/doc/asio/overview/model/async_ops.html create mode 100644 3party/asio/doc/asio/overview/model/cancellation.html create mode 100644 3party/asio/doc/asio/overview/model/child_agents.html create mode 100644 3party/asio/doc/asio/overview/model/completion_tokens.html create mode 100644 3party/asio/doc/asio/overview/model/executors.html create mode 100644 3party/asio/doc/asio/overview/model/higher_levels.html create mode 100644 3party/asio/doc/asio/overview/model/library_elements.html create mode 100644 3party/asio/doc/asio/overview/networking.html create mode 100644 3party/asio/doc/asio/overview/networking/bsd_sockets.html create mode 100644 3party/asio/doc/asio/overview/networking/iostreams.html create mode 100644 3party/asio/doc/asio/overview/networking/other_protocols.html create mode 100644 3party/asio/doc/asio/overview/networking/protocols.html create mode 100644 3party/asio/doc/asio/overview/pipes.html create mode 100644 3party/asio/doc/asio/overview/posix.html create mode 100644 3party/asio/doc/asio/overview/posix/fork.html create mode 100644 3party/asio/doc/asio/overview/posix/local.html create mode 100644 3party/asio/doc/asio/overview/posix/stream_descriptor.html create mode 100644 3party/asio/doc/asio/overview/rationale.html create mode 100644 3party/asio/doc/asio/overview/serial_ports.html create mode 100644 3party/asio/doc/asio/overview/signals.html create mode 100644 3party/asio/doc/asio/overview/ssl.html create mode 100644 3party/asio/doc/asio/overview/timers.html create mode 100644 3party/asio/doc/asio/overview/windows.html create mode 100644 3party/asio/doc/asio/overview/windows/object_handle.html create mode 100644 3party/asio/doc/asio/overview/windows/random_access_handle.html create mode 100644 3party/asio/doc/asio/overview/windows/stream_handle.html create mode 100644 3party/asio/doc/asio/reference.html create mode 100644 3party/asio/doc/asio/reference/AcceptHandler.html create mode 100644 3party/asio/doc/asio/reference/AcceptToken.html create mode 100644 3party/asio/doc/asio/reference/AcceptableProtocol.html create mode 100644 3party/asio/doc/asio/reference/AsyncRandomAccessReadDevice.html create mode 100644 3party/asio/doc/asio/reference/AsyncRandomAccessWriteDevice.html create mode 100644 3party/asio/doc/asio/reference/AsyncReadStream.html create mode 100644 3party/asio/doc/asio/reference/AsyncWriteStream.html create mode 100644 3party/asio/doc/asio/reference/BufferedHandshakeHandler.html create mode 100644 3party/asio/doc/asio/reference/BufferedHandshakeToken.html create mode 100644 3party/asio/doc/asio/reference/CancellationHandler.html create mode 100644 3party/asio/doc/asio/reference/CancellationSlot.html create mode 100644 3party/asio/doc/asio/reference/CompletionCondition.html create mode 100644 3party/asio/doc/asio/reference/ConnectCondition.html create mode 100644 3party/asio/doc/asio/reference/ConnectHandler.html create mode 100644 3party/asio/doc/asio/reference/ConnectToken.html create mode 100644 3party/asio/doc/asio/reference/ConstBufferSequence.html create mode 100644 3party/asio/doc/asio/reference/DynamicBuffer.html create mode 100644 3party/asio/doc/asio/reference/DynamicBuffer_v1.html create mode 100644 3party/asio/doc/asio/reference/DynamicBuffer_v2.html create mode 100644 3party/asio/doc/asio/reference/Endpoint.html create mode 100644 3party/asio/doc/asio/reference/EndpointSequence.html create mode 100644 3party/asio/doc/asio/reference/ExecutionContext.html create mode 100644 3party/asio/doc/asio/reference/Executor1.html create mode 100644 3party/asio/doc/asio/reference/GettableSerialPortOption.html create mode 100644 3party/asio/doc/asio/reference/GettableSocketOption.html create mode 100644 3party/asio/doc/asio/reference/Handler.html create mode 100644 3party/asio/doc/asio/reference/HandshakeHandler.html create mode 100644 3party/asio/doc/asio/reference/HandshakeToken.html create mode 100644 3party/asio/doc/asio/reference/InternetProtocol.html create mode 100644 3party/asio/doc/asio/reference/IoControlCommand.html create mode 100644 3party/asio/doc/asio/reference/IoObjectService.html create mode 100644 3party/asio/doc/asio/reference/IteratorConnectHandler.html create mode 100644 3party/asio/doc/asio/reference/IteratorConnectToken.html create mode 100644 3party/asio/doc/asio/reference/LegacyCompletionHandler.html create mode 100644 3party/asio/doc/asio/reference/MoveAcceptHandler.html create mode 100644 3party/asio/doc/asio/reference/MoveAcceptToken.html create mode 100644 3party/asio/doc/asio/reference/MutableBufferSequence.html create mode 100644 3party/asio/doc/asio/reference/NullaryToken.html create mode 100644 3party/asio/doc/asio/reference/OperationState.html create mode 100644 3party/asio/doc/asio/reference/ProtoAllocator.html create mode 100644 3party/asio/doc/asio/reference/Protocol.html create mode 100644 3party/asio/doc/asio/reference/RangeConnectHandler.html create mode 100644 3party/asio/doc/asio/reference/RangeConnectToken.html create mode 100644 3party/asio/doc/asio/reference/ReadHandler.html create mode 100644 3party/asio/doc/asio/reference/ReadToken.html create mode 100644 3party/asio/doc/asio/reference/Receiver.html create mode 100644 3party/asio/doc/asio/reference/ResolveHandler.html create mode 100644 3party/asio/doc/asio/reference/ResolveToken.html create mode 100644 3party/asio/doc/asio/reference/Scheduler.html create mode 100644 3party/asio/doc/asio/reference/Sender.html create mode 100644 3party/asio/doc/asio/reference/Service.html create mode 100644 3party/asio/doc/asio/reference/SettableSerialPortOption.html create mode 100644 3party/asio/doc/asio/reference/SettableSocketOption.html create mode 100644 3party/asio/doc/asio/reference/ShutdownHandler.html create mode 100644 3party/asio/doc/asio/reference/ShutdownToken.html create mode 100644 3party/asio/doc/asio/reference/SignalHandler.html create mode 100644 3party/asio/doc/asio/reference/SignalToken.html create mode 100644 3party/asio/doc/asio/reference/SyncRandomAccessReadDevice.html create mode 100644 3party/asio/doc/asio/reference/SyncRandomAccessWriteDevice.html create mode 100644 3party/asio/doc/asio/reference/SyncReadStream.html create mode 100644 3party/asio/doc/asio/reference/SyncWriteStream.html create mode 100644 3party/asio/doc/asio/reference/TimeTraits.html create mode 100644 3party/asio/doc/asio/reference/WaitHandler.html create mode 100644 3party/asio/doc/asio/reference/WaitToken.html create mode 100644 3party/asio/doc/asio/reference/WaitTraits.html create mode 100644 3party/asio/doc/asio/reference/WriteHandler.html create mode 100644 3party/asio/doc/asio/reference/WriteToken.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/_allocator_binder.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/allocator_binder.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload1.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload2.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload3.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload4.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload5.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload6.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload7.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload8.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload9.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/allocator_type.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/argument_type.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/first_argument_type.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/get.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/get/overload1.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/get/overload2.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/get_allocator.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_/overload1.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_/overload2.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/result_type.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/second_argument_type.html create mode 100644 3party/asio/doc/asio/reference/allocator_binder/target_type.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/_any_completion_executor.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload10.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload4.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload5.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload6.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload7.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload8.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload9.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/context.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/execute.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_bool.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/prefer.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/prefer/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/prefer/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/prefer/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/prefer/overload4.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/prefer/overload5.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/prefer/overload6.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/query.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/require.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/require/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/require/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/swap.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/swap/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/swap/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/target.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/target/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/target/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_executor/target_type.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/_any_completion_handler.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload4.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/get_allocator.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/get_cancellation_slot.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_bool.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_not_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler/swap.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator/allocate.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator/any_completion_handler_allocator.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator/deallocate.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator/value_type.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator__rebind.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator__rebind/other.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/any_completion_handler_allocator.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/value_type.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind.html create mode 100644 3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind/other.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/_any_io_executor.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/any_io_executor.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload10.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload4.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload5.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload6.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload7.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload8.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload9.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/context.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/execute.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_bool.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/prefer.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/prefer/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/prefer/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/prefer/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/prefer/overload4.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/prefer/overload5.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/prefer/overload6.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/prefer/overload7.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/query.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/require.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/require/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/require/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/require/overload3.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/swap.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/swap/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/swap/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/target.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/target/overload1.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/target/overload2.html create mode 100644 3party/asio/doc/asio/reference/any_io_executor/target_type.html create mode 100644 3party/asio/doc/asio/reference/append.html create mode 100644 3party/asio/doc/asio/reference/append_t.html create mode 100644 3party/asio/doc/asio/reference/append_t/append_t.html create mode 100644 3party/asio/doc/asio/reference/append_t/token_.html create mode 100644 3party/asio/doc/asio/reference/append_t/values_.html create mode 100644 3party/asio/doc/asio/reference/as_tuple.html create mode 100644 3party/asio/doc/asio/reference/as_tuple_t.html create mode 100644 3party/asio/doc/asio/reference/as_tuple_t/as_default_on.html create mode 100644 3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t.html create mode 100644 3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/as_tuple_t/token_.html create mode 100644 3party/asio/doc/asio/reference/as_tuple_t__default_constructor_tag.html create mode 100644 3party/asio/doc/asio/reference/as_tuple_t__executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/as_tuple_t__executor_with_default/default_completion_token_type.html create mode 100644 3party/asio/doc/asio/reference/as_tuple_t__executor_with_default/executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/asio_handler_allocate.html create mode 100644 3party/asio/doc/asio/reference/asio_handler_deallocate.html create mode 100644 3party/asio/doc/asio/reference/asio_handler_invoke.html create mode 100644 3party/asio/doc/asio/reference/asio_handler_invoke/overload1.html create mode 100644 3party/asio/doc/asio/reference/asio_handler_invoke/overload2.html create mode 100644 3party/asio/doc/asio/reference/asio_handler_is_continuation.html create mode 100644 3party/asio/doc/asio/reference/associated_allocator.html create mode 100644 3party/asio/doc/asio/reference/associated_allocator/decltype.html create mode 100644 3party/asio/doc/asio/reference/associated_allocator/decltype/overload1.html create mode 100644 3party/asio/doc/asio/reference/associated_allocator/decltype/overload2.html create mode 100644 3party/asio/doc/asio/reference/associated_allocator/noexcept.html create mode 100644 3party/asio/doc/asio/reference/associated_allocator/type.html create mode 100644 3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_.html create mode 100644 3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get.html create mode 100644 3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload1.html create mode 100644 3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload2.html create mode 100644 3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/type.html create mode 100644 3party/asio/doc/asio/reference/associated_cancellation_slot.html create mode 100644 3party/asio/doc/asio/reference/associated_cancellation_slot/decltype.html create mode 100644 3party/asio/doc/asio/reference/associated_cancellation_slot/decltype/overload1.html create mode 100644 3party/asio/doc/asio/reference/associated_cancellation_slot/decltype/overload2.html create mode 100644 3party/asio/doc/asio/reference/associated_cancellation_slot/noexcept.html create mode 100644 3party/asio/doc/asio/reference/associated_cancellation_slot/type.html create mode 100644 3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_.html create mode 100644 3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get.html create mode 100644 3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload1.html create mode 100644 3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload2.html create mode 100644 3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/type.html create mode 100644 3party/asio/doc/asio/reference/associated_executor.html create mode 100644 3party/asio/doc/asio/reference/associated_executor/decltype.html create mode 100644 3party/asio/doc/asio/reference/associated_executor/decltype/overload1.html create mode 100644 3party/asio/doc/asio/reference/associated_executor/decltype/overload2.html create mode 100644 3party/asio/doc/asio/reference/associated_executor/noexcept.html create mode 100644 3party/asio/doc/asio/reference/associated_executor/type.html create mode 100644 3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html create mode 100644 3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html create mode 100644 3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload1.html create mode 100644 3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload2.html create mode 100644 3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html create mode 100644 3party/asio/doc/asio/reference/associated_immediate_executor.html create mode 100644 3party/asio/doc/asio/reference/associated_immediate_executor/decltype.html create mode 100644 3party/asio/doc/asio/reference/associated_immediate_executor/noexcept.html create mode 100644 3party/asio/doc/asio/reference/associated_immediate_executor/type.html create mode 100644 3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html create mode 100644 3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html create mode 100644 3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html create mode 100644 3party/asio/doc/asio/reference/associator.html create mode 100644 3party/asio/doc/asio/reference/async_completion.html create mode 100644 3party/asio/doc/asio/reference/async_completion/async_completion.html create mode 100644 3party/asio/doc/asio/reference/async_completion/completion_handler.html create mode 100644 3party/asio/doc/asio/reference/async_completion/completion_handler_type.html create mode 100644 3party/asio/doc/asio/reference/async_completion/result.html create mode 100644 3party/asio/doc/asio/reference/async_compose.html create mode 100644 3party/asio/doc/asio/reference/async_connect.html create mode 100644 3party/asio/doc/asio/reference/async_connect/overload1.html create mode 100644 3party/asio/doc/asio/reference/async_connect/overload2.html create mode 100644 3party/asio/doc/asio/reference/async_connect/overload3.html create mode 100644 3party/asio/doc/asio/reference/async_connect/overload4.html create mode 100644 3party/asio/doc/asio/reference/async_connect/overload5.html create mode 100644 3party/asio/doc/asio/reference/async_connect/overload6.html create mode 100644 3party/asio/doc/asio/reference/async_initiate.html create mode 100644 3party/asio/doc/asio/reference/async_read.html create mode 100644 3party/asio/doc/asio/reference/async_read/overload1.html create mode 100644 3party/asio/doc/asio/reference/async_read/overload2.html create mode 100644 3party/asio/doc/asio/reference/async_read/overload3.html create mode 100644 3party/asio/doc/asio/reference/async_read/overload4.html create mode 100644 3party/asio/doc/asio/reference/async_read/overload5.html create mode 100644 3party/asio/doc/asio/reference/async_read/overload6.html create mode 100644 3party/asio/doc/asio/reference/async_read/overload7.html create mode 100644 3party/asio/doc/asio/reference/async_read/overload8.html create mode 100644 3party/asio/doc/asio/reference/async_read_at.html create mode 100644 3party/asio/doc/asio/reference/async_read_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/async_read_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/async_read_at/overload3.html create mode 100644 3party/asio/doc/asio/reference/async_read_at/overload4.html create mode 100644 3party/asio/doc/asio/reference/async_read_until.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload1.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload10.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload11.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload12.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload2.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload3.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload4.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload5.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload6.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload7.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload8.html create mode 100644 3party/asio/doc/asio/reference/async_read_until/overload9.html create mode 100644 3party/asio/doc/asio/reference/async_result.html create mode 100644 3party/asio/doc/asio/reference/async_result/async_result.html create mode 100644 3party/asio/doc/asio/reference/async_result/completion_handler_type.html create mode 100644 3party/asio/doc/asio/reference/async_result/get.html create mode 100644 3party/asio/doc/asio/reference/async_result/initiate.html create mode 100644 3party/asio/doc/asio/reference/async_result/return_type.html create mode 100644 3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_.html create mode 100644 3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/handler_type.html create mode 100644 3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/initiate.html create mode 100644 3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/return_type.html create mode 100644 3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html create mode 100644 3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html create mode 100644 3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html create mode 100644 3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html create mode 100644 3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html create mode 100644 3party/asio/doc/asio/reference/async_write.html create mode 100644 3party/asio/doc/asio/reference/async_write/overload1.html create mode 100644 3party/asio/doc/asio/reference/async_write/overload2.html create mode 100644 3party/asio/doc/asio/reference/async_write/overload3.html create mode 100644 3party/asio/doc/asio/reference/async_write/overload4.html create mode 100644 3party/asio/doc/asio/reference/async_write/overload5.html create mode 100644 3party/asio/doc/asio/reference/async_write/overload6.html create mode 100644 3party/asio/doc/asio/reference/async_write/overload7.html create mode 100644 3party/asio/doc/asio/reference/async_write/overload8.html create mode 100644 3party/asio/doc/asio/reference/async_write_at.html create mode 100644 3party/asio/doc/asio/reference/async_write_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/async_write_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/async_write_at/overload3.html create mode 100644 3party/asio/doc/asio/reference/async_write_at/overload4.html create mode 100644 3party/asio/doc/asio/reference/asynchronous_operations.html create mode 100644 3party/asio/doc/asio/reference/asynchronous_socket_operations.html create mode 100644 3party/asio/doc/asio/reference/awaitable.html create mode 100644 3party/asio/doc/asio/reference/awaitable/_awaitable.html create mode 100644 3party/asio/doc/asio/reference/awaitable/awaitable.html create mode 100644 3party/asio/doc/asio/reference/awaitable/awaitable/overload1.html create mode 100644 3party/asio/doc/asio/reference/awaitable/awaitable/overload2.html create mode 100644 3party/asio/doc/asio/reference/awaitable/executor_type.html create mode 100644 3party/asio/doc/asio/reference/awaitable/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/awaitable/valid.html create mode 100644 3party/asio/doc/asio/reference/awaitable/value_type.html create mode 100644 3party/asio/doc/asio/reference/bad_executor.html create mode 100644 3party/asio/doc/asio/reference/bad_executor/bad_executor.html create mode 100644 3party/asio/doc/asio/reference/bad_executor/what.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/_basic_datagram_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_connect.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_receive.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_send.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_send/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_send/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/async_wait.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/at_mark.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/available.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/available/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/available/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload10.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload9.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/bind.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/bind/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/bind/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/broadcast.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/bytes_readable.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/close.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/connect.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/connect/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/connect/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/debug.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/enable_connection_aborted.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/get_option.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/get_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/get_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/io_control.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/io_control/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/io_control/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/keep_alive.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/linger.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/max_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/max_listen_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/message_do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/message_end_of_record.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/message_flags.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/message_out_of_band.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/message_peek.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/open.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/open/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/open/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/out_of_band_inline.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/receive.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/receive_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/receive_from.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/receive_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/release.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/reuse_address.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/send.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/send/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/send/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/send/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/send_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/send_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/send_to.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/set_option.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/set_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/set_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/shutdown.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/shutdown_type.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/wait.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/wait/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/wait/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket/wait_type.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_datagram_socket__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/_basic_deadline_timer.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/async_wait.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/duration_type.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/expires_at.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/time_type.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/traits_type.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/wait.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/wait/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer/wait/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_deadline_timer__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_file.html create mode 100644 3party/asio/doc/asio/reference/basic_file/_basic_file.html create mode 100644 3party/asio/doc/asio/reference/basic_file/append.html create mode 100644 3party/asio/doc/asio/reference/basic_file/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_file/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_file/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_file/basic_file.html create mode 100644 3party/asio/doc/asio/reference/basic_file/basic_file/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_file/basic_file/overload10.html create mode 100644 3party/asio/doc/asio/reference/basic_file/basic_file/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_file/basic_file/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_file/basic_file/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_file/basic_file/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_file/basic_file/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_file/basic_file/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_file/basic_file/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_file/basic_file/overload9.html create mode 100644 3party/asio/doc/asio/reference/basic_file/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_file/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_file/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_file/close.html create mode 100644 3party/asio/doc/asio/reference/basic_file/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_file/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_file/create.html create mode 100644 3party/asio/doc/asio/reference/basic_file/exclusive.html create mode 100644 3party/asio/doc/asio/reference/basic_file/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_file/flags.html create mode 100644 3party/asio/doc/asio/reference/basic_file/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_file/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_file/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_file/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_file/open.html create mode 100644 3party/asio/doc/asio/reference/basic_file/open/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_file/open/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_file/open/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_file/open/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_file/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_file/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_file/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_file/read_only.html create mode 100644 3party/asio/doc/asio/reference/basic_file/read_write.html create mode 100644 3party/asio/doc/asio/reference/basic_file/release.html create mode 100644 3party/asio/doc/asio/reference/basic_file/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_file/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_file/resize.html create mode 100644 3party/asio/doc/asio/reference/basic_file/resize/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_file/resize/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_file/seek_basis.html create mode 100644 3party/asio/doc/asio/reference/basic_file/size.html create mode 100644 3party/asio/doc/asio/reference/basic_file/size/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_file/size/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_file/sync_all.html create mode 100644 3party/asio/doc/asio/reference/basic_file/sync_all/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_file/sync_all/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_file/sync_all_on_write.html create mode 100644 3party/asio/doc/asio/reference/basic_file/sync_data.html create mode 100644 3party/asio/doc/asio/reference/basic_file/sync_data/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_file/sync_data/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_file/truncate.html create mode 100644 3party/asio/doc/asio/reference/basic_file/write_only.html create mode 100644 3party/asio/doc/asio/reference/basic_file__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_file__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/_basic_io_object.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/basic_io_object.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/get_implementation.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/get_implementation/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/get_implementation/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/get_io_context.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/get_io_service.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/get_service.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/get_service/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/get_service/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/implementation_type.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_io_object/service_type.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/_basic_random_access_file.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/append.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/async_read_some_at.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/async_write_some_at.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload10.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload9.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/close.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/create.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/exclusive.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/flags.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/open.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/open/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/open/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/open/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/open/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/read_only.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/read_some_at.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/read_some_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/read_some_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/read_write.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/release.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/resize.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/resize/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/resize/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/seek_basis.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/size.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/size/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/size/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/sync_all.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/sync_all/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/sync_all/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/sync_all_on_write.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/sync_data.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/sync_data/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/sync_data/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/truncate.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/write_only.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/write_some_at.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/write_some_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file/write_some_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_random_access_file__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/_basic_raw_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_connect.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_receive.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_receive/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_receive/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_send.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_send/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_send/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_send_to.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/async_wait.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/at_mark.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/at_mark/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/at_mark/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/available.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/available/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/available/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload10.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload9.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/bind.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/bind/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/bind/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/broadcast.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/bytes_readable.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/close.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/connect.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/connect/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/connect/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/debug.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/enable_connection_aborted.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/get_option.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/get_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/get_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/io_control.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/io_control/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/io_control/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/keep_alive.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/linger.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/max_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/max_listen_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/message_do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/message_end_of_record.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/message_flags.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/message_out_of_band.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/message_peek.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/open.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/open/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/open/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/out_of_band_inline.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/receive.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/receive/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/receive/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/receive/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/receive_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/receive_from.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/receive_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/release.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/reuse_address.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/send.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/send/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/send/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/send/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/send_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/send_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/send_to.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/set_option.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/set_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/set_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/shutdown.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/shutdown/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/shutdown/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/shutdown_type.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/wait.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/wait/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/wait/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket/wait_type.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_raw_socket__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/_basic_readable_pipe.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/async_read_some.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/close.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/read_some.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/read_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/read_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/release.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_readable_pipe__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/async_connect.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/async_send.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/async_wait.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/available.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/available/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/available/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload10.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload9.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/bind.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/broadcast.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/bytes_readable.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/close.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/connect.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/debug.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/enable_connection_aborted.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/keep_alive.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/linger.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/max_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/max_listen_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/message_do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/message_end_of_record.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/message_flags.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/message_out_of_band.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/message_peek.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/open.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/open/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/open/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/out_of_band_inline.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/receive.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/receive_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/receive_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/release.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/reuse_address.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/send.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/send/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/send/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/send_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/send_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown_type.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/wait.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket/wait_type.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_seq_packet_socket__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/_basic_serial_port.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/async_read_some.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/async_write_some.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload10.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload9.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/close.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/get_option.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/get_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/get_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/open.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/open/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/open/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/read_some.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/read_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/read_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/send_break.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/send_break/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/send_break/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/set_option.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/set_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/set_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/write_some.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/write_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port/write_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_serial_port__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/_basic_signal_set.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/add.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/add/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/add/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/add/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/add/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/async_wait.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/clear.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/clear/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/clear/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/flags.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/flags_t.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/remove.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/remove/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set/remove/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_signal_set__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/_basic_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/async_connect.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/async_wait.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/at_mark.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/at_mark/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/at_mark/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/available.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/available/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/available/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/basic_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/basic_socket/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/basic_socket/overload10.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/basic_socket/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/basic_socket/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/basic_socket/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/basic_socket/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/basic_socket/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/basic_socket/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/basic_socket/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/basic_socket/overload9.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/bind.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/bind/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/bind/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/broadcast.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/bytes_readable.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/close.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/connect.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/connect/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/connect/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/debug.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/enable_connection_aborted.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/get_option.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/get_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/get_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/io_control.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/io_control/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/io_control/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/keep_alive.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/linger.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/local_endpoint.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/local_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/local_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/max_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/max_listen_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/message_do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/message_end_of_record.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/message_flags.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/message_out_of_band.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/message_peek.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/native_non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/open.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/open/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/open/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/out_of_band_inline.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/receive_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/receive_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/release.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/remote_endpoint.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/remote_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/remote_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/reuse_address.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/send_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/send_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/set_option.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/set_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/set_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/shutdown.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/shutdown/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/shutdown/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/shutdown_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/wait.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/wait/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/wait/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket/wait_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_socket__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload10.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload11.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload12.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload13.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload14.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload15.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload16.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload9.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/async_wait.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload10.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload9.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/bind.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/bind/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/bind/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/broadcast.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/bytes_readable.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/close.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/debug.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/enable_connection_aborted.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/get_option.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/io_control.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/keep_alive.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/linger.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/listen.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/listen/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/listen/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/max_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/max_listen_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/message_do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/message_end_of_record.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/message_flags.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/message_out_of_band.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/message_peek.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/open.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/open/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/open/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/out_of_band_inline.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/receive_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/receive_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/release.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/reuse_address.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/send_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/send_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/set_option.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/shutdown_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/wait.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/wait/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/wait/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor/wait_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_acceptor__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/clock_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/close.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/connect.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/duration.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/duration_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/error.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/expires_after.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/expires_at.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/expiry.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/rdbuf.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/socket.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/time_point.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_iostream/time_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/clock_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/close.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/connect.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/connect/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/connect/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/duration.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/duration_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/error.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/expires_after.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/expiry.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/overflow.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/puberror.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/setbuf.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/socket.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/sync.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/time_point.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/time_type.html create mode 100644 3party/asio/doc/asio/reference/basic_socket_streambuf/underflow.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/_basic_stream_file.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/append.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/async_read_some.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/async_write_some.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload10.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload9.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/close.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/create.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/exclusive.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/flags.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/open.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/open/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/open/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/open/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/open/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/read_only.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/read_some.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/read_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/read_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/read_write.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/release.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/resize.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/resize/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/resize/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/seek.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/seek/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/seek/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/seek_basis.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/size.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/size/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/size/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/sync_all.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/sync_all/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/sync_all/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/sync_all_on_write.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/sync_data.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/sync_data/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/sync_data/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/truncate.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/write_only.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/write_some.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/write_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file/write_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_file__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/_basic_stream_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/async_connect.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/async_read_some.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/async_receive.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/async_receive/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/async_receive/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/async_send.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/async_send/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/async_send/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/async_wait.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/async_write_some.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/at_mark.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/at_mark/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/at_mark/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/available.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/available/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/available/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload10.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload9.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/bind.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/bind/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/bind/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/broadcast.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/bytes_readable.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/close.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/connect.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/connect/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/connect/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/debug.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/enable_connection_aborted.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/get_option.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/get_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/get_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/io_control.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/io_control/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/io_control/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/keep_alive.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/linger.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/max_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/max_listen_connections.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/message_do_not_route.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/message_end_of_record.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/message_flags.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/message_out_of_band.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/message_peek.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/non_blocking.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/open.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/open/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/open/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/out_of_band_inline.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/read_some.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/read_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/read_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/receive.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/receive/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/receive/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/receive/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/receive_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/receive_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/release.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/reuse_address.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/send.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/send/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/send/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/send/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/send_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/send_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/set_option.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/set_option/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/set_option/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/shutdown.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/shutdown/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/shutdown/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/shutdown_type.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/wait.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/wait/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/wait/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/wait_type.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/write_some.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/write_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket/write_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_stream_socket__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/basic_streambuf.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/capacity.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/commit.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/const_buffers_type.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/consume.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/data.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/max_size.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/mutable_buffers_type.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/overflow.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/prepare.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/reserve.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/size.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf/underflow.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/capacity.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/commit.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/const_buffers_type.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/consume.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/data.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/max_size.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/mutable_buffers_type.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/prepare.html create mode 100644 3party/asio/doc/asio/reference/basic_streambuf_ref/size.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/basic_system_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/context.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/defer.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/dispatch.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/execute.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/on_work_finished.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/on_work_started.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/post.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/query.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/query/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/query/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/query/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/query__static.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/query__static/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/query__static/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/query__static/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/query__static/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/require.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/require/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/require/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/require/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/require/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/require/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/require/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_system_executor/require/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/_basic_waitable_timer.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/async_wait.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload7.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload8.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/clock_type.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/duration.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/expires_after.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/expires_at.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/expiry.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/time_point.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/traits_type.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/wait.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/wait/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer/wait/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_waitable_timer__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/_basic_writable_pipe.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/assign.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/async_write_some.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload4.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload5.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload6.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/cancel.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/close.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/is_open.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/native_handle.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/release.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/write_some.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/write_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe/write_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_writable_pipe__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/basic_yield_context.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/cancellation_slot_type.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/cancelled.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/executor_type.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/get_cancellation_slot.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/get_cancellation_state.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/get_executor.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/operator_lb__rb_.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload2.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload3.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled/overload1.html create mode 100644 3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled/overload2.html create mode 100644 3party/asio/doc/asio/reference/bind_allocator.html create mode 100644 3party/asio/doc/asio/reference/bind_cancellation_slot.html create mode 100644 3party/asio/doc/asio/reference/bind_executor.html create mode 100644 3party/asio/doc/asio/reference/bind_executor/overload1.html create mode 100644 3party/asio/doc/asio/reference/bind_executor/overload2.html create mode 100644 3party/asio/doc/asio/reference/bind_immediate_executor.html create mode 100644 3party/asio/doc/asio/reference/buffer.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload10.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload11.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload12.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload13.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload14.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload15.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload16.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload17.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload18.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload19.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload20.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload21.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload22.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload23.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload24.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload25.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload26.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload27.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload28.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload29.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload3.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload30.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload31.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload32.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload33.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload34.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload35.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload36.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload37.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload38.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload39.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload4.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload40.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload41.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload42.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload5.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload6.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload7.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload8.html create mode 100644 3party/asio/doc/asio/reference/buffer/overload9.html create mode 100644 3party/asio/doc/asio/reference/buffer_cast.html create mode 100644 3party/asio/doc/asio/reference/buffer_cast/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffer_cast/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffer_copy.html create mode 100644 3party/asio/doc/asio/reference/buffer_copy/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffer_copy/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf.html create mode 100644 3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/_buffer_registration.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/allocator_type.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/at.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/begin.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/buffer_registration.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload3.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/cbegin.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/cend.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/const_iterator.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/end.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/iterator.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/operator_lb__rb_.html create mode 100644 3party/asio/doc/asio/reference/buffer_registration/size.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_begin.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_begin/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_begin/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_begin/overload3.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_begin/overload4.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_begin/overload5.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_begin/overload6.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_end.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_end/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_end/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_end/overload3.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_end/overload4.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_end/overload5.html create mode 100644 3party/asio/doc/asio/reference/buffer_sequence_end/overload6.html create mode 100644 3party/asio/doc/asio/reference/buffer_size.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/async_fill.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/async_read_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/async_write_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/close.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/default_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/executor_type.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/fill.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/fill/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/fill/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/get_executor.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/in_avail.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/in_avail/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/in_avail/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/next_layer.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/next_layer_type.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/peek.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/peek/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/peek/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/read_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/read_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/read_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/write_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/write_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_read_stream/write_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/async_fill.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/async_flush.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/async_read_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/async_write_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/buffered_stream.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/buffered_stream/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/buffered_stream/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/close.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/executor_type.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/fill.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/fill/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/fill/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/flush.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/flush/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/flush/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/get_executor.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/in_avail.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/in_avail/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/in_avail/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/next_layer.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/next_layer_type.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/peek.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/peek/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/peek/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/read_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/read_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/read_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/write_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/write_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_stream/write_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/async_flush.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/async_read_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/async_write_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/close.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/default_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/executor_type.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/flush.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/flush/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/flush/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/get_executor.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/in_avail.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/in_avail/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/in_avail/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/next_layer.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/next_layer_type.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/peek.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/peek/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/peek/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/read_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/read_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/read_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/write_some.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/write_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffered_write_stream/write_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffers_begin.html create mode 100644 3party/asio/doc/asio/reference/buffers_end.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/begin.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/buffers_iterator.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/difference_type.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/end.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/iterator_category.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator__star_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_arrow_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_gt_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_gt__eq_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_lb__rb_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_lt_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_lt__eq_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_minus_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_minus__eq_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_plus_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_plus__eq_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/pointer.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/reference.html create mode 100644 3party/asio/doc/asio/reference/buffers_iterator/value_type.html create mode 100644 3party/asio/doc/asio/reference/can_prefer.html create mode 100644 3party/asio/doc/asio/reference/can_query.html create mode 100644 3party/asio/doc/asio/reference/can_require.html create mode 100644 3party/asio/doc/asio/reference/can_require_concept.html create mode 100644 3party/asio/doc/asio/reference/cancellation_filter.html create mode 100644 3party/asio/doc/asio/reference/cancellation_filter/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/cancellation_signal.html create mode 100644 3party/asio/doc/asio/reference/cancellation_signal/_cancellation_signal.html create mode 100644 3party/asio/doc/asio/reference/cancellation_signal/cancellation_signal.html create mode 100644 3party/asio/doc/asio/reference/cancellation_signal/emit.html create mode 100644 3party/asio/doc/asio/reference/cancellation_signal/slot.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot/assign.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot/cancellation_slot.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot/clear.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot/emplace.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot/has_handler.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot/is_connected.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/_cancellation_slot_binder.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/argument_type.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload1.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload2.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload3.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload4.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload5.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload6.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload7.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload8.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload9.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_type.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/first_argument_type.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/get.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/get/overload1.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/get/overload2.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/get_cancellation_slot.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_/overload1.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_/overload2.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/result_type.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/second_argument_type.html create mode 100644 3party/asio/doc/asio/reference/cancellation_slot_binder/target_type.html create mode 100644 3party/asio/doc/asio/reference/cancellation_state.html create mode 100644 3party/asio/doc/asio/reference/cancellation_state/cancellation_state.html create mode 100644 3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload1.html create mode 100644 3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload2.html create mode 100644 3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload3.html create mode 100644 3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload4.html create mode 100644 3party/asio/doc/asio/reference/cancellation_state/cancelled.html create mode 100644 3party/asio/doc/asio/reference/cancellation_state/clear.html create mode 100644 3party/asio/doc/asio/reference/cancellation_state/slot.html create mode 100644 3party/asio/doc/asio/reference/cancellation_type.html create mode 100644 3party/asio/doc/asio/reference/cancellation_type_t.html create mode 100644 3party/asio/doc/asio/reference/co_spawn.html create mode 100644 3party/asio/doc/asio/reference/co_spawn/overload1.html create mode 100644 3party/asio/doc/asio/reference/co_spawn/overload2.html create mode 100644 3party/asio/doc/asio/reference/co_spawn/overload3.html create mode 100644 3party/asio/doc/asio/reference/co_spawn/overload4.html create mode 100644 3party/asio/doc/asio/reference/co_spawn/overload5.html create mode 100644 3party/asio/doc/asio/reference/co_spawn/overload6.html create mode 100644 3party/asio/doc/asio/reference/completion_signature_of.html create mode 100644 3party/asio/doc/asio/reference/completion_signature_of/type.html create mode 100644 3party/asio/doc/asio/reference/connect.html create mode 100644 3party/asio/doc/asio/reference/connect/overload1.html create mode 100644 3party/asio/doc/asio/reference/connect/overload10.html create mode 100644 3party/asio/doc/asio/reference/connect/overload11.html create mode 100644 3party/asio/doc/asio/reference/connect/overload12.html create mode 100644 3party/asio/doc/asio/reference/connect/overload2.html create mode 100644 3party/asio/doc/asio/reference/connect/overload3.html create mode 100644 3party/asio/doc/asio/reference/connect/overload4.html create mode 100644 3party/asio/doc/asio/reference/connect/overload5.html create mode 100644 3party/asio/doc/asio/reference/connect/overload6.html create mode 100644 3party/asio/doc/asio/reference/connect/overload7.html create mode 100644 3party/asio/doc/asio/reference/connect/overload8.html create mode 100644 3party/asio/doc/asio/reference/connect/overload9.html create mode 100644 3party/asio/doc/asio/reference/connect_pipe.html create mode 100644 3party/asio/doc/asio/reference/connect_pipe/overload1.html create mode 100644 3party/asio/doc/asio/reference/connect_pipe/overload2.html create mode 100644 3party/asio/doc/asio/reference/consign.html create mode 100644 3party/asio/doc/asio/reference/consign_t.html create mode 100644 3party/asio/doc/asio/reference/consign_t/consign_t.html create mode 100644 3party/asio/doc/asio/reference/const_buffer.html create mode 100644 3party/asio/doc/asio/reference/const_buffer/const_buffer.html create mode 100644 3party/asio/doc/asio/reference/const_buffer/const_buffer/overload1.html create mode 100644 3party/asio/doc/asio/reference/const_buffer/const_buffer/overload2.html create mode 100644 3party/asio/doc/asio/reference/const_buffer/const_buffer/overload3.html create mode 100644 3party/asio/doc/asio/reference/const_buffer/data.html create mode 100644 3party/asio/doc/asio/reference/const_buffer/operator_plus_.html create mode 100644 3party/asio/doc/asio/reference/const_buffer/operator_plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/const_buffer/operator_plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/const_buffer/operator_plus__eq_.html create mode 100644 3party/asio/doc/asio/reference/const_buffer/size.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/begin.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload1.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload2.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/const_iterator.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/data.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/end.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/operator_plus_.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/operator_plus__eq_.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/size.html create mode 100644 3party/asio/doc/asio/reference/const_buffers_1/value_type.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer/buffer.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer/overload1.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer/overload2.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer/data.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer/id.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer/operator_plus__eq_.html create mode 100644 3party/asio/doc/asio/reference/const_registered_buffer/size.html create mode 100644 3party/asio/doc/asio/reference/coroutine.html create mode 100644 3party/asio/doc/asio/reference/coroutine/coroutine.html create mode 100644 3party/asio/doc/asio/reference/coroutine/is_child.html create mode 100644 3party/asio/doc/asio/reference/coroutine/is_complete.html create mode 100644 3party/asio/doc/asio/reference/coroutine/is_parent.html create mode 100644 3party/asio/doc/asio/reference/deadline_timer.html create mode 100644 3party/asio/doc/asio/reference/default_completion_token.html create mode 100644 3party/asio/doc/asio/reference/default_completion_token/type.html create mode 100644 3party/asio/doc/asio/reference/defer.html create mode 100644 3party/asio/doc/asio/reference/defer/overload1.html create mode 100644 3party/asio/doc/asio/reference/defer/overload2.html create mode 100644 3party/asio/doc/asio/reference/defer/overload3.html create mode 100644 3party/asio/doc/asio/reference/deferred.html create mode 100644 3party/asio/doc/asio/reference/deferred_async_operation.html create mode 100644 3party/asio/doc/asio/reference/deferred_async_operation/deferred_async_operation.html create mode 100644 3party/asio/doc/asio/reference/deferred_async_operation/detail__index_sequence_for.html create mode 100644 3party/asio/doc/asio/reference/deferred_async_operation/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_.html create mode 100644 3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/deferred_async_operation.html create mode 100644 3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/detail__index_sequence_for.html create mode 100644 3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/deferred_conditional.html create mode 100644 3party/asio/doc/asio/reference/deferred_conditional/deferred_conditional.html create mode 100644 3party/asio/doc/asio/reference/deferred_conditional/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/deferred_conditional/otherwise.html create mode 100644 3party/asio/doc/asio/reference/deferred_conditional/then.html create mode 100644 3party/asio/doc/asio/reference/deferred_function.html create mode 100644 3party/asio/doc/asio/reference/deferred_function/deferred_function.html create mode 100644 3party/asio/doc/asio/reference/deferred_function/function_.html create mode 100644 3party/asio/doc/asio/reference/deferred_function/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/deferred_init_tag.html create mode 100644 3party/asio/doc/asio/reference/deferred_noop.html create mode 100644 3party/asio/doc/asio/reference/deferred_noop/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/deferred_sequence.html create mode 100644 3party/asio/doc/asio/reference/deferred_sequence/deferred_sequence.html create mode 100644 3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_/overload1.html create mode 100644 3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_/overload2.html create mode 100644 3party/asio/doc/asio/reference/deferred_signatures.html create mode 100644 3party/asio/doc/asio/reference/deferred_t.html create mode 100644 3party/asio/doc/asio/reference/deferred_t/as_default_on.html create mode 100644 3party/asio/doc/asio/reference/deferred_t/deferred_t.html create mode 100644 3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_/overload1.html create mode 100644 3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_/overload2.html create mode 100644 3party/asio/doc/asio/reference/deferred_t/values.html create mode 100644 3party/asio/doc/asio/reference/deferred_t/when.html create mode 100644 3party/asio/doc/asio/reference/deferred_t__executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/deferred_t__executor_with_default/default_completion_token_type.html create mode 100644 3party/asio/doc/asio/reference/deferred_t__executor_with_default/executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/deferred_values.html create mode 100644 3party/asio/doc/asio/reference/deferred_values/deferred_values.html create mode 100644 3party/asio/doc/asio/reference/deferred_values/detail__index_sequence_for.html create mode 100644 3party/asio/doc/asio/reference/deferred_values/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/deferred_values__initiate.html create mode 100644 3party/asio/doc/asio/reference/deferred_values__initiate/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/detached.html create mode 100644 3party/asio/doc/asio/reference/detached_t.html create mode 100644 3party/asio/doc/asio/reference/detached_t/as_default_on.html create mode 100644 3party/asio/doc/asio/reference/detached_t/detached_t.html create mode 100644 3party/asio/doc/asio/reference/detached_t__executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/detached_t__executor_with_default/default_completion_token_type.html create mode 100644 3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default/overload1.html create mode 100644 3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default/overload2.html create mode 100644 3party/asio/doc/asio/reference/disable_cancellation.html create mode 100644 3party/asio/doc/asio/reference/dispatch.html create mode 100644 3party/asio/doc/asio/reference/dispatch/overload1.html create mode 100644 3party/asio/doc/asio/reference/dispatch/overload2.html create mode 100644 3party/asio/doc/asio/reference/dispatch/overload3.html create mode 100644 3party/asio/doc/asio/reference/dynamic_buffer.html create mode 100644 3party/asio/doc/asio/reference/dynamic_buffer/overload1.html create mode 100644 3party/asio/doc/asio/reference/dynamic_buffer/overload2.html create mode 100644 3party/asio/doc/asio/reference/dynamic_buffer/overload3.html create mode 100644 3party/asio/doc/asio/reference/dynamic_buffer/overload4.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/capacity.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/commit.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/const_buffers_type.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/consume.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/data.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload1.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload2.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload3.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload3.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/grow.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/max_size.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/mutable_buffers_type.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/prepare.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/shrink.html create mode 100644 3party/asio/doc/asio/reference/dynamic_string_buffer/size.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/capacity.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/commit.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/const_buffers_type.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/consume.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/data.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload1.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload2.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload3.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload3.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/grow.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/max_size.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/mutable_buffers_type.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/prepare.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/shrink.html create mode 100644 3party/asio/doc/asio/reference/dynamic_vector_buffer/size.html create mode 100644 3party/asio/doc/asio/reference/enable_partial_cancellation.html create mode 100644 3party/asio/doc/asio/reference/enable_terminal_cancellation.html create mode 100644 3party/asio/doc/asio/reference/enable_total_cancellation.html create mode 100644 3party/asio/doc/asio/reference/error__addrinfo_category.html create mode 100644 3party/asio/doc/asio/reference/error__addrinfo_errors.html create mode 100644 3party/asio/doc/asio/reference/error__basic_errors.html create mode 100644 3party/asio/doc/asio/reference/error__clear.html create mode 100644 3party/asio/doc/asio/reference/error__get_addrinfo_category.html create mode 100644 3party/asio/doc/asio/reference/error__get_misc_category.html create mode 100644 3party/asio/doc/asio/reference/error__get_netdb_category.html create mode 100644 3party/asio/doc/asio/reference/error__get_ssl_category.html create mode 100644 3party/asio/doc/asio/reference/error__get_system_category.html create mode 100644 3party/asio/doc/asio/reference/error__make_error_code.html create mode 100644 3party/asio/doc/asio/reference/error__make_error_code/overload1.html create mode 100644 3party/asio/doc/asio/reference/error__make_error_code/overload2.html create mode 100644 3party/asio/doc/asio/reference/error__make_error_code/overload3.html create mode 100644 3party/asio/doc/asio/reference/error__make_error_code/overload4.html create mode 100644 3party/asio/doc/asio/reference/error__make_error_code/overload5.html create mode 100644 3party/asio/doc/asio/reference/error__misc_category.html create mode 100644 3party/asio/doc/asio/reference/error__misc_errors.html create mode 100644 3party/asio/doc/asio/reference/error__netdb_category.html create mode 100644 3party/asio/doc/asio/reference/error__netdb_errors.html create mode 100644 3party/asio/doc/asio/reference/error__ssl_category.html create mode 100644 3party/asio/doc/asio/reference/error__ssl_errors.html create mode 100644 3party/asio/doc/asio/reference/error__system_category.html create mode 100644 3party/asio/doc/asio/reference/error_category.html create mode 100644 3party/asio/doc/asio/reference/error_category/_error_category.html create mode 100644 3party/asio/doc/asio/reference/error_category/message.html create mode 100644 3party/asio/doc/asio/reference/error_category/name.html create mode 100644 3party/asio/doc/asio/reference/error_category/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/error_category/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/error_code.html create mode 100644 3party/asio/doc/asio/reference/error_code/assign.html create mode 100644 3party/asio/doc/asio/reference/error_code/category.html create mode 100644 3party/asio/doc/asio/reference/error_code/clear.html create mode 100644 3party/asio/doc/asio/reference/error_code/error_code.html create mode 100644 3party/asio/doc/asio/reference/error_code/error_code/overload1.html create mode 100644 3party/asio/doc/asio/reference/error_code/error_code/overload2.html create mode 100644 3party/asio/doc/asio/reference/error_code/error_code/overload3.html create mode 100644 3party/asio/doc/asio/reference/error_code/message.html create mode 100644 3party/asio/doc/asio/reference/error_code/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/error_code/operator_not_.html create mode 100644 3party/asio/doc/asio/reference/error_code/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/error_code/operator_unspecified_bool_type.html create mode 100644 3party/asio/doc/asio/reference/error_code/unspecified_bool_true.html create mode 100644 3party/asio/doc/asio/reference/error_code/unspecified_bool_type.html create mode 100644 3party/asio/doc/asio/reference/error_code/value.html create mode 100644 3party/asio/doc/asio/reference/error_code__unspecified_bool_type_t.html create mode 100644 3party/asio/doc/asio/reference/execution__allocator.html create mode 100644 3party/asio/doc/asio/reference/execution__allocator_t.html create mode 100644 3party/asio/doc/asio/reference/execution__allocator_t/allocator_t.html create mode 100644 3party/asio/doc/asio/reference/execution__allocator_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__allocator_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__allocator_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__allocator_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/_any_executor.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/any_executor.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload10.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload3.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload4.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload5.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload6.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload7.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload8.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload9.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/context.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/execute.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_bool.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload4.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/prefer.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/query.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/require.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/swap.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/target.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/target/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/target/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution__any_executor/target_type.html create mode 100644 3party/asio/doc/asio/reference/execution__bad_executor.html create mode 100644 3party/asio/doc/asio/reference/execution__bad_executor/bad_executor.html create mode 100644 3party/asio/doc/asio/reference/execution__bad_executor/what.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/allowed.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload3.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/disallowed.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/allowed_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/disallowed_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/always.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/blocking_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload3.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload4.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/never.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t/possibly.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__always_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__always_t/always_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__always_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__always_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__never_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__never_t/never_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__never_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__never_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__possibly_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/possibly_t.html create mode 100644 3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_execute.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload3.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload4.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/parallel.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/sequenced.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t/unsequenced.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/parallel_t.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/sequenced_t.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/unsequenced_t.html create mode 100644 3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__can_bulk_execute.html create mode 100644 3party/asio/doc/asio/reference/execution__can_connect.html create mode 100644 3party/asio/doc/asio/reference/execution__can_execute.html create mode 100644 3party/asio/doc/asio/reference/execution__can_schedule.html create mode 100644 3party/asio/doc/asio/reference/execution__can_set_done.html create mode 100644 3party/asio/doc/asio/reference/execution__can_set_error.html create mode 100644 3party/asio/doc/asio/reference/execution__can_set_value.html create mode 100644 3party/asio/doc/asio/reference/execution__can_start.html create mode 100644 3party/asio/doc/asio/reference/execution__can_submit.html create mode 100644 3party/asio/doc/asio/reference/execution__connect.html create mode 100644 3party/asio/doc/asio/reference/execution__connect_result.html create mode 100644 3party/asio/doc/asio/reference/execution__connect_result/type.html create mode 100644 3party/asio/doc/asio/reference/execution__context.html create mode 100644 3party/asio/doc/asio/reference/execution__context_as.html create mode 100644 3party/asio/doc/asio/reference/execution__context_as_t.html create mode 100644 3party/asio/doc/asio/reference/execution__context_as_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__context_as_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__context_as_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__context_as_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__context_t.html create mode 100644 3party/asio/doc/asio/reference/execution__context_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__context_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__context_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__context_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__execute.html create mode 100644 3party/asio/doc/asio/reference/execution__executor_index.html create mode 100644 3party/asio/doc/asio/reference/execution__executor_index/type.html create mode 100644 3party/asio/doc/asio/reference/execution__executor_shape.html create mode 100644 3party/asio/doc/asio/reference/execution__executor_shape/type.html create mode 100644 3party/asio/doc/asio/reference/execution__invocable_archetype.html create mode 100644 3party/asio/doc/asio/reference/execution__invocable_archetype/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/execution__is_executor.html create mode 100644 3party/asio/doc/asio/reference/execution__is_executor_of.html create mode 100644 3party/asio/doc/asio/reference/execution__is_nothrow_receiver_of.html create mode 100644 3party/asio/doc/asio/reference/execution__is_operation_state.html create mode 100644 3party/asio/doc/asio/reference/execution__is_receiver.html create mode 100644 3party/asio/doc/asio/reference/execution__is_receiver_of.html create mode 100644 3party/asio/doc/asio/reference/execution__is_scheduler.html create mode 100644 3party/asio/doc/asio/reference/execution__is_sender.html create mode 100644 3party/asio/doc/asio/reference/execution__is_sender_to.html create mode 100644 3party/asio/doc/asio/reference/execution__is_typed_sender.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/mapping_t.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload3.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload4.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/new_thread.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/other.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t/thread.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/new_thread_t.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__other_t.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__other_t/other_t.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__other_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__other_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__thread_t.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__thread_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__thread_t/thread_t.html create mode 100644 3party/asio/doc/asio/reference/execution__mapping_t__thread_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__occupancy.html create mode 100644 3party/asio/doc/asio/reference/execution__occupancy_t.html create mode 100644 3party/asio/doc/asio/reference/execution__occupancy_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__occupancy_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__occupancy_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__occupancy_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload3.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/tracked.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t/untracked.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/tracked_t.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/untracked_t.html create mode 100644 3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__prefer_only.html create mode 100644 3party/asio/doc/asio/reference/execution__prefer_only/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__prefer_only/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__prefer_only/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__prefer_only/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__receiver_invocation_error.html create mode 100644 3party/asio/doc/asio/reference/execution__receiver_invocation_error/receiver_invocation_error.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/continuation.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/fork.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/relationship_t.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload3.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__continuation_t.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/continuation_t.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__fork_t.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__fork_t/fork_t.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_applicable_property_v.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_preferable.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_requirable.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__fork_t/polymorphic_query_result_type.html create mode 100644 3party/asio/doc/asio/reference/execution__relationship_t__fork_t/value.html create mode 100644 3party/asio/doc/asio/reference/execution__schedule.html create mode 100644 3party/asio/doc/asio/reference/execution__sender_base.html create mode 100644 3party/asio/doc/asio/reference/execution__sender_traits.html create mode 100644 3party/asio/doc/asio/reference/execution__set_done.html create mode 100644 3party/asio/doc/asio/reference/execution__set_error.html create mode 100644 3party/asio/doc/asio/reference/execution__set_value.html create mode 100644 3party/asio/doc/asio/reference/execution__start.html create mode 100644 3party/asio/doc/asio/reference/execution__submit.html create mode 100644 3party/asio/doc/asio/reference/execution_context.html create mode 100644 3party/asio/doc/asio/reference/execution_context/_execution_context.html create mode 100644 3party/asio/doc/asio/reference/execution_context/add_service.html create mode 100644 3party/asio/doc/asio/reference/execution_context/destroy.html create mode 100644 3party/asio/doc/asio/reference/execution_context/execution_context.html create mode 100644 3party/asio/doc/asio/reference/execution_context/fork_event.html create mode 100644 3party/asio/doc/asio/reference/execution_context/has_service.html create mode 100644 3party/asio/doc/asio/reference/execution_context/make_service.html create mode 100644 3party/asio/doc/asio/reference/execution_context/notify_fork.html create mode 100644 3party/asio/doc/asio/reference/execution_context/shutdown.html create mode 100644 3party/asio/doc/asio/reference/execution_context/use_service.html create mode 100644 3party/asio/doc/asio/reference/execution_context/use_service/overload1.html create mode 100644 3party/asio/doc/asio/reference/execution_context/use_service/overload2.html create mode 100644 3party/asio/doc/asio/reference/execution_context__id.html create mode 100644 3party/asio/doc/asio/reference/execution_context__id/id.html create mode 100644 3party/asio/doc/asio/reference/execution_context__service.html create mode 100644 3party/asio/doc/asio/reference/execution_context__service/_service.html create mode 100644 3party/asio/doc/asio/reference/execution_context__service/context.html create mode 100644 3party/asio/doc/asio/reference/execution_context__service/notify_fork.html create mode 100644 3party/asio/doc/asio/reference/execution_context__service/service.html create mode 100644 3party/asio/doc/asio/reference/execution_context__service/shutdown.html create mode 100644 3party/asio/doc/asio/reference/executor.html create mode 100644 3party/asio/doc/asio/reference/executor/_executor.html create mode 100644 3party/asio/doc/asio/reference/executor/context.html create mode 100644 3party/asio/doc/asio/reference/executor/defer.html create mode 100644 3party/asio/doc/asio/reference/executor/dispatch.html create mode 100644 3party/asio/doc/asio/reference/executor/executor.html create mode 100644 3party/asio/doc/asio/reference/executor/executor/overload1.html create mode 100644 3party/asio/doc/asio/reference/executor/executor/overload2.html create mode 100644 3party/asio/doc/asio/reference/executor/executor/overload3.html create mode 100644 3party/asio/doc/asio/reference/executor/executor/overload4.html create mode 100644 3party/asio/doc/asio/reference/executor/executor/overload5.html create mode 100644 3party/asio/doc/asio/reference/executor/executor/overload6.html create mode 100644 3party/asio/doc/asio/reference/executor/on_work_finished.html create mode 100644 3party/asio/doc/asio/reference/executor/on_work_started.html create mode 100644 3party/asio/doc/asio/reference/executor/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/executor/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/executor/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/executor/operator_eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/executor/operator_eq_/overload4.html create mode 100644 3party/asio/doc/asio/reference/executor/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/executor/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/executor/operator_unspecified_bool_type.html create mode 100644 3party/asio/doc/asio/reference/executor/post.html create mode 100644 3party/asio/doc/asio/reference/executor/target.html create mode 100644 3party/asio/doc/asio/reference/executor/target/overload1.html create mode 100644 3party/asio/doc/asio/reference/executor/target/overload2.html create mode 100644 3party/asio/doc/asio/reference/executor/target_type.html create mode 100644 3party/asio/doc/asio/reference/executor/unspecified_bool_true.html create mode 100644 3party/asio/doc/asio/reference/executor/unspecified_bool_type.html create mode 100644 3party/asio/doc/asio/reference/executor__unspecified_bool_type_t.html create mode 100644 3party/asio/doc/asio/reference/executor_arg.html create mode 100644 3party/asio/doc/asio/reference/executor_arg_t.html create mode 100644 3party/asio/doc/asio/reference/executor_arg_t/executor_arg_t.html create mode 100644 3party/asio/doc/asio/reference/executor_binder.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/_executor_binder.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/argument_type.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/executor_binder.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/executor_binder/overload1.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/executor_binder/overload2.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/executor_binder/overload3.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/executor_binder/overload4.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/executor_binder/overload5.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/executor_binder/overload6.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/executor_binder/overload7.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/executor_binder/overload8.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/executor_binder/overload9.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/executor_type.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/first_argument_type.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/get.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/get/overload1.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/get/overload2.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/get_executor.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload1.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload2.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/result_type.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/second_argument_type.html create mode 100644 3party/asio/doc/asio/reference/executor_binder/target_type.html create mode 100644 3party/asio/doc/asio/reference/executor_work_guard.html create mode 100644 3party/asio/doc/asio/reference/executor_work_guard/_executor_work_guard.html create mode 100644 3party/asio/doc/asio/reference/executor_work_guard/executor_type.html create mode 100644 3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard.html create mode 100644 3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload1.html create mode 100644 3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload2.html create mode 100644 3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload3.html create mode 100644 3party/asio/doc/asio/reference/executor_work_guard/get_executor.html create mode 100644 3party/asio/doc/asio/reference/executor_work_guard/owns_work.html create mode 100644 3party/asio/doc/asio/reference/executor_work_guard/reset.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t/as_default_on.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t/token_.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t__default_constructor_tag.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/default_completion_token_type.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload3.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload4.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload5.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload6.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload3.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload4.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload5.html create mode 100644 3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload6.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/_basic_channel.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/async_receive.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/async_send.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload3.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload4.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/cancel.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/capacity.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/close.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/executor_type.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/get_executor.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/is_open.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/ready.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/reset.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/traits_type.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/try_receive.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/try_send.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel/try_send_n.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_channel__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/_basic_concurrent_channel.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/async_receive.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/async_send.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload3.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload4.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/cancel.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/capacity.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/close.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/executor_type.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/get_executor.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/is_open.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/ready.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/reset.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/traits_type.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_receive.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_send.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_send_n.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/experimental__basic_concurrent_channel__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/experimental__channel_traits.html create mode 100644 3party/asio/doc/asio/reference/experimental__channel_traits/invoke_receive_cancelled.html create mode 100644 3party/asio/doc/asio/reference/experimental__channel_traits/invoke_receive_closed.html create mode 100644 3party/asio/doc/asio/reference/experimental__channel_traits/receive_cancelled_signature.html create mode 100644 3party/asio/doc/asio/reference/experimental__channel_traits/receive_closed_signature.html create mode 100644 3party/asio/doc/asio/reference/experimental__channel_traits__container.html create mode 100644 3party/asio/doc/asio/reference/experimental__channel_traits__container/type.html create mode 100644 3party/asio/doc/asio/reference/experimental__channel_traits__rebind.html create mode 100644 3party/asio/doc/asio/reference/experimental__channel_traits__rebind/other.html create mode 100644 3party/asio/doc/asio/reference/experimental__co_composed.html create mode 100644 3party/asio/doc/asio/reference/experimental__co_spawn.html create mode 100644 3party/asio/doc/asio/reference/experimental__co_spawn/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__co_spawn/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__co_spawn/overload3.html create mode 100644 3party/asio/doc/asio/reference/experimental__co_spawn/overload4.html create mode 100644 3party/asio/doc/asio/reference/experimental__co_spawn/overload5.html create mode 100644 3party/asio/doc/asio/reference/experimental__co_spawn/overload6.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/_coro.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/async_resume.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/async_resume/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/async_resume/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/coro.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/coro/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/coro/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/coro/overload3.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/get_allocator.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/get_executor.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/is_noexcept.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/is_open.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/operator_bool.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/operator_co_await.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro_traits.html create mode 100644 3party/asio/doc/asio/reference/experimental__coro_traits/is_noexcept.html create mode 100644 3party/asio/doc/asio/reference/experimental__error__channel_category.html create mode 100644 3party/asio/doc/asio/reference/experimental__error__channel_errors.html create mode 100644 3party/asio/doc/asio/reference/experimental__error__get_channel_category.html create mode 100644 3party/asio/doc/asio/reference/experimental__error__make_error_code.html create mode 100644 3party/asio/doc/asio/reference/experimental__is_async_operation_range.html create mode 100644 3party/asio/doc/asio/reference/experimental__is_async_operation_range/value.html create mode 100644 3party/asio/doc/asio/reference/experimental__is_promise.html create mode 100644 3party/asio/doc/asio/reference/experimental__is_promise_lt__promise_lt__Ts_ellipsis__gt__gt_.html create mode 100644 3party/asio/doc/asio/reference/experimental__is_promise_v.html create mode 100644 3party/asio/doc/asio/reference/experimental__make_parallel_group.html create mode 100644 3party/asio/doc/asio/reference/experimental__make_parallel_group/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__make_parallel_group/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__make_parallel_group/overload3.html create mode 100644 3party/asio/doc/asio/reference/experimental__parallel_group.html create mode 100644 3party/asio/doc/asio/reference/experimental__parallel_group/async_wait.html create mode 100644 3party/asio/doc/asio/reference/experimental__parallel_group/parallel_group.html create mode 100644 3party/asio/doc/asio/reference/experimental__parallel_group/signature.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise/_promise.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise/cancel.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise/completed.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise/promise.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise/promise/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise/promise/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise/promise/overload3.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise_value_type.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise_value_type_lt__T__gt_.html create mode 100644 3party/asio/doc/asio/reference/experimental__promise_value_type_lt__gt_.html create mode 100644 3party/asio/doc/asio/reference/experimental__ranged_parallel_group.html create mode 100644 3party/asio/doc/asio/reference/experimental__ranged_parallel_group/async_wait.html create mode 100644 3party/asio/doc/asio/reference/experimental__ranged_parallel_group/ranged_parallel_group.html create mode 100644 3party/asio/doc/asio/reference/experimental__ranged_parallel_group/signature.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro_t.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro_t/allocator_type.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro_t/as_default_on.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro_t/get_allocator.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro_t/rebind.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default/default_completion_token_type.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default/executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t/allocator_type.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t/as_default_on.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t/get_allocator.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t/rebind.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/default_completion_token_type.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_all.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_all/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one/wait_for_one.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_error.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload3.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_error/wait_for_one_error.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_success.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload1.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload2.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload3.html create mode 100644 3party/asio/doc/asio/reference/experimental__wait_for_one_success/wait_for_one_success.html create mode 100644 3party/asio/doc/asio/reference/file_base.html create mode 100644 3party/asio/doc/asio/reference/file_base/_file_base.html create mode 100644 3party/asio/doc/asio/reference/file_base/append.html create mode 100644 3party/asio/doc/asio/reference/file_base/create.html create mode 100644 3party/asio/doc/asio/reference/file_base/exclusive.html create mode 100644 3party/asio/doc/asio/reference/file_base/flags.html create mode 100644 3party/asio/doc/asio/reference/file_base/read_only.html create mode 100644 3party/asio/doc/asio/reference/file_base/read_write.html create mode 100644 3party/asio/doc/asio/reference/file_base/seek_basis.html create mode 100644 3party/asio/doc/asio/reference/file_base/sync_all_on_write.html create mode 100644 3party/asio/doc/asio/reference/file_base/truncate.html create mode 100644 3party/asio/doc/asio/reference/file_base/write_only.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/capacity.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/data.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/data/overload1.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/data/overload2.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/data_type.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/operator_gt_.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/operator_gt__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/operator_lt_.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/operator_lt__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/resize.html create mode 100644 3party/asio/doc/asio/reference/generic__basic_endpoint/size.html create mode 100644 3party/asio/doc/asio/reference/generic__datagram_protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html create mode 100644 3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html create mode 100644 3party/asio/doc/asio/reference/generic__datagram_protocol/endpoint.html create mode 100644 3party/asio/doc/asio/reference/generic__datagram_protocol/family.html create mode 100644 3party/asio/doc/asio/reference/generic__datagram_protocol/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__datagram_protocol/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__datagram_protocol/protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__datagram_protocol/socket.html create mode 100644 3party/asio/doc/asio/reference/generic__datagram_protocol/type.html create mode 100644 3party/asio/doc/asio/reference/generic__raw_protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__raw_protocol/endpoint.html create mode 100644 3party/asio/doc/asio/reference/generic__raw_protocol/family.html create mode 100644 3party/asio/doc/asio/reference/generic__raw_protocol/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__raw_protocol/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__raw_protocol/protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload1.html create mode 100644 3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload2.html create mode 100644 3party/asio/doc/asio/reference/generic__raw_protocol/socket.html create mode 100644 3party/asio/doc/asio/reference/generic__raw_protocol/type.html create mode 100644 3party/asio/doc/asio/reference/generic__seq_packet_protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__seq_packet_protocol/endpoint.html create mode 100644 3party/asio/doc/asio/reference/generic__seq_packet_protocol/family.html create mode 100644 3party/asio/doc/asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__seq_packet_protocol/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__seq_packet_protocol/protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html create mode 100644 3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html create mode 100644 3party/asio/doc/asio/reference/generic__seq_packet_protocol/socket.html create mode 100644 3party/asio/doc/asio/reference/generic__seq_packet_protocol/type.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol/endpoint.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol/family.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol/iostream.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol/protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol/socket.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload1.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload2.html create mode 100644 3party/asio/doc/asio/reference/generic__stream_protocol/type.html create mode 100644 3party/asio/doc/asio/reference/get_associated_allocator.html create mode 100644 3party/asio/doc/asio/reference/get_associated_allocator/overload1.html create mode 100644 3party/asio/doc/asio/reference/get_associated_allocator/overload2.html create mode 100644 3party/asio/doc/asio/reference/get_associated_cancellation_slot.html create mode 100644 3party/asio/doc/asio/reference/get_associated_cancellation_slot/overload1.html create mode 100644 3party/asio/doc/asio/reference/get_associated_cancellation_slot/overload2.html create mode 100644 3party/asio/doc/asio/reference/get_associated_executor.html create mode 100644 3party/asio/doc/asio/reference/get_associated_executor/overload1.html create mode 100644 3party/asio/doc/asio/reference/get_associated_executor/overload2.html create mode 100644 3party/asio/doc/asio/reference/get_associated_executor/overload3.html create mode 100644 3party/asio/doc/asio/reference/get_associated_immediate_executor.html create mode 100644 3party/asio/doc/asio/reference/get_associated_immediate_executor/overload1.html create mode 100644 3party/asio/doc/asio/reference/get_associated_immediate_executor/overload2.html create mode 100644 3party/asio/doc/asio/reference/high_resolution_timer.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/_immediate_executor_binder.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/argument_type.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/first_argument_type.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/get.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/get/overload1.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/get/overload2.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/get_immediate_executor.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload1.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload2.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload3.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload4.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload5.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload6.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload7.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload8.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload9.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_type.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_/overload1.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_/overload2.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/result_type.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/second_argument_type.html create mode 100644 3party/asio/doc/asio/reference/immediate_executor_binder/target_type.html create mode 100644 3party/asio/doc/asio/reference/invalid_service_owner.html create mode 100644 3party/asio/doc/asio/reference/invalid_service_owner/invalid_service_owner.html create mode 100644 3party/asio/doc/asio/reference/io_context.html create mode 100644 3party/asio/doc/asio/reference/io_context/_io_context.html create mode 100644 3party/asio/doc/asio/reference/io_context/add_service.html create mode 100644 3party/asio/doc/asio/reference/io_context/count_type.html create mode 100644 3party/asio/doc/asio/reference/io_context/destroy.html create mode 100644 3party/asio/doc/asio/reference/io_context/dispatch.html create mode 100644 3party/asio/doc/asio/reference/io_context/executor_type.html create mode 100644 3party/asio/doc/asio/reference/io_context/fork_event.html create mode 100644 3party/asio/doc/asio/reference/io_context/get_executor.html create mode 100644 3party/asio/doc/asio/reference/io_context/has_service.html create mode 100644 3party/asio/doc/asio/reference/io_context/io_context.html create mode 100644 3party/asio/doc/asio/reference/io_context/io_context/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context/io_context/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context/make_service.html create mode 100644 3party/asio/doc/asio/reference/io_context/notify_fork.html create mode 100644 3party/asio/doc/asio/reference/io_context/poll.html create mode 100644 3party/asio/doc/asio/reference/io_context/poll/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context/poll/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context/poll_one.html create mode 100644 3party/asio/doc/asio/reference/io_context/poll_one/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context/poll_one/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context/post.html create mode 100644 3party/asio/doc/asio/reference/io_context/reset.html create mode 100644 3party/asio/doc/asio/reference/io_context/restart.html create mode 100644 3party/asio/doc/asio/reference/io_context/run.html create mode 100644 3party/asio/doc/asio/reference/io_context/run/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context/run/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context/run_for.html create mode 100644 3party/asio/doc/asio/reference/io_context/run_one.html create mode 100644 3party/asio/doc/asio/reference/io_context/run_one/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context/run_one/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context/run_one_for.html create mode 100644 3party/asio/doc/asio/reference/io_context/run_one_until.html create mode 100644 3party/asio/doc/asio/reference/io_context/run_until.html create mode 100644 3party/asio/doc/asio/reference/io_context/shutdown.html create mode 100644 3party/asio/doc/asio/reference/io_context/stop.html create mode 100644 3party/asio/doc/asio/reference/io_context/stopped.html create mode 100644 3party/asio/doc/asio/reference/io_context/use_service.html create mode 100644 3party/asio/doc/asio/reference/io_context/use_service/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context/use_service/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context/wrap.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/_basic_executor_type.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/context.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/defer.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/dispatch.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/execute.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/on_work_finished.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/on_work_started.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/post.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/query.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload3.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload4.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload5.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/require.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload3.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload4.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload5.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload6.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload7.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload8.html create mode 100644 3party/asio/doc/asio/reference/io_context__basic_executor_type/running_in_this_thread.html create mode 100644 3party/asio/doc/asio/reference/io_context__service.html create mode 100644 3party/asio/doc/asio/reference/io_context__service/_service.html create mode 100644 3party/asio/doc/asio/reference/io_context__service/get_io_context.html create mode 100644 3party/asio/doc/asio/reference/io_context__service/service.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/_strand.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/context.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/defer.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/dispatch.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/dispatch/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/dispatch/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/on_work_finished.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/on_work_started.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/post.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/post/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/post/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/running_in_this_thread.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/strand.html create mode 100644 3party/asio/doc/asio/reference/io_context__strand/wrap.html create mode 100644 3party/asio/doc/asio/reference/io_context__work.html create mode 100644 3party/asio/doc/asio/reference/io_context__work/_work.html create mode 100644 3party/asio/doc/asio/reference/io_context__work/get_io_context.html create mode 100644 3party/asio/doc/asio/reference/io_context__work/work.html create mode 100644 3party/asio/doc/asio/reference/io_context__work/work/overload1.html create mode 100644 3party/asio/doc/asio/reference/io_context__work/work/overload2.html create mode 100644 3party/asio/doc/asio/reference/io_service.html create mode 100644 3party/asio/doc/asio/reference/ip__address.html create mode 100644 3party/asio/doc/asio/reference/ip__address/address.html create mode 100644 3party/asio/doc/asio/reference/ip__address/address/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address/address/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address/address/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__address/address/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__address/from_string.html create mode 100644 3party/asio/doc/asio/reference/ip__address/from_string/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address/from_string/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address/from_string/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__address/from_string/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__address/is_loopback.html create mode 100644 3party/asio/doc/asio/reference/ip__address/is_multicast.html create mode 100644 3party/asio/doc/asio/reference/ip__address/is_unspecified.html create mode 100644 3party/asio/doc/asio/reference/ip__address/is_v4.html create mode 100644 3party/asio/doc/asio/reference/ip__address/is_v6.html create mode 100644 3party/asio/doc/asio/reference/ip__address/make_address.html create mode 100644 3party/asio/doc/asio/reference/ip__address/make_address/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address/make_address/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address/make_address/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__address/make_address/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__address/make_address/overload5.html create mode 100644 3party/asio/doc/asio/reference/ip__address/make_address/overload6.html create mode 100644 3party/asio/doc/asio/reference/ip__address/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address/operator_eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__address/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address/operator_gt_.html create mode 100644 3party/asio/doc/asio/reference/ip__address/operator_gt__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address/operator_lt_.html create mode 100644 3party/asio/doc/asio/reference/ip__address/operator_lt__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address/operator_lt__lt_.html create mode 100644 3party/asio/doc/asio/reference/ip__address/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address/to_string.html create mode 100644 3party/asio/doc/asio/reference/ip__address/to_string/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address/to_string/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address/to_v4.html create mode 100644 3party/asio/doc/asio/reference/ip__address/to_v6.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/address_v4.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/any.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/broadcast.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/broadcast/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/broadcast/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/bytes_type.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/from_string.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/from_string/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/from_string/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/from_string/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/from_string/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/is_class_a.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/is_class_b.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/is_class_c.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/is_loopback.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/is_multicast.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/is_unspecified.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/loopback.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_address_v4.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload5.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload6.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload7.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload8.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload9.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_network_v4.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/netmask.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/operator_gt_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/operator_gt__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/operator_lt_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/operator_lt__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/to_bytes.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/to_string.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/to_string/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/to_string/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/to_uint.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/to_ulong.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4/uint_type.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4_iterator.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v4_range.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/address_v6.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/any.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/bytes_type.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/from_string.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/from_string/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/from_string/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/from_string/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/from_string/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_link_local.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_loopback.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_multicast.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_multicast_global.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_multicast_link_local.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_multicast_node_local.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_multicast_org_local.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_multicast_site_local.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_site_local.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_unspecified.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_v4_compatible.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/is_v4_mapped.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/loopback.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/make_address_v6.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload5.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload6.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload7.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload8.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/make_network_v6.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/operator_gt_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/operator_gt__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/operator_lt_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/operator_lt__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/scope_id.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/scope_id/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/scope_id/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/to_bytes.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/to_string.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/to_string/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/to_string/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/to_v4.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/v4_compatible.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6/v4_mapped.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6_iterator.html create mode 100644 3party/asio/doc/asio/reference/ip__address_v6_range.html create mode 100644 3party/asio/doc/asio/reference/ip__bad_address_cast.html create mode 100644 3party/asio/doc/asio/reference/ip__bad_address_cast/_bad_address_cast.html create mode 100644 3party/asio/doc/asio/reference/ip__bad_address_cast/bad_address_cast.html create mode 100644 3party/asio/doc/asio/reference/ip__bad_address_cast/what.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/address.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/address/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/address/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/capacity.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/data.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/data/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/data/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/data_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/operator_gt_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/operator_gt__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__lt_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/port.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/port/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/port/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/protocol.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/resize.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_endpoint/size.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/_basic_resolver.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/address_configured.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/all_matching.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload5.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload6.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/cancel.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/canonical_name.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/executor_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/flags.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/get_executor.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/iterator.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/numeric_host.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/numeric_service.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/passive.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/query.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload10.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload11.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload12.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload5.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload6.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload7.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload8.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload9.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/results_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver/v4_mapped.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/dereference.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/equal.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/increment.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/index_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator__star_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_arrow_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/pointer.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/reference.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/value_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_iterator/values_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/address_configured.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/all_matching.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/canonical_name.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/flags.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/hints.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/host_name.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/numeric_host.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/numeric_service.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/passive.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/service_name.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_query/v4_mapped.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/begin.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/cbegin.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/cend.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/const_iterator.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/const_reference.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/dereference.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/difference_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/empty.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/end.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/endpoint_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/equal.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/increment.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/index_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/iterator.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/iterator_category.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/max_size.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator__star_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_arrow_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/pointer.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/reference.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/size.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/size_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/swap.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/value_type.html create mode 100644 3party/asio/doc/asio/reference/ip__basic_resolver_results/values_.html create mode 100644 3party/asio/doc/asio/reference/ip__host_name.html create mode 100644 3party/asio/doc/asio/reference/ip__host_name/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__host_name/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__icmp.html create mode 100644 3party/asio/doc/asio/reference/ip__icmp/endpoint.html create mode 100644 3party/asio/doc/asio/reference/ip__icmp/family.html create mode 100644 3party/asio/doc/asio/reference/ip__icmp/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__icmp/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__icmp/protocol.html create mode 100644 3party/asio/doc/asio/reference/ip__icmp/resolver.html create mode 100644 3party/asio/doc/asio/reference/ip__icmp/socket.html create mode 100644 3party/asio/doc/asio/reference/ip__icmp/type.html create mode 100644 3party/asio/doc/asio/reference/ip__icmp/v4.html create mode 100644 3party/asio/doc/asio/reference/ip__icmp/v6.html create mode 100644 3party/asio/doc/asio/reference/ip__multicast__enable_loopback.html create mode 100644 3party/asio/doc/asio/reference/ip__multicast__hops.html create mode 100644 3party/asio/doc/asio/reference/ip__multicast__join_group.html create mode 100644 3party/asio/doc/asio/reference/ip__multicast__leave_group.html create mode 100644 3party/asio/doc/asio/reference/ip__multicast__outbound_interface.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/address.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/broadcast.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/canonical.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/hosts.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/is_host.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/is_subnet_of.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/make_network_v4.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload5.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload6.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/netmask.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/network.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/network_v4.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/prefix_length.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/to_string.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/to_string/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v4/to_string/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/address.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/canonical.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/hosts.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/is_host.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/is_subnet_of.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/make_network_v6.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload4.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload5.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload6.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/network.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/network_v6.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload3.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/prefix_length.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/to_string.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/to_string/overload1.html create mode 100644 3party/asio/doc/asio/reference/ip__network_v6/to_string/overload2.html create mode 100644 3party/asio/doc/asio/reference/ip__port_type.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_base.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_base/_resolver_base.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_base/address_configured.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_base/all_matching.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_base/canonical_name.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_base/flags.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_base/numeric_host.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_base/numeric_service.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_base/passive.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_base/v4_mapped.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_query_base.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_query_base/address_configured.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_query_base/all_matching.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_query_base/canonical_name.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_query_base/flags.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_query_base/numeric_host.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_query_base/numeric_service.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_query_base/passive.html create mode 100644 3party/asio/doc/asio/reference/ip__resolver_query_base/v4_mapped.html create mode 100644 3party/asio/doc/asio/reference/ip__scope_id_type.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/acceptor.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/endpoint.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/family.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/iostream.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/no_delay.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/protocol.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/resolver.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/socket.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/type.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/v4.html create mode 100644 3party/asio/doc/asio/reference/ip__tcp/v6.html create mode 100644 3party/asio/doc/asio/reference/ip__udp.html create mode 100644 3party/asio/doc/asio/reference/ip__udp/endpoint.html create mode 100644 3party/asio/doc/asio/reference/ip__udp/family.html create mode 100644 3party/asio/doc/asio/reference/ip__udp/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__udp/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/ip__udp/protocol.html create mode 100644 3party/asio/doc/asio/reference/ip__udp/resolver.html create mode 100644 3party/asio/doc/asio/reference/ip__udp/socket.html create mode 100644 3party/asio/doc/asio/reference/ip__udp/type.html create mode 100644 3party/asio/doc/asio/reference/ip__udp/v4.html create mode 100644 3party/asio/doc/asio/reference/ip__udp/v6.html create mode 100644 3party/asio/doc/asio/reference/ip__unicast__hops.html create mode 100644 3party/asio/doc/asio/reference/ip__v4_mapped_t.html create mode 100644 3party/asio/doc/asio/reference/ip__v6_only.html create mode 100644 3party/asio/doc/asio/reference/is_applicable_property.html create mode 100644 3party/asio/doc/asio/reference/is_async_operation.html create mode 100644 3party/asio/doc/asio/reference/is_const_buffer_sequence.html create mode 100644 3party/asio/doc/asio/reference/is_contiguous_iterator.html create mode 100644 3party/asio/doc/asio/reference/is_deferred.html create mode 100644 3party/asio/doc/asio/reference/is_dynamic_buffer.html create mode 100644 3party/asio/doc/asio/reference/is_dynamic_buffer_v1.html create mode 100644 3party/asio/doc/asio/reference/is_dynamic_buffer_v2.html create mode 100644 3party/asio/doc/asio/reference/is_endpoint_sequence.html create mode 100644 3party/asio/doc/asio/reference/is_endpoint_sequence/value.html create mode 100644 3party/asio/doc/asio/reference/is_executor.html create mode 100644 3party/asio/doc/asio/reference/is_match_condition.html create mode 100644 3party/asio/doc/asio/reference/is_match_condition/value.html create mode 100644 3party/asio/doc/asio/reference/is_mutable_buffer_sequence.html create mode 100644 3party/asio/doc/asio/reference/is_nothrow_prefer.html create mode 100644 3party/asio/doc/asio/reference/is_nothrow_query.html create mode 100644 3party/asio/doc/asio/reference/is_nothrow_require.html create mode 100644 3party/asio/doc/asio/reference/is_nothrow_require_concept.html create mode 100644 3party/asio/doc/asio/reference/is_read_buffered.html create mode 100644 3party/asio/doc/asio/reference/is_read_buffered/value.html create mode 100644 3party/asio/doc/asio/reference/is_write_buffered.html create mode 100644 3party/asio/doc/asio/reference/is_write_buffered/value.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload1.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload2.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload3.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload4.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/capacity.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/data.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/data/overload1.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/data/overload2.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/data_type.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/operator_gt_.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/operator_gt__eq_.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt_.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt__eq_.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt__lt_.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/path.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/path/overload1.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/path/overload2.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/path/overload3.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/protocol.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/protocol_type.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/resize.html create mode 100644 3party/asio/doc/asio/reference/local__basic_endpoint/size.html create mode 100644 3party/asio/doc/asio/reference/local__connect_pair.html create mode 100644 3party/asio/doc/asio/reference/local__connect_pair/overload1.html create mode 100644 3party/asio/doc/asio/reference/local__connect_pair/overload2.html create mode 100644 3party/asio/doc/asio/reference/local__datagram_protocol.html create mode 100644 3party/asio/doc/asio/reference/local__datagram_protocol/endpoint.html create mode 100644 3party/asio/doc/asio/reference/local__datagram_protocol/family.html create mode 100644 3party/asio/doc/asio/reference/local__datagram_protocol/protocol.html create mode 100644 3party/asio/doc/asio/reference/local__datagram_protocol/socket.html create mode 100644 3party/asio/doc/asio/reference/local__datagram_protocol/type.html create mode 100644 3party/asio/doc/asio/reference/local__seq_packet_protocol.html create mode 100644 3party/asio/doc/asio/reference/local__seq_packet_protocol/acceptor.html create mode 100644 3party/asio/doc/asio/reference/local__seq_packet_protocol/endpoint.html create mode 100644 3party/asio/doc/asio/reference/local__seq_packet_protocol/family.html create mode 100644 3party/asio/doc/asio/reference/local__seq_packet_protocol/protocol.html create mode 100644 3party/asio/doc/asio/reference/local__seq_packet_protocol/socket.html create mode 100644 3party/asio/doc/asio/reference/local__seq_packet_protocol/type.html create mode 100644 3party/asio/doc/asio/reference/local__stream_protocol.html create mode 100644 3party/asio/doc/asio/reference/local__stream_protocol/acceptor.html create mode 100644 3party/asio/doc/asio/reference/local__stream_protocol/endpoint.html create mode 100644 3party/asio/doc/asio/reference/local__stream_protocol/family.html create mode 100644 3party/asio/doc/asio/reference/local__stream_protocol/iostream.html create mode 100644 3party/asio/doc/asio/reference/local__stream_protocol/protocol.html create mode 100644 3party/asio/doc/asio/reference/local__stream_protocol/socket.html create mode 100644 3party/asio/doc/asio/reference/local__stream_protocol/type.html create mode 100644 3party/asio/doc/asio/reference/make_strand.html create mode 100644 3party/asio/doc/asio/reference/make_strand/overload1.html create mode 100644 3party/asio/doc/asio/reference/make_strand/overload2.html create mode 100644 3party/asio/doc/asio/reference/make_work_guard.html create mode 100644 3party/asio/doc/asio/reference/make_work_guard/overload1.html create mode 100644 3party/asio/doc/asio/reference/make_work_guard/overload2.html create mode 100644 3party/asio/doc/asio/reference/make_work_guard/overload3.html create mode 100644 3party/asio/doc/asio/reference/make_work_guard/overload4.html create mode 100644 3party/asio/doc/asio/reference/make_work_guard/overload5.html create mode 100644 3party/asio/doc/asio/reference/multiple_exceptions.html create mode 100644 3party/asio/doc/asio/reference/multiple_exceptions/first_exception.html create mode 100644 3party/asio/doc/asio/reference/multiple_exceptions/multiple_exceptions.html create mode 100644 3party/asio/doc/asio/reference/multiple_exceptions/what.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffer.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffer/data.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload1.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload2.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffer/operator_plus_.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffer/operator_plus__eq_.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffer/size.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/begin.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/const_iterator.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/data.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/end.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus__eq_.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/size.html create mode 100644 3party/asio/doc/asio/reference/mutable_buffers_1/value_type.html create mode 100644 3party/asio/doc/asio/reference/mutable_registered_buffer.html create mode 100644 3party/asio/doc/asio/reference/mutable_registered_buffer/buffer.html create mode 100644 3party/asio/doc/asio/reference/mutable_registered_buffer/data.html create mode 100644 3party/asio/doc/asio/reference/mutable_registered_buffer/id.html create mode 100644 3party/asio/doc/asio/reference/mutable_registered_buffer/mutable_registered_buffer.html create mode 100644 3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_.html create mode 100644 3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_/overload1.html create mode 100644 3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_/overload2.html create mode 100644 3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus__eq_.html create mode 100644 3party/asio/doc/asio/reference/mutable_registered_buffer/size.html create mode 100644 3party/asio/doc/asio/reference/null_buffers.html create mode 100644 3party/asio/doc/asio/reference/null_buffers/begin.html create mode 100644 3party/asio/doc/asio/reference/null_buffers/const_iterator.html create mode 100644 3party/asio/doc/asio/reference/null_buffers/end.html create mode 100644 3party/asio/doc/asio/reference/null_buffers/value_type.html create mode 100644 3party/asio/doc/asio/reference/operator_lt__lt_.html create mode 100644 3party/asio/doc/asio/reference/operator_pipe_.html create mode 100644 3party/asio/doc/asio/reference/placeholders__bytes_transferred.html create mode 100644 3party/asio/doc/asio/reference/placeholders__endpoint.html create mode 100644 3party/asio/doc/asio/reference/placeholders__error.html create mode 100644 3party/asio/doc/asio/reference/placeholders__iterator.html create mode 100644 3party/asio/doc/asio/reference/placeholders__results.html create mode 100644 3party/asio/doc/asio/reference/placeholders__signal_number.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/_basic_descriptor.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/assign.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/async_wait.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload3.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload4.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload5.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload6.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/bytes_readable.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/cancel.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/close.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/executor_type.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/get_executor.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/io_control.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/io_control/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/io_control/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/is_open.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/native_handle.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/release.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/wait.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/wait/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/wait/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor/wait_type.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_descriptor__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_read_some.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_wait.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_write_some.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload3.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload4.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload5.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload6.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/bytes_readable.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/executor_type.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/get_executor.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/is_open.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_handle.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload3.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/release.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait_type.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/posix__basic_stream_descriptor__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/posix__descriptor.html create mode 100644 3party/asio/doc/asio/reference/posix__descriptor_base.html create mode 100644 3party/asio/doc/asio/reference/posix__descriptor_base/_descriptor_base.html create mode 100644 3party/asio/doc/asio/reference/posix__descriptor_base/bytes_readable.html create mode 100644 3party/asio/doc/asio/reference/posix__descriptor_base/wait_type.html create mode 100644 3party/asio/doc/asio/reference/posix__stream_descriptor.html create mode 100644 3party/asio/doc/asio/reference/post.html create mode 100644 3party/asio/doc/asio/reference/post/overload1.html create mode 100644 3party/asio/doc/asio/reference/post/overload2.html create mode 100644 3party/asio/doc/asio/reference/post/overload3.html create mode 100644 3party/asio/doc/asio/reference/prefer.html create mode 100644 3party/asio/doc/asio/reference/prefer_result.html create mode 100644 3party/asio/doc/asio/reference/prefer_result/type.html create mode 100644 3party/asio/doc/asio/reference/prepend.html create mode 100644 3party/asio/doc/asio/reference/prepend_t.html create mode 100644 3party/asio/doc/asio/reference/prepend_t/prepend_t.html create mode 100644 3party/asio/doc/asio/reference/prepend_t/token_.html create mode 100644 3party/asio/doc/asio/reference/prepend_t/values_.html create mode 100644 3party/asio/doc/asio/reference/query.html create mode 100644 3party/asio/doc/asio/reference/query_result.html create mode 100644 3party/asio/doc/asio/reference/query_result/type.html create mode 100644 3party/asio/doc/asio/reference/random_access_file.html create mode 100644 3party/asio/doc/asio/reference/read.html create mode 100644 3party/asio/doc/asio/reference/read/overload1.html create mode 100644 3party/asio/doc/asio/reference/read/overload10.html create mode 100644 3party/asio/doc/asio/reference/read/overload11.html create mode 100644 3party/asio/doc/asio/reference/read/overload12.html create mode 100644 3party/asio/doc/asio/reference/read/overload13.html create mode 100644 3party/asio/doc/asio/reference/read/overload14.html create mode 100644 3party/asio/doc/asio/reference/read/overload15.html create mode 100644 3party/asio/doc/asio/reference/read/overload16.html create mode 100644 3party/asio/doc/asio/reference/read/overload2.html create mode 100644 3party/asio/doc/asio/reference/read/overload3.html create mode 100644 3party/asio/doc/asio/reference/read/overload4.html create mode 100644 3party/asio/doc/asio/reference/read/overload5.html create mode 100644 3party/asio/doc/asio/reference/read/overload6.html create mode 100644 3party/asio/doc/asio/reference/read/overload7.html create mode 100644 3party/asio/doc/asio/reference/read/overload8.html create mode 100644 3party/asio/doc/asio/reference/read/overload9.html create mode 100644 3party/asio/doc/asio/reference/read_at.html create mode 100644 3party/asio/doc/asio/reference/read_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/read_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/read_at/overload3.html create mode 100644 3party/asio/doc/asio/reference/read_at/overload4.html create mode 100644 3party/asio/doc/asio/reference/read_at/overload5.html create mode 100644 3party/asio/doc/asio/reference/read_at/overload6.html create mode 100644 3party/asio/doc/asio/reference/read_at/overload7.html create mode 100644 3party/asio/doc/asio/reference/read_at/overload8.html create mode 100644 3party/asio/doc/asio/reference/read_until.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload1.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload10.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload11.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload12.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload13.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload14.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload15.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload16.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload17.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload18.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload19.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload2.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload20.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload21.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload22.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload23.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload24.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload3.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload4.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload5.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload6.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload7.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload8.html create mode 100644 3party/asio/doc/asio/reference/read_until/overload9.html create mode 100644 3party/asio/doc/asio/reference/read_write_operations.html create mode 100644 3party/asio/doc/asio/reference/readable_pipe.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator/allocate.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator/deallocate.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator/overload1.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator/overload2.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator/value_type.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator__rebind.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator__rebind/other.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload1.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload2.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/value_type.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt___rebind.html create mode 100644 3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt___rebind/other.html create mode 100644 3party/asio/doc/asio/reference/redirect_error.html create mode 100644 3party/asio/doc/asio/reference/redirect_error_t.html create mode 100644 3party/asio/doc/asio/reference/redirect_error_t/ec_.html create mode 100644 3party/asio/doc/asio/reference/redirect_error_t/redirect_error_t.html create mode 100644 3party/asio/doc/asio/reference/redirect_error_t/token_.html create mode 100644 3party/asio/doc/asio/reference/register_buffers.html create mode 100644 3party/asio/doc/asio/reference/register_buffers/overload1.html create mode 100644 3party/asio/doc/asio/reference/register_buffers/overload2.html create mode 100644 3party/asio/doc/asio/reference/register_buffers/overload3.html create mode 100644 3party/asio/doc/asio/reference/register_buffers/overload4.html create mode 100644 3party/asio/doc/asio/reference/registered_buffer_id.html create mode 100644 3party/asio/doc/asio/reference/registered_buffer_id/native_handle.html create mode 100644 3party/asio/doc/asio/reference/registered_buffer_id/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/registered_buffer_id/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/registered_buffer_id/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/registered_buffer_id/registered_buffer_id.html create mode 100644 3party/asio/doc/asio/reference/require.html create mode 100644 3party/asio/doc/asio/reference/require_concept.html create mode 100644 3party/asio/doc/asio/reference/require_concept_result.html create mode 100644 3party/asio/doc/asio/reference/require_concept_result/type.html create mode 100644 3party/asio/doc/asio/reference/require_result.html create mode 100644 3party/asio/doc/asio/reference/require_result/type.html create mode 100644 3party/asio/doc/asio/reference/resolver_errc__try_again.html create mode 100644 3party/asio/doc/asio/reference/serial_port.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base/_serial_port_base.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__baud_rate.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__baud_rate/baud_rate.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__baud_rate/load.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__baud_rate/store.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__baud_rate/value.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__character_size.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__character_size/character_size.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__character_size/load.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__character_size/store.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__character_size/value.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__flow_control.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__flow_control/flow_control.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__flow_control/load.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__flow_control/store.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__flow_control/type.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__flow_control/value.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__parity.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__parity/load.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__parity/parity.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__parity/store.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__parity/type.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__parity/value.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__stop_bits.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__stop_bits/load.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__stop_bits/stop_bits.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__stop_bits/store.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__stop_bits/type.html create mode 100644 3party/asio/doc/asio/reference/serial_port_base__stop_bits/value.html create mode 100644 3party/asio/doc/asio/reference/service_already_exists.html create mode 100644 3party/asio/doc/asio/reference/service_already_exists/service_already_exists.html create mode 100644 3party/asio/doc/asio/reference/signal_set.html create mode 100644 3party/asio/doc/asio/reference/signal_set_base.html create mode 100644 3party/asio/doc/asio/reference/signal_set_base/_signal_set_base.html create mode 100644 3party/asio/doc/asio/reference/signal_set_base/flags.html create mode 100644 3party/asio/doc/asio/reference/signal_set_base/flags_t.html create mode 100644 3party/asio/doc/asio/reference/socket_base.html create mode 100644 3party/asio/doc/asio/reference/socket_base/_socket_base.html create mode 100644 3party/asio/doc/asio/reference/socket_base/broadcast.html create mode 100644 3party/asio/doc/asio/reference/socket_base/bytes_readable.html create mode 100644 3party/asio/doc/asio/reference/socket_base/debug.html create mode 100644 3party/asio/doc/asio/reference/socket_base/do_not_route.html create mode 100644 3party/asio/doc/asio/reference/socket_base/enable_connection_aborted.html create mode 100644 3party/asio/doc/asio/reference/socket_base/keep_alive.html create mode 100644 3party/asio/doc/asio/reference/socket_base/linger.html create mode 100644 3party/asio/doc/asio/reference/socket_base/max_connections.html create mode 100644 3party/asio/doc/asio/reference/socket_base/max_listen_connections.html create mode 100644 3party/asio/doc/asio/reference/socket_base/message_do_not_route.html create mode 100644 3party/asio/doc/asio/reference/socket_base/message_end_of_record.html create mode 100644 3party/asio/doc/asio/reference/socket_base/message_flags.html create mode 100644 3party/asio/doc/asio/reference/socket_base/message_out_of_band.html create mode 100644 3party/asio/doc/asio/reference/socket_base/message_peek.html create mode 100644 3party/asio/doc/asio/reference/socket_base/out_of_band_inline.html create mode 100644 3party/asio/doc/asio/reference/socket_base/receive_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/socket_base/receive_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/socket_base/reuse_address.html create mode 100644 3party/asio/doc/asio/reference/socket_base/send_buffer_size.html create mode 100644 3party/asio/doc/asio/reference/socket_base/send_low_watermark.html create mode 100644 3party/asio/doc/asio/reference/socket_base/shutdown_type.html create mode 100644 3party/asio/doc/asio/reference/socket_base/wait_type.html create mode 100644 3party/asio/doc/asio/reference/spawn.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload1.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload10.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload11.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload12.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload13.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload2.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload3.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload4.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload5.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload6.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload7.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload8.html create mode 100644 3party/asio/doc/asio/reference/spawn/overload9.html create mode 100644 3party/asio/doc/asio/reference/ssl__context.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/_context.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/add_certificate_authority.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/add_verify_path.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/add_verify_path/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/add_verify_path/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/clear_options.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/clear_options/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/clear_options/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/context.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/context/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/context/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/context/overload3.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/default_workarounds.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/file_format.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/load_verify_file.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/load_verify_file/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/load_verify_file/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/method.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/native_handle.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/no_compression.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/no_sslv2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/no_sslv3.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/no_tlsv1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/no_tlsv1_1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/no_tlsv1_2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/no_tlsv1_3.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/options.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/password_purpose.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_options.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_options/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_options/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_password_callback.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_password_callback/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_password_callback/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_verify_callback.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_verify_callback/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_verify_callback/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_verify_depth.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_verify_depth/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_verify_depth/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_verify_mode.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_verify_mode/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/set_verify_mode/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/single_dh_use.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate_chain.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate_file.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate_file/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_certificate_file/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_private_key.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_private_key/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_private_key/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_private_key_file.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_private_key_file/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_private_key_file/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_tmp_dh.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/_context_base.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/default_workarounds.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/file_format.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/method.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/no_compression.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/no_sslv2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/no_sslv3.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_1.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_2.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_3.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/options.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/password_purpose.html create mode 100644 3party/asio/doc/asio/reference/ssl__context_base/single_dh_use.html create mode 100644 3party/asio/doc/asio/reference/ssl__error__get_stream_category.html create mode 100644 3party/asio/doc/asio/reference/ssl__error__make_error_code.html create mode 100644 3party/asio/doc/asio/reference/ssl__error__stream_category.html create mode 100644 3party/asio/doc/asio/reference/ssl__error__stream_errors.html create mode 100644 3party/asio/doc/asio/reference/ssl__host_name_verification.html create mode 100644 3party/asio/doc/asio/reference/ssl__host_name_verification/host_name_verification.html create mode 100644 3party/asio/doc/asio/reference/ssl__host_name_verification/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/ssl__host_name_verification/result_type.html create mode 100644 3party/asio/doc/asio/reference/ssl__rfc2818_verification.html create mode 100644 3party/asio/doc/asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/ssl__rfc2818_verification/result_type.html create mode 100644 3party/asio/doc/asio/reference/ssl__rfc2818_verification/rfc2818_verification.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/_stream.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/async_handshake.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/async_handshake/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/async_handshake/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/async_read_some.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/async_shutdown.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/async_write_some.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/executor_type.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/get_executor.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/handshake.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/handshake/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/handshake/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/handshake/overload3.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/handshake/overload4.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/handshake_type.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/native_handle.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/next_layer.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/next_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/next_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/next_layer_type.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/read_some.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/read_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/read_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/set_verify_callback.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/set_verify_depth.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/set_verify_mode.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/shutdown.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/shutdown/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/shutdown/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/stream.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/stream/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/stream/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/stream/overload3.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/write_some.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/write_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream/write_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream__impl_struct.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream__impl_struct/ssl.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream_base.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream_base/_stream_base.html create mode 100644 3party/asio/doc/asio/reference/ssl__stream_base/handshake_type.html create mode 100644 3party/asio/doc/asio/reference/ssl__verify_client_once.html create mode 100644 3party/asio/doc/asio/reference/ssl__verify_context.html create mode 100644 3party/asio/doc/asio/reference/ssl__verify_context/native_handle.html create mode 100644 3party/asio/doc/asio/reference/ssl__verify_context/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/ssl__verify_context/verify_context.html create mode 100644 3party/asio/doc/asio/reference/ssl__verify_fail_if_no_peer_cert.html create mode 100644 3party/asio/doc/asio/reference/ssl__verify_mode.html create mode 100644 3party/asio/doc/asio/reference/ssl__verify_none.html create mode 100644 3party/asio/doc/asio/reference/ssl__verify_peer.html create mode 100644 3party/asio/doc/asio/reference/static_thread_pool.html create mode 100644 3party/asio/doc/asio/reference/steady_timer.html create mode 100644 3party/asio/doc/asio/reference/strand.html create mode 100644 3party/asio/doc/asio/reference/strand/_strand.html create mode 100644 3party/asio/doc/asio/reference/strand/context.html create mode 100644 3party/asio/doc/asio/reference/strand/defer.html create mode 100644 3party/asio/doc/asio/reference/strand/dispatch.html create mode 100644 3party/asio/doc/asio/reference/strand/execute.html create mode 100644 3party/asio/doc/asio/reference/strand/get_inner_executor.html create mode 100644 3party/asio/doc/asio/reference/strand/inner_executor_type.html create mode 100644 3party/asio/doc/asio/reference/strand/on_work_finished.html create mode 100644 3party/asio/doc/asio/reference/strand/on_work_started.html create mode 100644 3party/asio/doc/asio/reference/strand/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/strand/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/strand/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/strand/operator_eq_/overload3.html create mode 100644 3party/asio/doc/asio/reference/strand/operator_eq_/overload4.html create mode 100644 3party/asio/doc/asio/reference/strand/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/strand/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/strand/post.html create mode 100644 3party/asio/doc/asio/reference/strand/prefer.html create mode 100644 3party/asio/doc/asio/reference/strand/query.html create mode 100644 3party/asio/doc/asio/reference/strand/require.html create mode 100644 3party/asio/doc/asio/reference/strand/running_in_this_thread.html create mode 100644 3party/asio/doc/asio/reference/strand/strand.html create mode 100644 3party/asio/doc/asio/reference/strand/strand/overload1.html create mode 100644 3party/asio/doc/asio/reference/strand/strand/overload2.html create mode 100644 3party/asio/doc/asio/reference/strand/strand/overload3.html create mode 100644 3party/asio/doc/asio/reference/strand/strand/overload4.html create mode 100644 3party/asio/doc/asio/reference/strand/strand/overload5.html create mode 100644 3party/asio/doc/asio/reference/strand/strand/overload6.html create mode 100644 3party/asio/doc/asio/reference/stream_file.html create mode 100644 3party/asio/doc/asio/reference/streambuf.html create mode 100644 3party/asio/doc/asio/reference/synchronous_socket_operations.html create mode 100644 3party/asio/doc/asio/reference/system_category.html create mode 100644 3party/asio/doc/asio/reference/system_context.html create mode 100644 3party/asio/doc/asio/reference/system_context/_system_context.html create mode 100644 3party/asio/doc/asio/reference/system_context/add_service.html create mode 100644 3party/asio/doc/asio/reference/system_context/destroy.html create mode 100644 3party/asio/doc/asio/reference/system_context/executor_type.html create mode 100644 3party/asio/doc/asio/reference/system_context/fork_event.html create mode 100644 3party/asio/doc/asio/reference/system_context/get_executor.html create mode 100644 3party/asio/doc/asio/reference/system_context/has_service.html create mode 100644 3party/asio/doc/asio/reference/system_context/join.html create mode 100644 3party/asio/doc/asio/reference/system_context/make_service.html create mode 100644 3party/asio/doc/asio/reference/system_context/notify_fork.html create mode 100644 3party/asio/doc/asio/reference/system_context/shutdown.html create mode 100644 3party/asio/doc/asio/reference/system_context/stop.html create mode 100644 3party/asio/doc/asio/reference/system_context/stopped.html create mode 100644 3party/asio/doc/asio/reference/system_context/use_service.html create mode 100644 3party/asio/doc/asio/reference/system_context/use_service/overload1.html create mode 100644 3party/asio/doc/asio/reference/system_context/use_service/overload2.html create mode 100644 3party/asio/doc/asio/reference/system_error.html create mode 100644 3party/asio/doc/asio/reference/system_error/_system_error.html create mode 100644 3party/asio/doc/asio/reference/system_error/code.html create mode 100644 3party/asio/doc/asio/reference/system_error/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/system_error/system_error.html create mode 100644 3party/asio/doc/asio/reference/system_error/system_error/overload1.html create mode 100644 3party/asio/doc/asio/reference/system_error/system_error/overload2.html create mode 100644 3party/asio/doc/asio/reference/system_error/system_error/overload3.html create mode 100644 3party/asio/doc/asio/reference/system_error/what.html create mode 100644 3party/asio/doc/asio/reference/system_executor.html create mode 100644 3party/asio/doc/asio/reference/system_timer.html create mode 100644 3party/asio/doc/asio/reference/this_coro__cancellation_state.html create mode 100644 3party/asio/doc/asio/reference/this_coro__cancellation_state_t.html create mode 100644 3party/asio/doc/asio/reference/this_coro__cancellation_state_t/cancellation_state_t.html create mode 100644 3party/asio/doc/asio/reference/this_coro__executor.html create mode 100644 3party/asio/doc/asio/reference/this_coro__executor_t.html create mode 100644 3party/asio/doc/asio/reference/this_coro__executor_t/executor_t.html create mode 100644 3party/asio/doc/asio/reference/this_coro__reset_cancellation_state.html create mode 100644 3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload1.html create mode 100644 3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload2.html create mode 100644 3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload3.html create mode 100644 3party/asio/doc/asio/reference/this_coro__throw_if_cancelled.html create mode 100644 3party/asio/doc/asio/reference/this_coro__throw_if_cancelled/overload1.html create mode 100644 3party/asio/doc/asio/reference/this_coro__throw_if_cancelled/overload2.html create mode 100644 3party/asio/doc/asio/reference/thread.html create mode 100644 3party/asio/doc/asio/reference/thread/_thread.html create mode 100644 3party/asio/doc/asio/reference/thread/join.html create mode 100644 3party/asio/doc/asio/reference/thread/thread.html create mode 100644 3party/asio/doc/asio/reference/thread_pool.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/_thread_pool.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/add_service.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/attach.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/destroy.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/executor.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/executor_type.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/fork_event.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/get_executor.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/has_service.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/join.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/make_service.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/notify_fork.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/scheduler.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/scheduler_type.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/shutdown.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/stop.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/thread_pool.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/thread_pool/overload1.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/thread_pool/overload2.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/use_service.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/use_service/overload1.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/use_service/overload2.html create mode 100644 3party/asio/doc/asio/reference/thread_pool/wait.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/_basic_executor_type.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload1.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload2.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/bulk_execute.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/connect.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/context.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/defer.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/dispatch.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/execute.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/index_type.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/on_work_finished.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/on_work_started.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq__eq_.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_not__eq_.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/post.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload1.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload2.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload3.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload4.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload5.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload6.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload1.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload2.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload3.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload1.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload2.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload3.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload4.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload5.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload6.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload7.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload8.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload9.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/running_in_this_thread.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/schedule.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/sender_type.html create mode 100644 3party/asio/doc/asio/reference/thread_pool__basic_executor_type/shape_type.html create mode 100644 3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_.html create mode 100644 3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/add.html create mode 100644 3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/duration_type.html create mode 100644 3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/less_than.html create mode 100644 3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/now.html create mode 100644 3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/subtract.html create mode 100644 3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/time_type.html create mode 100644 3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html create mode 100644 3party/asio/doc/asio/reference/transfer_all.html create mode 100644 3party/asio/doc/asio/reference/transfer_at_least.html create mode 100644 3party/asio/doc/asio/reference/transfer_exactly.html create mode 100644 3party/asio/doc/asio/reference/use_awaitable.html create mode 100644 3party/asio/doc/asio/reference/use_awaitable_t.html create mode 100644 3party/asio/doc/asio/reference/use_awaitable_t/as_default_on.html create mode 100644 3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t.html create mode 100644 3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default/default_completion_token_type.html create mode 100644 3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default/executor_with_default.html create mode 100644 3party/asio/doc/asio/reference/use_future.html create mode 100644 3party/asio/doc/asio/reference/use_future_t.html create mode 100644 3party/asio/doc/asio/reference/use_future_t/allocator_type.html create mode 100644 3party/asio/doc/asio/reference/use_future_t/get_allocator.html create mode 100644 3party/asio/doc/asio/reference/use_future_t/operator_lb__rb_.html create mode 100644 3party/asio/doc/asio/reference/use_future_t/operator_lp__rp_.html create mode 100644 3party/asio/doc/asio/reference/use_future_t/rebind.html create mode 100644 3party/asio/doc/asio/reference/use_future_t/use_future_t.html create mode 100644 3party/asio/doc/asio/reference/use_future_t/use_future_t/overload1.html create mode 100644 3party/asio/doc/asio/reference/use_future_t/use_future_t/overload2.html create mode 100644 3party/asio/doc/asio/reference/uses_executor.html create mode 100644 3party/asio/doc/asio/reference/wait_traits.html create mode 100644 3party/asio/doc/asio/reference/wait_traits/to_wait_duration.html create mode 100644 3party/asio/doc/asio/reference/wait_traits/to_wait_duration/overload1.html create mode 100644 3party/asio/doc/asio/reference/wait_traits/to_wait_duration/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/assign.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/async_wait.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload3.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload4.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload5.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload6.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/cancel.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/close.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/executor_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/get_executor.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/is_open.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/native_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/wait.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/wait/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle/wait/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_object_handle__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/_basic_overlapped_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload3.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload4.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload5.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload6.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/executor_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/get_executor.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/is_open.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/native_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_overlapped_handle__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/async_read_some_at.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/async_write_some_at.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload3.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload4.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload5.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload6.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/close.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/executor_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/get_executor.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/is_open.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/native_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/release.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_random_access_handle__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/assign.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/assign/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/assign/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/async_read_some.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/async_write_some.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload3.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload4.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload5.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload6.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/close.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/close/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/close/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/executor_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/get_executor.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/is_open.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/native_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/native_handle_type.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/release.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/release/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/release/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle__rebind_executor.html create mode 100644 3party/asio/doc/asio/reference/windows__basic_stream_handle__rebind_executor/other.html create mode 100644 3party/asio/doc/asio/reference/windows__object_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/_overlapped_ptr.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/complete.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/get.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/get/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/get/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload3.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/release.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/reset.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload1.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload2.html create mode 100644 3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload3.html create mode 100644 3party/asio/doc/asio/reference/windows__random_access_handle.html create mode 100644 3party/asio/doc/asio/reference/windows__stream_handle.html create mode 100644 3party/asio/doc/asio/reference/writable_pipe.html create mode 100644 3party/asio/doc/asio/reference/write.html create mode 100644 3party/asio/doc/asio/reference/write/overload1.html create mode 100644 3party/asio/doc/asio/reference/write/overload10.html create mode 100644 3party/asio/doc/asio/reference/write/overload11.html create mode 100644 3party/asio/doc/asio/reference/write/overload12.html create mode 100644 3party/asio/doc/asio/reference/write/overload13.html create mode 100644 3party/asio/doc/asio/reference/write/overload14.html create mode 100644 3party/asio/doc/asio/reference/write/overload15.html create mode 100644 3party/asio/doc/asio/reference/write/overload16.html create mode 100644 3party/asio/doc/asio/reference/write/overload2.html create mode 100644 3party/asio/doc/asio/reference/write/overload3.html create mode 100644 3party/asio/doc/asio/reference/write/overload4.html create mode 100644 3party/asio/doc/asio/reference/write/overload5.html create mode 100644 3party/asio/doc/asio/reference/write/overload6.html create mode 100644 3party/asio/doc/asio/reference/write/overload7.html create mode 100644 3party/asio/doc/asio/reference/write/overload8.html create mode 100644 3party/asio/doc/asio/reference/write/overload9.html create mode 100644 3party/asio/doc/asio/reference/write_at.html create mode 100644 3party/asio/doc/asio/reference/write_at/overload1.html create mode 100644 3party/asio/doc/asio/reference/write_at/overload2.html create mode 100644 3party/asio/doc/asio/reference/write_at/overload3.html create mode 100644 3party/asio/doc/asio/reference/write_at/overload4.html create mode 100644 3party/asio/doc/asio/reference/write_at/overload5.html create mode 100644 3party/asio/doc/asio/reference/write_at/overload6.html create mode 100644 3party/asio/doc/asio/reference/write_at/overload7.html create mode 100644 3party/asio/doc/asio/reference/write_at/overload8.html create mode 100644 3party/asio/doc/asio/reference/yield_context.html create mode 100644 3party/asio/doc/asio/std_executors.html create mode 100644 3party/asio/doc/asio/tutorial.html create mode 100644 3party/asio/doc/asio/tutorial/boost_bind.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime1.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime1/src.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime2.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime2/src.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime3.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime3/src.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime4.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime4/src.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime5.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime5/src.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime6.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime6/src.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime7.html create mode 100644 3party/asio/doc/asio/tutorial/tutdaytime7/src.html create mode 100644 3party/asio/doc/asio/tutorial/tuttimer1.html create mode 100644 3party/asio/doc/asio/tutorial/tuttimer1/src.html create mode 100644 3party/asio/doc/asio/tutorial/tuttimer2.html create mode 100644 3party/asio/doc/asio/tutorial/tuttimer2/src.html create mode 100644 3party/asio/doc/asio/tutorial/tuttimer3.html create mode 100644 3party/asio/doc/asio/tutorial/tuttimer3/src.html create mode 100644 3party/asio/doc/asio/tutorial/tuttimer4.html create mode 100644 3party/asio/doc/asio/tutorial/tuttimer4/src.html create mode 100644 3party/asio/doc/asio/tutorial/tuttimer5.html create mode 100644 3party/asio/doc/asio/tutorial/tuttimer5/src.html create mode 100644 3party/asio/doc/asio/using.html create mode 100644 3party/asio/doc/async_agent_chain.png create mode 100644 3party/asio/doc/async_agent_model.png create mode 100644 3party/asio/doc/async_child_agent_chain.png create mode 100644 3party/asio/doc/async_op1.png create mode 100644 3party/asio/doc/async_op2.png create mode 100644 3party/asio/doc/async_op_init_complete.png create mode 100644 3party/asio/doc/async_op_model.png create mode 100644 3party/asio/doc/async_op_phases.png create mode 100644 3party/asio/doc/async_op_trivial_chain.png create mode 100644 3party/asio/doc/blank.png create mode 100644 3party/asio/doc/boostbook.css create mode 100644 3party/asio/doc/caution.png create mode 100644 3party/asio/doc/completion_token_model.png create mode 100644 3party/asio/doc/completion_token_transform.png create mode 100644 3party/asio/doc/draft.png create mode 100644 3party/asio/doc/examples/diffs/allocation/server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/buffers/reference_counted.cpp.html create mode 100644 3party/asio/doc/examples/diffs/chat/chat_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/chat/chat_message.hpp.html create mode 100644 3party/asio/doc/examples/diffs/chat/chat_server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/deferred/deferred_1.cpp.html create mode 100644 3party/asio/doc/examples/diffs/deferred/deferred_2.cpp.html create mode 100644 3party/asio/doc/examples/diffs/echo/async_tcp_echo_server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/echo/async_udp_echo_server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/echo/blocking_tcp_echo_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/echo/blocking_tcp_echo_server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/echo/blocking_udp_echo_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/echo/blocking_udp_echo_server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/executors/actor.cpp.html create mode 100644 3party/asio/doc/examples/diffs/executors/bank_account_1.cpp.html create mode 100644 3party/asio/doc/examples/diffs/executors/bank_account_2.cpp.html create mode 100644 3party/asio/doc/examples/diffs/executors/fork_join.cpp.html create mode 100644 3party/asio/doc/examples/diffs/executors/pipeline.cpp.html create mode 100644 3party/asio/doc/examples/diffs/executors/priority_scheduler.cpp.html create mode 100644 3party/asio/doc/examples/diffs/files/async_file_copy.cpp.html create mode 100644 3party/asio/doc/examples/diffs/files/blocking_file_copy.cpp.html create mode 100644 3party/asio/doc/examples/diffs/fork/daemon.cpp.html create mode 100644 3party/asio/doc/examples/diffs/fork/process_per_connection.cpp.html create mode 100644 3party/asio/doc/examples/diffs/futures/daytime_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/handler_tracking/async_tcp_echo_server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/handler_tracking/custom_tracking.hpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/connection.cpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/connection.hpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/connection_manager.cpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/connection_manager.hpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/header.hpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/main.cpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/mime_types.cpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/mime_types.hpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/reply.cpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/reply.hpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/request.hpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/request_handler.cpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/request_handler.hpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/request_parser.cpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/request_parser.hpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/http/server/server.hpp.html create mode 100644 3party/asio/doc/examples/diffs/invocation/prioritised_handlers.cpp.html create mode 100644 3party/asio/doc/examples/diffs/iostreams/http_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/local/connect_pair.cpp.html create mode 100644 3party/asio/doc/examples/diffs/local/fd_passing_stream_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/local/fd_passing_stream_server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/local/iostream_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/local/stream_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/local/stream_server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/multicast/receiver.cpp.html create mode 100644 3party/asio/doc/examples/diffs/multicast/sender.cpp.html create mode 100644 3party/asio/doc/examples/diffs/nonblocking/third_party_lib.cpp.html create mode 100644 3party/asio/doc/examples/diffs/operations/composed_1.cpp.html create mode 100644 3party/asio/doc/examples/diffs/operations/composed_2.cpp.html create mode 100644 3party/asio/doc/examples/diffs/operations/composed_3.cpp.html create mode 100644 3party/asio/doc/examples/diffs/operations/composed_4.cpp.html create mode 100644 3party/asio/doc/examples/diffs/operations/composed_5.cpp.html create mode 100644 3party/asio/doc/examples/diffs/operations/composed_6.cpp.html create mode 100644 3party/asio/doc/examples/diffs/operations/composed_7.cpp.html create mode 100644 3party/asio/doc/examples/diffs/operations/composed_8.cpp.html create mode 100644 3party/asio/doc/examples/diffs/parallel_group/ranged_wait_for_all.cpp.html create mode 100644 3party/asio/doc/examples/diffs/parallel_group/wait_for_all.cpp.html create mode 100644 3party/asio/doc/examples/diffs/parallel_group/wait_for_one.cpp.html create mode 100644 3party/asio/doc/examples/diffs/parallel_group/wait_for_one_error.cpp.html create mode 100644 3party/asio/doc/examples/diffs/parallel_group/wait_for_one_success.cpp.html create mode 100644 3party/asio/doc/examples/diffs/socks4/socks4.hpp.html create mode 100644 3party/asio/doc/examples/diffs/socks4/sync_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/spawn/echo_server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/spawn/parallel_grep.cpp.html create mode 100644 3party/asio/doc/examples/diffs/ssl/client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/ssl/server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/timeouts/async_tcp_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html create mode 100644 3party/asio/doc/examples/diffs/timeouts/server.cpp.html create mode 100644 3party/asio/doc/examples/diffs/timers/time_t_timer.cpp.html create mode 100644 3party/asio/doc/examples/diffs/type_erasure/line_reader.hpp.html create mode 100644 3party/asio/doc/examples/diffs/type_erasure/main.cpp.html create mode 100644 3party/asio/doc/examples/diffs/type_erasure/sleep.cpp.html create mode 100644 3party/asio/doc/examples/diffs/type_erasure/sleep.hpp.html create mode 100644 3party/asio/doc/examples/diffs/type_erasure/stdin_line_reader.cpp.html create mode 100644 3party/asio/doc/examples/diffs/type_erasure/stdin_line_reader.hpp.html create mode 100644 3party/asio/doc/higher_level_model.png create mode 100644 3party/asio/doc/home.png create mode 100644 3party/asio/doc/important.png create mode 100644 3party/asio/doc/index.html create mode 100644 3party/asio/doc/next.png create mode 100644 3party/asio/doc/next_disabled.png create mode 100644 3party/asio/doc/note.png create mode 100644 3party/asio/doc/prev.png create mode 100644 3party/asio/doc/prev_disabled.png create mode 100644 3party/asio/doc/proactor.png create mode 100644 3party/asio/doc/sync_op.png create mode 100644 3party/asio/doc/tip.png create mode 100644 3party/asio/doc/up.png create mode 100644 3party/asio/doc/up_disabled.png create mode 100644 3party/asio/doc/warning.png create mode 100644 3party/asio/include/Makefile.am create mode 100644 3party/asio/include/Makefile.in create mode 100644 3party/asio/include/asio.hpp create mode 100644 3party/asio/include/asio/any_completion_executor.hpp create mode 100644 3party/asio/include/asio/any_completion_handler.hpp create mode 100644 3party/asio/include/asio/any_io_executor.hpp create mode 100644 3party/asio/include/asio/append.hpp create mode 100644 3party/asio/include/asio/as_tuple.hpp create mode 100644 3party/asio/include/asio/associated_allocator.hpp create mode 100644 3party/asio/include/asio/associated_cancellation_slot.hpp create mode 100644 3party/asio/include/asio/associated_executor.hpp create mode 100644 3party/asio/include/asio/associated_immediate_executor.hpp create mode 100644 3party/asio/include/asio/associator.hpp create mode 100644 3party/asio/include/asio/async_result.hpp create mode 100644 3party/asio/include/asio/awaitable.hpp create mode 100644 3party/asio/include/asio/basic_datagram_socket.hpp create mode 100644 3party/asio/include/asio/basic_deadline_timer.hpp create mode 100644 3party/asio/include/asio/basic_file.hpp create mode 100644 3party/asio/include/asio/basic_io_object.hpp create mode 100644 3party/asio/include/asio/basic_random_access_file.hpp create mode 100644 3party/asio/include/asio/basic_raw_socket.hpp create mode 100644 3party/asio/include/asio/basic_readable_pipe.hpp create mode 100644 3party/asio/include/asio/basic_seq_packet_socket.hpp create mode 100644 3party/asio/include/asio/basic_serial_port.hpp create mode 100644 3party/asio/include/asio/basic_signal_set.hpp create mode 100644 3party/asio/include/asio/basic_socket.hpp create mode 100644 3party/asio/include/asio/basic_socket_acceptor.hpp create mode 100644 3party/asio/include/asio/basic_socket_iostream.hpp create mode 100644 3party/asio/include/asio/basic_socket_streambuf.hpp create mode 100644 3party/asio/include/asio/basic_stream_file.hpp create mode 100644 3party/asio/include/asio/basic_stream_socket.hpp create mode 100644 3party/asio/include/asio/basic_streambuf.hpp create mode 100644 3party/asio/include/asio/basic_streambuf_fwd.hpp create mode 100644 3party/asio/include/asio/basic_waitable_timer.hpp create mode 100644 3party/asio/include/asio/basic_writable_pipe.hpp create mode 100644 3party/asio/include/asio/bind_allocator.hpp create mode 100644 3party/asio/include/asio/bind_cancellation_slot.hpp create mode 100644 3party/asio/include/asio/bind_executor.hpp create mode 100644 3party/asio/include/asio/bind_immediate_executor.hpp create mode 100644 3party/asio/include/asio/buffer.hpp create mode 100644 3party/asio/include/asio/buffer_registration.hpp create mode 100644 3party/asio/include/asio/buffered_read_stream.hpp create mode 100644 3party/asio/include/asio/buffered_read_stream_fwd.hpp create mode 100644 3party/asio/include/asio/buffered_stream.hpp create mode 100644 3party/asio/include/asio/buffered_stream_fwd.hpp create mode 100644 3party/asio/include/asio/buffered_write_stream.hpp create mode 100644 3party/asio/include/asio/buffered_write_stream_fwd.hpp create mode 100644 3party/asio/include/asio/buffers_iterator.hpp create mode 100644 3party/asio/include/asio/cancellation_signal.hpp create mode 100644 3party/asio/include/asio/cancellation_state.hpp create mode 100644 3party/asio/include/asio/cancellation_type.hpp create mode 100644 3party/asio/include/asio/co_spawn.hpp create mode 100644 3party/asio/include/asio/completion_condition.hpp create mode 100644 3party/asio/include/asio/compose.hpp create mode 100644 3party/asio/include/asio/connect.hpp create mode 100644 3party/asio/include/asio/connect_pipe.hpp create mode 100644 3party/asio/include/asio/consign.hpp create mode 100644 3party/asio/include/asio/coroutine.hpp create mode 100644 3party/asio/include/asio/deadline_timer.hpp create mode 100644 3party/asio/include/asio/defer.hpp create mode 100644 3party/asio/include/asio/deferred.hpp create mode 100644 3party/asio/include/asio/detached.hpp create mode 100644 3party/asio/include/asio/detail/array.hpp create mode 100644 3party/asio/include/asio/detail/array_fwd.hpp create mode 100644 3party/asio/include/asio/detail/assert.hpp create mode 100644 3party/asio/include/asio/detail/atomic_count.hpp create mode 100644 3party/asio/include/asio/detail/base_from_cancellation_state.hpp create mode 100644 3party/asio/include/asio/detail/base_from_completion_cond.hpp create mode 100644 3party/asio/include/asio/detail/bind_handler.hpp create mode 100644 3party/asio/include/asio/detail/blocking_executor_op.hpp create mode 100644 3party/asio/include/asio/detail/buffer_resize_guard.hpp create mode 100644 3party/asio/include/asio/detail/buffer_sequence_adapter.hpp create mode 100644 3party/asio/include/asio/detail/buffered_stream_storage.hpp create mode 100644 3party/asio/include/asio/detail/bulk_executor_op.hpp create mode 100644 3party/asio/include/asio/detail/call_stack.hpp create mode 100644 3party/asio/include/asio/detail/chrono.hpp create mode 100644 3party/asio/include/asio/detail/chrono_time_traits.hpp create mode 100644 3party/asio/include/asio/detail/completion_handler.hpp create mode 100644 3party/asio/include/asio/detail/composed_work.hpp create mode 100644 3party/asio/include/asio/detail/concurrency_hint.hpp create mode 100644 3party/asio/include/asio/detail/conditionally_enabled_event.hpp create mode 100644 3party/asio/include/asio/detail/conditionally_enabled_mutex.hpp create mode 100644 3party/asio/include/asio/detail/config.hpp create mode 100644 3party/asio/include/asio/detail/consuming_buffers.hpp create mode 100644 3party/asio/include/asio/detail/cstddef.hpp create mode 100644 3party/asio/include/asio/detail/cstdint.hpp create mode 100644 3party/asio/include/asio/detail/date_time_fwd.hpp create mode 100644 3party/asio/include/asio/detail/deadline_timer_service.hpp create mode 100644 3party/asio/include/asio/detail/dependent_type.hpp create mode 100644 3party/asio/include/asio/detail/descriptor_ops.hpp create mode 100644 3party/asio/include/asio/detail/descriptor_read_op.hpp create mode 100644 3party/asio/include/asio/detail/descriptor_write_op.hpp create mode 100644 3party/asio/include/asio/detail/dev_poll_reactor.hpp create mode 100644 3party/asio/include/asio/detail/epoll_reactor.hpp create mode 100644 3party/asio/include/asio/detail/event.hpp create mode 100644 3party/asio/include/asio/detail/eventfd_select_interrupter.hpp create mode 100644 3party/asio/include/asio/detail/exception.hpp create mode 100644 3party/asio/include/asio/detail/executor_function.hpp create mode 100644 3party/asio/include/asio/detail/executor_op.hpp create mode 100644 3party/asio/include/asio/detail/fd_set_adapter.hpp create mode 100644 3party/asio/include/asio/detail/fenced_block.hpp create mode 100644 3party/asio/include/asio/detail/functional.hpp create mode 100644 3party/asio/include/asio/detail/future.hpp create mode 100644 3party/asio/include/asio/detail/gcc_arm_fenced_block.hpp create mode 100644 3party/asio/include/asio/detail/gcc_hppa_fenced_block.hpp create mode 100644 3party/asio/include/asio/detail/gcc_sync_fenced_block.hpp create mode 100644 3party/asio/include/asio/detail/gcc_x86_fenced_block.hpp create mode 100644 3party/asio/include/asio/detail/global.hpp create mode 100644 3party/asio/include/asio/detail/handler_alloc_helpers.hpp create mode 100644 3party/asio/include/asio/detail/handler_cont_helpers.hpp create mode 100644 3party/asio/include/asio/detail/handler_invoke_helpers.hpp create mode 100644 3party/asio/include/asio/detail/handler_tracking.hpp create mode 100644 3party/asio/include/asio/detail/handler_type_requirements.hpp create mode 100644 3party/asio/include/asio/detail/handler_work.hpp create mode 100644 3party/asio/include/asio/detail/hash_map.hpp create mode 100644 3party/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp create mode 100644 3party/asio/include/asio/detail/impl/descriptor_ops.ipp create mode 100644 3party/asio/include/asio/detail/impl/dev_poll_reactor.hpp create mode 100644 3party/asio/include/asio/detail/impl/dev_poll_reactor.ipp create mode 100644 3party/asio/include/asio/detail/impl/epoll_reactor.hpp create mode 100644 3party/asio/include/asio/detail/impl/epoll_reactor.ipp create mode 100644 3party/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp create mode 100644 3party/asio/include/asio/detail/impl/handler_tracking.ipp create mode 100644 3party/asio/include/asio/detail/impl/io_uring_descriptor_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/io_uring_file_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/io_uring_service.hpp create mode 100644 3party/asio/include/asio/detail/impl/io_uring_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/io_uring_socket_service_base.ipp create mode 100644 3party/asio/include/asio/detail/impl/kqueue_reactor.hpp create mode 100644 3party/asio/include/asio/detail/impl/kqueue_reactor.ipp create mode 100644 3party/asio/include/asio/detail/impl/null_event.ipp create mode 100644 3party/asio/include/asio/detail/impl/pipe_select_interrupter.ipp create mode 100644 3party/asio/include/asio/detail/impl/posix_event.ipp create mode 100644 3party/asio/include/asio/detail/impl/posix_mutex.ipp create mode 100644 3party/asio/include/asio/detail/impl/posix_serial_port_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/posix_thread.ipp create mode 100644 3party/asio/include/asio/detail/impl/posix_tss_ptr.ipp create mode 100644 3party/asio/include/asio/detail/impl/reactive_descriptor_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/reactive_socket_service_base.ipp create mode 100644 3party/asio/include/asio/detail/impl/resolver_service_base.ipp create mode 100644 3party/asio/include/asio/detail/impl/scheduler.ipp create mode 100644 3party/asio/include/asio/detail/impl/select_reactor.hpp create mode 100644 3party/asio/include/asio/detail/impl/select_reactor.ipp create mode 100644 3party/asio/include/asio/detail/impl/service_registry.hpp create mode 100644 3party/asio/include/asio/detail/impl/service_registry.ipp create mode 100644 3party/asio/include/asio/detail/impl/signal_set_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/socket_ops.ipp create mode 100644 3party/asio/include/asio/detail/impl/socket_select_interrupter.ipp create mode 100644 3party/asio/include/asio/detail/impl/strand_executor_service.hpp create mode 100644 3party/asio/include/asio/detail/impl/strand_executor_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/strand_service.hpp create mode 100644 3party/asio/include/asio/detail/impl/strand_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/thread_context.ipp create mode 100644 3party/asio/include/asio/detail/impl/throw_error.ipp create mode 100644 3party/asio/include/asio/detail/impl/timer_queue_ptime.ipp create mode 100644 3party/asio/include/asio/detail/impl/timer_queue_set.ipp create mode 100644 3party/asio/include/asio/detail/impl/win_event.ipp create mode 100644 3party/asio/include/asio/detail/impl/win_iocp_file_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/win_iocp_handle_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/win_iocp_io_context.hpp create mode 100644 3party/asio/include/asio/detail/impl/win_iocp_io_context.ipp create mode 100644 3party/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp create mode 100644 3party/asio/include/asio/detail/impl/win_mutex.ipp create mode 100644 3party/asio/include/asio/detail/impl/win_object_handle_service.ipp create mode 100644 3party/asio/include/asio/detail/impl/win_static_mutex.ipp create mode 100644 3party/asio/include/asio/detail/impl/win_thread.ipp create mode 100644 3party/asio/include/asio/detail/impl/win_tss_ptr.ipp create mode 100644 3party/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp create mode 100644 3party/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp create mode 100644 3party/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp create mode 100644 3party/asio/include/asio/detail/impl/winsock_init.ipp create mode 100644 3party/asio/include/asio/detail/initiate_defer.hpp create mode 100644 3party/asio/include/asio/detail/initiate_dispatch.hpp create mode 100644 3party/asio/include/asio/detail/initiate_post.hpp create mode 100644 3party/asio/include/asio/detail/io_control.hpp create mode 100644 3party/asio/include/asio/detail/io_object_impl.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_descriptor_read_at_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_descriptor_read_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_descriptor_service.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_descriptor_write_at_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_descriptor_write_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_file_service.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_null_buffers_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_operation.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_service.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_socket_accept_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_socket_connect_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_socket_recv_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_socket_recvfrom_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_socket_recvmsg_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_socket_send_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_socket_sendto_op.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_socket_service.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_socket_service_base.hpp create mode 100644 3party/asio/include/asio/detail/io_uring_wait_op.hpp create mode 100644 3party/asio/include/asio/detail/is_buffer_sequence.hpp create mode 100644 3party/asio/include/asio/detail/is_executor.hpp create mode 100644 3party/asio/include/asio/detail/keyword_tss_ptr.hpp create mode 100644 3party/asio/include/asio/detail/kqueue_reactor.hpp create mode 100644 3party/asio/include/asio/detail/limits.hpp create mode 100644 3party/asio/include/asio/detail/local_free_on_block_exit.hpp create mode 100644 3party/asio/include/asio/detail/macos_fenced_block.hpp create mode 100644 3party/asio/include/asio/detail/memory.hpp create mode 100644 3party/asio/include/asio/detail/mutex.hpp create mode 100644 3party/asio/include/asio/detail/non_const_lvalue.hpp create mode 100644 3party/asio/include/asio/detail/noncopyable.hpp create mode 100644 3party/asio/include/asio/detail/null_event.hpp create mode 100644 3party/asio/include/asio/detail/null_fenced_block.hpp create mode 100644 3party/asio/include/asio/detail/null_global.hpp create mode 100644 3party/asio/include/asio/detail/null_mutex.hpp create mode 100644 3party/asio/include/asio/detail/null_reactor.hpp create mode 100644 3party/asio/include/asio/detail/null_signal_blocker.hpp create mode 100644 3party/asio/include/asio/detail/null_socket_service.hpp create mode 100644 3party/asio/include/asio/detail/null_static_mutex.hpp create mode 100644 3party/asio/include/asio/detail/null_thread.hpp create mode 100644 3party/asio/include/asio/detail/null_tss_ptr.hpp create mode 100644 3party/asio/include/asio/detail/object_pool.hpp create mode 100644 3party/asio/include/asio/detail/old_win_sdk_compat.hpp create mode 100644 3party/asio/include/asio/detail/op_queue.hpp create mode 100644 3party/asio/include/asio/detail/operation.hpp create mode 100644 3party/asio/include/asio/detail/pipe_select_interrupter.hpp create mode 100644 3party/asio/include/asio/detail/pop_options.hpp create mode 100644 3party/asio/include/asio/detail/posix_event.hpp create mode 100644 3party/asio/include/asio/detail/posix_fd_set_adapter.hpp create mode 100644 3party/asio/include/asio/detail/posix_global.hpp create mode 100644 3party/asio/include/asio/detail/posix_mutex.hpp create mode 100644 3party/asio/include/asio/detail/posix_serial_port_service.hpp create mode 100644 3party/asio/include/asio/detail/posix_signal_blocker.hpp create mode 100644 3party/asio/include/asio/detail/posix_static_mutex.hpp create mode 100644 3party/asio/include/asio/detail/posix_thread.hpp create mode 100644 3party/asio/include/asio/detail/posix_tss_ptr.hpp create mode 100644 3party/asio/include/asio/detail/push_options.hpp create mode 100644 3party/asio/include/asio/detail/reactive_descriptor_service.hpp create mode 100644 3party/asio/include/asio/detail/reactive_null_buffers_op.hpp create mode 100644 3party/asio/include/asio/detail/reactive_socket_accept_op.hpp create mode 100644 3party/asio/include/asio/detail/reactive_socket_connect_op.hpp create mode 100644 3party/asio/include/asio/detail/reactive_socket_recv_op.hpp create mode 100644 3party/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp create mode 100644 3party/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp create mode 100644 3party/asio/include/asio/detail/reactive_socket_send_op.hpp create mode 100644 3party/asio/include/asio/detail/reactive_socket_sendto_op.hpp create mode 100644 3party/asio/include/asio/detail/reactive_socket_service.hpp create mode 100644 3party/asio/include/asio/detail/reactive_socket_service_base.hpp create mode 100644 3party/asio/include/asio/detail/reactive_wait_op.hpp create mode 100644 3party/asio/include/asio/detail/reactor.hpp create mode 100644 3party/asio/include/asio/detail/reactor_op.hpp create mode 100644 3party/asio/include/asio/detail/reactor_op_queue.hpp create mode 100644 3party/asio/include/asio/detail/recycling_allocator.hpp create mode 100644 3party/asio/include/asio/detail/regex_fwd.hpp create mode 100644 3party/asio/include/asio/detail/resolve_endpoint_op.hpp create mode 100644 3party/asio/include/asio/detail/resolve_op.hpp create mode 100644 3party/asio/include/asio/detail/resolve_query_op.hpp create mode 100644 3party/asio/include/asio/detail/resolver_service.hpp create mode 100644 3party/asio/include/asio/detail/resolver_service_base.hpp create mode 100644 3party/asio/include/asio/detail/scheduler.hpp create mode 100644 3party/asio/include/asio/detail/scheduler_operation.hpp create mode 100644 3party/asio/include/asio/detail/scheduler_task.hpp create mode 100644 3party/asio/include/asio/detail/scheduler_thread_info.hpp create mode 100644 3party/asio/include/asio/detail/scoped_lock.hpp create mode 100644 3party/asio/include/asio/detail/scoped_ptr.hpp create mode 100644 3party/asio/include/asio/detail/select_interrupter.hpp create mode 100644 3party/asio/include/asio/detail/select_reactor.hpp create mode 100644 3party/asio/include/asio/detail/service_registry.hpp create mode 100644 3party/asio/include/asio/detail/signal_blocker.hpp create mode 100644 3party/asio/include/asio/detail/signal_handler.hpp create mode 100644 3party/asio/include/asio/detail/signal_init.hpp create mode 100644 3party/asio/include/asio/detail/signal_op.hpp create mode 100644 3party/asio/include/asio/detail/signal_set_service.hpp create mode 100644 3party/asio/include/asio/detail/socket_holder.hpp create mode 100644 3party/asio/include/asio/detail/socket_ops.hpp create mode 100644 3party/asio/include/asio/detail/socket_option.hpp create mode 100644 3party/asio/include/asio/detail/socket_select_interrupter.hpp create mode 100644 3party/asio/include/asio/detail/socket_types.hpp create mode 100644 3party/asio/include/asio/detail/solaris_fenced_block.hpp create mode 100644 3party/asio/include/asio/detail/source_location.hpp create mode 100644 3party/asio/include/asio/detail/static_mutex.hpp create mode 100644 3party/asio/include/asio/detail/std_event.hpp create mode 100644 3party/asio/include/asio/detail/std_fenced_block.hpp create mode 100644 3party/asio/include/asio/detail/std_global.hpp create mode 100644 3party/asio/include/asio/detail/std_mutex.hpp create mode 100644 3party/asio/include/asio/detail/std_static_mutex.hpp create mode 100644 3party/asio/include/asio/detail/std_thread.hpp create mode 100644 3party/asio/include/asio/detail/strand_executor_service.hpp create mode 100644 3party/asio/include/asio/detail/strand_service.hpp create mode 100644 3party/asio/include/asio/detail/string_view.hpp create mode 100644 3party/asio/include/asio/detail/thread.hpp create mode 100644 3party/asio/include/asio/detail/thread_context.hpp create mode 100644 3party/asio/include/asio/detail/thread_group.hpp create mode 100644 3party/asio/include/asio/detail/thread_info_base.hpp create mode 100644 3party/asio/include/asio/detail/throw_error.hpp create mode 100644 3party/asio/include/asio/detail/throw_exception.hpp create mode 100644 3party/asio/include/asio/detail/timer_queue.hpp create mode 100644 3party/asio/include/asio/detail/timer_queue_base.hpp create mode 100644 3party/asio/include/asio/detail/timer_queue_ptime.hpp create mode 100644 3party/asio/include/asio/detail/timer_queue_set.hpp create mode 100644 3party/asio/include/asio/detail/timer_scheduler.hpp create mode 100644 3party/asio/include/asio/detail/timer_scheduler_fwd.hpp create mode 100644 3party/asio/include/asio/detail/tss_ptr.hpp create mode 100644 3party/asio/include/asio/detail/type_traits.hpp create mode 100644 3party/asio/include/asio/detail/utility.hpp create mode 100644 3party/asio/include/asio/detail/variadic_templates.hpp create mode 100644 3party/asio/include/asio/detail/wait_handler.hpp create mode 100644 3party/asio/include/asio/detail/wait_op.hpp create mode 100644 3party/asio/include/asio/detail/win_event.hpp create mode 100644 3party/asio/include/asio/detail/win_fd_set_adapter.hpp create mode 100644 3party/asio/include/asio/detail/win_fenced_block.hpp create mode 100644 3party/asio/include/asio/detail/win_global.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_file_service.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_handle_read_op.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_handle_service.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_handle_write_op.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_io_context.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_null_buffers_op.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_operation.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_overlapped_op.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_serial_port_service.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_socket_accept_op.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_socket_connect_op.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_socket_recv_op.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_socket_send_op.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_socket_service.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_socket_service_base.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_thread_info.hpp create mode 100644 3party/asio/include/asio/detail/win_iocp_wait_op.hpp create mode 100644 3party/asio/include/asio/detail/win_mutex.hpp create mode 100644 3party/asio/include/asio/detail/win_object_handle_service.hpp create mode 100644 3party/asio/include/asio/detail/win_static_mutex.hpp create mode 100644 3party/asio/include/asio/detail/win_thread.hpp create mode 100644 3party/asio/include/asio/detail/win_tss_ptr.hpp create mode 100644 3party/asio/include/asio/detail/winapp_thread.hpp create mode 100644 3party/asio/include/asio/detail/wince_thread.hpp create mode 100644 3party/asio/include/asio/detail/winrt_async_manager.hpp create mode 100644 3party/asio/include/asio/detail/winrt_async_op.hpp create mode 100644 3party/asio/include/asio/detail/winrt_resolve_op.hpp create mode 100644 3party/asio/include/asio/detail/winrt_resolver_service.hpp create mode 100644 3party/asio/include/asio/detail/winrt_socket_connect_op.hpp create mode 100644 3party/asio/include/asio/detail/winrt_socket_recv_op.hpp create mode 100644 3party/asio/include/asio/detail/winrt_socket_send_op.hpp create mode 100644 3party/asio/include/asio/detail/winrt_ssocket_service.hpp create mode 100644 3party/asio/include/asio/detail/winrt_ssocket_service_base.hpp create mode 100644 3party/asio/include/asio/detail/winrt_timer_scheduler.hpp create mode 100644 3party/asio/include/asio/detail/winrt_utils.hpp create mode 100644 3party/asio/include/asio/detail/winsock_init.hpp create mode 100644 3party/asio/include/asio/detail/work_dispatcher.hpp create mode 100644 3party/asio/include/asio/detail/wrapped_handler.hpp create mode 100644 3party/asio/include/asio/dispatch.hpp create mode 100644 3party/asio/include/asio/error.hpp create mode 100644 3party/asio/include/asio/error_code.hpp create mode 100644 3party/asio/include/asio/execution.hpp create mode 100644 3party/asio/include/asio/execution/allocator.hpp create mode 100644 3party/asio/include/asio/execution/any_executor.hpp create mode 100644 3party/asio/include/asio/execution/bad_executor.hpp create mode 100644 3party/asio/include/asio/execution/blocking.hpp create mode 100644 3party/asio/include/asio/execution/blocking_adaptation.hpp create mode 100644 3party/asio/include/asio/execution/bulk_execute.hpp create mode 100644 3party/asio/include/asio/execution/bulk_guarantee.hpp create mode 100644 3party/asio/include/asio/execution/connect.hpp create mode 100644 3party/asio/include/asio/execution/context.hpp create mode 100644 3party/asio/include/asio/execution/context_as.hpp create mode 100644 3party/asio/include/asio/execution/detail/as_invocable.hpp create mode 100644 3party/asio/include/asio/execution/detail/as_operation.hpp create mode 100644 3party/asio/include/asio/execution/detail/as_receiver.hpp create mode 100644 3party/asio/include/asio/execution/detail/bulk_sender.hpp create mode 100644 3party/asio/include/asio/execution/detail/submit_receiver.hpp create mode 100644 3party/asio/include/asio/execution/detail/void_receiver.hpp create mode 100644 3party/asio/include/asio/execution/execute.hpp create mode 100644 3party/asio/include/asio/execution/executor.hpp create mode 100644 3party/asio/include/asio/execution/impl/bad_executor.ipp create mode 100644 3party/asio/include/asio/execution/impl/receiver_invocation_error.ipp create mode 100644 3party/asio/include/asio/execution/invocable_archetype.hpp create mode 100644 3party/asio/include/asio/execution/mapping.hpp create mode 100644 3party/asio/include/asio/execution/occupancy.hpp create mode 100644 3party/asio/include/asio/execution/operation_state.hpp create mode 100644 3party/asio/include/asio/execution/outstanding_work.hpp create mode 100644 3party/asio/include/asio/execution/prefer_only.hpp create mode 100644 3party/asio/include/asio/execution/receiver.hpp create mode 100644 3party/asio/include/asio/execution/receiver_invocation_error.hpp create mode 100644 3party/asio/include/asio/execution/relationship.hpp create mode 100644 3party/asio/include/asio/execution/schedule.hpp create mode 100644 3party/asio/include/asio/execution/scheduler.hpp create mode 100644 3party/asio/include/asio/execution/sender.hpp create mode 100644 3party/asio/include/asio/execution/set_done.hpp create mode 100644 3party/asio/include/asio/execution/set_error.hpp create mode 100644 3party/asio/include/asio/execution/set_value.hpp create mode 100644 3party/asio/include/asio/execution/start.hpp create mode 100644 3party/asio/include/asio/execution/submit.hpp create mode 100644 3party/asio/include/asio/execution_context.hpp create mode 100644 3party/asio/include/asio/executor.hpp create mode 100644 3party/asio/include/asio/executor_work_guard.hpp create mode 100644 3party/asio/include/asio/experimental/append.hpp create mode 100644 3party/asio/include/asio/experimental/as_single.hpp create mode 100644 3party/asio/include/asio/experimental/as_tuple.hpp create mode 100644 3party/asio/include/asio/experimental/awaitable_operators.hpp create mode 100644 3party/asio/include/asio/experimental/basic_channel.hpp create mode 100644 3party/asio/include/asio/experimental/basic_concurrent_channel.hpp create mode 100644 3party/asio/include/asio/experimental/cancellation_condition.hpp create mode 100644 3party/asio/include/asio/experimental/channel.hpp create mode 100644 3party/asio/include/asio/experimental/channel_error.hpp create mode 100644 3party/asio/include/asio/experimental/channel_traits.hpp create mode 100644 3party/asio/include/asio/experimental/co_composed.hpp create mode 100644 3party/asio/include/asio/experimental/co_spawn.hpp create mode 100644 3party/asio/include/asio/experimental/concurrent_channel.hpp create mode 100644 3party/asio/include/asio/experimental/coro.hpp create mode 100644 3party/asio/include/asio/experimental/coro_traits.hpp create mode 100644 3party/asio/include/asio/experimental/deferred.hpp create mode 100644 3party/asio/include/asio/experimental/detail/channel_handler.hpp create mode 100644 3party/asio/include/asio/experimental/detail/channel_message.hpp create mode 100644 3party/asio/include/asio/experimental/detail/channel_operation.hpp create mode 100644 3party/asio/include/asio/experimental/detail/channel_payload.hpp create mode 100644 3party/asio/include/asio/experimental/detail/channel_receive_op.hpp create mode 100644 3party/asio/include/asio/experimental/detail/channel_send_functions.hpp create mode 100644 3party/asio/include/asio/experimental/detail/channel_send_op.hpp create mode 100644 3party/asio/include/asio/experimental/detail/channel_service.hpp create mode 100644 3party/asio/include/asio/experimental/detail/coro_completion_handler.hpp create mode 100644 3party/asio/include/asio/experimental/detail/coro_promise_allocator.hpp create mode 100644 3party/asio/include/asio/experimental/detail/has_signature.hpp create mode 100644 3party/asio/include/asio/experimental/detail/impl/channel_service.hpp create mode 100644 3party/asio/include/asio/experimental/detail/partial_promise.hpp create mode 100644 3party/asio/include/asio/experimental/impl/as_single.hpp create mode 100644 3party/asio/include/asio/experimental/impl/channel_error.ipp create mode 100644 3party/asio/include/asio/experimental/impl/co_composed.hpp create mode 100644 3party/asio/include/asio/experimental/impl/coro.hpp create mode 100644 3party/asio/include/asio/experimental/impl/parallel_group.hpp create mode 100644 3party/asio/include/asio/experimental/impl/promise.hpp create mode 100644 3party/asio/include/asio/experimental/impl/use_coro.hpp create mode 100644 3party/asio/include/asio/experimental/impl/use_promise.hpp create mode 100644 3party/asio/include/asio/experimental/parallel_group.hpp create mode 100644 3party/asio/include/asio/experimental/prepend.hpp create mode 100644 3party/asio/include/asio/experimental/promise.hpp create mode 100644 3party/asio/include/asio/experimental/use_coro.hpp create mode 100644 3party/asio/include/asio/experimental/use_promise.hpp create mode 100644 3party/asio/include/asio/file_base.hpp create mode 100644 3party/asio/include/asio/generic/basic_endpoint.hpp create mode 100644 3party/asio/include/asio/generic/datagram_protocol.hpp create mode 100644 3party/asio/include/asio/generic/detail/endpoint.hpp create mode 100644 3party/asio/include/asio/generic/detail/impl/endpoint.ipp create mode 100644 3party/asio/include/asio/generic/raw_protocol.hpp create mode 100644 3party/asio/include/asio/generic/seq_packet_protocol.hpp create mode 100644 3party/asio/include/asio/generic/stream_protocol.hpp create mode 100644 3party/asio/include/asio/handler_alloc_hook.hpp create mode 100644 3party/asio/include/asio/handler_continuation_hook.hpp create mode 100644 3party/asio/include/asio/handler_invoke_hook.hpp create mode 100644 3party/asio/include/asio/high_resolution_timer.hpp create mode 100644 3party/asio/include/asio/impl/any_completion_executor.ipp create mode 100644 3party/asio/include/asio/impl/any_io_executor.ipp create mode 100644 3party/asio/include/asio/impl/append.hpp create mode 100644 3party/asio/include/asio/impl/as_tuple.hpp create mode 100644 3party/asio/include/asio/impl/awaitable.hpp create mode 100644 3party/asio/include/asio/impl/buffered_read_stream.hpp create mode 100644 3party/asio/include/asio/impl/buffered_write_stream.hpp create mode 100644 3party/asio/include/asio/impl/cancellation_signal.ipp create mode 100644 3party/asio/include/asio/impl/co_spawn.hpp create mode 100644 3party/asio/include/asio/impl/connect.hpp create mode 100644 3party/asio/include/asio/impl/connect_pipe.hpp create mode 100644 3party/asio/include/asio/impl/connect_pipe.ipp create mode 100644 3party/asio/include/asio/impl/consign.hpp create mode 100644 3party/asio/include/asio/impl/deferred.hpp create mode 100644 3party/asio/include/asio/impl/detached.hpp create mode 100644 3party/asio/include/asio/impl/error.ipp create mode 100644 3party/asio/include/asio/impl/error_code.ipp create mode 100644 3party/asio/include/asio/impl/execution_context.hpp create mode 100644 3party/asio/include/asio/impl/execution_context.ipp create mode 100644 3party/asio/include/asio/impl/executor.hpp create mode 100644 3party/asio/include/asio/impl/executor.ipp create mode 100644 3party/asio/include/asio/impl/handler_alloc_hook.ipp create mode 100644 3party/asio/include/asio/impl/io_context.hpp create mode 100644 3party/asio/include/asio/impl/io_context.ipp create mode 100644 3party/asio/include/asio/impl/multiple_exceptions.ipp create mode 100644 3party/asio/include/asio/impl/prepend.hpp create mode 100644 3party/asio/include/asio/impl/read.hpp create mode 100644 3party/asio/include/asio/impl/read_at.hpp create mode 100644 3party/asio/include/asio/impl/read_until.hpp create mode 100644 3party/asio/include/asio/impl/redirect_error.hpp create mode 100644 3party/asio/include/asio/impl/serial_port_base.hpp create mode 100644 3party/asio/include/asio/impl/serial_port_base.ipp create mode 100644 3party/asio/include/asio/impl/spawn.hpp create mode 100644 3party/asio/include/asio/impl/src.hpp create mode 100644 3party/asio/include/asio/impl/system_context.hpp create mode 100644 3party/asio/include/asio/impl/system_context.ipp create mode 100644 3party/asio/include/asio/impl/system_executor.hpp create mode 100644 3party/asio/include/asio/impl/thread_pool.hpp create mode 100644 3party/asio/include/asio/impl/thread_pool.ipp create mode 100644 3party/asio/include/asio/impl/use_awaitable.hpp create mode 100644 3party/asio/include/asio/impl/use_future.hpp create mode 100644 3party/asio/include/asio/impl/write.hpp create mode 100644 3party/asio/include/asio/impl/write_at.hpp create mode 100644 3party/asio/include/asio/io_context.hpp create mode 100644 3party/asio/include/asio/io_context_strand.hpp create mode 100644 3party/asio/include/asio/io_service.hpp create mode 100644 3party/asio/include/asio/io_service_strand.hpp create mode 100644 3party/asio/include/asio/ip/address.hpp create mode 100644 3party/asio/include/asio/ip/address_v4.hpp create mode 100644 3party/asio/include/asio/ip/address_v4_iterator.hpp create mode 100644 3party/asio/include/asio/ip/address_v4_range.hpp create mode 100644 3party/asio/include/asio/ip/address_v6.hpp create mode 100644 3party/asio/include/asio/ip/address_v6_iterator.hpp create mode 100644 3party/asio/include/asio/ip/address_v6_range.hpp create mode 100644 3party/asio/include/asio/ip/bad_address_cast.hpp create mode 100644 3party/asio/include/asio/ip/basic_endpoint.hpp create mode 100644 3party/asio/include/asio/ip/basic_resolver.hpp create mode 100644 3party/asio/include/asio/ip/basic_resolver_entry.hpp create mode 100644 3party/asio/include/asio/ip/basic_resolver_iterator.hpp create mode 100644 3party/asio/include/asio/ip/basic_resolver_query.hpp create mode 100644 3party/asio/include/asio/ip/basic_resolver_results.hpp create mode 100644 3party/asio/include/asio/ip/detail/endpoint.hpp create mode 100644 3party/asio/include/asio/ip/detail/impl/endpoint.ipp create mode 100644 3party/asio/include/asio/ip/detail/socket_option.hpp create mode 100644 3party/asio/include/asio/ip/host_name.hpp create mode 100644 3party/asio/include/asio/ip/icmp.hpp create mode 100644 3party/asio/include/asio/ip/impl/address.hpp create mode 100644 3party/asio/include/asio/ip/impl/address.ipp create mode 100644 3party/asio/include/asio/ip/impl/address_v4.hpp create mode 100644 3party/asio/include/asio/ip/impl/address_v4.ipp create mode 100644 3party/asio/include/asio/ip/impl/address_v6.hpp create mode 100644 3party/asio/include/asio/ip/impl/address_v6.ipp create mode 100644 3party/asio/include/asio/ip/impl/basic_endpoint.hpp create mode 100644 3party/asio/include/asio/ip/impl/host_name.ipp create mode 100644 3party/asio/include/asio/ip/impl/network_v4.hpp create mode 100644 3party/asio/include/asio/ip/impl/network_v4.ipp create mode 100644 3party/asio/include/asio/ip/impl/network_v6.hpp create mode 100644 3party/asio/include/asio/ip/impl/network_v6.ipp create mode 100644 3party/asio/include/asio/ip/multicast.hpp create mode 100644 3party/asio/include/asio/ip/network_v4.hpp create mode 100644 3party/asio/include/asio/ip/network_v6.hpp create mode 100644 3party/asio/include/asio/ip/resolver_base.hpp create mode 100644 3party/asio/include/asio/ip/resolver_query_base.hpp create mode 100644 3party/asio/include/asio/ip/tcp.hpp create mode 100644 3party/asio/include/asio/ip/udp.hpp create mode 100644 3party/asio/include/asio/ip/unicast.hpp create mode 100644 3party/asio/include/asio/ip/v6_only.hpp create mode 100644 3party/asio/include/asio/is_applicable_property.hpp create mode 100644 3party/asio/include/asio/is_contiguous_iterator.hpp create mode 100644 3party/asio/include/asio/is_executor.hpp create mode 100644 3party/asio/include/asio/is_read_buffered.hpp create mode 100644 3party/asio/include/asio/is_write_buffered.hpp create mode 100644 3party/asio/include/asio/local/basic_endpoint.hpp create mode 100644 3party/asio/include/asio/local/connect_pair.hpp create mode 100644 3party/asio/include/asio/local/datagram_protocol.hpp create mode 100644 3party/asio/include/asio/local/detail/endpoint.hpp create mode 100644 3party/asio/include/asio/local/detail/impl/endpoint.ipp create mode 100644 3party/asio/include/asio/local/seq_packet_protocol.hpp create mode 100644 3party/asio/include/asio/local/stream_protocol.hpp create mode 100644 3party/asio/include/asio/multiple_exceptions.hpp create mode 100644 3party/asio/include/asio/packaged_task.hpp create mode 100644 3party/asio/include/asio/placeholders.hpp create mode 100644 3party/asio/include/asio/posix/basic_descriptor.hpp create mode 100644 3party/asio/include/asio/posix/basic_stream_descriptor.hpp create mode 100644 3party/asio/include/asio/posix/descriptor.hpp create mode 100644 3party/asio/include/asio/posix/descriptor_base.hpp create mode 100644 3party/asio/include/asio/posix/stream_descriptor.hpp create mode 100644 3party/asio/include/asio/post.hpp create mode 100644 3party/asio/include/asio/prefer.hpp create mode 100644 3party/asio/include/asio/prepend.hpp create mode 100644 3party/asio/include/asio/query.hpp create mode 100644 3party/asio/include/asio/random_access_file.hpp create mode 100644 3party/asio/include/asio/read.hpp create mode 100644 3party/asio/include/asio/read_at.hpp create mode 100644 3party/asio/include/asio/read_until.hpp create mode 100644 3party/asio/include/asio/readable_pipe.hpp create mode 100644 3party/asio/include/asio/recycling_allocator.hpp create mode 100644 3party/asio/include/asio/redirect_error.hpp create mode 100644 3party/asio/include/asio/registered_buffer.hpp create mode 100644 3party/asio/include/asio/require.hpp create mode 100644 3party/asio/include/asio/require_concept.hpp create mode 100644 3party/asio/include/asio/serial_port.hpp create mode 100644 3party/asio/include/asio/serial_port_base.hpp create mode 100644 3party/asio/include/asio/signal_set.hpp create mode 100644 3party/asio/include/asio/signal_set_base.hpp create mode 100644 3party/asio/include/asio/socket_base.hpp create mode 100644 3party/asio/include/asio/spawn.hpp create mode 100644 3party/asio/include/asio/ssl.hpp create mode 100644 3party/asio/include/asio/ssl/context.hpp create mode 100644 3party/asio/include/asio/ssl/context_base.hpp create mode 100644 3party/asio/include/asio/ssl/detail/buffered_handshake_op.hpp create mode 100644 3party/asio/include/asio/ssl/detail/engine.hpp create mode 100644 3party/asio/include/asio/ssl/detail/handshake_op.hpp create mode 100644 3party/asio/include/asio/ssl/detail/impl/engine.ipp create mode 100644 3party/asio/include/asio/ssl/detail/impl/openssl_init.ipp create mode 100644 3party/asio/include/asio/ssl/detail/io.hpp create mode 100644 3party/asio/include/asio/ssl/detail/openssl_init.hpp create mode 100644 3party/asio/include/asio/ssl/detail/openssl_types.hpp create mode 100644 3party/asio/include/asio/ssl/detail/password_callback.hpp create mode 100644 3party/asio/include/asio/ssl/detail/read_op.hpp create mode 100644 3party/asio/include/asio/ssl/detail/shutdown_op.hpp create mode 100644 3party/asio/include/asio/ssl/detail/stream_core.hpp create mode 100644 3party/asio/include/asio/ssl/detail/verify_callback.hpp create mode 100644 3party/asio/include/asio/ssl/detail/write_op.hpp create mode 100644 3party/asio/include/asio/ssl/error.hpp create mode 100644 3party/asio/include/asio/ssl/host_name_verification.hpp create mode 100644 3party/asio/include/asio/ssl/impl/context.hpp create mode 100644 3party/asio/include/asio/ssl/impl/context.ipp create mode 100644 3party/asio/include/asio/ssl/impl/error.ipp create mode 100644 3party/asio/include/asio/ssl/impl/host_name_verification.ipp create mode 100644 3party/asio/include/asio/ssl/impl/rfc2818_verification.ipp create mode 100644 3party/asio/include/asio/ssl/impl/src.hpp create mode 100644 3party/asio/include/asio/ssl/rfc2818_verification.hpp create mode 100644 3party/asio/include/asio/ssl/stream.hpp create mode 100644 3party/asio/include/asio/ssl/stream_base.hpp create mode 100644 3party/asio/include/asio/ssl/verify_context.hpp create mode 100644 3party/asio/include/asio/ssl/verify_mode.hpp create mode 100644 3party/asio/include/asio/static_thread_pool.hpp create mode 100644 3party/asio/include/asio/steady_timer.hpp create mode 100644 3party/asio/include/asio/strand.hpp create mode 100644 3party/asio/include/asio/stream_file.hpp create mode 100644 3party/asio/include/asio/streambuf.hpp create mode 100644 3party/asio/include/asio/system_context.hpp create mode 100644 3party/asio/include/asio/system_error.hpp create mode 100644 3party/asio/include/asio/system_executor.hpp create mode 100644 3party/asio/include/asio/system_timer.hpp create mode 100644 3party/asio/include/asio/this_coro.hpp create mode 100644 3party/asio/include/asio/thread.hpp create mode 100644 3party/asio/include/asio/thread_pool.hpp create mode 100644 3party/asio/include/asio/time_traits.hpp create mode 100644 3party/asio/include/asio/traits/bulk_execute_free.hpp create mode 100644 3party/asio/include/asio/traits/bulk_execute_member.hpp create mode 100644 3party/asio/include/asio/traits/connect_free.hpp create mode 100644 3party/asio/include/asio/traits/connect_member.hpp create mode 100644 3party/asio/include/asio/traits/equality_comparable.hpp create mode 100644 3party/asio/include/asio/traits/execute_free.hpp create mode 100644 3party/asio/include/asio/traits/execute_member.hpp create mode 100644 3party/asio/include/asio/traits/prefer_free.hpp create mode 100644 3party/asio/include/asio/traits/prefer_member.hpp create mode 100644 3party/asio/include/asio/traits/query_free.hpp create mode 100644 3party/asio/include/asio/traits/query_member.hpp create mode 100644 3party/asio/include/asio/traits/query_static_constexpr_member.hpp create mode 100644 3party/asio/include/asio/traits/require_concept_free.hpp create mode 100644 3party/asio/include/asio/traits/require_concept_member.hpp create mode 100644 3party/asio/include/asio/traits/require_free.hpp create mode 100644 3party/asio/include/asio/traits/require_member.hpp create mode 100644 3party/asio/include/asio/traits/schedule_free.hpp create mode 100644 3party/asio/include/asio/traits/schedule_member.hpp create mode 100644 3party/asio/include/asio/traits/set_done_free.hpp create mode 100644 3party/asio/include/asio/traits/set_done_member.hpp create mode 100644 3party/asio/include/asio/traits/set_error_free.hpp create mode 100644 3party/asio/include/asio/traits/set_error_member.hpp create mode 100644 3party/asio/include/asio/traits/set_value_free.hpp create mode 100644 3party/asio/include/asio/traits/set_value_member.hpp create mode 100644 3party/asio/include/asio/traits/start_free.hpp create mode 100644 3party/asio/include/asio/traits/start_member.hpp create mode 100644 3party/asio/include/asio/traits/static_query.hpp create mode 100644 3party/asio/include/asio/traits/static_require.hpp create mode 100644 3party/asio/include/asio/traits/static_require_concept.hpp create mode 100644 3party/asio/include/asio/traits/submit_free.hpp create mode 100644 3party/asio/include/asio/traits/submit_member.hpp create mode 100644 3party/asio/include/asio/ts/buffer.hpp create mode 100644 3party/asio/include/asio/ts/executor.hpp create mode 100644 3party/asio/include/asio/ts/internet.hpp create mode 100644 3party/asio/include/asio/ts/io_context.hpp create mode 100644 3party/asio/include/asio/ts/net.hpp create mode 100644 3party/asio/include/asio/ts/netfwd.hpp create mode 100644 3party/asio/include/asio/ts/socket.hpp create mode 100644 3party/asio/include/asio/ts/timer.hpp create mode 100644 3party/asio/include/asio/unyield.hpp create mode 100644 3party/asio/include/asio/use_awaitable.hpp create mode 100644 3party/asio/include/asio/use_future.hpp create mode 100644 3party/asio/include/asio/uses_executor.hpp create mode 100644 3party/asio/include/asio/version.hpp create mode 100644 3party/asio/include/asio/wait_traits.hpp create mode 100644 3party/asio/include/asio/windows/basic_object_handle.hpp create mode 100644 3party/asio/include/asio/windows/basic_overlapped_handle.hpp create mode 100644 3party/asio/include/asio/windows/basic_random_access_handle.hpp create mode 100644 3party/asio/include/asio/windows/basic_stream_handle.hpp create mode 100644 3party/asio/include/asio/windows/object_handle.hpp create mode 100644 3party/asio/include/asio/windows/overlapped_handle.hpp create mode 100644 3party/asio/include/asio/windows/overlapped_ptr.hpp create mode 100644 3party/asio/include/asio/windows/random_access_handle.hpp create mode 100644 3party/asio/include/asio/windows/stream_handle.hpp create mode 100644 3party/asio/include/asio/writable_pipe.hpp create mode 100644 3party/asio/include/asio/write.hpp create mode 100644 3party/asio/include/asio/write_at.hpp create mode 100644 3party/asio/include/asio/yield.hpp create mode 100755 3party/asio/install-sh create mode 100755 3party/asio/missing create mode 100644 3party/asio/src/Makefile.am create mode 100644 3party/asio/src/Makefile.in create mode 100644 3party/asio/src/Makefile.mgw create mode 100644 3party/asio/src/Makefile.msc create mode 100644 3party/asio/src/asio.cpp create mode 100644 3party/asio/src/asio_ssl.cpp create mode 100644 3party/asio/src/examples/cpp03/Makefile.am create mode 100644 3party/asio/src/examples/cpp03/Makefile.in create mode 100644 3party/asio/src/examples/cpp03/allocation/server.cpp create mode 100644 3party/asio/src/examples/cpp03/buffers/reference_counted.cpp create mode 100644 3party/asio/src/examples/cpp03/chat/chat_client.cpp create mode 100644 3party/asio/src/examples/cpp03/chat/chat_message.hpp create mode 100644 3party/asio/src/examples/cpp03/chat/chat_server.cpp create mode 100644 3party/asio/src/examples/cpp03/chat/posix_chat_client.cpp create mode 100644 3party/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp create mode 100644 3party/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp create mode 100644 3party/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp03/fork/daemon.cpp create mode 100644 3party/asio/src/examples/cpp03/fork/process_per_connection.cpp create mode 100644 3party/asio/src/examples/cpp03/http/client/async_client.cpp create mode 100644 3party/asio/src/examples/cpp03/http/client/sync_client.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server/connection.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server/connection.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server/connection_manager.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server/connection_manager.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server/header.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server/main.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server/mime_types.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server/mime_types.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server/reply.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server/reply.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server/request.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server/request_handler.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server/request_handler.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server/request_parser.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server/request_parser.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server/server.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server/server.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/connection.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/connection.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/header.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/io_context_pool.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/io_context_pool.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/main.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/mime_types.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/mime_types.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/reply.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/reply.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/request.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/request_handler.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/request_handler.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/request_parser.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/request_parser.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/server.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server2/server.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/connection.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/connection.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/header.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/main.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/mime_types.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/mime_types.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/reply.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/reply.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/request.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/request_handler.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/request_handler.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/request_parser.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/request_parser.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/server.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server3/server.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/file_handler.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/file_handler.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/header.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/main.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/mime_types.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/mime_types.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/reply.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/reply.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/request.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/request_parser.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/request_parser.hpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/server.cpp create mode 100644 3party/asio/src/examples/cpp03/http/server4/server.hpp create mode 100644 3party/asio/src/examples/cpp03/icmp/icmp_header.hpp create mode 100644 3party/asio/src/examples/cpp03/icmp/ipv4_header.hpp create mode 100644 3party/asio/src/examples/cpp03/icmp/ping.cpp create mode 100644 3party/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp create mode 100644 3party/asio/src/examples/cpp03/iostreams/daytime_client.cpp create mode 100644 3party/asio/src/examples/cpp03/iostreams/daytime_server.cpp create mode 100644 3party/asio/src/examples/cpp03/iostreams/http_client.cpp create mode 100644 3party/asio/src/examples/cpp03/local/connect_pair.cpp create mode 100644 3party/asio/src/examples/cpp03/local/iostream_client.cpp create mode 100644 3party/asio/src/examples/cpp03/local/stream_client.cpp create mode 100644 3party/asio/src/examples/cpp03/local/stream_server.cpp create mode 100644 3party/asio/src/examples/cpp03/multicast/receiver.cpp create mode 100644 3party/asio/src/examples/cpp03/multicast/sender.cpp create mode 100644 3party/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp create mode 100644 3party/asio/src/examples/cpp03/porthopper/client.cpp create mode 100644 3party/asio/src/examples/cpp03/porthopper/protocol.hpp create mode 100644 3party/asio/src/examples/cpp03/porthopper/server.cpp create mode 100644 3party/asio/src/examples/cpp03/serialization/client.cpp create mode 100644 3party/asio/src/examples/cpp03/serialization/connection.hpp create mode 100644 3party/asio/src/examples/cpp03/serialization/server.cpp create mode 100644 3party/asio/src/examples/cpp03/serialization/stock.hpp create mode 100644 3party/asio/src/examples/cpp03/services/basic_logger.hpp create mode 100644 3party/asio/src/examples/cpp03/services/daytime_client.cpp create mode 100644 3party/asio/src/examples/cpp03/services/logger.hpp create mode 100644 3party/asio/src/examples/cpp03/services/logger_service.cpp create mode 100644 3party/asio/src/examples/cpp03/services/logger_service.hpp create mode 100644 3party/asio/src/examples/cpp03/socks4/socks4.hpp create mode 100644 3party/asio/src/examples/cpp03/socks4/sync_client.cpp create mode 100644 3party/asio/src/examples/cpp03/spawn/echo_server.cpp create mode 100644 3party/asio/src/examples/cpp03/spawn/parallel_grep.cpp create mode 100644 3party/asio/src/examples/cpp03/ssl/README create mode 100644 3party/asio/src/examples/cpp03/ssl/ca.pem create mode 100644 3party/asio/src/examples/cpp03/ssl/client.cpp create mode 100644 3party/asio/src/examples/cpp03/ssl/dh4096.pem create mode 100644 3party/asio/src/examples/cpp03/ssl/server.cpp create mode 100644 3party/asio/src/examples/cpp03/ssl/server.pem create mode 100644 3party/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp create mode 100644 3party/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp create mode 100644 3party/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp create mode 100644 3party/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp create mode 100644 3party/asio/src/examples/cpp03/timeouts/server.cpp create mode 100644 3party/asio/src/examples/cpp03/timers/time_t_timer.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/daytime1/client.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/daytime2/server.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/daytime3/server.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/daytime4/client.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/daytime5/server.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/daytime6/server.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/daytime7/server.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/timer1/timer.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/timer2/timer.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/timer3/timer.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/timer4/timer.cpp create mode 100644 3party/asio/src/examples/cpp03/tutorial/timer5/timer.cpp create mode 100644 3party/asio/src/examples/cpp03/windows/transmit_file.cpp create mode 100644 3party/asio/src/examples/cpp11/Makefile.am create mode 100644 3party/asio/src/examples/cpp11/Makefile.in create mode 100644 3party/asio/src/examples/cpp11/allocation/server.cpp create mode 100644 3party/asio/src/examples/cpp11/buffers/reference_counted.cpp create mode 100644 3party/asio/src/examples/cpp11/chat/chat_client.cpp create mode 100644 3party/asio/src/examples/cpp11/chat/chat_message.hpp create mode 100644 3party/asio/src/examples/cpp11/chat/chat_server.cpp create mode 100644 3party/asio/src/examples/cpp11/deferred/deferred_1.cpp create mode 100644 3party/asio/src/examples/cpp11/deferred/deferred_2.cpp create mode 100644 3party/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp create mode 100644 3party/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp create mode 100644 3party/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp11/executors/actor.cpp create mode 100644 3party/asio/src/examples/cpp11/executors/bank_account_1.cpp create mode 100644 3party/asio/src/examples/cpp11/executors/bank_account_2.cpp create mode 100644 3party/asio/src/examples/cpp11/executors/fork_join.cpp create mode 100644 3party/asio/src/examples/cpp11/executors/pipeline.cpp create mode 100644 3party/asio/src/examples/cpp11/executors/priority_scheduler.cpp create mode 100644 3party/asio/src/examples/cpp11/files/async_file_copy.cpp create mode 100644 3party/asio/src/examples/cpp11/files/blocking_file_copy.cpp create mode 100644 3party/asio/src/examples/cpp11/fork/daemon.cpp create mode 100644 3party/asio/src/examples/cpp11/fork/process_per_connection.cpp create mode 100644 3party/asio/src/examples/cpp11/futures/daytime_client.cpp create mode 100644 3party/asio/src/examples/cpp11/handler_tracking/async_tcp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp create mode 100644 3party/asio/src/examples/cpp11/http/server/connection.cpp create mode 100644 3party/asio/src/examples/cpp11/http/server/connection.hpp create mode 100644 3party/asio/src/examples/cpp11/http/server/connection_manager.cpp create mode 100644 3party/asio/src/examples/cpp11/http/server/connection_manager.hpp create mode 100644 3party/asio/src/examples/cpp11/http/server/header.hpp create mode 100644 3party/asio/src/examples/cpp11/http/server/main.cpp create mode 100644 3party/asio/src/examples/cpp11/http/server/mime_types.cpp create mode 100644 3party/asio/src/examples/cpp11/http/server/mime_types.hpp create mode 100644 3party/asio/src/examples/cpp11/http/server/reply.cpp create mode 100644 3party/asio/src/examples/cpp11/http/server/reply.hpp create mode 100644 3party/asio/src/examples/cpp11/http/server/request.hpp create mode 100644 3party/asio/src/examples/cpp11/http/server/request_handler.cpp create mode 100644 3party/asio/src/examples/cpp11/http/server/request_handler.hpp create mode 100644 3party/asio/src/examples/cpp11/http/server/request_parser.cpp create mode 100644 3party/asio/src/examples/cpp11/http/server/request_parser.hpp create mode 100644 3party/asio/src/examples/cpp11/http/server/server.cpp create mode 100644 3party/asio/src/examples/cpp11/http/server/server.hpp create mode 100644 3party/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp create mode 100644 3party/asio/src/examples/cpp11/iostreams/http_client.cpp create mode 100644 3party/asio/src/examples/cpp11/local/connect_pair.cpp create mode 100644 3party/asio/src/examples/cpp11/local/fd_passing_stream_client.cpp create mode 100644 3party/asio/src/examples/cpp11/local/fd_passing_stream_server.cpp create mode 100644 3party/asio/src/examples/cpp11/local/iostream_client.cpp create mode 100644 3party/asio/src/examples/cpp11/local/stream_client.cpp create mode 100644 3party/asio/src/examples/cpp11/local/stream_server.cpp create mode 100644 3party/asio/src/examples/cpp11/multicast/receiver.cpp create mode 100644 3party/asio/src/examples/cpp11/multicast/sender.cpp create mode 100644 3party/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp create mode 100644 3party/asio/src/examples/cpp11/operations/composed_1.cpp create mode 100644 3party/asio/src/examples/cpp11/operations/composed_2.cpp create mode 100644 3party/asio/src/examples/cpp11/operations/composed_3.cpp create mode 100644 3party/asio/src/examples/cpp11/operations/composed_4.cpp create mode 100644 3party/asio/src/examples/cpp11/operations/composed_5.cpp create mode 100644 3party/asio/src/examples/cpp11/operations/composed_6.cpp create mode 100644 3party/asio/src/examples/cpp11/operations/composed_7.cpp create mode 100644 3party/asio/src/examples/cpp11/operations/composed_8.cpp create mode 100644 3party/asio/src/examples/cpp11/parallel_group/ranged_wait_for_all.cpp create mode 100644 3party/asio/src/examples/cpp11/parallel_group/wait_for_all.cpp create mode 100644 3party/asio/src/examples/cpp11/parallel_group/wait_for_one.cpp create mode 100644 3party/asio/src/examples/cpp11/parallel_group/wait_for_one_error.cpp create mode 100644 3party/asio/src/examples/cpp11/parallel_group/wait_for_one_success.cpp create mode 100644 3party/asio/src/examples/cpp11/socks4/socks4.hpp create mode 100644 3party/asio/src/examples/cpp11/socks4/sync_client.cpp create mode 100644 3party/asio/src/examples/cpp11/spawn/echo_server.cpp create mode 100644 3party/asio/src/examples/cpp11/spawn/parallel_grep.cpp create mode 100644 3party/asio/src/examples/cpp11/ssl/README create mode 100644 3party/asio/src/examples/cpp11/ssl/ca.pem create mode 100644 3party/asio/src/examples/cpp11/ssl/client.cpp create mode 100644 3party/asio/src/examples/cpp11/ssl/dh4096.pem create mode 100644 3party/asio/src/examples/cpp11/ssl/server.cpp create mode 100644 3party/asio/src/examples/cpp11/ssl/server.pem create mode 100644 3party/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp create mode 100644 3party/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp create mode 100644 3party/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp create mode 100644 3party/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp create mode 100644 3party/asio/src/examples/cpp11/timeouts/server.cpp create mode 100644 3party/asio/src/examples/cpp11/timers/time_t_timer.cpp create mode 100644 3party/asio/src/examples/cpp11/type_erasure/line_reader.hpp create mode 100644 3party/asio/src/examples/cpp11/type_erasure/main.cpp create mode 100644 3party/asio/src/examples/cpp11/type_erasure/sleep.cpp create mode 100644 3party/asio/src/examples/cpp11/type_erasure/sleep.hpp create mode 100644 3party/asio/src/examples/cpp11/type_erasure/stdin_line_reader.cpp create mode 100644 3party/asio/src/examples/cpp11/type_erasure/stdin_line_reader.hpp create mode 100644 3party/asio/src/examples/cpp14/Makefile.am create mode 100644 3party/asio/src/examples/cpp14/Makefile.in create mode 100644 3party/asio/src/examples/cpp14/deferred/deferred_1.cpp create mode 100644 3party/asio/src/examples/cpp14/deferred/deferred_2.cpp create mode 100644 3party/asio/src/examples/cpp14/deferred/deferred_3.cpp create mode 100644 3party/asio/src/examples/cpp14/deferred/deferred_4.cpp create mode 100644 3party/asio/src/examples/cpp14/deferred/deferred_5.cpp create mode 100644 3party/asio/src/examples/cpp14/deferred/deferred_6.cpp create mode 100644 3party/asio/src/examples/cpp14/deferred/deferred_7.cpp create mode 100644 3party/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp create mode 100644 3party/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp create mode 100644 3party/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp14/executors/actor.cpp create mode 100644 3party/asio/src/examples/cpp14/executors/async_1.cpp create mode 100644 3party/asio/src/examples/cpp14/executors/async_2.cpp create mode 100644 3party/asio/src/examples/cpp14/executors/bank_account_1.cpp create mode 100644 3party/asio/src/examples/cpp14/executors/bank_account_2.cpp create mode 100644 3party/asio/src/examples/cpp14/executors/fork_join.cpp create mode 100644 3party/asio/src/examples/cpp14/executors/pipeline.cpp create mode 100644 3party/asio/src/examples/cpp14/executors/priority_scheduler.cpp create mode 100644 3party/asio/src/examples/cpp14/iostreams/http_client.cpp create mode 100644 3party/asio/src/examples/cpp14/operations/c_callback_wrapper.cpp create mode 100644 3party/asio/src/examples/cpp14/operations/callback_wrapper.cpp create mode 100644 3party/asio/src/examples/cpp14/operations/composed_1.cpp create mode 100644 3party/asio/src/examples/cpp14/operations/composed_2.cpp create mode 100644 3party/asio/src/examples/cpp14/operations/composed_3.cpp create mode 100644 3party/asio/src/examples/cpp14/operations/composed_4.cpp create mode 100644 3party/asio/src/examples/cpp14/operations/composed_5.cpp create mode 100644 3party/asio/src/examples/cpp14/operations/composed_6.cpp create mode 100644 3party/asio/src/examples/cpp14/operations/composed_7.cpp create mode 100644 3party/asio/src/examples/cpp14/operations/composed_8.cpp create mode 100644 3party/asio/src/examples/cpp14/parallel_group/parallel_sort.cpp create mode 100644 3party/asio/src/examples/cpp14/parallel_group/ranged_wait_for_all.cpp create mode 100644 3party/asio/src/examples/cpp14/parallel_group/wait_for_all.cpp create mode 100644 3party/asio/src/examples/cpp14/parallel_group/wait_for_one.cpp create mode 100644 3party/asio/src/examples/cpp14/parallel_group/wait_for_one_error.cpp create mode 100644 3party/asio/src/examples/cpp14/parallel_group/wait_for_one_success.cpp create mode 100644 3party/asio/src/examples/cpp17/Makefile.am create mode 100644 3party/asio/src/examples/cpp17/Makefile.in create mode 100644 3party/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp create mode 100644 3party/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp create mode 100644 3party/asio/src/examples/cpp17/coroutines_ts/echo_server_with_as_single_default.cpp create mode 100644 3party/asio/src/examples/cpp17/coroutines_ts/echo_server_with_as_tuple_default.cpp create mode 100644 3party/asio/src/examples/cpp17/coroutines_ts/echo_server_with_default.cpp create mode 100644 3party/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp create mode 100644 3party/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp20/Makefile.am create mode 100644 3party/asio/src/examples/cpp20/Makefile.in create mode 100644 3party/asio/src/examples/cpp20/channels/throttling_proxy.cpp create mode 100644 3party/asio/src/examples/cpp20/coroutines/chat_server.cpp create mode 100644 3party/asio/src/examples/cpp20/coroutines/echo_server.cpp create mode 100644 3party/asio/src/examples/cpp20/coroutines/echo_server_with_as_single_default.cpp create mode 100644 3party/asio/src/examples/cpp20/coroutines/echo_server_with_as_tuple_default.cpp create mode 100644 3party/asio/src/examples/cpp20/coroutines/echo_server_with_default.cpp create mode 100644 3party/asio/src/examples/cpp20/coroutines/echo_server_with_deferred.cpp create mode 100644 3party/asio/src/examples/cpp20/coroutines/echo_server_with_deferred_default.cpp create mode 100644 3party/asio/src/examples/cpp20/coroutines/refactored_echo_server.cpp create mode 100644 3party/asio/src/examples/cpp20/coroutines/timeout.cpp create mode 100644 3party/asio/src/examples/cpp20/operations/c_callback_wrapper.cpp create mode 100644 3party/asio/src/examples/cpp20/operations/callback_wrapper.cpp create mode 100644 3party/asio/src/examples/cpp20/operations/composed_1.cpp create mode 100644 3party/asio/src/examples/cpp20/operations/composed_2.cpp create mode 100644 3party/asio/src/examples/cpp20/operations/composed_3.cpp create mode 100644 3party/asio/src/examples/cpp20/operations/composed_4.cpp create mode 100644 3party/asio/src/examples/cpp20/operations/composed_5.cpp create mode 100644 3party/asio/src/examples/cpp20/operations/composed_6.cpp create mode 100644 3party/asio/src/examples/cpp20/operations/composed_7.cpp create mode 100644 3party/asio/src/examples/cpp20/operations/composed_8.cpp create mode 100644 3party/asio/src/examples/cpp20/type_erasure/line_reader.hpp create mode 100644 3party/asio/src/examples/cpp20/type_erasure/main.cpp create mode 100644 3party/asio/src/examples/cpp20/type_erasure/sleep.cpp create mode 100644 3party/asio/src/examples/cpp20/type_erasure/sleep.hpp create mode 100644 3party/asio/src/examples/cpp20/type_erasure/stdin_line_reader.cpp create mode 100644 3party/asio/src/examples/cpp20/type_erasure/stdin_line_reader.hpp create mode 100644 3party/asio/src/tests/Makefile.am create mode 100644 3party/asio/src/tests/Makefile.in create mode 100644 3party/asio/src/tests/latency/allocator.hpp create mode 100644 3party/asio/src/tests/latency/high_res_clock.hpp create mode 100644 3party/asio/src/tests/latency/tcp_client.cpp create mode 100644 3party/asio/src/tests/latency/tcp_server.cpp create mode 100644 3party/asio/src/tests/latency/udp_client.cpp create mode 100644 3party/asio/src/tests/latency/udp_server.cpp create mode 100644 3party/asio/src/tests/performance/client.cpp create mode 100644 3party/asio/src/tests/performance/handler_allocator.hpp create mode 100644 3party/asio/src/tests/performance/server.cpp create mode 100644 3party/asio/src/tests/properties/Makefile.am create mode 100644 3party/asio/src/tests/properties/Makefile.in create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_applicable_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_applicable_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_preferable_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_preferable_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_preferable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_not_preferable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_prefer_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_query_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_query_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_query_not_applicable_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_query_not_applicable_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_query_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_query_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_query_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_query_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_concept_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_concept_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_concept_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_concept_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_concept_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_not_applicable_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_not_applicable_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/can_require_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/prefer_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/prefer_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/prefer_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/prefer_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/prefer_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/prefer_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/query_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/query_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/query_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/require_concept_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/require_concept_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/require_concept_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/require_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/require_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp03/require_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_applicable_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_applicable_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_preferable_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_preferable_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_preferable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_not_preferable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_prefer_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_query_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_query_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_query_not_applicable_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_query_not_applicable_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_query_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_query_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_query_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_query_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_concept_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_concept_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_concept_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_concept_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_concept_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_not_applicable_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_not_applicable_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/can_require_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/prefer_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/prefer_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/prefer_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/prefer_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/prefer_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/prefer_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/query_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/query_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/query_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/require_concept_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/require_concept_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/require_concept_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/require_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/require_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp11/require_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_applicable_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_applicable_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_preferable_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_preferable_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_preferable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_not_preferable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_prefer_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_query_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_query_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_query_not_applicable_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_query_not_applicable_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_query_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_query_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_query_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_query_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_concept_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_concept_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_concept_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_concept_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_concept_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_not_applicable_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_not_applicable_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_not_applicable_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_not_applicable_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/can_require_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/prefer_free_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/prefer_free_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/prefer_member_prefer.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/prefer_member_require.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/prefer_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/prefer_unsupported.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/query_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/query_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/query_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/require_concept_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/require_concept_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/require_concept_static.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/require_free.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/require_member.cpp create mode 100644 3party/asio/src/tests/properties/cpp14/require_static.cpp create mode 100644 3party/asio/src/tests/unit/append.cpp create mode 100644 3party/asio/src/tests/unit/archetypes/async_ops.hpp create mode 100644 3party/asio/src/tests/unit/archetypes/async_result.hpp create mode 100644 3party/asio/src/tests/unit/archetypes/gettable_socket_option.hpp create mode 100644 3party/asio/src/tests/unit/archetypes/io_control_command.hpp create mode 100644 3party/asio/src/tests/unit/archetypes/settable_socket_option.hpp create mode 100644 3party/asio/src/tests/unit/as_tuple.cpp create mode 100644 3party/asio/src/tests/unit/associated_allocator.cpp create mode 100644 3party/asio/src/tests/unit/associated_cancellation_slot.cpp create mode 100644 3party/asio/src/tests/unit/associated_executor.cpp create mode 100644 3party/asio/src/tests/unit/associated_immediate_executor.cpp create mode 100644 3party/asio/src/tests/unit/associator.cpp create mode 100644 3party/asio/src/tests/unit/async_result.cpp create mode 100644 3party/asio/src/tests/unit/awaitable.cpp create mode 100644 3party/asio/src/tests/unit/basic_datagram_socket.cpp create mode 100644 3party/asio/src/tests/unit/basic_deadline_timer.cpp create mode 100644 3party/asio/src/tests/unit/basic_file.cpp create mode 100644 3party/asio/src/tests/unit/basic_random_access_file.cpp create mode 100644 3party/asio/src/tests/unit/basic_raw_socket.cpp create mode 100644 3party/asio/src/tests/unit/basic_readable_pipe.cpp create mode 100644 3party/asio/src/tests/unit/basic_seq_packet_socket.cpp create mode 100644 3party/asio/src/tests/unit/basic_serial_port.cpp create mode 100644 3party/asio/src/tests/unit/basic_signal_set.cpp create mode 100644 3party/asio/src/tests/unit/basic_socket.cpp create mode 100644 3party/asio/src/tests/unit/basic_socket_acceptor.cpp create mode 100644 3party/asio/src/tests/unit/basic_stream_file.cpp create mode 100644 3party/asio/src/tests/unit/basic_stream_socket.cpp create mode 100644 3party/asio/src/tests/unit/basic_streambuf.cpp create mode 100644 3party/asio/src/tests/unit/basic_waitable_timer.cpp create mode 100644 3party/asio/src/tests/unit/basic_writable_pipe.cpp create mode 100644 3party/asio/src/tests/unit/bind_allocator.cpp create mode 100644 3party/asio/src/tests/unit/bind_cancellation_slot.cpp create mode 100644 3party/asio/src/tests/unit/bind_executor.cpp create mode 100644 3party/asio/src/tests/unit/bind_immediate_executor.cpp create mode 100644 3party/asio/src/tests/unit/buffer.cpp create mode 100644 3party/asio/src/tests/unit/buffer_registration.cpp create mode 100644 3party/asio/src/tests/unit/buffered_read_stream.cpp create mode 100644 3party/asio/src/tests/unit/buffered_stream.cpp create mode 100644 3party/asio/src/tests/unit/buffered_write_stream.cpp create mode 100644 3party/asio/src/tests/unit/buffers_iterator.cpp create mode 100644 3party/asio/src/tests/unit/cancellation_signal.cpp create mode 100644 3party/asio/src/tests/unit/cancellation_state.cpp create mode 100644 3party/asio/src/tests/unit/cancellation_type.cpp create mode 100644 3party/asio/src/tests/unit/co_spawn.cpp create mode 100644 3party/asio/src/tests/unit/completion_condition.cpp create mode 100644 3party/asio/src/tests/unit/compose.cpp create mode 100644 3party/asio/src/tests/unit/connect.cpp create mode 100644 3party/asio/src/tests/unit/connect_pipe.cpp create mode 100644 3party/asio/src/tests/unit/consign.cpp create mode 100644 3party/asio/src/tests/unit/coroutine.cpp create mode 100644 3party/asio/src/tests/unit/deadline_timer.cpp create mode 100644 3party/asio/src/tests/unit/defer.cpp create mode 100644 3party/asio/src/tests/unit/deferred.cpp create mode 100644 3party/asio/src/tests/unit/detached.cpp create mode 100644 3party/asio/src/tests/unit/dispatch.cpp create mode 100644 3party/asio/src/tests/unit/error.cpp create mode 100644 3party/asio/src/tests/unit/execution/any_executor.cpp create mode 100644 3party/asio/src/tests/unit/execution/blocking.cpp create mode 100644 3party/asio/src/tests/unit/execution/blocking_adaptation.cpp create mode 100644 3party/asio/src/tests/unit/execution/bulk_execute.cpp create mode 100644 3party/asio/src/tests/unit/execution/bulk_guarantee.cpp create mode 100644 3party/asio/src/tests/unit/execution/connect.cpp create mode 100644 3party/asio/src/tests/unit/execution/context_as.cpp create mode 100644 3party/asio/src/tests/unit/execution/execute.cpp create mode 100644 3party/asio/src/tests/unit/execution/executor.cpp create mode 100644 3party/asio/src/tests/unit/execution/invocable_archetype.cpp create mode 100644 3party/asio/src/tests/unit/execution/mapping.cpp create mode 100644 3party/asio/src/tests/unit/execution/operation_state.cpp create mode 100644 3party/asio/src/tests/unit/execution/outstanding_work.cpp create mode 100644 3party/asio/src/tests/unit/execution/prefer_only.cpp create mode 100644 3party/asio/src/tests/unit/execution/receiver.cpp create mode 100644 3party/asio/src/tests/unit/execution/relationship.cpp create mode 100644 3party/asio/src/tests/unit/execution/schedule.cpp create mode 100644 3party/asio/src/tests/unit/execution/scheduler.cpp create mode 100644 3party/asio/src/tests/unit/execution/sender.cpp create mode 100644 3party/asio/src/tests/unit/execution/set_done.cpp create mode 100644 3party/asio/src/tests/unit/execution/set_error.cpp create mode 100644 3party/asio/src/tests/unit/execution/set_value.cpp create mode 100644 3party/asio/src/tests/unit/execution/start.cpp create mode 100644 3party/asio/src/tests/unit/execution/submit.cpp create mode 100644 3party/asio/src/tests/unit/execution_context.cpp create mode 100644 3party/asio/src/tests/unit/executor.cpp create mode 100644 3party/asio/src/tests/unit/executor_work_guard.cpp create mode 100644 3party/asio/src/tests/unit/experimental/awaitable_operators.cpp create mode 100644 3party/asio/src/tests/unit/experimental/basic_channel.cpp create mode 100644 3party/asio/src/tests/unit/experimental/basic_concurrent_channel.cpp create mode 100644 3party/asio/src/tests/unit/experimental/channel.cpp create mode 100644 3party/asio/src/tests/unit/experimental/channel_traits.cpp create mode 100644 3party/asio/src/tests/unit/experimental/co_composed.cpp create mode 100644 3party/asio/src/tests/unit/experimental/concurrent_channel.cpp create mode 100644 3party/asio/src/tests/unit/experimental/coro/allocator.cpp create mode 100644 3party/asio/src/tests/unit/experimental/coro/cancel.cpp create mode 100644 3party/asio/src/tests/unit/experimental/coro/co_spawn.cpp create mode 100644 3party/asio/src/tests/unit/experimental/coro/exception.cpp create mode 100644 3party/asio/src/tests/unit/experimental/coro/executor.cpp create mode 100644 3party/asio/src/tests/unit/experimental/coro/partial.cpp create mode 100644 3party/asio/src/tests/unit/experimental/coro/simple_test.cpp create mode 100644 3party/asio/src/tests/unit/experimental/coro/stack_test.cpp create mode 100644 3party/asio/src/tests/unit/experimental/coro/use_coro.cpp create mode 100644 3party/asio/src/tests/unit/experimental/promise.cpp create mode 100644 3party/asio/src/tests/unit/file_base.cpp create mode 100644 3party/asio/src/tests/unit/generic/basic_endpoint.cpp create mode 100644 3party/asio/src/tests/unit/generic/datagram_protocol.cpp create mode 100644 3party/asio/src/tests/unit/generic/raw_protocol.cpp create mode 100644 3party/asio/src/tests/unit/generic/seq_packet_protocol.cpp create mode 100644 3party/asio/src/tests/unit/generic/stream_protocol.cpp create mode 100644 3party/asio/src/tests/unit/high_resolution_timer.cpp create mode 100644 3party/asio/src/tests/unit/io_context.cpp create mode 100644 3party/asio/src/tests/unit/io_context_strand.cpp create mode 100644 3party/asio/src/tests/unit/ip/address.cpp create mode 100644 3party/asio/src/tests/unit/ip/address_v4.cpp create mode 100644 3party/asio/src/tests/unit/ip/address_v4_iterator.cpp create mode 100644 3party/asio/src/tests/unit/ip/address_v4_range.cpp create mode 100644 3party/asio/src/tests/unit/ip/address_v6.cpp create mode 100644 3party/asio/src/tests/unit/ip/address_v6_iterator.cpp create mode 100644 3party/asio/src/tests/unit/ip/address_v6_range.cpp create mode 100644 3party/asio/src/tests/unit/ip/basic_endpoint.cpp create mode 100644 3party/asio/src/tests/unit/ip/basic_resolver.cpp create mode 100644 3party/asio/src/tests/unit/ip/basic_resolver_entry.cpp create mode 100644 3party/asio/src/tests/unit/ip/basic_resolver_iterator.cpp create mode 100644 3party/asio/src/tests/unit/ip/basic_resolver_query.cpp create mode 100644 3party/asio/src/tests/unit/ip/host_name.cpp create mode 100644 3party/asio/src/tests/unit/ip/icmp.cpp create mode 100644 3party/asio/src/tests/unit/ip/multicast.cpp create mode 100644 3party/asio/src/tests/unit/ip/network_v4.cpp create mode 100644 3party/asio/src/tests/unit/ip/network_v6.cpp create mode 100644 3party/asio/src/tests/unit/ip/resolver_query_base.cpp create mode 100644 3party/asio/src/tests/unit/ip/tcp.cpp create mode 100644 3party/asio/src/tests/unit/ip/udp.cpp create mode 100644 3party/asio/src/tests/unit/ip/unicast.cpp create mode 100644 3party/asio/src/tests/unit/ip/v6_only.cpp create mode 100644 3party/asio/src/tests/unit/is_read_buffered.cpp create mode 100644 3party/asio/src/tests/unit/is_write_buffered.cpp create mode 100644 3party/asio/src/tests/unit/local/basic_endpoint.cpp create mode 100644 3party/asio/src/tests/unit/local/connect_pair.cpp create mode 100644 3party/asio/src/tests/unit/local/datagram_protocol.cpp create mode 100644 3party/asio/src/tests/unit/local/seq_packet_protocol.cpp create mode 100644 3party/asio/src/tests/unit/local/stream_protocol.cpp create mode 100644 3party/asio/src/tests/unit/packaged_task.cpp create mode 100644 3party/asio/src/tests/unit/placeholders.cpp create mode 100644 3party/asio/src/tests/unit/posix/basic_descriptor.cpp create mode 100644 3party/asio/src/tests/unit/posix/basic_stream_descriptor.cpp create mode 100644 3party/asio/src/tests/unit/posix/descriptor.cpp create mode 100644 3party/asio/src/tests/unit/posix/descriptor_base.cpp create mode 100644 3party/asio/src/tests/unit/posix/stream_descriptor.cpp create mode 100644 3party/asio/src/tests/unit/post.cpp create mode 100644 3party/asio/src/tests/unit/prepend.cpp create mode 100644 3party/asio/src/tests/unit/random_access_file.cpp create mode 100644 3party/asio/src/tests/unit/read.cpp create mode 100644 3party/asio/src/tests/unit/read_at.cpp create mode 100644 3party/asio/src/tests/unit/read_until.cpp create mode 100644 3party/asio/src/tests/unit/readable_pipe.cpp create mode 100644 3party/asio/src/tests/unit/recycling_allocator.cpp create mode 100644 3party/asio/src/tests/unit/redirect_error.cpp create mode 100644 3party/asio/src/tests/unit/registered_buffer.cpp create mode 100644 3party/asio/src/tests/unit/serial_port.cpp create mode 100644 3party/asio/src/tests/unit/serial_port_base.cpp create mode 100644 3party/asio/src/tests/unit/signal_set.cpp create mode 100644 3party/asio/src/tests/unit/signal_set_base.cpp create mode 100644 3party/asio/src/tests/unit/socket_base.cpp create mode 100644 3party/asio/src/tests/unit/ssl/context.cpp create mode 100644 3party/asio/src/tests/unit/ssl/context_base.cpp create mode 100644 3party/asio/src/tests/unit/ssl/error.cpp create mode 100644 3party/asio/src/tests/unit/ssl/host_name_verification.cpp create mode 100644 3party/asio/src/tests/unit/ssl/rfc2818_verification.cpp create mode 100644 3party/asio/src/tests/unit/ssl/stream.cpp create mode 100644 3party/asio/src/tests/unit/ssl/stream_base.cpp create mode 100644 3party/asio/src/tests/unit/static_thread_pool.cpp create mode 100644 3party/asio/src/tests/unit/steady_timer.cpp create mode 100644 3party/asio/src/tests/unit/strand.cpp create mode 100644 3party/asio/src/tests/unit/stream_file.cpp create mode 100644 3party/asio/src/tests/unit/streambuf.cpp create mode 100644 3party/asio/src/tests/unit/system_context.cpp create mode 100644 3party/asio/src/tests/unit/system_executor.cpp create mode 100644 3party/asio/src/tests/unit/system_timer.cpp create mode 100644 3party/asio/src/tests/unit/this_coro.cpp create mode 100644 3party/asio/src/tests/unit/thread.cpp create mode 100644 3party/asio/src/tests/unit/thread_pool.cpp create mode 100644 3party/asio/src/tests/unit/time_traits.cpp create mode 100644 3party/asio/src/tests/unit/ts/buffer.cpp create mode 100644 3party/asio/src/tests/unit/ts/executor.cpp create mode 100644 3party/asio/src/tests/unit/ts/internet.cpp create mode 100644 3party/asio/src/tests/unit/ts/io_context.cpp create mode 100644 3party/asio/src/tests/unit/ts/net.cpp create mode 100644 3party/asio/src/tests/unit/ts/netfwd.cpp create mode 100644 3party/asio/src/tests/unit/ts/socket.cpp create mode 100644 3party/asio/src/tests/unit/ts/timer.cpp create mode 100644 3party/asio/src/tests/unit/unit_test.hpp create mode 100644 3party/asio/src/tests/unit/use_awaitable.cpp create mode 100644 3party/asio/src/tests/unit/use_future.cpp create mode 100644 3party/asio/src/tests/unit/uses_executor.cpp create mode 100644 3party/asio/src/tests/unit/wait_traits.cpp create mode 100644 3party/asio/src/tests/unit/windows/basic_object_handle.cpp create mode 100644 3party/asio/src/tests/unit/windows/basic_overlapped_handle.cpp create mode 100644 3party/asio/src/tests/unit/windows/basic_random_access_handle.cpp create mode 100644 3party/asio/src/tests/unit/windows/basic_stream_handle.cpp create mode 100644 3party/asio/src/tests/unit/windows/object_handle.cpp create mode 100644 3party/asio/src/tests/unit/windows/overlapped_handle.cpp create mode 100644 3party/asio/src/tests/unit/windows/overlapped_ptr.cpp create mode 100644 3party/asio/src/tests/unit/windows/random_access_handle.cpp create mode 100644 3party/asio/src/tests/unit/windows/stream_handle.cpp create mode 100644 3party/asio/src/tests/unit/writable_pipe.cpp create mode 100644 3party/asio/src/tests/unit/write.cpp create mode 100644 3party/asio/src/tests/unit/write_at.cpp create mode 100755 3party/asio/src/tools/handlerlive.pl create mode 100755 3party/asio/src/tools/handlertree.pl create mode 100755 3party/asio/src/tools/handlerviz.pl create mode 100755 3party/asio/test-driver create mode 100644 src/ulib/utils/fsm.h create mode 100644 tests/3party/asio/udp_unittest.cpp create mode 100644 tests/ulib/utils/fsm_unittest.cpp diff --git a/3party/asio/COPYING b/3party/asio/COPYING new file mode 100644 index 0000000..4540e01 --- /dev/null +++ b/3party/asio/COPYING @@ -0,0 +1,4 @@ +Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) + +Distributed under the Boost Software License, Version 1.0. (See accompanying +file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/3party/asio/INSTALL b/3party/asio/INSTALL new file mode 100644 index 0000000..1dd78db --- /dev/null +++ b/3party/asio/INSTALL @@ -0,0 +1,5 @@ +See doc/index.html for information on: + - External dependencies + - Using, building, and configuring Asio + - Supported platforms + - How to build the tests and examples diff --git a/3party/asio/LICENSE_1_0.txt b/3party/asio/LICENSE_1_0.txt new file mode 100644 index 0000000..36b7cd9 --- /dev/null +++ b/3party/asio/LICENSE_1_0.txt @@ -0,0 +1,23 @@ +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/3party/asio/Makefile.am b/3party/asio/Makefile.am new file mode 100644 index 0000000..b776085 --- /dev/null +++ b/3party/asio/Makefile.am @@ -0,0 +1,21 @@ +AUTOMAKE_OPTIONS = foreign dist-bzip2 dist-zip + +pkgconfig_DATA = asio.pc + +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/3party/asio/Makefile.in b/3party/asio/Makefile.in new file mode 100644 index 0000000..142142b --- /dev/null +++ b/3party/asio/Makefile.in @@ -0,0 +1,845 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 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 = asio.pc +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 +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)$(pkgconfigdir)" +DATA = $(pkgconfig_DATA) +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)` +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/asio.pc.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 +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi +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@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +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@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +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 +pkgconfig_DATA = asio.pc +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): +asio.pc: $(top_builddir)/config.status $(srcdir)/asio.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) + +# 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-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(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 ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ + 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) $(AM_DISTCHECK_DVI_TARGET) \ + && $(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 $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +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-pkgconfigDATA + +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: uninstall-pkgconfigDATA + +.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 \ + dist-zstd 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-pkgconfigDATA 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 uninstall-pkgconfigDATA + +.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/3party/asio/README b/3party/asio/README new file mode 100644 index 0000000..6ef60c2 --- /dev/null +++ b/3party/asio/README @@ -0,0 +1,4 @@ +asio version 1.28.0 +Released Wednesday, 26 April 2023. + +See doc/index.html for API documentation and a tutorial. diff --git a/3party/asio/aclocal.m4 b/3party/asio/aclocal.m4 new file mode 100644 index 0000000..d88eefb --- /dev/null +++ b/3party/asio/aclocal.m4 @@ -0,0 +1,1462 @@ +# generated automatically by aclocal 1.16.5 -*- Autoconf -*- + +# Copyright (C) 1996-2021 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.71],, +[m4_warning([this file was generated for autoconf 2.71. +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'.])]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 12 (pkg-config-0.29.2) + +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.2]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $2]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR + +# Copyright (C) 2002-2021 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.5], [], + [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.5])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-2021 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-2021 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-2021 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-2021 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. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also 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-2021 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 +m4_ifdef([_$0_ALREADY_INIT], + [m4_fatal([$0 expanded multiple times +]m4_defn([_$0_ALREADY_INIT]))], + [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])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_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([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 +]) +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi +AC_SUBST([CTAGS]) +if test -z "$ETAGS"; then + ETAGS=etags +fi +AC_SUBST([ETAGS]) +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi +AC_SUBST([CSCOPE]) + +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-2021 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-2021 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-2021 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-2021 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-2021 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 + MISSING="\${SHELL} '$am_aux_dir/missing'" +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-2021 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-2021 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-2021 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-2021 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-2021 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-2021 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-2021 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-2021 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/3party/asio/asio.pc.in b/3party/asio/asio.pc.in new file mode 100644 index 0000000..b93eb67 --- /dev/null +++ b/3party/asio/asio.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +includedir=@includedir@ + +Name: @PACKAGE_NAME@ +Description: 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. +Version: @PACKAGE_VERSION@ +Cflags: -I${includedir} +Lflags: +Requires: +Requires.private: diff --git a/3party/asio/compile b/3party/asio/compile new file mode 100755 index 0000000..df363c8 --- /dev/null +++ b/3party/asio/compile @@ -0,0 +1,348 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2021 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* | MSYS*) + 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/* | msys/*) + 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/3party/asio/config.guess b/3party/asio/config.guess new file mode 100755 index 0000000..e81d3ae --- /dev/null +++ b/3party/asio/config.guess @@ -0,0 +1,1748 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-06-03' + +# 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/cgit/config.git/plain/config.guess +# +# Please send patches to . + + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + +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-2021 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 + +# Just in case it came from the environment. +GUESS= + +# 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. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { 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" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + 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 +} + +# 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 ; 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/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + 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". + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)` + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; + 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) + 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. + GUESS=$machine-${os}${release}${abi-} + ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; + *:MidnightBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; + *:ekkoBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; + *:SolidBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; + macppc:MirBSD:*:*) + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; + *:MirBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; + *:Sortix:*:*) + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; + *:Redox:*:*) + GUESS=$UNAME_MACHINE-unknown-redox + ;; + mips:OSF1:*.*) + GUESS=mips-dec-osf1 + ;; + alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 + 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. + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; + Amiga*:UNIX_System_V:4.0:*) + GUESS=m68k-unknown-sysv4 + ;; + *:[Aa]miga[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; + *:[Mm]orph[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-morphos + ;; + *:OS/390:*:*) + GUESS=i370-ibm-openedition + ;; + *:z/VM:*:*) + GUESS=s390-ibm-zvmoe + ;; + *:OS400:*:*) + GUESS=powerpc-ibm-os400 + ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + GUESS=arm-unknown-riscos + ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + GUESS=hppa1.1-hitachi-hiuxmpp + ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; + NILE*:*:*:dcosx) + GUESS=pyramid-pyramid-svr4 + ;; + DRS?6000:unix:4.0:6*) + GUESS=sparc-icl-nx6 + ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; + s390x:SunOS:*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; + sun4H:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + 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 test "$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 + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; + 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. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; + 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'. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; + sun3*:SunOS:*:*) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + 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) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun4) + GUESS=sparc-sun-sunos$UNAME_RELEASE + ;; + esac + ;; + aushp:SunOS:*:*) + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; + # 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:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; + m68k:machten:*:*) + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; + powerpc:machten:*:*) + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; + RISC*:Mach:*:*) + GUESS=mips-dec-mach_bsd4.3 + ;; + RISC*:ULTRIX:*:*) + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; + VAX*:ULTRIX*:*:*) + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + 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; } + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; + Motorola:PowerMAX_OS:*:*) + GUESS=powerpc-motorola-powermax + ;; + Motorola:*:4.3:PL8-*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:Power_UNIX:*:*) + GUESS=powerpc-harris-powerunix + ;; + m88k:CX/UX:7*:*) + GUESS=m88k-harris-cxux7 + ;; + m88k:*:4*:R4*) + GUESS=m88k-motorola-sysv4 + ;; + m88k:*:3*:R3*) + GUESS=m88k-motorola-sysv3 + ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + GUESS=m88k-dg-dgux$UNAME_RELEASE + else + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE + fi + else + GUESS=i586-dg-dgux$UNAME_RELEASE + fi + ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + GUESS=m88k-dolphin-sysv3 + ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + GUESS=m88k-motorola-sysv3 + ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + GUESS=m88k-tektronix-sysv3 + ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + GUESS=m68k-tektronix-bsd + ;; + *:IRIX*:*:*) + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + GUESS=i386-ibm-aix + ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + 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 + GUESS=$SYSTEM_NAME + else + GUESS=rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + GUESS=rs6000-ibm-aix3.2.4 + else + GUESS=rs6000-ibm-aix3.2 + fi + ;; + *: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 test -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 + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; + *:AIX:*:*) + GUESS=rs6000-ibm-aix + ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + GUESS=romp-ibm-bsd4.4 + ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + GUESS=rs6000-bull-bosx + ;; + DPX/2?00:B.O.S.:*:*) + GUESS=m68k-bull-sysv3 + ;; + 9000/[34]??:4.3bsd:1.*:*) + GUESS=m68k-hp-bsd + ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + GUESS=m68k-hp-bsd4.4 + ;; + 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 test -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 test "$HP_ARCH" = ""; then + 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 test "$HP_ARCH" = hppa2.0w + then + 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 + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; + 3050*:HI-UX:*:*) + 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; } + GUESS=unknown-hitachi-hiuxwe2 + ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + GUESS=hppa1.1-hp-bsd + ;; + 9000/8??:4.3bsd:*:*) + GUESS=hppa1.0-hp-bsd + ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + GUESS=hppa1.0-hp-mpeix + ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + GUESS=hppa1.1-hp-osf + ;; + hp8??:OSF1:*:*) + GUESS=hppa1.0-hp-osf + ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk + else + GUESS=$UNAME_MACHINE-unknown-osf1 + fi + ;; + parisc*:Lites*:*:*) + GUESS=hppa1.1-hp-lites + ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + GUESS=c1-convex-bsd + ;; + 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*:*) + GUESS=c34-convex-bsd + ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + GUESS=c38-convex-bsd + ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + GUESS=c4-convex-bsd + ;; + CRAY*Y-MP:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; + 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:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; + CRAY*T3E:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; + CRAY*SV1:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; + *:UNICOS/mp:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; + 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/ /_/'` + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + 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/ /_/'` + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; + sparc*:BSD/OS:*:*) + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; + *:BSD/OS:*:*) + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case $UNAME_PROCESSOR in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; + i*:CYGWIN*:*) + GUESS=$UNAME_MACHINE-pc-cygwin + ;; + *:MINGW64*:*) + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; + *:MINGW*:*) + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; + *:MSYS*:*) + GUESS=$UNAME_MACHINE-pc-msys + ;; + i*:PW*:*) + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:Interix*:*) + case $UNAME_MACHINE in + x86) + GUESS=i586-pc-interix$UNAME_RELEASE + ;; + authenticamd | genuineintel | EM64T) + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; + IA64) + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; + esac ;; + i*:UWIN*:*) + GUESS=$UNAME_MACHINE-pc-uwin + ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + GUESS=x86_64-pc-cygwin + ;; + prep*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; + *:GNU:*:*) + # the GNU system + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; + aarch64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` 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 + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi + else + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf + fi + fi + ;; + avr32*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + cris:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + crisv32:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + e2k:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + frv:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + hexagon:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:Linux:*:*) + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; + ia64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + k1om:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m32r*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m68*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + openrisc*:Linux:*:*) + GUESS=or1k-unknown-linux-$LIBC + ;; + or32:Linux:*:* | or1k*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + padre:Linux:*:*) + GUESS=sparc-unknown-linux-$LIBC + ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + GUESS=hppa64-unknown-linux-$LIBC + ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; + esac + ;; + ppc64:Linux:*:*) + GUESS=powerpc64-unknown-linux-$LIBC + ;; + ppc:Linux:*:*) + GUESS=powerpc-unknown-linux-$LIBC + ;; + ppc64le:Linux:*:*) + GUESS=powerpc64le-unknown-linux-$LIBC + ;; + ppcle:Linux:*:*) + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + s390:Linux:*:* | s390x:Linux:*:*) + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; + sh64*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sh*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + tile*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + vax:Linux:*:*) + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; + x86_64:Linux:*:*) + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI=${LIBC}x32 + fi + fi + GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI + ;; + xtensa*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + 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. + GUESS=i386-sequent-sysv4 + ;; + 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. + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; + i*86:XTS-300:*:STOP) + GUESS=$UNAME_MACHINE-unknown-stop + ;; + i*86:atheos:*:*) + GUESS=$UNAME_MACHINE-unknown-atheos + ;; + i*86:syllable:*:*) + GUESS=$UNAME_MACHINE-pc-syllable + ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; + i*86:*DOS:*:*) + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL + fi + ;; + 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 + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; + 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 + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv32 + fi + ;; + 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. + GUESS=i586-pc-msdosdjgpp + ;; + Intel:Mach:3*:*) + GUESS=i386-pc-mach3 + ;; + paragon:*:*:*) + GUESS=i860-intel-osf1 + ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 + fi + ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + GUESS=m68010-convergent-sysv + ;; + mc68k:UNIX:SYSTEM5:3.51m) + GUESS=m68k-convergent-sysv + ;; + M680?0:D-NIX:5.3:*) + GUESS=m68k-diab-dnix + ;; + 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*:*) + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; + mc68030:UNIX_System_V:4.*:*) + GUESS=m68k-atari-sysv4 + ;; + TSUNAMI:LynxOS:2.*:*) + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; + rs6000:LynxOS:2.*:*) + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; + SM[BE]S:UNIX_SV:*:*) + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; + RM*:ReliantUNIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + RM*:SINIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + GUESS=$UNAME_MACHINE-sni-sysv4 + else + GUESS=ns32k-sni-sysv + fi + ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + GUESS=i586-unisys-sysv4 + ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + GUESS=hppa1.1-stratus-sysv4 + ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + GUESS=i860-stratus-sysv4 + ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=$UNAME_MACHINE-stratus-vos + ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=hppa1.1-stratus-vos + ;; + mc68*:A/UX:*:*) + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; + news*:NEWS-OS:6*:*) + GUESS=mips-sony-newsos6 + ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE + else + GUESS=mips-unknown-sysv$UNAME_RELEASE + fi + ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + GUESS=powerpc-be-beos + ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + GUESS=powerpc-apple-beos + ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + GUESS=i586-pc-beos + ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + GUESS=i586-pc-haiku + ;; + x86_64:Haiku:*:*) + GUESS=x86_64-unknown-haiku + ;; + SX-4:SUPER-UX:*:*) + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; + SX-5:SUPER-UX:*:*) + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; + SX-6:SUPER-UX:*:*) + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; + SX-7:SUPER-UX:*:*) + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; + SX-8:SUPER-UX:*:*) + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; + SX-8R:SUPER-UX:*:*) + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; + SX-ACE:SUPER-UX:*:*) + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; + Power*:Rhapsody:*:*) + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; + *:Rhapsody:*:*) + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$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 + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; + *:QNX:*:4*) + GUESS=i386-pc-qnx + ;; + NEO-*:NONSTOP_KERNEL:*:*) + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; + NSE-*:NONSTOP_KERNEL:*:*) + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; + NSR-*:NONSTOP_KERNEL:*:*) + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; + NSV-*:NONSTOP_KERNEL:*:*) + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; + NSX-*:NONSTOP_KERNEL:*:*) + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; + *:NonStop-UX:*:*) + GUESS=mips-compaq-nonstopux + ;; + BS2000:POSIX*:*:*) + GUESS=bs2000-siemens-sysv + ;; + DS/*:UNIX_System_V:*:*) + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; + *: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 + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype + fi + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; + *:TOPS-10:*:*) + GUESS=pdp10-unknown-tops10 + ;; + *:TENEX:*:*) + GUESS=pdp10-unknown-tenex + ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + GUESS=pdp10-dec-tops20 + ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + GUESS=pdp10-xkl-tops20 + ;; + *:TOPS-20:*:*) + GUESS=pdp10-unknown-tops20 + ;; + *:ITS:*:*) + GUESS=pdp10-unknown-its + ;; + SEI:*:*:SEIUX) + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; + *:DragonFly:*:*) + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; + esac ;; + *:XENIX:*:SysV) + GUESS=i386-pc-xenix + ;; + i*86:skyos:*:*) + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; + i*86:rdos:*:*) + GUESS=$UNAME_MACHINE-pc-rdos + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; + x86_64:VMkernel:*:*) + GUESS=$UNAME_MACHINE-unknown-esx + ;; + amd64:Isilon\ OneFS:*:*) + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; +esac + +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +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 <&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 +fi + +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/3party/asio/config.sub b/3party/asio/config.sub new file mode 100755 index 0000000..d74fb6d --- /dev/null +++ b/3party/asio/config.sub @@ -0,0 +1,1884 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2021 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-08-14' + +# 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/cgit/config.git/plain/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. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +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-2021 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 ;; + + *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 + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | 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* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # 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) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$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 + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + 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 + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$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/3party/asio/configure b/3party/asio/configure new file mode 100755 index 0000000..7123917 --- /dev/null +++ b/3party/asio/configure @@ -0,0 +1,7134 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.71 for asio 1.28.0. +# +# +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 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 +as_nop=: +if test ${ZSH_VERSION+y} && (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 $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; 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 + + +# 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + +# 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'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +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="as_nop=: +if test \${ZSH_VERSION+y} && (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 \$as_nop + 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 \$as_nop + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || 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" + if (eval "$as_required") 2>/dev/null +then : + as_have_required=yes +else $as_nop + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : + +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$as_shell as_have_required=yes + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : + break 2 +fi +fi + done;; + esac + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi + + + 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'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." + else + printf "%s\n" "$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_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# 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=`printf "%s\n" "$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 || +printf "%s\n" 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_nop + 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_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$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 || +printf "%s\n" 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" || + { printf "%s\n" "$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 +} + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +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 + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + +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.28.0' +PACKAGE_STRING='asio 1.28.0' +PACKAGE_BUGREPORT='' +PACKAGE_URL='' + +ac_unique_file="include/asio.hpp" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_STDIO_H +# include +#endif +#ifdef HAVE_STDLIB_H +# include +#endif +#ifdef HAVE_STRING_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_header_cxx_list= +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +HAVE_COROUTINES_FALSE +HAVE_COROUTINES_TRUE +HAVE_CXX20_FALSE +HAVE_CXX20_TRUE +HAVE_CXX17_FALSE +HAVE_CXX17_TRUE +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 +pkgconfigdir +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 +CSCOPE +ETAGS +CTAGS +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 +runstatedir +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_pkgconfigdir +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' + + +# 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' +runstatedir='${localstatedir}/run' +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 + + 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=`printf "%s\n" "$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=`printf "%s\n" "$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 ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -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=`printf "%s\n" "$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=`printf "%s\n" "$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. + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + printf "%s\n" "$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" ;; + *) printf "%s\n" "$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 runstatedir +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 || +printf "%s\n" 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.28.0 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] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --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.28.0:";; + 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-pkgconfigdir pkg-config installation directory + ['${libdir}/pkgconfig'] + --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 + +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=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$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 configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. + 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 + printf "%s\n" "$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.28.0 +generated by GNU Autoconf 2.71 + +Copyright (C) 2021 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 conftest.beam + 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\"" +printf "%s\n" "$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 + printf "%s\n" "$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_nop + printf "%s\n" "$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 conftest.beam + 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\"" +printf "%s\n" "$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 + printf "%s\n" "$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_nop + printf "%s\n" "$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_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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_cxx_check_header_compile +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + +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.28.0, which was +generated by GNU Autoconf 2.71. Invocation command line was + + $ $0$ac_configure_args_raw + +_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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "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=`printf "%s\n" "$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=$? + # Sanitize IFS. + IFS=" "" $as_nl" + # Save into config.log some information that might help in debugging. + { + echo + + printf "%s\n" "## ---------------- ## +## 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_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$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 + + printf "%s\n" "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + printf "%s\n" "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + printf "%s\n" "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$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 + +printf "%s\n" "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + ac_site_files="$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" +else + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" +fi + +for ac_site_file in $ac_site_files +do + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*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 do not provoke an error unfortunately, instead are silently treated + as an "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 is necessary to write \x00 == 0 to get something + that is 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 **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +# Test code for whether the C++ compiler supports C++98 (global declarations) +ac_cxx_conftest_cxx98_globals=' +// Does the compiler advertise C++98 conformance? +#if !defined __cplusplus || __cplusplus < 199711L +# error "Compiler does not advertise C++98 conformance" +#endif + +// These inclusions are to reject old compilers that +// lack the unsuffixed header files. +#include +#include + +// and are *not* freestanding headers in C++98. +extern void assert (int); +namespace std { + extern int strcmp (const char *, const char *); +} + +// Namespaces, exceptions, and templates were all added after "C++ 2.0". +using std::exception; +using std::strcmp; + +namespace { + +void test_exception_syntax() +{ + try { + throw "test"; + } catch (const char *s) { + // Extra parentheses suppress a warning when building autoconf itself, + // due to lint rules shared with more typical C programs. + assert (!(strcmp) (s, "test")); + } +} + +template struct test_template +{ + T const val; + explicit test_template(T t) : val(t) {} + template T add(U u) { return static_cast(u) + val; } +}; + +} // anonymous namespace +' + +# Test code for whether the C++ compiler supports C++98 (body of main) +ac_cxx_conftest_cxx98_main=' + assert (argc); + assert (! argv[0]); +{ + test_exception_syntax (); + test_template tt (2.0); + assert (tt.add (4) == 6.0); + assert (true && !false); +} +' + +# Test code for whether the C++ compiler supports C++11 (global declarations) +ac_cxx_conftest_cxx11_globals=' +// Does the compiler advertise C++ 2011 conformance? +#if !defined __cplusplus || __cplusplus < 201103L +# error "Compiler does not advertise C++11 conformance" +#endif + +namespace cxx11test +{ + constexpr int get_val() { return 20; } + + struct testinit + { + int i; + double d; + }; + + class delegate + { + public: + delegate(int n) : n(n) {} + delegate(): delegate(2354) {} + + virtual int getval() { return this->n; }; + protected: + int n; + }; + + class overridden : public delegate + { + public: + overridden(int n): delegate(n) {} + virtual int getval() override final { return this->n * 2; } + }; + + class nocopy + { + public: + nocopy(int i): i(i) {} + nocopy() = default; + nocopy(const nocopy&) = delete; + nocopy & operator=(const nocopy&) = delete; + private: + int i; + }; + + // for testing lambda expressions + template Ret eval(Fn f, Ret v) + { + return f(v); + } + + // for testing variadic templates and trailing return types + template auto sum(V first) -> V + { + return first; + } + template auto sum(V first, Args... rest) -> V + { + return first + sum(rest...); + } +} +' + +# Test code for whether the C++ compiler supports C++11 (body of main) +ac_cxx_conftest_cxx11_main=' +{ + // Test auto and decltype + auto a1 = 6538; + auto a2 = 48573953.4; + auto a3 = "String literal"; + + int total = 0; + for (auto i = a3; *i; ++i) { total += *i; } + + decltype(a2) a4 = 34895.034; +} +{ + // Test constexpr + short sa[cxx11test::get_val()] = { 0 }; +} +{ + // Test initializer lists + cxx11test::testinit il = { 4323, 435234.23544 }; +} +{ + // Test range-based for + int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, + 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; + for (auto &x : array) { x += 23; } +} +{ + // Test lambda expressions + using cxx11test::eval; + assert (eval ([](int x) { return x*2; }, 21) == 42); + double d = 2.0; + assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); + assert (d == 5.0); + assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); + assert (d == 5.0); +} +{ + // Test use of variadic templates + using cxx11test::sum; + auto a = sum(1); + auto b = sum(1, 2); + auto c = sum(1.0, 2.0, 3.0); +} +{ + // Test constructor delegation + cxx11test::delegate d1; + cxx11test::delegate d2(); + cxx11test::delegate d3(45); +} +{ + // Test override and final + cxx11test::overridden o1(55464); +} +{ + // Test nullptr + char *c = nullptr; +} +{ + // Test template brackets + test_template<::test_template> v(test_template(12)); +} +{ + // Unicode literals + char const *utf8 = u8"UTF-8 string \u2500"; + char16_t const *utf16 = u"UTF-8 string \u2500"; + char32_t const *utf32 = U"UTF-32 string \u2500"; +} +' + +# Test code for whether the C compiler supports C++11 (complete). +ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals} +${ac_cxx_conftest_cxx11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_cxx_conftest_cxx98_main} + ${ac_cxx_conftest_cxx11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C++98 (complete). +ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals} +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_cxx_conftest_cxx98_main} + return ok; +} +" + +as_fn_append ac_header_cxx_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_cxx_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_cxx_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_cxx_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_cxx_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_cxx_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_cxx_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_cxx_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_cxx_list " unistd.h unistd_h HAVE_UNISTD_H" + +# Auxiliary files required by this configure script. +ac_aux_files="compile config.guess config.sub missing install-sh" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.." + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$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. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +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,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$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=`printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-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 + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +printf %s "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test ${enable_maintainer_mode+y} +then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else $as_nop + USE_MAINTAINER_MODE=no +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +printf "%s\n" "$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' + + + + # 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. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +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+y}; 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$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' + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +printf %s "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "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=`printf "%s\n" "$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 + MISSING="\${SHELL} '$am_aux_dir/missing'" +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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" + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 +printf %s "checking for a race-free mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test ${ac_cv_path_mkdir+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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 ('*'coreutils) '* | \ + 'BusyBox '* | \ + '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+y}; 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AWK+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +printf "%s\n" "$AWK" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + SET_MAKE= +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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+y} +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} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +printf %s "checking whether $am_make supports nested variables... " >&6; } +if test ${am_cv_make_support_nested_variables+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if printf "%s\n" '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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +printf "%s\n" "$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.28.0' + + +printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h + + +printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h + +# 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 pax cpio none' + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 +printf %s "checking how to create a pax 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_pax-$_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=posix -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=posix -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 pax -w "$$tardir"' + am__tar_='pax -L -x pax -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H pax -L' + am__tar_='find "$tardir" -print | cpio -o -H pax -L' + am__untar='cpio -i -H pax -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_pax}" && 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 test ${am_cv_prog_tar_pax+y} +then : + printf %s "(cached) " >&6 +else $as_nop + am_cv_prog_tar_pax=$_am_tool +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5 +printf "%s\n" "$am_cv_prog_tar_pax" >&6; } + + + + + +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi + +if test -z "$ETAGS"; then + ETAGS=etags +fi + +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi + + + +# 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 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$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 + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$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" + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +printf %s "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.* +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +printf "%s\n" "${_am_result}" >&6; } + +# Check whether --enable-dependency-tracking was given. +if test ${enable_dependency_tracking+y} +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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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}clang" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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="clang" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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. +printf "%s\n" "$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 -version; 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\"" +printf "%s\n" "$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 + printf "%s\n" "$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 (void) +{ + + ; + 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. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + printf "%s\n" "$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+y} && 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 $as_nop + ac_file='' +fi +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$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_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$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 (void) +{ +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. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$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 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + 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\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + printf "%s\n" "$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_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_compiler_gnu=yes +else $as_nop + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+y} +ac_save_CFLAGS=$CFLAGS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +else $as_nop + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + 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.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; 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 +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program +_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 conftest.beam + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +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 + + + 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +printf %s "checking whether $CC understands -c and -o together... " >&6; } +if test ${am_cv_prog_cc_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf "%s\n" "$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= + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CC_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +printf "%s\n" "$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 clang++ + 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +printf "%s\n" "$CXX" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 clang++ +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +printf "%s\n" "$ac_ct_CXX" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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. +printf "%s\n" "$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\"" +printf "%s\n" "$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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5 +printf %s "checking whether the compiler supports GNU C++... " >&6; } +if test ${ac_cv_cxx_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + ac_compiler_gnu=yes +else $as_nop + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+y} +ac_save_CXXFLAGS=$CXXFLAGS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +printf %s "checking whether $CXX accepts -g... " >&6; } +if test ${ac_cv_prog_cxx_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_g=yes +else $as_nop + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + +else $as_nop + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + 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.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +printf "%s\n" "$ac_cv_prog_cxx_g" >&6; } +if test $ac_test_CXXFLAGS; 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_prog_cxx_stdcxx=no +if test x$ac_prog_cxx_stdcxx = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 +printf %s "checking for $CXX option to enable C++11 features... " >&6; } +if test ${ac_cv_prog_cxx_11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cxx_11=no +ac_save_CXX=$CXX +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_cxx_conftest_cxx11_program +_ACEOF +for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA +do + CXX="$ac_save_CXX $ac_arg" + if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_cxx11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cxx_cxx11" != "xno" && break +done +rm -f conftest.$ac_ext +CXX=$ac_save_CXX +fi + +if test "x$ac_cv_prog_cxx_cxx11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cxx_cxx11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 +printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; } + CXX="$CXX $ac_cv_prog_cxx_cxx11" +fi + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 + ac_prog_cxx_stdcxx=cxx11 +fi +fi +if test x$ac_prog_cxx_stdcxx = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 +printf %s "checking for $CXX option to enable C++98 features... " >&6; } +if test ${ac_cv_prog_cxx_98+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cxx_98=no +ac_save_CXX=$CXX +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_cxx_conftest_cxx98_program +_ACEOF +for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA +do + CXX="$ac_save_CXX $ac_arg" + if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_cxx98=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cxx_cxx98" != "xno" && break +done +rm -f conftest.$ac_ext +CXX=$ac_save_CXX +fi + +if test "x$ac_cv_prog_cxx_cxx98" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cxx_cxx98" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 +printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; } + CXX="$CXX $ac_cv_prog_cxx_cxx98" +fi + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 + ac_prog_cxx_stdcxx=cxx98 +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= + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CXX_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$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 + + + + +# Check whether --with-pkgconfigdir was given. +if test ${with_pkgconfigdir+y} +then : + withval=$with_pkgconfigdir; +else $as_nop + with_pkgconfigdir='${libdir}/pkgconfig' +fi + +pkgconfigdir=$with_pkgconfigdir + + + + + + +printf "%s\n" "#define _REENTRANT 1" >>confdefs.h + + + +# Check whether --with-boost was given. +if test ${with_boost+y} +then : + withval=$with_boost; + if test "${withval}" = no; then + STANDALONE="yes" + else + if test "${withval}" != system; then + CPPFLAGS="$CPPFLAGS -I${withval}" + LIBS="$LIBS -L${withval}/stage/lib" + fi + CPPFLAGS="$CPPFLAGS -DASIO_ENABLE_BOOST -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING" + fi + +else $as_nop + + STANDALONE="yes" + +fi + + +# Check whether --enable-separate-compilation was given. +if test ${enable_separate_compilation+y} +then : + enableval=$enable_separate_compilation; + SEPARATE_COMPILATION=yes + +fi + + +# Check whether --enable-boost-coroutine was given. +if test ${enable_boost_coroutine+y} +then : + enableval=$enable_boost_coroutine; + HAVE_BOOST_COROUTINE=yes + +fi + + +if test "$STANDALONE" != yes; then + +ac_header= ac_cache= +for ac_item in $ac_header_cxx_list +do + if test $ac_cache; then + ac_fn_cxx_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi +done + + + + + + + + +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : + +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h + +fi +ac_fn_cxx_check_header_compile "$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 $as_nop + + 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+y} +then : + withval=$with_openssl; + CPPFLAGS="$CPPFLAGS -I${withval}/include" + LIBS="$LIBS -L${withval}/lib" + +fi + + +ac_fn_cxx_check_header_compile "$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 $as_nop + + 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=0x0601" + 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" + ;; + *-*-haiku*) + CXXFLAGS="$CXXFLAGS -lnetwork" + LDFLAGS="$LDFLAGS -lnetwork" + +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 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++11 is enabled" >&5 +printf %s "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 (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + HAVE_CXX11=yes; +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + HAVE_CXX11=no; +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++14 is enabled" >&5 +printf %s "checking whether C++14 is enabled... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined(__GNUC__) && !defined(__clang__) + # if (__GNUC__ <= 6) + # error C++14 support on this compiler not sufficiently compliant + # endif + #endif + #if __cplusplus < 201402L + #error C++14 not available + #endif +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + HAVE_CXX14=yes; +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + HAVE_CXX14=no; +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++17 is enabled" >&5 +printf %s "checking whether C++17 is enabled... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if __cplusplus < 201703L + #error C++17 not available + #endif +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + HAVE_CXX17=yes; +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + HAVE_CXX17=no; +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++20 is enabled" >&5 +printf %s "checking whether C++20 is enabled... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if __cplusplus < 202002L + #error C++20 not available + #endif +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + HAVE_CXX20=yes; +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + HAVE_CXX20=no; +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether coroutines are enabled" >&5 +printf %s "checking whether coroutines are enabled... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined(__clang__) + # if (__clang_major__ >= 14) + # if (__cplusplus >= 202002) && (__cpp_impl_coroutine >= 201902) + # if __has_include() + # define ASIO_HAS_CO_AWAIT 1 + # endif + # elif (__cplusplus >= 201703) && (__cpp_coroutines >= 201703) + # if __has_include() + # define ASIO_HAS_CO_AWAIT 1 + # endif + # endif + # else + # if (__cplusplus >= 201703) && (__cpp_coroutines >= 201703) + # if __has_include() + # define ASIO_HAS_CO_AWAIT 1 + # endif + # endif + # endif + #elif defined(__GNUC__) + # if (__cplusplus >= 201709) && (__cpp_impl_coroutine >= 201902) + # if __has_include() + # define ASIO_HAS_CO_AWAIT 1 + # endif + # endif + #endif + #ifndef ASIO_HAS_CO_AWAIT + # error coroutines not available + #endif +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + HAVE_COROUTINES=yes; +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + HAVE_COROUTINES=no; +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam 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 + + + if test x$HAVE_CXX17 = xyes; then + HAVE_CXX17_TRUE= + HAVE_CXX17_FALSE='#' +else + HAVE_CXX17_TRUE='#' + HAVE_CXX17_FALSE= +fi + + + if test x$HAVE_CXX20 = xyes; then + HAVE_CXX20_TRUE= + HAVE_CXX20_FALSE='#' +else + HAVE_CXX20_TRUE='#' + HAVE_CXX20_FALSE= +fi + + + if test x$HAVE_COROUTINES = xyes; then + HAVE_COROUTINES_TRUE= + HAVE_COROUTINES_FALSE='#' +else + HAVE_COROUTINES_TRUE='#' + HAVE_COROUTINES_FALSE= +fi + + +ac_config_files="$ac_config_files asio.pc" + + +ac_config_files="$ac_config_files Makefile include/Makefile src/Makefile src/tests/Makefile src/tests/properties/Makefile src/examples/cpp03/Makefile src/examples/cpp11/Makefile src/examples/cpp14/Makefile src/examples/cpp17/Makefile src/examples/cpp20/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_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$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+y} || &/ + 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$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=`printf "%s\n" "$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 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +printf %s "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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 +printf "%s\n" "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 +if test -z "${HAVE_CXX17_TRUE}" && test -z "${HAVE_CXX17_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CXX17\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CXX20_TRUE}" && test -z "${HAVE_CXX20_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CXX20\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_COROUTINES_TRUE}" && test -z "${HAVE_COROUTINES_FALSE}"; then + as_fn_error $? "conditional \"HAVE_COROUTINES\" 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" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$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 +as_nop=: +if test ${ZSH_VERSION+y} && (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 $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; 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 + + +# 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + + +# 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$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_nop + 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_nop + 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 || +printf "%s\n" 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 + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +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 + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + +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=`printf "%s\n" "$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 || +printf "%s\n" 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.28.0, which was +generated by GNU Autoconf 2.71. 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 +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config='$ac_cs_config_escaped' +ac_cs_version="\\ +asio config.status 1.28.0 +configured by $0, generated by GNU Autoconf 2.71, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2021 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 ) + printf "%s\n" "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + printf "%s\n" "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$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 ) + printf "%s\n" "$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 + \printf "%s\n" "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 + printf "%s\n" "$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" ;; + "asio.pc") CONFIG_FILES="$CONFIG_FILES asio.pc" ;; + "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/tests/properties/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/properties/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" ;; + "src/examples/cpp20/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp20/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+y} || CONFIG_FILES=$config_files + test ${CONFIG_COMMANDS+y} || 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=`printf "%s\n" "$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 '` + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`printf "%s\n" "$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 || +printf "%s\n" 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=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$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@*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$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"; } && + { printf "%s\n" "$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 +printf "%s\n" "$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) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +printf "%s\n" "$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=`printf "%s\n" "$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 || +printf "%s\n" 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 || +printf "%s\n" 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 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + diff --git a/3party/asio/configure.ac b/3party/asio/configure.ac new file mode 100644 index 0000000..8eabb67 --- /dev/null +++ b/3party/asio/configure.ac @@ -0,0 +1,259 @@ +AC_INIT(asio, [1.28.0]) +AC_CONFIG_SRCDIR(include/asio.hpp) +AM_MAINTAINER_MODE +AM_INIT_AUTOMAKE([tar-pax]) + +AC_CANONICAL_HOST +AM_PROG_CC_C_O +AC_PROG_CXX +AC_LANG(C++) +AC_PROG_RANLIB +PKG_INSTALLDIR + +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 + if test "${withval}" != system; then + CPPFLAGS="$CPPFLAGS -I${withval}" + LIBS="$LIBS -L${withval}/stage/lib" + fi + CPPFLAGS="$CPPFLAGS -DASIO_ENABLE_BOOST -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING" + fi +], +[ + STANDALONE="yes" +]) + +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=0x0601" + 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" + ;; + *-*-haiku*) + CXXFLAGS="$CXXFLAGS -lnetwork" + LDFLAGS="$LDFLAGS -lnetwork" + +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 defined(__GNUC__) && !defined(__clang__)]] + [[# if (__GNUC__ <= 6)]] + [[# error C++14 support on this compiler not sufficiently compliant]] + [[# endif]] + [[#endif]] + [[#if __cplusplus < 201402L]] + [[#error C++14 not available]] + [[#endif]])], + [AC_MSG_RESULT([yes]) + HAVE_CXX14=yes;], + [AC_MSG_RESULT([no]) + HAVE_CXX14=no;]) + +AC_MSG_CHECKING([whether C++17 is enabled]) +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#if __cplusplus < 201703L]] + [[#error C++17 not available]] + [[#endif]])], + [AC_MSG_RESULT([yes]) + HAVE_CXX17=yes;], + [AC_MSG_RESULT([no]) + HAVE_CXX17=no;]) + +AC_MSG_CHECKING([whether C++20 is enabled]) +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#if __cplusplus < 202002L]] + [[#error C++20 not available]] + [[#endif]])], + [AC_MSG_RESULT([yes]) + HAVE_CXX20=yes;], + [AC_MSG_RESULT([no]) + HAVE_CXX20=no;]) + +AC_MSG_CHECKING([whether coroutines are enabled]) +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#if defined(__clang__)]] + [[# if (__clang_major__ >= 14)]] + [[# if (__cplusplus >= 202002) && (__cpp_impl_coroutine >= 201902)]] + [[# if __has_include()]] + [[# define ASIO_HAS_CO_AWAIT 1]] + [[# endif]] + [[# elif (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)]] + [[# if __has_include()]] + [[# define ASIO_HAS_CO_AWAIT 1]] + [[# endif]] + [[# endif]] + [[# else]] + [[# if (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)]] + [[# if __has_include()]] + [[# define ASIO_HAS_CO_AWAIT 1]] + [[# endif]] + [[# endif]] + [[# endif]] + [[#elif defined(__GNUC__)]] + [[# if (__cplusplus >= 201709) && (__cpp_impl_coroutine >= 201902)]] + [[# if __has_include()]] + [[# define ASIO_HAS_CO_AWAIT 1]] + [[# endif]] + [[# endif]] + [[#endif]] + [[#ifndef ASIO_HAS_CO_AWAIT]] + [[# error coroutines not available]] + [[#endif]])], + [AC_MSG_RESULT([yes]) + HAVE_COROUTINES=yes;], + [AC_MSG_RESULT([no]) + HAVE_COROUTINES=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) + +AM_CONDITIONAL(HAVE_CXX17,test x$HAVE_CXX17 = xyes) + +AM_CONDITIONAL(HAVE_CXX20,test x$HAVE_CXX20 = xyes) + +AM_CONDITIONAL(HAVE_COROUTINES,test x$HAVE_COROUTINES = xyes) + +AC_CONFIG_FILES([asio.pc]) + +AC_OUTPUT([ + Makefile + include/Makefile + src/Makefile + src/tests/Makefile + src/tests/properties/Makefile + src/examples/cpp03/Makefile + src/examples/cpp11/Makefile + src/examples/cpp14/Makefile + src/examples/cpp17/Makefile + src/examples/cpp20/Makefile]) diff --git a/3party/asio/depcomp b/3party/asio/depcomp new file mode 100755 index 0000000..715e343 --- /dev/null +++ b/3party/asio/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2021 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/3party/asio/doc/1.png b/3party/asio/doc/1.png new file mode 100644 index 0000000000000000000000000000000000000000..6003ad3af44ecde89a963d5af6a4180217319dfb GIT binary patch literal 391 zcmV;20eJq2P)b;@5Jms&t_+qirbvUVh|&#BatJPvqeMAG3eJI2P~{ToLa~KgB*G#^M#2_a3)VYn zVgvz1M%rd}-qW9r=_zaNV-N&yold8HOHftSx7PZF znWv3J5s?VPuss+I+C&6q#(KSmloGvO?*KD1ilVq*tyW{LH5!R%28alCU1K(zVKSM( zIR_#-JRt<)I7YwUPn1$)t@RT#D|H;v7=y)Pfubl7MbX&`M1*d)3jm2RW~{Zwi6BW5 zg%HYe&5tuzq8hs@J33d((l1w@Pmj<(Q}ki?_Jk@sMTtf zw*YCH{*qFDX6DBN;t-LjR;!hMzhBAo9NX;{Ns_?#eKea*5D@@?nUN$(_k2Fjq?9Ni zqM$P~*6TG+rxT1Zn9t`h#(;=GL=Zxt(P*I6YIPjPnMo->GPC16S8TW27>~!$T4T4{ z!CL#`3q*u^y$%4KIF4shO56>E5a@Qh0DvF}FdB{Ey6&qx6cEqzI?Vj#g@G{!tJMlb zgvn$AA;c>{@$P!P8UWwL^X787M4F};4u}67&aw<~9GlDK@>njHKiv(YD8gc~faiG# z!w}Qy6un;Wzr()o|3nZ39}b6u(pvNFcDq-WWo)gzm)4q($78nHY`%tJ*eRe6Gh3xp o8b#4xm5bzgZk1Bs?wkMQ38E9=PG^kAEC2ui07*qoM6N<$g4YPrD*ylh literal 0 HcmV?d00001 diff --git a/3party/asio/doc/3.png b/3party/asio/doc/3.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff0a93931515bb97a045dfa61a8530d87e458fd GIT binary patch literal 431 zcmV;g0Z{&lP)?w-3fw;Fb-ls zDri;RUK#8kv6dIk;e17_)v9tnpMMx*Y&>|jZU1k#+kc5jU2l$*@~7*%uccC{@JNuR z=|3UFGc%8`5{HPaVzF3gG#Ul1H5Q8nk|aSGhNx63AR+(&Gb2for`>Kh6hh!Cv95Mz z#%wl26h%-1BH{J6*Ukh&=Hmk zRECzB?yd`#@n#QU|E!Aozxu0ay*5o+uKTCg>-{Doo%e)N>T9`N{#mQl zDxU$a*Xx^<@&_}&`kN4wpI>%IqLW}MIG_VIWeN-2>; zoSaTXAR-uJFqup+8jWC#x%C~#L8H+?tJU&_5JM^DcV-r%7*T7D*=&aGc8h+$k5Z}h z;RGT=y2!)DNiZId zk)|oEwRfMXwMLR88o;j`!1sL&1_N9!7XU!B*}QAcvJ7z?>(lA<;(6X97K_EV-EOC> zwam=CTrN2bL%ydpO*x99EDXcv&1T~R`1b>51^@&>@S!foE^ZEjU=IL-nXOXl8b#6F j$hnL$Rw?ybGy}k2rA_2s#AqNWNL+{%m!bruZt@^q`VMYNAEFDN!c`Zp`V!qpMaG}43yDw*Mu`(* zCbz2uThU&a&4u&vojYu`S~+nXKc;Ca@XrV#zFpV-WQ--*&QMDAOw)X`ZM*azAc~?d zDdh_hjWdYB7~_^@m72|FNo$S8VuAgBk7~7wPNxITIRJo&a5x+uw%hGcN{I}@Gdg1o z%jFWY*$iQ?@7|P`` z05p8xA4(~a8)&V;ImciyK)>J5O>RMIwOWISUUP#W2;jOd9LK@wbh>-YBuNm4VFKVI zH`r`8m`o-J!w}Qy6y0tYrfFV<&*w9I-%o-d7#EAh=N!;(w_)2hMxzmk2%hKVKX5DD zYPB|b1tA1H&qJ@*L!nTB5CTN>OZ#sa01P5Zl~U1qy}sL9Yn>{k-Y>%d@B>ihzNus- RRfYfn002ovPDHLkV1oUuv|0cF literal 0 HcmV?d00001 diff --git a/3party/asio/doc/6.png b/3party/asio/doc/6.png new file mode 100644 index 0000000000000000000000000000000000000000..c943676beafa0562916b058c169951febcd3cddb GIT binary patch literal 431 zcmV;g0Z{&lP)2x}6wAN@OL1SlT zq-l!d@d)P}cDo(C_aGt=5rQCqQVQeoIFeFswANpkS;|ImKA(}MDdzJz27>|OIED~! zYat?pVF&fG5i@@eULRJg71rxDq9{V1 z=O32ooI_Pr4#2O6Kq&=lEvl+QS(Z>r{TII9@5r*u<$32$t61k>phVHje&-69M_ zOeT}3aFQf{9wiDPuv{*&SS-+LwIGB5Grx)b9tHr(%(b=ldN>?D{22he_qDb5=W7@M Z{sBv`yEO&CdT0Ou002ovPDHLkV1o2ux|09^ literal 0 HcmV?d00001 diff --git a/3party/asio/doc/7.png b/3party/asio/doc/7.png new file mode 100644 index 0000000000000000000000000000000000000000..20940de30d2146b73118a08905955162fe985f68 GIT binary patch literal 397 zcmV;80doF{P)^QMQBulp-}gU=C{Aa}81s!lqHiS0W-t%ynn-<=Y3{Rlv1MG?LtZkX1=)gZx{d+ rGh1U!IGfG>ygNw}Ym9k2g#q9P_H(VTcF&$q00000NkvXXu0mjfg$Ay% literal 0 HcmV?d00001 diff --git a/3party/asio/doc/8.png b/3party/asio/doc/8.png new file mode 100644 index 0000000000000000000000000000000000000000..d8e34d4a09f6dca4f9c22e626d9f9d82b969b02c GIT binary patch literal 434 zcmV;j0ZsmiP)2AuM{XfkN9S(EO_B7zVCVHjdQpD(18TdnnH=bV%s&@>J9`#qv4f)D~(mcd&4 zVg({X5Cj0QD2igMwT8TJhGB>}jsXCZ$prGB|9~*_BG2=u+m9^EFdmPw*=$hPHR3o1 zGrx*3Gped$06%UwxLhvqeIG=Gs;UqK0fZ0_;ihR&6a}Bp=jXv-@a4uUrH~{E(lkXF zhFGuH@I3F$uu|&R4VX@+h@uGAS_mP~@Au)HdolL^VE~ZMIcto$9*@U|aqp{bTWgH@ cejf&azhINZs#OUR!~g&Q07*qoM6N<$f@$x%rT_o{ literal 0 HcmV?d00001 diff --git a/3party/asio/doc/asio.png b/3party/asio/doc/asio.png new file mode 100644 index 0000000000000000000000000000000000000000..c05fd3a4514fa9d962debe172b7c4fabf075ea35 GIT binary patch literal 3164 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 K`CC)3$NvSHCQGOQ literal 0 HcmV?d00001 diff --git a/3party/asio/doc/asio/examples.html b/3party/asio/doc/asio/examples.html new file mode 100644 index 0000000..1a4c2d1 --- /dev/null +++ b/3party/asio/doc/asio/examples.html @@ -0,0 +1,62 @@ + + + +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++14 Examples: Contains + a limited set of the C++03 Asio examples, updated to use only C++14 library + and language facilities. These examples do not make direct use of Boost + C++ libraries. +
  • +
  • + C++17 Examples: Selected + examples illustrating C++17 usage in conjunction with Technical Specifications. +
  • +
  • + C++20 Examples: Selected + examples using C++20 language features. +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/examples/cpp03_examples.html b/3party/asio/doc/asio/examples/cpp03_examples.html new file mode 100644 index 0000000..596ccc5 --- /dev/null +++ b/3party/asio/doc/asio/examples/cpp03_examples.html @@ -0,0 +1,633 @@ + + + +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/3party/asio/doc/asio/examples/cpp11_examples.html b/3party/asio/doc/asio/examples/cpp11_examples.html new file mode 100644 index 0000000..397441e --- /dev/null +++ b/3party/asio/doc/asio/examples/cpp11_examples.html @@ -0,0 +1,524 @@ + + + +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. +

+ +
+ + Deferred +
+

+ Examples showing how to use the deferred completion token. +

+ +
+ + 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 header file shows how to implement custom handler tracking. +

+ +

+ This example program shows how to include source location information in + the handler tracking output. +

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

+ +
+ + Parallel + Groups +
+

+ Examples showing how to use the experimental::make_parallel_group operation. +

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

+ +
+ + Type + Erasure +
+

+ Example showing how to use any_completion_handler to enable + separate compilation of asynchronous operations. +

+ +
+ + UNIX + Domain Sockets +
+

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

+ +
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/examples/cpp14_examples.html b/3party/asio/doc/asio/examples/cpp14_examples.html new file mode 100644 index 0000000..185bee4 --- /dev/null +++ b/3party/asio/doc/asio/examples/cpp14_examples.html @@ -0,0 +1,208 @@ + + + +C++14 Examples + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
+ + Deferred +
+

+ Examples showing how to use the deferred completion token. +

+ +
+ + Echo +
+

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

+ +
+ + Executors +
+

+ Examples showing how to use the executor-related facilities. +

+ +
+ + Iostreams +
+

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

+ +
+ + Operations +
+

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

+ +

+ Examples showing how to expose callback-based APIs as asynchronous operations. +

+ +
+ + Parallel + Groups +
+

+ Examples showing how to use the experimental::make_parallel_group operation. +

+ +
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/examples/cpp17_examples.html b/3party/asio/doc/asio/examples/cpp17_examples.html new file mode 100644 index 0000000..af2cf3d --- /dev/null +++ b/3party/asio/doc/asio/examples/cpp17_examples.html @@ -0,0 +1,57 @@ + + + +C++17 Examples + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+ + +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/examples/cpp20_examples.html b/3party/asio/doc/asio/examples/cpp20_examples.html new file mode 100644 index 0000000..305f7b8 --- /dev/null +++ b/3party/asio/doc/asio/examples/cpp20_examples.html @@ -0,0 +1,155 @@ + + + +C++20 Examples + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
+ + Channels +
+

+ Example showing how to use a channel in conjunction with C++20 coroutines. +

+ +
+ + Coroutines +
+

+ Examples showing how to implement a chain of asynchronous operations using + C++20 Coroutines. +

+ +
+ + Operations +
+

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

+ +

+ Examples showing how to expose callback-based APIs as asynchronous operations. +

+ +
+ + Type + Erasure +
+

+ Example showing how to use any_completion_handler to enable + separate compilation of asynchronous operations. +

+ +
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/history.html b/3party/asio/doc/asio/history.html new file mode 100644 index 0000000..0c4aa5d --- /dev/null +++ b/3party/asio/doc/asio/history.html @@ -0,0 +1,5379 @@ + + + +Revision History + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ + Asio + 1.28.0 +

+
    +
  • + Added missing handler tracking source location support to awaitable<>-based + coroutine's ability to co_await + asynchronous operations packaged as function objects. +
  • +
  • + Add missing handler tracking source location support to co_composed. +
  • +
  • + Fixed suppression of spurious 'potential null dereference' warnings, to + work with older compilers. +
  • +
  • + Fixed a bug where passing the deprecated const_buffers_1 + and mutable_buffers_1 types + to asio::buffer() + would result in the contiguous iterator overloads being incorrectly chosen. +
  • +
  • + Disabled the runtime Windows version test unless targeting older Windows + versions. +
  • +
  • + Fixed compatibility between buffered stream wrappers and move-constructible + streams, such as ssl::stream<>. +
  • +
  • + Marked ip::address_v4::to_ulong as deprecated in the documentation. +
  • +
  • + Fixed shadowed variable warnings. +
  • +
  • + Fixed basic_socket_acceptor::async_accept + concept requirement checking to be compatible with lambdas that have a + deduced return type. +
  • +
  • + Fixed a feature detection macro used in use_future's + compatibility traits. +
  • +
  • + Fixed as_tuple compatibility + with legacy completion tokens. +
  • +
  • + Fixed redirect_error compatibility + with new completion tokens. +
  • +
  • + Fixed a potential, Windows-specific program termination due to exceptions + that should have been allowed to escape from a destructor. +
  • +
  • + Fixed this_coro to prevent + inadvertent co_await of + boolean expressions. +
  • +
  • + Fixed result handling in experimental::use_coro + implementation. +
  • +
  • + Fixed variadic template emulation for is_async_operation + and completion_signature_of. +
  • +
  • + Fixed incorrect reuse of a moved-from result in experimental::promise. +
  • +
  • + Fixed experimental::coro use with custom allocators. +
  • +
  • + Fixed clean up of internal I/O object structures when using io_uring. +
  • +
  • + Use cached offset when seeking a file with seek_cur on Windows. +
  • +
  • + Added immediate completion to asynchronous operation requirements. +
  • +
  • + Added any_completion_handler<>, co_composed, + and immediate completion support to the documentation overview. +
  • +
  • + Added buffer literals to the documentation. +
  • +
  • + Added a link to the Asio + debugger extensions repository. +
  • +
+

+ + Asio + 1.27.0 +

+
    +
  • +

    + Added the ability to customise the execution of a completion handler when + an operation completes immediately. This change adds the associated_immediate_executor associator + trait, bind_immediate_executor + function, and immediate_executor_binder + adapter. When a supported operation completes immediately (that is, within + the initiating function) the associated immmediate executor is obtained, + and the completion handler is delivered through that executor as if by + using asio::dispatch on that executor. By default, + the immediate executor delivers the completion handler as if using asio::post via the operation's I/O executor. + For example, to allow a recursive call to the completion handler of an + async_read_some operation, + we may specify that immediate completion is delivered via a system_executor:
    +

    +
    my_socket.async_read_some(my_buffer,
    +    bind_immediate_executor(
    +      system_executor(),
    +      [](error_code e, size_t n)
    +      {
    +        // ...
    +      }
    +    )
    +  );
    +
    +

    +
    Immediate execution is currently supported for asynchronous operations + on reactor-based sockets and descriptors, and for asynchronous operations + on channels. +

    +
  • +
  • +

    + Added user-defined literals for buffer types. The _buf + literal suffix, defined in namespace asio::buffer_literals, + may be used to create const_buffer objects from string, binary integer, + and hexadecimal integer literals. These buffer literals may be arbitrarily + long. For example:
    +

    +
      using namespace asio::buffer_literals;
    +
    +  asio::const_buffer b1 = "hello"_buf;
    +  asio::const_buffer b2 = 0xdeadbeef_buf;
    +  asio::const_buffer b3 = 0x01234567'89abcdef'01234567'89abcdef_buf;
    +  asio::const_buffer b4 = 0b1010101011001100_buf;
    +  
    +

    +
    The memory associated with a buffer literal is valid for the lifetime + of the program. This means that the buffer can be safely used with asynchronous + operations:
    +

    +
    async_write(my_socket, "hello"_buf, my_handler);
    +
    +

    +
    +

    +
  • +
  • + Added a new protocol type local::seq_packet_protocol + to represent AF_UNIX with + SOCK_SEQPACKET. +
  • +
  • +

    + Exposed sigaction() + flags via optional argument to signal_set::add. + When registering a signal, it is now possible to pass flags that specify + the behaviour associated with the signal. These flags are specified as + an enum type in a new class, signal_set_base, and are passed to the underlying + sigaction() + call. For example:
    +

    +
    asio::signal_set sigs(my_io_context);
    +sigs.add(SIGINT, asio::signal_set::flags::restart);
    +
    +

    +
    Specifying flags other than flags::dont_care + will fail unless sigaction() is supported by the target operating + system. Since signal registration is global, conflicting flags (multiple + registrations that pass differing flags other than flags::dont_care) + will also result in an error. +

    +
  • +
  • + Change allocator_binder, + executor_binder, and cancellation_slot_binder to support detection + of unspecialised associators. +
  • +
  • + Fixed ambiguity in associated_cancellation_slot<reference_wrapper>::get(). +
  • +
  • + Fixed awaitable handling + for completion signatures containing std::exception_ptr. +
  • +
  • + Fixed experimental::channel try_send + failure after a cancel. +
  • +
  • + Fixed thread_pool::join() + deadlock when the pool has no internal threads. +
  • +
  • + Fixed pipe release() + when using io_uring. +
  • +
  • + Fixed a data initialisation issue in the io_uring backend. +
  • +
  • + Fixed a dangling reference issue in the execution context overload of + get_associated_executor. +
  • +
  • + Ensured buffered messages can still be received when an experimental::channel + is closed. +
  • +
  • + Fixed the any_completion_handler + assignment operator to work correctly. +
  • +
  • + Constrained the constructor of the move-only class template any_completion_handler to prevent accidental + copying +
  • +
  • + Suppressed spurious 'potential null dereference' warnings. +
  • +
  • + Changed to use uint64_t + for OpenSSL options, to match OpenSSL 3. +
  • +
  • + Fixed deferred interoperability + with multiple completion signatures. +
  • +
  • + Fixed channels to support C++11 and later. Note that for C++11 and C++14, + support is limited to channels with a single completion signature, or channels + with a void() signature (plus the error signature added by the channel + traits). +
  • +
  • + Added any_completion_handler + to the documentation. +
  • +
+

+ + Asio + 1.26.0 +

+
    +
  • + Fixed spawn and co_spawn implementations to dispatch + cancellation handlers on the correct executor. When a completion handler + uses a specified (i.e. non-default) associated executor, cancellation handlers + are dispatched to the executor that was passed to spawn() or co_spawn(). +
  • +
  • + Fixed spawn to ensure the + completion handler is dispatched through the correct executor. +
  • +
  • + Changed to use snprintf + rather than sprintf on + latest Xcode, to address deprecation warnings. +
  • +
  • + Fixed compatibility between co_spawn + and any_completion_handler. +
  • +
  • + Fixed the arguments passed to select_reactor::run + when it is run on an internal thread. +
  • +
  • + Fixed compilation errors when (BOOST_)ASIO_DISABLE_SMALL_BLOCK_RECYCLING is + defined. +
  • +
  • + Updated detection of C++20 coroutine support on clang 14 and later. This + includes the ability to use coroutines with libstdc++. +
  • +
  • + Changed standard library feature detection to always enable std::invoke_result when targeting C++17 or + later. +
  • +
  • + Fixed detection of return type deduction with MSVC. +
  • +
  • + Added a missing include in experimental::coro + implementation. +
  • +
  • + Updated the asynchronous operation requirements to relax the requirements + on the associated executor. +
  • +
  • + Added io_uring to the implementation notes. +
  • +
+

+ + Asio + 1.25.0 +

+
    +
  • +

    + Added the consign completion + token adapter, which can be used to attach additional values to a completion + handler. This is typically used to keep at least one copy of an object, + such as a smart pointer, alive until the completion handler is called. + For example:
    +

    +
    auto timer1 = std::make_shared<asio::steady_timer>(my_io_context);
    +timer1->expires_after(std::chrono::seconds(1));
    +timer1->async_wait(
    +    asio::consign(
    +      [](asio::error_code ec)
    +      {
    +        // ...
    +      },
    +      timer1
    +    )
    +  );
    +
    +

    +
    +

    +
  • +
  • +

    + Added any_completion_handler<>, which can be used to type-erase + completion handlers. A typical use case is to enable separate compilation + of asynchronous operation implementations. For example:
    +

    +
    // Header file:
    +
    +void async_sleep_impl(
    +    asio::any_completion_handler<void(asio::error_code)> handler,
    +    asio::any_io_executor ex, std::chrono::nanoseconds duration);
    +
    +template <typename CompletionToken>
    +inline auto async_sleep(asio::any_io_executor ex,
    +    std::chrono::nanoseconds duration, CompletionToken&& token)
    +{
    +  return asio::async_initiate<
    +    CompletionToken, void(asio::error_code)>(
    +      async_sleep_impl, token, std::move(ex), duration);
    +}
    +
    +// Separately compiled source file:
    +
    +void async_sleep_impl(
    +    asio::any_completion_handler<void(asio::error_code)> handler,
    +    asio::any_io_executor ex, std::chrono::nanoseconds duration)
    +{
    +  auto timer = std::make_shared<asio::steady_timer>(ex, duration);
    +  timer->async_wait(asio::consign(std::move(handler), timer));
    +}
    +
    +

    +
    +

    +
  • +
  • +

    + Added experimental::co_composed which facilitates a lightweight + implementation of user-defined asynchronous operations using C++20 coroutines. + The following example illustrates a simple asynchronous operation that + implements an echo protocol in terms of a coroutine:
    +

    +
    template <typename CompletionToken>
    +auto async_echo(tcp::socket& socket,
    +    CompletionToken&& token)
    +{
    +  return asio::async_initiate<
    +    CompletionToken, void(asio::error_code)>(
    +      asio::experimental::co_composed<
    +        void(asio::error_code)>(
    +          [](auto state, tcp::socket& socket) -> void
    +          {
    +            try
    +            {
    +              state.throw_if_cancelled(true);
    +              state.reset_cancellation_state(
    +                asio::enable_terminal_cancellation());
    +
    +              for (;;)
    +              {
    +                char data[1024];
    +                std::size_t n = co_await socket.async_read_some(
    +                    asio::buffer(data), asio::deferred);
    +
    +                co_await asio::async_write(socket,
    +                    asio::buffer(data, n), asio::deferred);
    +              }
    +            }
    +            catch (const asio::system_error& e)
    +            {
    +              co_return {e.code()};
    +            }
    +          }, socket),
    +      token, std::ref(socket));
    +}
    +
    +

    +
    +

    +
  • +
  • +

    + Add range-based experimental::make_parallel_group() overloads that may + be used to launch a dynamically-sized set of asynchronous operations, where + all operations are the same type. For example:
    +

    +
    using op_type = decltype(
    +    socket1.async_read_some(
    +      asio::buffer(data1),
    +      asio::deferred
    +    )
    +  );
    +
    +std::vector<op_type> ops;
    +ops.push_back(
    +    socket1.async_read_some(
    +      asio::buffer(data1),
    +      asio::deferred
    +    )
    +  );
    +ops.push_back(
    +    socket2.async_read_some(
    +      asio::buffer(data2),
    +      asio::deferred
    +    )
    +  );
    +
    +asio::experimental::make_parallel_group(ops).async_wait(
    +    asio::experimental::wait_for_all(),
    +    [](
    +        std::vector<std::size_t> completion_order,
    +        std::vector<asio::error_code> e,
    +        std::vector<std::size_t> n
    +      )
    +    {
    +      for (std::size_t i = 0; i < completion_order.size(); ++i)
    +      {
    +        std::size_t idx = completion_order[i];
    +        std::cout << "socket " << idx << " finished: ";
    +        std::cout << e[idx] << ", " << n[idx] << "\n";
    +      }
    +    }
    +  );
    +
    +

    +
    Thanks go to Klemens Morgenstern for supplying part of this implementation. +

    +
  • +
  • + Added any_completion_executor, + a type-erased wrappers for executors that are associated with completion + handlers. +
  • +
  • + Added missing context query + to use_future's executor. +
  • +
  • + Added nothrow constructor overloads to execution::any_executor<> and any_io_executor. +
  • +
  • + Optimised representation of empty execution::any_executor + objects to improve the performance of copy and move operations. +
  • +
  • + Added an associated_cancellation_slot + specialisation for std::reference_wrapper. +
  • +
  • + Changed I/O objects to return their executors by const reference. +
  • +
  • + Changed associated to use deduced return types for all two-argument get functions. +
  • +
  • + Fixed spawn implementation + to catch unhandled exceptions and rethrow them outside of the spawned "thread". +
  • +
  • + Fixed cleanup of of terminal-state spawn + "thread" objects. +
  • +
  • + Changed semantics of dispatch + to mean the executor is used as-is. An execution context's default executor + is imbued with the possibly-blocking property. +
  • +
  • + Deprecated the execution::execute + customisation point. Use execute + as a member function. +
  • +
  • + Deprecated the concepts, traits, functions and customisation points related + to senders and receivers. +
  • +
  • + Added a C++11 parallel_group + example. +
  • +
  • + Fixed example code to not use the deprecated conversion of a resolve result + to an endpoint. +
  • +
  • + Fixed an ambiguity in experimental::channel_traits + specialisations. +
  • +
  • + Added a specialised channel implementation for the for R(error_code) signature. +
  • +
  • + Made cancelled() + public on the async_compose + 'self' object. +
  • +
  • + Added io_executor_type and get_io_executor to the async_compose + 'self' object. +
  • +
  • + Fixed implementation of release() for Windows overlapped handles. +
  • +
  • + Enabled deferred awaiting for experimental::coro, + regularised experimental::use_coro, + and fixed allocator handling. This means that use_coro + does not return a coro object, just like use_awaitable does, i.e. it's + an overhead that buys us type erasure. Allocators can now be set for coro by including allocator_arg + in the coro signature. +
  • +
  • + Cleaned up experimental::promise + and made it an asynchronous operation object. +
  • +
  • + Constrained post/defer overloads on ability to require + blocking.never. +
  • +
  • + Changed descriptor implementation to fall back to fcntl + if ioctl fails with ENOTTY when setting non-blocking mode. +
  • +
+

+ + Asio + 1.24.0 +

+
    +
  • + Improved the performance of awaitable<>-based coroutines when they directly + co_await an asynchronous + operation, by eliminating the copy of the operation object in await_transform. +
  • +
  • + Improved the performance of spawn()-based stackful coroutines by storing + a reference to the yield context in the completion handler, rather than + storing a copy of the executor. +
  • +
  • + Fixed a C++03 build error by disabling index_sequence + emulation when variadic templates are unavailable. +
  • +
  • + Fixed detection of std::aligned_alloc + for older Apple platforms. +
  • +
  • + Removed faulty assertions from experimental::coro + implementation. +
  • +
  • + Added defence against Qt-defined macros when building with Intel C++. +
  • +
  • + Ensured that a spawn()-based + stackful coroutine is cleaned up immediately after it completes. +
  • +
  • + Changed the implementation of the select_reactor, + on Windows, to ensure that any exception resulting from failure to recreate + its interrupter's sockets will be allowed to propagate out through io_context::run(). +
  • +
  • + Changed the MSVC version used for the system_error + workaround, as more recent runtime redistributables appear to have fixed + the issue. +
  • +
  • + Changed the async_compose + example to use a return type compatible with the new async_result + form. +
  • +
+

+ + Asio + 1.23.0 +

+
    +
  • + Added a deduced trailing return type, using decltype, + to all asynchronous operations' initiating functions when using C++11. + This change enables the new form of async_result, + where the return type can vary per operation, for C++11. +
  • +
  • + Moved append, prepend, as_tuple, + and deferred to the asio namespace, and made them compatible + with C++11. These are no longer experimental facilities, although the names + have temporarily been retained under the asio::experimental + namespace for backwards compatibility. +
  • +
  • + Added buffer() + overloads for contiguous containers, such as std::span. +
  • +
  • +

    + Added the ability for awaitable<>-based coroutines to directly co_await operations that are packaged + as function objects. For example, using deferred:
    +

    +
    asio::awaitable<void> my_coro()
    +{
    +  asio::steady_timer timer(co_await asio::this_coro::executor);
    +  timer.expires_after(std::chrono::seconds(5));
    +
    +  co_await timer.async_wait(asio::deferred);
    +}
    +
    +

    + or with a handcrafted function object:
    +

    +
    asio::awaitable<void> my_coro()
    +{
    +  asio::steady_timer timer(co_await asio::this_coro::executor);
    +  timer.expires_after(std::chrono::seconds(5));
    +
    +  co_await [&](auto&& token)
    +  {
    +    return timer.async_wait(std::forward<decltype(token)>(token));
    +  };
    +}
    +
    +

    +
    +

    +
  • +
  • +

    + Changed spawn() + to be a completion token-based asynchronous operation. This introduces + new spawn() + overloads that conform to the requirements for asynchronous operations. + For example:
    +

    +
    std::string do_read(asio::yield_context yield)
    +{
    +  char data[1024];
    +  size_t n = my_socket.async_read_some(asio::buffer(data), yield);
    +  return std::string(data, n);
    +}
    +
    +asio::spawn(my_executor, do_read,
    +    [](std::exception_ptr ex, std::string result)
    +    {
    +      // ...
    +    });
    +
    +

    + These new spawn() + overloads support cancellation, and the basic_yield_context + completion token has also been enhanced to support move-only and variadic + result types. When targeting C++11 and later, these functions are implemented + in terms of Boost.Context directly. The existing overloads have been retained + but are deprecated. +

    +
  • +
  • +

    + Added the is_async_operation + trait and async_operation + concept. The is_async_operation + trait may be used to determine if a function object, and optional arguments, + may be called to initiate an asynchronous operation. For example, when + using deferred:
    +

    +
    auto d = my_timer.async_wait(asio::deferred);
    +static_assert(asio::is_async_operation<decltype(d)>::value);
    +
    +

    +
    or with a handcrafted asynchronous operation:
    +

    +
    struct my_async_op
    +{
    +  asio::ip::tcp::socket& socket_ = ...;
    +
    +  template <typename Token>
    +  auto operator()(asio::const_buffer data, Token&& token)
    +  {
    +    return asio::async_write(socket_, data,
    +        std::forward<Token>(token));
    +  }
    +};
    +
    +static_assert(
    +    asio::is_async_operation<
    +      my_async_op, asio::const_buffer>::value);
    +
    +

    +
    +

    +
  • +
  • +

    + Added the completion_signature_of + trait. The completion_signature_of + trait (and corresponding type alias completion_signature_of_t) + may be used to determine the completion signature of an asynchronous operation. + For example:
    +

    +
    auto d = my_timer.async_wait(asio::deferred);
    +using sig = asio::completion_signature_of<decltype(d)>::type;
    +// sig is void(error_code)
    +
    +

    +
    or with a handcrafted asynchronous operation:
    +

    +
    struct my_async_op
    +{
    +  asio::ip::tcp::socket& socket_ = ...;
    +
    +  template <typename Token>
    +  auto operator()(asio::const_buffer data, Token&& token)
    +  {
    +    return asio::async_write(socket_, data,
    +        std::forward<Token>(token));
    +  }
    +};
    +
    +using sig =
    +  asio::completion_signature_of<
    +    my_async_op, asio::const_buffer>::type;
    +// sig is void(error_code, size_t)
    +
    +

    +
    +

    +
  • +
  • + Added converting move construction/assignment to posix descriptors, serial + ports, pipes, Windows object_handle, + Windows stream handles, and Windows random-access handles. +
  • +
  • + Added release() + member functions to pipes, Windows stream handles, and Windows random-access + handles. +
  • +
  • + Enabled support for Endpoint + implementations that return void + pointers from their data() member functions, as per the documented + Endpoint type requirements. +
  • +
  • + Removed all() + and race() + from experimental::promise, as experimental::parallel_group + covers this functionality. +
  • +
  • + Added source locations to exceptions and error codes produced by the synchronous + and asynchronous operations. +
  • +
  • + Fixed compatibility with OpenSSL 3.0.4 and later. +
  • +
  • + Fixed compatibility with with -masm=intel. +
  • +
  • + Explicitly stated that socket shutdown() calls are thread-safe with respect to + certain other synchronous operations on the same socket. +
  • +
  • + Optimised the move construction of I/O objects where only the executor + type differs. +
  • +
  • + Fixed the detection of std::invoke_result + for clang/libc++. +
  • +
  • + Fixed an issue where experimental::parallel_group + initiation incorrectly moved arguments instead of forwarding them. +
  • +
  • + Fixed a sequencing issue in the implementation of post(), dispatch(), and defer(), where the the associated allocator may + be obtained from an already moved-from completion handler. +
  • +
  • + Fixed the awaitable<> + implementation to propagate exceptions from awaited initiation functions + through the current completion handler. +
  • +
  • + Fixed detection of std::aligned_alloc + with gcc. +
  • +
  • + Changed to avoid using the soon-to-be-deprecated std::aligned_storage + on newer compilers. +
  • +
  • + Fixed various compiler warnings. +
  • +
  • + Updated all composed operations examples, and the C++11 timeouts example, + to use the new async_result + form. +
  • +
  • + Added composed operation and coroutine examples for C++20. +
  • +
  • + Added pkg-config support. +
  • +
+

+ + Asio + 1.22.2 +

+
    +
  • + On Windows, changed the file support to open files using the same sharing + mode as fopen(). +
  • +
  • + On Linux, fixed the UNIX domain sockets implementation to correctly handle + EAGAIN as an indication + of an in-progress connect operation. +
  • +
  • + Fixed experimental::basic_channel::reset() + and experimental::basic_concurrent_channel::reset() + so that they work correctly for an unclosed channel. +
  • +
  • + Fixed potential undefined behaviour in the experimental::promise + operations race() + and all(). +
  • +
  • + Changed the co_spawn implementation + to explicitly dispatch cancellation signals through the specified executor, + if the the completion handler has an associated executor of its own. +
  • +
  • + Added more detailed reference documentation to make_strand(), make_work_guard(), ip::address_v4, + ip::address_v6, experimental::basic_channel, + and experimental::basic_concurrent_channel. +
  • +
  • + Re-arranged and extended the Overview documentation to cover files, pipes, + async_compose, experimental::deferred, experimental::parallel_group, + experimental::promise, channels, and completion token + adapters. +
  • +
  • + Reverted the io_context + reference documentation to use executor_work_guard + when preventing the io_context + from running out of work. +
  • +
  • + Removed references to deadline_timer + from the Overview documentation. +
  • +
  • + Added reference documentation cross-references to asynchronous model elements. +
  • +
+

+ + Asio + 1.22.1 +

+
    +
  • + Added bind_allocator, to + simplify associating a custom allocator with a completion token or handler. +
  • +
  • + Added the file_base::sync_all_on_write flag, which maps to + O_SYNC on POSIX and FILE_FLAG_WRITE_THROUGH on Windows. +
  • +
  • + Added missing implementation of basic_file::release(). +
  • +
  • + Added per-operation cancellation support to signal sets. +
  • +
  • + Exposed recycling_allocator + as part of the public interface. +
  • +
  • + Added the nodiscard attribute + to the following functions: +
      +
    • + bind_allocator() +
    • +
    • + bind_cancellation_slot() +
    • +
    • + bind_executor() +
    • +
    • + buffer() +
    • +
    • + dynamic_buffer() +
    • +
    • + experimental::append() +
    • +
    • + experimental::as_single() +
    • +
    • + experimental::as_tuple() +
    • +
    • + experimental::make_parallel_group() +
    • +
    • + experimental::prepend() +
    • +
    • + get_associated_allocator() +
    • +
    • + get_associated_cancellation_slot() +
    • +
    • + get_associated_executor() +
    • +
    • + make_work_guard() +
    • +
    +
  • +
  • + Added compatibility with OpenSSL 3.0, particularly when deprecated functionality + is disabled. +
  • +
  • + Added support for adopting an existing SSL* into an ssl::stream<>. +
  • +
  • + Enabled executor_work_guard<> even when ASIO_NO_TS_EXECUTORS + is defined. +
  • +
  • + Enabled movable socket iostreams when using clang. +
  • +
  • + Fixed bind_cancellation_slot + compatibility with legacy completion tokens. +
  • +
  • + Fixed bind_executor compatibility + with legacy completion tokens. +
  • +
  • + Fixed associator specialisations + for experimental::append and experimental::prepend, + to correctly propagate the associated allocator, executor, and cancellation + slot. +
  • +
  • + Fixed 'zero as null pointer constant' warning in C++20 coroutines implementation + of awaitable. +
  • +
  • + Ensured concurrency hint preprocessor macros are made available when asio/io_context.hpp + is included. +
  • +
  • + Fixed issue where the primary associated_allocator + template was not correctly detecting the nested T::allocator_type. +
  • +
  • + Fixed io_uring implementation of async_receive_from + operation for sockets. +
  • +
  • + Fixed io_uring implementation of write_some_at + operation for files. +
  • +
  • + Changed io_uring implementation to correctly check that + it is not the default before registering with reactor. +
  • +
  • + Fixed a circular inclusion issue when using io_uring + in some build configurations. +
  • +
  • + Fixed experimental::coro's per-operation cancellation to + clear the slot at completion of each operation. +
  • +
  • + Fixed memory management in experimental::promise's + type-erased completion handlers. +
  • +
  • + Fixed move operator= + implementation for ssl::stream. +
  • +
  • + Fixed any_io_executor implementation + to work when both ASIO_USE_TS_EXECUTOR_AS_DEFAULT + and ASIO_SEPARATE_COMPILATION + are defined. +
  • +
  • + Fixed implementation of basic_socket::at_mark() when using the sockatmark() system call. +
  • +
  • + Changed the recycling allocator to use the default alignment as the minimum + alignment for allocations. +
  • +
  • + Added additional standard header file includes, as required by newer compilers. +
  • +
  • + Added a workaround for apparent coroutine codegen bug with Apple's clang. +
  • +
  • + Fixed various warnings in the examples and unit tests. +
  • +
  • + Added a C++11 example showing file descriptor passing over local sockets. + Thanks to Heiko Hund for providing this example. +
  • +
  • + Added C++14 examples of wrapping callback-based APIs in asynchronous operations. +
  • +
  • + Added an overview of Asio's asynchronous model to the documentation. +
  • +
  • + Reworked reference documentation in terms of completion tokens. +
  • +
  • + Updated documentation of asynchronous operation requirements to use new + completion token form. +
  • +
  • + Updated documentation for dispatch(), post(), and defer() to cover both the old and new executor + forms. +
  • +
  • + Documented per-operation cancellation for serial ports. +
  • +
  • + Clarified the non-concurrency guarantees made for allocators. +
  • +
+

+ + Asio + 1.22.0 +

+
    +
  • + Improved error messages emitted by ssl + facilities. +
  • +
  • + Fixed bind_executor compatibility + with completion tokens. +
  • +
  • + Fixed build errors when ASIO_USE_TS_EXECUTOR_AS_DEFAULT + is defined. +
  • +
  • + Fixed corruption, cleanup issues in channel implementation. +
  • +
  • + Added missing move assignment operator to awaitable<>. +
  • +
  • + Fixed an access violation when using coroutines with MSVC, due to incorrect + alignment of allocated memory. +
  • +
  • + Fixed a cleanup issue in experimental::parallel_group + that occured when the execution context was shut down with parallel operations + still pending. +
  • +
  • + Fixed header inclusion order problem when io_uring is enabled. +
  • +
  • + Eliminated shared_ptr use + from experimental::coro co_spawn() implementation. +
  • +
  • + Prevented async_resume + from being called on experimental::coro + temporaries. +
  • +
  • + Made awaitable_operators.hpp + header self-contained. +
  • +
  • + Added clarifications to the documentation on concurrency hints. +
  • +
  • + Added documentation on error handling techniques for C++20 coroutines. +
  • +
  • + Added channel-based proxy example. +
  • +
  • + Regenerated ssl certificates + used in examples. +
  • +
+

+ + Asio + 1.21.0 +

+
    +
  • + Added an io_uring backend. This backend may be used for all I/O objects, + including sockets, timers, and posix descriptors.

    The backend + is disabled by default, and must be enabled by defining both ASIO_HAS_IO_URING and ASIO_DISABLE_EPOLL.
    +
    Simply defining ASIO_HAS_IO_URING + alone will enable the backend without using it for the existing I/O objects. + This allows it to be used for I/O objects that require io_uring support, + such as files.

    This support depends on the liburing + library at both compile and link time. Add -luring to your list of libraries for + linking. +
  • +
  • +

    + Added support for files. This introduces new classes for stream-oriented + and random-access files. For example, to write to a newly created stream-oriented + file:
    +

    +
    asio::stream_file file(
    +    my_io_context, "/path/to/file",
    +    asio::stream_file::write_only
    +      | asio::stream_file::create
    +      | asio::stream_file::truncate);
    +
    +file.async_write_some(my_buffer,
    +    [](error_code e, size_t n)
    +    {
    +      // ...
    +    });
    +
    +

    +
    or to read from a random-access file:
    +

    +
    asio::random_access_file file(
    +    my_io_context, "/path/to/file",
    +    asio::random_access_file::read_only);
    +
    +file.async_read_some_at(1234, my_buffer,
    +    [](error_code e, size_t n)
    +    {
    +      // ...
    +    });
    +
    +

    +
    This feature currently supports I/O completion ports on Windows, + and io_uring on Linux (define ASIO_HAS_IO_URING + to enable). +

    +
  • +
  • +

    + Added support for portable pipes. This change add supports for pipes on + POSIX and Windows (when I/O completion ports are available). For example, + to create and use a connected pair of pipe objects:
    +

    +
    asio::readable_pipe read_end;
    +asio::writable_pipe write_end;
    +asio::connect_pipe(read_end, write_end);
    +
    +write_end.async_write_some(my_write_buffer,
    +    [](error_code e, size_t n)
    +    {
    +      // ...
    +    });
    +
    +read_end.async_read_some(my_read_buffer,
    +    [](error_code e, size_t n)
    +    {
    +      // ...
    +    });
    +
    +

    +
    +

    +
  • +
  • +

    + Added support for registered buffers. The mutable_registered_buffer + and const_registered_buffer + classes are buffer sequence types that represent registered buffers. These + buffers are obtained by first performing a buffer registration:
    +

    +
    auto my_registration =
    +  asio::register_buffers(
    +      my_execution_context,
    +      my_buffer_sequence);
    +
    +

    +
    The registration object must be maintained for as long as the buffer + registration is required. The supplied buffer sequence represents the memory + location or locations that will be registered, and the caller must ensure + they remain valid for as long as they are registered. The registration + is automatically removed when the registration object is destroyed. There + can be at most one active registration per execution context.

    + The registration object is a container of registered buffers. Buffers may + be obtained from it by iterating over the container, or via direct index + access:
    +

    +
    asio::mutable_registered_buffer my_buffer
    +  = my_registration[i];
    +
    +

    +
    The registered buffers may then be passed directly to operations:
    +

    +
    asio::async_read(my_socket, my_buffer,
    +    [](error_code ec, size_t n)
    +    {
    +      // ...
    +    });
    +
    +

    +
    Buffer registration supports the io_uring backend when used with + read and write operations on descriptors, files, pipes, and sockets. For + portability, the facility may be used on other platforms, but the registered + buffers will behave as normal buffers. +

    +
  • +
  • +

    + Added experimental support for channels. This adds templates experimental::basic_channel and experimental::basic_concurrent_channel, + with aliases experimental::channel + and experimental::concurrent_channel. Channels may be used + to send completions as messages. For example:
    +

    +
    // Create a channel with no buffer space.
    +channel<void(error_code, size_t)> ch(ctx);
    +
    +// The call to try_send fails as there is no buffer
    +// space and no waiting receive operations.
    +bool ok = ch.try_send(asio::error::eof, 123);
    +assert(!ok);
    +
    +// The async_send operation is outstanding until
    +// a receive operation consumes the message.
    +ch.async_send(asio::error::eof, 123,
    +    [](error_code ec)
    +    {
    +      // ...
    +    });
    +
    +// The async_receive consumes the message. Both the
    +// async_send and async_receive operations complete
    +// immediately.
    +ch.async_receive(
    +    [](error_code ec, size_t n)
    +    {
    +      // ...
    +    });
    +
    +

    +
    +

    +
  • +
  • + Implemented improvements to experimental::coro. +
      +
    • + Added overload so member functions can provide an explicit executor. +
    • +
    • + Added co_spawn for + coro tasks. +
    • +
    • + Added reference and overview documentation. +
    • +
    • + Adopted awaitable cancellation model. +
    • +
    • + Refactored implementation. +
    • +
    +
  • +
  • + Disabled aligned_alloc + on clang when using an MSVC runtime. +
  • +
  • + Changed to use a faster implementation for ip::network_v4::canonical(). +
  • +
  • + Added template specialisations for common uses to improve compile time. +
  • +
  • + Reduced the size of io_context + executors to a single pointer. +
  • +
  • + Increased the small object buffer size for execution::any_executor + and any_io_executor. +
  • +
  • + Fixed multi-signature handling when variadic templates are disabled. +
  • +
  • + Fixed compatibility with new versions of gcc and clang. +
  • +
  • + Fixed compilation on Solaris. +
  • +
  • + Fix defence against Qt-defined macros when building with MSVC. +
  • +
  • + Fixed various warnings. +
  • +
+

+ + Asio + 1.20.0 +

+
    +
  • + Fixed experimental::coro compatibility with gcc. +
  • +
  • + Fixed experimental::promise compatibility with gcc. +
  • +
  • + Added documentation for per-operation cancellation. +
  • +
  • + Added documentation for parallel_group. +
  • +
  • + Added overview documentation for experimental::coro. +
  • +
  • + Added some missing C++14 examples. +
  • +
  • + Updated C++20 coroutines overview documentation. +
  • +
+

+ + Asio + 1.19.2 +

+
    +
  • + Cleaned up memory recycling to ensure the cache size is used consistently. +
  • +
  • + Changed parallel_group + to use the recycling allocator for shared state. +
  • +
  • + Changed awaitable memory + recycling to use the configurable cache size. +
  • +
  • + Ensured parallel_group + respects operations' associated executors. +
  • +
  • + Added defence against macros defined by Qt. +
  • +
  • + Added missing boost_ prefix + to namespaces during boostification. +
  • +
  • + Added missing lvalue-qualified overloads for deferred + operator(). +
  • +
  • + Added a tag to disambiguate deferred + constructors. +
  • +
  • + Added missing push/pop_options includes. +
  • +
  • + Fixed argument evaluation order issue with a potentially moved-from variable + in awaitable implementation. +
  • +
  • + Enabled "expression SFINAE" for recent MSVC using /std:c++latest. +
  • +
  • + Fixed compilation errors when dev_poll_reactor + backend is used. +
  • +
  • + Fixed handler type requirements checking to reflect rvalue completion handler + invocation. +
  • +
  • + Fixed posix::basic_stream_descriptor move operations + to work with non-defaulted executors. +
  • +
  • + Added missing move of executor in strand implementation. +
  • +
+

+ + Asio + 1.19.1 +

+
    +
  • + Fixed handling of move-only results with awaitable operators && and ||. +
  • +
  • + Fixed strand<> + to avoid using a potentially moved-from executor. +
  • +
  • + Fixed order of _aligned_malloc + arguments for MSVC. +
  • +
  • + Ensured handler alignment requirements are respected by cancellation_signal. +
  • +
  • + Ensured gcc tests are not used for clang + when detecting compiler features. +
  • +
  • + Disabled coroutines support for the clang shipped with + MSVC. +
  • +
  • + Fixed compatibility with recent LibreSSL when OPENSSL_NO_SSL_INTERN + is defined. +
  • +
  • + Documented supported cancellation types for individual asynchronous operations. +
  • +
  • + Ensured un-cancelled ops are correctly placed back in the queue. +
  • +
+

+ + Asio + 1.19.0 +

+
    +
  • + Added support for cancellation of individual asynchronous operations. Cancellation + is implemented by having each completion handler carry an associated CancellationSlot, a lightweight cancellation + channel that is specified through the new associated_cancellation_slot + associator. A concrete CancellationSlot + implementation is provided in the form of the cancellation_signal + and cancellation_slot classes. + In conjunction with the bind_cancellation_slot + helper function, these may be used to hook cancellation into asynchronous + operations. However, it should be noted that these classes are the low-level + building blocks of cancellation, and most use cases should use a higher + level abstraction for cancellation, such as experimental::parallel_group + or the new logical operators for awaitable + (see below). The ability to cancel individual operations, or composed operations, + is currently supported by: +
      +
    • + timers +
    • +
    • + sockets on POSIX and Windows +
    • +
    • + POSIX descriptors +
    • +
    • + Windows HANDLEs +
    • +
    • + SSL streams +
    • +
    • + all Asio-provided composed operations such as async_read + and async_write +
    • +
    • + compositions based on async_compose +
    • +
    • + C++20 coroutines that use awaitable +
    • +
    • + C++20 coroutines that use the new experimental::coro + (see below) +
    • +
    • + the new experimental::parallel_group + operation (see below) +
    • +
    • + the new experimental::promise + class (see below) +
    • +
    +
  • +
  • +

    + Added the associator trait. + The associator trait is + used to generically forward associators, such as associated_executor + and associated_allocator, + through intermediate completion handlers. For example:
    +

    +
    template <typename Handler>
    +struct intermediate_handler
    +{
    +  Handler handler_;
    +
    +  template <typename... Args>
    +  void operator()(Args&... args)
    +  {
    +    // ...
    +  }
    +};
    +
    +namespace asio {
    +  template <
    +      template <typename, typename> class Associator,
    +      typename Handler,
    +      typename DefaultCandidate>
    +  struct associator<
    +      Associator,
    +      intermediate_handler<Handler>,
    +      DefaultCandidate>
    +  {
    +    using type =
    +      typename Associator<Handler, DefaultCandidate>::type;
    +
    +    static type get(
    +        const intermediate_handler<Handler>& h,
    +        const DefaultCandidate& c = DefaultCandidate()) noexcept
    +    {
    +      return Associator<Handler, DefaultCandidate>::get(
    +          h.handler_, c);
    +    }
    +  };
    +} // namespace asio
    +
    +

    +
    +

    +
  • +
  • + Changed all asynchronous operations implemented in Asio to invoke their + completion handlers as rvalue references. This allows an rvalue reference + qualifier to be added to the function call operator. +
  • +
  • +

    + Added support for asynchronous operations with multiple completion signatures. + Completion signatures may also specify that they are noexcept, + and whether they are lvalue-invocable (and thus do not "consume" + the completion handler) or rvalue-invocable (and thus do "consume" + the handler, indicating an end to the asynchronous operation). For example:
    +

    +
    auto my_async_operation(...,
    +    asio::completion_token_for<
    +      void(intermediate_result_type) & noexcept,
    +      void(final_result_type) &&
    +    > auto&& token)
    +{
    +  // ...
    +}
    +
    +

    +
    +

    +
  • +
  • +

    + Added operator&& + and operator|| + for awaitable<>. + The logical operators || and + && have been overloaded + for awaitable<>, + to allow coroutines to be trivially awaited in parallel.

    When + awaited using &&, + the co_await expression + waits until both operations have completed successfully. As a "short-circuit" + evaluation, if one operation fails with an exception, the other is immediately + cancelled. For example:
    +

    +
    std::tuple<std::size_t, std::size_t> results =
    +  co_await (
    +    async_read(socket, input_buffer, use_awaitable)
    +      && async_write(socket, output_buffer, use_awaitable)
    +  );
    +
    +

    +
    When awaited using ||, + the co_await expression + waits until either operation succeeds. As a "short-circuit" evaluation, + if one operation succeeds without throwing an exception, the other is immediately + cancelled. For example:
    +

    +
    std::variant<std::size_t, std::monostate> results =
    +  co_await (
    +    async_read(socket, input_buffer, use_awaitable)
    +      || timer.async_wait(use_awaitable)
    +  );
    +
    +

    +
    The operators may be enabled by adding the #include:
    +

    +
    #include <asio/experimental/awaitable_operators.hpp>
    +
    +

    +
    and then bringing the contents of the experimental::awaitable_operators + namespace into scope:
    +

    +
    using namespace asio::experimental::awaitable_operators;
    +
    +

    +
    +

    +
  • +
  • +

    + Added the experimental::as_tuple + completion token adapter. The as_tuple + completion token adapter can be used to specify that the completion handler + arguments should be combined into a single tuple argument. The as_tuple adapter may be used in conjunction + with use_awaitable and + structured bindings as follows:
    +

    +
    auto [e, n] = co_await socket.async_read_some(
    +    asio::buffer(data), as_tuple(use_awaitable));
    +
    +

    +
    Alternatively, it may be used as a default completion token like + so:
    +

    +
    using default_token = as_tuple_t<use_awaitable_t<>>;
    +using tcp_socket = default_token::as_default_on_t<tcp::socket>;
    +// ...
    +awaitable<void> do_read(tcp_socket socket)
    +{
    +  // ...
    +  auto [e, n] = co_await socket.async_read_some(asio::buffer(data));
    +  // ...
    +}
    +
    +

    +
    +

    +
  • +
  • +

    + Added the experimental::append + completion token adapter. The append + completion token adapter can be used to pass additional completion handler + arguments at the end of the completion signature. For example:
    +

    +
    timer.async_wait(
    +    asio::experimental::append(
    +      [](std::error_code ec, int i)
    +      {
    +        // ...
    +      },
    +    42)
    +  );
    +
    +std::future<int> f = timer.async_wait(
    +    asio::experimental::append(
    +      asio::use_future,
    +      42
    +    )
    +  );
    +
    +

    +
    +

    +
  • +
  • +

    + Added the experimental::prepend + completion token adapter. The prepend + completion token adapter can be used to pass additional arguments before + the existing completion handler arguments. For example:
    +

    +
    timer.async_wait(
    +    asio::experimental::prepend(
    +      [](int i, std::error_code ec)
    +      {
    +        // ...
    +      },
    +    42)
    +  );
    +
    +std::future<std::tuple<int, std::error_code>> f = timer.async_wait(
    +    asio::experimental::prepend(
    +      asio::use_future,
    +      42
    +    )
    +  );
    +
    +

    +
    +

    +
  • +
  • +

    + Added the experimental::deferred + completion token. The deferred + completion token takes a call to an asynchronous operation's initiating + function and turns it into a function object that accepts a completion + token. For example:
    +

    +
    auto deferred_op =
    +  timer.async_wait(
    +    asio::experimental::deferred);
    +...
    +std::move(deferred_op)(
    +    [](std::error_code ec){ ... });
    +
    +

    +
    or:
    +

    +
    auto deferred_op =
    +  timer.async_wait(
    +    asio::experimental::deferred);
    +...
    +std::future<void> =
    +  std::move(deferred_op)(
    +    asio::use_future);
    +
    +

    +
    The deferred token also supports chaining, to create simple compositions:
    +

    +
    auto deferred_op =
    +  timer.async_wait(
    +    asio::experimental::deferred(
    +      [&](std::error_code ec)
    +      {
    +        timer.expires_after(
    +            std::chrono::seconds(1));
    +
    +        return timer.async_wait(
    +            asio::experimental::deferred);
    +      });
    +...
    +std::future<void> = std::move(deferred_op)(asio::use_future);
    +
    +

    +
    +

    +
  • +
  • +

    + Added the experimental::parallel_group + class and experimental::make_parallel_group + function. This utility may be used to launch work that is performed in + parallel, and wait for one or all of the operations to complete. A parallel_group implements automatic cancellation + of incomplete operations. For example:
    +

    +
    experimental::make_parallel_group(
    +    [&](auto token)
    +    {
    +      return stream.async_read_some(asio::buffer(data), token);
    +    },
    +    [&](auto token)
    +    {
    +      return timer.async_wait(token);
    +    }
    +  ).async_wait(
    +    experimental::wait_for_one(),
    +    [](
    +        std::array<std::size_t, 2> completion_order,
    +        std::error_code ec1, std::size_t n1,
    +        std::error_code ec2
    +    )
    +    {
    +      // ...
    +    }
    +  );
    +
    +

    +
    The conditions for completion of the group may be specified using + one of the four provided function objects wait_for_all, + wait_for_one, wait_for_one_success, and wait_for_one_error, or with a custom + function. The parallel_group + class can also be combined with deferred + as follows:
    +

    +
    experimental::make_parallel_group(
    +    stream.async_read_some(asio::buffer(data), experimental::deferred),
    +    timer.async_wait(experimental::deferred)
    +  ).async_wait(
    +    // ...
    +  );
    +
    +

    +
    Note: for maximum flexibility, parallel_group + does not propagate the executor automatically to the operations within + the group. +

    +
  • +
  • +

    + Added experimental::promise. The promise + type allows eager execution and synchronisation of async operations. For + example:
    +

    +
    auto promise = async_read(
    +    stream, asio::buffer(my_buffer),
    +    asio::experimental::use_promise);
    +
    +... do other stuff while the read is going on ...
    +
    +promise.async_wait( // completion the operation
    +    [](error_code ec, std::size_t bytes_read)
    +    {
    +      ...
    +    });
    +
    +

    +
    Promises can be safely disregarded if the result is no longer required. + Different operations can be combined to either wait for all to complete + or for one to complete (and cancel the rest). For example, to wait for + one to complete:
    +

    +
    auto timeout_promise =
    +  timer.async_wait(
    +    asio::experimental::use_promise);
    +
    +auto read_promise = async_read(
    +    stream, asio::buffer(my_buffer),
    +    asio::experimental::use_promise);
    +
    +auto promise =
    +  asio::experimental::promise<>::race(
    +    timeout_promise, read_promise);
    +
    +promise.async_wait(
    +    [](std::variant<error_code, std::tuple<error_code, std::size_t>> v)
    +    {
    +      if (v.index() == 0) {} //timed out
    +      else if (v.index() == 1) // completed in time
    +    });
    +
    +

    +
    or to wait for all to complete:
    +

    +
    auto write_promise = async_write(
    +    stream, asio::buffer(my_write_buffer),
    +    asio::experimental::use_promise);
    +
    +auto read_promise = async_read(
    +    stream, asio::buffer(my_buffer),
    +    asio::experimental::use_promise);
    +
    +auto promise =
    +  asio::experimental::promise<>::all(
    +    write_promise, read_promise);
    +
    +promise.async_wait(
    +    [](std::tuple<error_code, std::size_t> write_result,
    +      std::tuple<error_code, std::size_t> read_result)
    +    {
    +    });
    +
    +

    +
    Thanks go to Klemens Morgenstern for contributing this feature. +

    +
  • +
  • +

    + Added the experimental::coro + class template. The coro + type is a C++20 coroutine primitive for resumable functions, with the ability + to combine both asynchronous waiting (co_await) + and yielding (co_yield) + into a single, stateful control flow. For example:
    +

    +
    #include <asio.hpp>
    +#include <asio/experimental/coro.hpp>
    +
    +using asio::ip::tcp;
    +
    +asio::experimental::coro<std::string> reader(tcp::socket& sock)
    +{
    +  std::string buf;
    +  while (sock.is_open())
    +  {
    +    std::size_t n = co_await asio::async_read_until(
    +        sock, asio::dynamic_buffer(buf), '\n',
    +        asio::experimental::use_coro);
    +    co_yield buf.substr(0, n);
    +    buf.erase(0, n);
    +  }
    +}
    +
    +asio::awaitable<void> consumer(tcp::socket sock)
    +{
    +  auto r = reader(sock);
    +  auto msg1 = co_await r.async_resume(asio::use_awaitable);
    +  std::cout << "Message 1: " << msg1.value_or("\n");
    +  auto msg2 = co_await r.async_resume(asio::use_awaitable);
    +  std::cout << "Message 2: " << msg2.value_or("\n");
    +}
    +
    +asio::awaitable<void> listen(tcp::acceptor& acceptor)
    +{
    +  for (;;)
    +  {
    +    co_spawn(
    +        acceptor.get_executor(),
    +        consumer(co_await acceptor.async_accept(asio::use_awaitable)),
    +        asio::detached);
    +  }
    +}
    +
    +int main()
    +{
    +  asio::io_context ctx;
    +  tcp::acceptor acceptor(ctx, {tcp::v4(), 54321});
    +  co_spawn(ctx, listen(acceptor), asio::detached);
    +  ctx.run();
    +}
    +
    +

    +
    Thanks go to Klemens Morgenstern for contributing this feature. +

    +
  • +
  • + Added move assignment to ssl::stream<>. +
  • +
  • + Changed co_spawn to dispatch the coroutine's initial step + to the executor, and to only post + the completion handler if the coroutine did not otherwise perform a context + switch (i.e. a co_await + on an asynchronous operation). +
  • +
  • + Enabled additional optimisations for any_executor + and any_io_executor when + used with asynchronous operations. +
  • +
  • + Added the nodiscard attribute + to awaitable<>. +
  • +
  • + Increased the number of cached slots in the default recycling allocator. + This number defaults to 2, but may also be specified by defining the ASIO_RECYCLING_ALLOCATOR_CACHE_SIZE macro. +
  • +
  • + Disabled the std::system_error message workaround for recent + MSVC. +
  • +
  • + Changed the default allocator behaviour to respect alignment requirements, + to support over-aligned types. Requires C++17 or later, or Boost. +
  • +
  • + Ensured the result strings are always initialised in reverse name resolution. +
  • +
  • + Fixed recursive template instantiation issues in use_awaitable_t::executor_with_default. +
  • +
  • + Fixed the any_io_executor + equality operators to correctly return a result based on the target executor. +
  • +
+

+ + Asio + 1.18.2 +

+
    +
  • + Added ip::scope_id_type type alias. +
  • +
  • + Added ip::port_type type alias. +
  • +
  • + Added std::hash specialisations for IP addresses. +
  • +
  • + Added std::hash specialisations for ip::basic_endpoint<>. +
  • +
  • + Refactored SFINAE usage to improve compile times. +
  • +
  • + Added friendship support to customisation points, and made most customisations + private. +
  • +
  • + Changed any_io_executor + to a "strong typedef"-style class. +
  • +
  • + Fixed experimental::as_single to work with handler hook deprecation. +
  • +
  • + Ensured pthread condition variable attributes are cleaned up on all platforms. +
  • +
  • + Clarified thread safety notes on sockets and descriptors. +
  • +
  • + Ensured errno is not overwritten + if socket() + fails on macOS/FreeBSD. +
  • +
  • + Fixed work tracking for io_context + and thread_pool executors + when move-assigned. +
  • +
  • + Ensured internal call_stack + objects are accessed only from implementation files. +
  • +
  • + Fixed I/O object move-assignment to ensure the executor is left in a valid + state. +
  • +
  • + Fixed detection of compiler support for defaulted template argument on + functions with MSVC. +
  • +
  • + Prevented the blocking.always + property from being used with strand<>, as it did not produce the correct + semantics. +
  • +
  • + Removed deprecated file asio/impl/src.cpp. +
  • +
+

+ + Asio + 1.18.1 +

+
    +
  • + Enabled support for UNIX domain sockets on Windows. From Windows 10, UNIX + domain sockets (a.k.a "local" sockets) are supported on Windows, + with the exception of the connect_pair + function (which will fail with an operation_not_supported error). +
  • +
  • + Added executor-converting construction and assignment to ip::basic_resolver. +
  • +
  • + Added compatibility between polymorphic executors and the (deprecated) + handler invocation hook. +
  • +
  • +

    + Added the experimental::as_single + completion token adapter. The as_single + completion token adapter can be used to specify that the completion handler + arguments should be combined into a single argument. For completion signatures + with a single parameter, the argument is passed through as-is. For signatures + with two or more parameters, the arguments are combined into a tuple. The + as_single adapter may be + used in conjunction with use_awaitable + and structured bindings as follows:
    +

    +
    auto [e, n] = co_await socket.async_read_some(
    +    asio::buffer(data), as_single(use_awaitable));
    +
    +

    +
    Alternatively, it may be used as a default completion token like + so:
    +

    +
    using default_token = as_single_t<use_awaitable_t<>>;
    +using tcp_socket = default_token::as_default_on_t<tcp::socket>;
    +// ...
    +awaitable<void> do_read(tcp_socket socket)
    +{
    +  // ...
    +  auto [e, n] = co_await socket.async_read_some(asio::buffer(data));
    +  // ...
    +}
    +
    +

    +
    +

    +
  • +
  • + Added support for MSG_NOSIGNAL + on more platforms by using _POSIX_VERSION + to detect whether it is supported. +
  • +
  • + Added the ability to compile using libpthread on Windows. +
  • +
  • + Added workarounds for the Intel C++ compiler. +
  • +
  • + Added more support for detecting and optimising for handlers that have + no custom executor. +
  • +
  • + Reduced lock contention for timer cancellation on Windows. +
  • +
  • + Reinstated a previously removed null-pointer check, as it had a measurable + impact on performance. +
  • +
  • + Fixed the executor concept + to test for a const-qualified execute(). +
  • +
  • + Fixed any_executor support + for builds without RTTI support. +
  • +
  • + Fixed the thread_pool unit + test to work without RTTI support. +
  • +
  • + Fixed C++20 coroutines compatibility with clang on Windows. +
  • +
  • + Fixed some compatibility issues with Windows Runtime. +
  • +
  • + Fixed shadow name warnings caused by addition of asio::query. +
  • +
  • + Fixed a "logical ‘or’ of equal expressions" warning on linux. +
  • +
  • + Fixed a benign switch fallthrough warning. +
  • +
  • + Added missing push/pop_options.hpp includes. +
  • +
  • + Suppressed zero-as-null-pointer-constant warnings. +
  • +
  • + Fixed a comma-operator warning. +
  • +
  • + Updated the documentation to clarify when the select + reactor is used on Windows. +
  • +
  • + Fixed potential ambiguity caused by any_executor + comparisons and conversion. +
  • +
  • + Added detection of non-experimental C++20 coroutines on MSVC 19.8. +
  • +
  • + Fixed compatibility with uClibc. +
  • +
  • + Fixed strand<> + adaptation of Networking TS executors when targeting older C++ versions + or less conformant compilers. +
  • +
+

+ + Asio + 1.18.0 +

+
    +
  • + Marked the basic_socket_acceptor + move constructor as noexcept. +
  • +
  • + Added workarounds for various issues in gcc 10's coroutine + support. +
  • +
  • + Added standard executor support to windows::overlapped_ptr. +
  • +
  • + Added missing compatibility macros for the execution::receiver_of + concept. +
  • +
  • + Added short-circuited evaluation to execution::executor, + execution::operation_state,execution::sender, + execution::receiver, execution::receiver_of, + and execution::scheduler concepts and the corresponding + traits. These now test first for well-formed CPO expressions (or, in the + case of senders, a specialised sender_traits + template) and, if not valid, short-circuit the remainder of the evaluation. + This helps prevent recursive template instantiations that can occur in + some contexts. +
  • +
  • + Added constraints to the strand + template's constructor, to prevent template instantiation recursion. +
  • +
  • + Changed Asio's internal executor adapters to prevent template instantiation + recursion. +
  • +
  • + Added constraints to the execution::any_executor + template's converting constructors, as per the specification. +
  • +
  • + Added missing execution::sender_traits + specialisation and connect() member function to the thread_pool executor, as per the specification. +
  • +
  • + Changed execution::blocking_t::always_t::is_preferable to be false as per the + specification. +
  • +
  • + Added shape_type and index_type to thread_pool + executors, as per the specification. +
  • +
  • + Ensured that the standard executor concept-related traits (such as execution::is_executor) work with void. +
  • +
  • + Fixed async_compose support + for standard executors. +
  • +
  • + Fixed the forward declaration of any_io_executor + in asio/ts/netfwd.hpp. +
  • +
  • + Fixed use_future compatibility + with older compilers. +
  • +
  • + Fixed compatibility with MinGW. +
  • +
  • + Improved compatibility with older versions of gcc. +
  • +
  • + Added compatiblity with clang-cl on Windows. +
  • +
  • + Fixed various compiler warnings. +
  • +
  • + Added basic overview documentation for the standard executors support. +
  • +
  • + Added detailed descriptions to the standard executor-related member functions + of io_context executors, + thread_pool executors, + system_executor, and strand<>. +
  • +
  • + Changed introductory documentation to reflect that there our now multiple + types of I/O execution context. +
  • +
  • + Marked constructors, destructors, and static data members in class synopses + in the reference documentation. +
  • +
  • + Fixed various minor documentation errors. +
  • +
+

+ + Asio + 1.17.0 +

+
    +
  • + Added an implementation of the proposed standard executors (P0443r13, + P1348r0, and P1393r0). +
  • +
  • + Added support for the proposed standard executors to Asio's I/O facilities: +
      +
    • + The io_context::executor_type, thread_pool::executor_type, + system_executor, + and strand executors + now meet the requirements for the proposed standard executors. These + classes also continue to meet the existing requirements for the Networking + TS model of executors. +
    • +
    • + All I/O objects, asynchronous operations, and utilities including + dispatch, post, defer, + get_associated_executor, + bind_executor, make_work_guard, spawn, co_spawn, + async_compose, use_future, etc., can interoperate + with both new proposed standard executors, and with existing Networking + TS executors. The implementation determines at compile time which + model a particular executor meets; the proposed standard executor + model is used in preference if both are detected. +
    • +
    • + The any_io_executor + type alias has been introduced as the new default runtime-polymorphic + executor for all I/O objects. This type alias points to the execution::any_executor<> + template with a set of supportable properties specified for use with + I/O. This change may break existing code that directly uses the old + polymorphic wrapper, executor. + If required for backward compatibility, ASIO_USE_TS_EXECUTOR_AS_DEFAULT + can be defined, which changes the any_io_executor + type alias to instead point to the executor + polymorphic wrapper. +
    • +
    • + Support for the existing Networking TS model of executors can be + disabled by defining ASIO_NO_TS_EXECUTORS. +
    • +
    +
  • +
  • +

    + Added converting move construction and assignment to basic_waitable_timer. + This enables move construction and assignment between different timer types, + provided the executor types are convertible. For example:
    +

    +
    basic_waitable_timer<
    +    clock_type,
    +    traits_type,
    +    io_context::executor_type
    +  > timer1(my_io_context);
    +
    +basic_waitable_timer<
    +    clock_type,
    +    traits_type,
    +    any_io_executor // polymorphic wrapper
    +  > timer2(std::move(timer1));
    +
    +

    +
    +

    +
  • +
  • + Enabled C++20 coroutine support when using gcc 10. +
  • +
  • +

    + Added overloads of co_spawn + that launch an awaitable. This change allows us to write:
    +

    +
    co_spawn(executor,
    +    echo(std::move(socket)),
    +    detached);
    +
    +

    +
    instead of:
    +

    +
    co_spawn(executor,
    +    [socket = std::move(socket)]() mutable
    +    {
    +      return echo(std::move(socket));
    +    },
    +    detached);
    +
    +

    +
    +

    +
  • +
  • + Added a new constructor overload to use_awaitable_t's + default executor adapter, to enable conversion between executor types. +
  • +
  • + Added support for using detached_t + as a default completion token, by adding members as_default_on() and as_default_on_t<>. +
  • +
  • + Added a move constructor to ssl::stream<>. +
  • +
  • + Changed ssl::stream<> + write operations to linearise gather-write buffer sequences. +
  • +
  • + Added compile-time detection of the deprecated asio_handler_invoke + hook. This hook was deprecated with the introduction of the Networking + TS trait associated_executor + and function get_associated_executor(). Compiling an application with ASIO_NO_DEPRECATED will now trigger a + compile error if any handler implements the asio_handler_invoke + hook. +
  • +
  • + Added compile-time detection of the deprecated asio_handler_allocate + and asio_handle_deallocate + hooks. These hooks were deprecated with the introduction of the Networking + TS trait associated_allocator + and function get_associated_allocator(). Compiling an application with ASIO_NO_DEPRECATED will now trigger a + compile error if any handler implements the asio_handler_allocate + or asio_handler_deallocate + hooks. +
  • +
  • + Implemented a number of performance optimisations, including: +
      +
    • + Specialising single-buffer operations to use recv + rather than recvmsg, + send rather than + sendmsg, read rather than readv, and write + rather than writev. +
    • +
    • + Lightening the reference counting overhead of the polymorphic wrapper + executor. +
    • +
    • + Returning from system call operation wrappers as early as possible, + and only accessing errno + and error codes when on an error path. +
    • +
    • + Applying additional optimisations if a "native" I/O executor + (such as io_context::exeutor_type) + is detected. +
    • +
    +
  • +
  • +

    + Added source location support to handler tracking. The new ASIO_HANDLER_LOCATION((file_name, + line, + function_name)) + macro may be used to inform the handler tracking mechanism of a source + location. This macro declares an object that is placed on the stack. Then, + when an asynchronous operation is launched with location information, it + outputs lines using the <action> + n^m, prior to the n*m line that signifies + the beginning of the asynchronous operation. For example: +

    +
      @asio|1589423304.861944|>7|ec=system:0,bytes_transferred=5
    +  @asio|1589423304.861952|7^8|in 'async_write' (...../../include/asio/impl/write.hpp:330)
    +  @asio|1589423304.861952|7^8|called from 'do_write' (handler_tracking/async_tcp_echo_server.cpp:62)
    +  @asio|1589423304.861952|7^8|called from 'operator()' (handler_tracking/async_tcp_echo_server.cpp:51)
    +  @asio|1589423304.861952|7*8|socket@0x7ff61c008230.async_send
    +  @asio|1589423304.861975|.8|non_blocking_send,ec=system:0,bytes_transferred=5
    +  @asio|1589423304.861980|<7|
    +

    +
    If std::source_location or std::experimental::source_location + are available, the use_awaitable_t + token (when default-constructed or used as a default completion token) + will also cause handler tracking to output a source location for each newly + created asynchronous operation. A use_awaitable_t + object may also be explicitly constructed with location information. +

    +
  • +
  • + Implemented various improvements to the handlerviz.pl + tool. +
      +
    • + Add nodes for pending handlers at bottom of graph, outlined in red. +
    • +
    • + Display source location in a tooltip on the edge label (for SVG). +
    • +
    • + Use invisible nodes to enforce order to keep related control flow + vertical. +
    • +
    +
  • +
  • +

    + Added the handlerlive.pl tool, which processes handler + tracking output to produce a list of "live" handlers. Live handlers + are those that are associated with pending asynchronous operations, as + well as handlers that are currently executing. For example: +

    +
    cat output.txt | perl handlerlive.pl
    +
    +

    + or: +

    +
    perl handerlive.pl < output.txt
    +
    +

    + or: +

    +
    perl handlerlive.pl output.txt
    +
    +

    +
    +

    +
  • +
  • +

    + Added the handlertree.pl tool, which filters handler + tracking output to include only those events in the tree that produced + the nominated handlers. For example, to filter the output to include only + the events associated with handlers 123, + 456, and their predecessors: +

    +
      cat output.txt | perl handlertree.pl 123 456
    +

    + or: +

    +
      perl handlertree.pl 123 456 < output.txt
    +

    +
    This script may be combined with handerlive.pl and handlerviz.pl + to produce a graph of the "live" asynchronous operation chains. + For example: +

    +
      cat output.txt | \
    +    perl handlertree.pl perl handlerlive.pl output.txt | \
    +    perl handlerviz.pl | \
    +    dot -Tsvg > output.svg
    +

    +
    +

    +
  • +
  • + Added changes for clang-based Embarcadero C++ compilers. +
  • +
  • + Fixed a deadlock that can occur when multiple threads concurrently initialise + the Windows I/O completion port backend. +
  • +
  • + Fixed async_compose to + work with copyable handlers when passed by lvalue. +
  • +
  • + Fixed completion signature deduction in co_spawn. +
  • +
  • + Removed a spurious Executor + base class from the executor_binder + implementation. +
  • +
  • + Various fixes and improvements in the documentation and examples. +
  • +
+

+ + Asio + 1.16.1 +

+
    +
  • + Fixed compatibility with C++20 concept syntax. +
  • +
  • + Marked the POSIX descriptor classes' move constructors as noexcept. +
  • +
  • + Added the ssl::host_name_verification class, which is + a drop-in replacement for ssl::rfc2818_verification. + The ssl::rfc2818_verification class has been marked + as deprecated. As a consequence of this change, SSL support now depends + on functions that were introduced in OpenSSL 1.0.2. +
  • +
  • + Added an ssl::context constructor to take ownership + of a native handle. +
  • +
  • + Changed C++ language version detection with gcc to use + __cplusplus macro. +
  • +
  • + Fixed a work counting issue in the asynchronous resolve operation for endpoints. +
  • +
  • + Fixed the strand<> + converting constructors and assignment operators. +
  • +
  • + Ensured that resolvers are restarted correctly after a fork. +
  • +
  • + Fixed compatibility with the current NetBSD release. +
  • +
  • + Removed spurious handler requirement checks in some async_read + overloads. +
  • +
  • + Changed the ssl::context class to propagate non-EOF errors + from the add_certificate_authority + function. +
  • +
  • + Fixed a Windows-specific thread_pool + destructor hang that occurred when the pool had an associated I/O object. +
  • +
  • + Changed the select reactor to recreate the "self + pipe trick" sockets on error. This addresses an issue on some versions + of Windows, where these sockets are discconected after a system sleep. +
  • +
  • + Fixed a compile error in the buffered streams due to the lack of reference + collapsing in C++98. +
  • +
  • + Changed the priority_scheduler + example to demonstrate calls to shutdown() and destroy(). +
  • +
  • + Removed some unnecessary null pointer checks. +
  • +
  • + Changed Windows platform detection to recognise TV titles as Windows apps. +
  • +
  • + Added some emscripten compatibility patches. +
  • +
  • + Fixed a compile error in the use_awaitable_t::as_default_on + function. +
  • +
  • + Changed all uses of the boost.bind placeholders to use the boost::placeholders namespace. +
  • +
  • + Fixed a potential compile error in the async_compose + implementation due to incorrect overload selection. +
  • +
  • + Suppressed some non-virtual destructor warnings. +
  • +
  • + Various documentation fixes and improvements. +
  • +
+

+ + Asio + 1.16.0 +

+
    +
  • + Changed the async_initiate + helper function to automatically deduce its return type. This is enabled + for C++11 or later. +
  • +
  • + Changed all asynchronous operations to use automatically deduced return + types. This allows completion token implementations to incorporate the + asynchronous operation initiation into the initiating function's return + type, without type erasure. Note that C++14 or later is required to support + completion tokens that use per-operation return type deduction. For C++11 + or earlier, a completion token's async_result specialisation must still + provide the nested typedef return_type. +
  • +
  • + Introduced three new concepts to support async_initiate. +
      +
    • + completion_signature<T>: Checks if T + is a signature of the form R(Args...). +
    • +
    • + completion_handler_for<T, Signature>: Checks if T + is usable as a completion handler with the specified signature. +
    • +
    • + completion_token_for<T, Signature>: Checks if T + is a completion token that can be used with async_initiate and the + specified signature. +
    • +
    • + For backward compatibility with pre-concepts C++, the macros (BOOST_)ASIO_COMPLETION_SIGNATURE, + (BOOST_)ASIO_COMPLETION_HANDLER_FOR, + and (BOOST_)ASIO_COMPLETION_TOKEN_FOR + are provided. These macros expand to typename + when concepts are unsupported. +
    • +
    +
  • +
  • +

    + Added the nested template type rebind_executor + to all I/O object types, as a way to generically rebind them to use alternative + I/O executors. For example: +

    +
    using my_socket_type = tcp::socket::rebind_executor<my_executor_type>::other;
    +
    +

    +
    +

    +
  • +
  • + Changed the asynchronous operations' initiation function objects to report + their associated I/O executor via the nested type executor_type + and member function get_executor(). Note that the presence of executor_type and get_executor() should be treated as optional, and consequently + it may be preferable to access them via the associated_executor + trait and the get_associated_executor() helper function. +
  • +
  • +

    + Added the default_completion_token + trait, so that every I/O executor type now has an associated default completion + token type. This trait may be used in asynchronous operation declarations + as follows: +

    +
    template <
    +    typename IoObject,
    +    typename CompletionToken =
    +      typename default_completion_token<
    +        typename IoObject::executor_type
    +      >::type
    +  >
    +auto async_xyz(
    +    IoObject& io_object,
    +    CompletionToken&& token =
    +      typename default_completion_token<
    +        typename IoObject::executor_type
    +      >::type{}
    +  );
    +
    +

    +
    If not specialised, this trait type is void, + meaning no default completion token type is available for the given I/O + executor. +

    +
  • +
  • +

    + Specialised the default_completion_token + trait for the use_awaitable + completion token, so that it may be used as shown in the following example: +

    +
    auto socket = use_awaitable.as_default_on(tcp::socket(my_context));
    +// ...
    +co_await socket.async_connect(my_endpoint); // Defaults to use_awaitable.
    +
    +

    +
    In this example, the type of the socket + object is transformed from tcp::socket + to have an I/O executor with the default completion token set to use_awaitable. Alternatively, the socket + type may be computed directly: +

    +
    using tcp_socket = use_awaitable_t<>::as_default_on_t<tcp::socket>;
    +tcp_socket socket(my_context);
    +// ...
    +co_await socket.async_connect(my_endpoint); // Defaults to use_awaitable.
    +
    +

    +
    +

    +
  • +
  • + Added missing async_initiate + to the Windows-specific I/O objects' asynchronous operations. +
  • +
  • +

    + Ensured that the executor type is propagated to newly accepted sockets. + When synchronously or asynchronously accepting a new connection, but without + specifying an executor or execution context, the accept operation will + now correctly propagate the executor type from the acceptor to the socket. + For example, if your acceptor type is: +

    +
    basic_socket_acceptor<ip::tcp, my_executor_type>
    +
    +

    +
    then your accepted socket type will be: +

    +
    basic_stream_socket<ip::tcp, my_executor_type>
    +
    +

    +
    +

    +
  • +
  • + Changed to require that Protocol + copy and move operations never throw. +
  • +
  • + Changed to require that Endpoint + default constructor and move operations never throw. +
  • +
  • + Added the noexcept qualifier + to protocol accessors. +
  • +
  • + Added the noexcept qualifier + to socket move constructors. +
  • +
  • + Fixed issues associated with opening serial ports on Windows: +
      +
    • + Use the correct constant to initialise the RTS control flag. +
    • +
    • + Specify a default baud rate (9600). +
    • +
    +
  • +
  • + Fixed a lost "outstanding work count" that can occur when an + asynchronous accept operation is automatically restarted. +
  • +
+

+ + Asio + 1.14.1 +

+
    +
  • + Improved performance slightly by eliminating a redundant move construction + when completed handlers are dispatched. +
  • +
  • + Eliminated a compiler warning by annotating a case + fall-through in the free function connect() implementation. +
  • +
  • + Fixed the is_*_buffer_sequence detection traits for + user-defined sequence types. +
  • +
  • + Fixed some Windows-specific warnings about an incompatible pointer cast + when obtaining the CancelIoEx + entry point. +
  • +
  • + Changed to automatically set the defaults when opening a serial port on + Windows. +
  • +
  • + Changed the serial port get_option() member function to be const. +
  • +
  • + Fixed a name hiding issue with the WinRT stream-oriented socket backend's + shutdown function. +
  • +
  • + Applied a minor fix to the documentation for is_dynamic_buffer. +
  • +
  • + Added some support for Haiku OS. +
  • +
  • + Added wolfSSL compatability. +
  • +
  • + Changed to require C++17 or later for coroutines TS support with clang. +
  • +
  • + Fixed a doxygen generation problem in the tutorial. +
  • +
+

+ + Asio + 1.14.0 +

+
    +
  • + Improved I/O object performance by adding runtime detection of native I/O + executors when using the polymorphic executor wrapper. +
  • +
  • + Changed I/O object move constructors so that the executor is copied, not + moved. This ensures that the moved-from I/O object is left in the same + state as if constructed with a valid executor but without a resource. +
  • +
  • + On Windows, fixed an issue where global object destructors were not being + run. +
  • +
  • + Fixed move-based async_accept + between sockets with different executor types. +
  • +
+

+ + Asio + 1.13.0 +

+
    +
  • + Added custom I/O executor support to I/O objects. +
      +
    • + All I/O objects now have an additional Executor + template parameter. This template parameter defaults to the asio::executor type (the polymorphic + executor wrapper) but can be used to specify a user-defined executor + type. +
    • +
    • + I/O objects' constructors and functions that previously took an + asio::io_context& + now accept either an Executor + or a reference to a concrete ExecutionContext + (such as asio::io_context or asio::thread_pool). +
    • +
    • +

      + Note: One potential source of breakage in existing user code is when + reusing an I/O object's io_context + for constructing another I/O object, as in: +

      +
      asio::steady_timer my_timer(my_socket.get_executor().context());
      +
      +

      +
      To fix this, either construct the second I/O object using + the first I/O object's executor:
      +

      +
      asio::steady_timer my_timer(my_socket.get_executor());
      +
      +

      +
      or otherwise explicitly pass the io_context:
      +

      +
      asio::steady_timer my_timer(my_io_context);
      +
      +

      +
      +

      +
    • +
    • + The previously deprecated get_io_context + and get_io_service + member functions have now been removed. +
    • +
    • + The previously deprecated service template parameters, and the corresponding + classes, have now been removed. +
    • +
    +
  • +
  • + Added a new async_result + form with an initiate static + member function. +
      +
    • +

      + The async_result + template now supports a new form: +

      +
      template <typename CompletionToken, typename Signature>
      +struct async_result
      +{
      +  typedef /* ... */ return_type;
      +
      +  template <typename Initiation,
      +      typename RawCompletionToken,
      +      typename... Args>
      +  static return_type initiate(
      +      Initiation&& initiation,
      +      RawCompletionToken&& token,
      +      Args&&... args);
      +};
      +
      +

      +
      +

      +
    • +
    • + The initiate member + function must: (a) transform the token into a completion handler + object handler; (b) + cause the invocation of the function object initiation + as if by calling std::forward<Initiation>(initiation)(std::move(handler), std::forward<Args>(args)...). Note that the invocation of + initiation may be + deferred (e.g. lazily evaluated), in which case initiation + and args must be + decay-copied and moved as required. +
    • +
    • + A helper function template async_initiate + has also been added as a wrapper for the invocation of async_result<>::initiate. For backward compatibility, + this function supports both the old and new async_result + forms. +
    • +
    • + The composed operations examples have been updated to use async_initiate. +
    • +
    • + The previously deprecated handler_type + trait and single-argument form of async_result + have now been removed. +
    • +
    +
  • +
  • + Updated the Coroutines TS support and promoted it to the asio namespace. +
      +
    • + The awaitable<>, + co_spawn, this_coro, detached, + and redirect_error + facilities have been moved from the asio::experimental + namespace to namespace asio. + As part of this change, the this_coro::token() awaitable has been superseded by + the asio::use_awaitable completion token. +
    • +
    • + Please note that the use_awaitable + and redirect_error + completion tokens work only with asynchronous operations that use + the new form of async_result + with member function initiate. + Furthermore, when using use_awaitable, + please be aware that the asynchronous operation is not initiated + until co_await is + applied to the awaitable<>. +
    • +
    +
  • +
  • + Added a new DynamicBuffer_v2 + concept which is CopyConstructible. +
      +
    • +

      + This change adds a new set of type requirements for dynamic buffers, + DynamicBuffer_v2, + which supports copy construction. These new type requirements enable + dynamic buffers to be used as arguments to user-defined composed + operations, where the same dynamic buffer object is used repeatedly + for multiple underlying operations. For example:
      +

      +
      template <typename DynamicBuffer>
      +void echo_line(tcp::socket& sock, DynamicBuffer buf)
      +{
      +  n = asio::read_until(sock, buf, '\n');
      +  asio::write(sock, buf, asio::transfer_exactly(n));
      +}
      +
      +

      +
      +

      +
    • +
    • + The original DynamicBuffer + type requirements have been renamed to DynamicBuffer_v1. + These requirements continue to be compatible with the Networking + TS. +
    • +
    • + New type traits is_dynamic_buffer_v1 + and is_dynamic_buffer_v2 + have been added to test for conformance to DynamicBuffer_v1 + and DynamicBuffer_v2 + respectively. The existing is_dynamic_buffer + trait has been retained and delegates to is_dynamic_buffer_v1 + (unless ASIO_NO_DYNAMIC_BUFFER_V1 + is explicitly defined, in which case it delegates to is_dynamic_buffer_v2). +
    • +
    • + For convenience, the dynamic_string_buffer + and dynamic_vector_buffer + classes conform to both DynamicBuffer_v1 + and DynamicBuffer_v2 + requirements. +
    • +
    • + When ASIO_NO_DYNAMIC_BUFFER_V1 + is defined, all support for DynamicBuffer_v1 + types and functions is #ifdef-ed out. Support for using basic_streambuf with the read, async_read, + read_until, async_read_until, write, and async_write + functions is also disabled as a consequence. +
    • +
    • + Note: This change should have no impact on existing source code that + simply uses dynamic buffers in conjunction with Asio's composed operations. +
    • +
    +
  • +
  • + Added a new async_compose + function that simplifies the implementation of user-defined asynchronous + operations. +
  • +
  • + Added a make_strand function, + which creates a strand + with a deduced Executor + template argument. +
  • +
  • + Relaxed the completion condition type requirements to only require move-constructibility + rather than copy-constructibility. +
  • +
  • + Added a constructor for local::basic_endpoint + that takes a string_view. +
  • +
  • + Added the noexcept qualifier to various member functions of the ip::address, ip::address_v4, + ip::address_v6, ip::basic_endpoint, + and executor_work_guard + classes. +
  • +
  • + Added the noexcept qualifier to the buffer_sequence_begin + and buffer_sequence_end + functions. +
  • +
  • + Added a new ASIO_DISABLE_VISIBILITY + configuration #define + that allows visibility pragmas to be disabled. (Note: If symbols are hidden, + extra care must be taken to ensure that Asio types are not passed across + shared library API boundaries.) +
  • +
  • + Changed compile-time feature detection to define ASIO_STANDALONE + automatically if C++11 or later is detected. +
      +
    • + Users should define ASIO_ENABLE_BOOST + to explicitly disable standalone mode when compiling with C++11 or + later. +
    • +
    • + The configure script + now defaults to a standalone build unless Boost is specified or detected. +
    • +
    +
  • +
  • + Enabled recycling of the memory used to type-erase a function object with + the polymorphic executor. +
  • +
  • + Changed receive operations to return the correct number of bytes transferred + when truncation (error::message_size) + occurs on a datagram-oriented socket. +
  • +
  • + Fixed multicast behaviour on QNX by automatically applying SO_REUSEPORT when the reuse_address + option is set. +
  • +
  • + Added inclusion of unistd.h when + targeting Haiku OS, to fix feature detection. +
  • +
  • + Added the network_v[46].hpp + headers to the top-level convenience header. +
  • +
  • + Fixed calculation of absolute timeout when the backend uses pthread_cond_timedwait. +
  • +
  • + Changed the range-based asynchronous connect operation to deduce the EndpointSequence iterator type rather + than assume the presence of a const_iterator + typedef. +
  • +
  • + Fixed buffer_sequence_begin + and buffer_sequence_end + to prevent implicit conversion. This change addresses an issue where a + call to buffer_sequence_begin + or buffer_sequence_end + could trigger an implicit conversion to const_buffer + or mutable_buffer. Whenever + this implicit conversion occurred, the return value of buffer_sequence_begin + or buffer_sequence_end + would point to a temporary object. +
  • +
  • + Ensured SSL handshake errors are propagated to the peer before the local + operation completes. +
  • +
  • + Suppressed the eof error + on SSL shutdown as it actually indicates success. +
  • +
  • + Added a fallback error code for when we OpenSSL produces an SSL_ERROR_SYSCALL result without an associated + error. +
  • +
  • + Changed composed asynchronous read and write operations to move, rather + than copy, the buffer sequence objects when the composed operation implementation + is moved. +
  • +
  • + Changed to use <atomic> when targeting apple/clang/libc++ with + recent Xcode versions, even for C++03. This fixes a warning about the deprecation + of OSMemoryBarrier. +
  • +
  • + Fixed compile errors that occur when using the composed read and write + operations with MSVC 11.0, by disabling decltype + support for that compiler. +
  • +
  • + Increased the default value of _WIN32_WINNT + to 0x0601 (Windows 7). +
  • +
  • + Fixed dispatch documentation + to note that it may call the supplied function object in the current thread. +
  • +
  • + Updated post and defer documentation to clarify the the + distinction between them. +
  • +
+

+ + 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 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/3party/asio/doc/asio/index.html b/3party/asio/doc/asio/index.html new file mode 100644 index 0000000..2056d0a --- /dev/null +++ b/3party/asio/doc/asio/index.html @@ -0,0 +1,7511 @@ + + + + + + + + + + + + +
asio C++ library
+
+
+PrevUpHome +
+
+
+
+

+Index

+
+
+

Symbols

+
+
~allocator_binder
+
allocator_binder, allocator_binder::~allocator_binder +
+
~any_completion_executor
+
any_completion_executor, any_completion_executor::~any_completion_executor +
+
~any_completion_handler
+
any_completion_handler, any_completion_handler::~any_completion_handler +
+
~any_executor
+
execution::any_executor, execution::any_executor::~any_executor +
+
~any_io_executor
+
any_io_executor, any_io_executor::~any_io_executor +
+
~awaitable
+
awaitable, awaitable::~awaitable +
+
~bad_address_cast
+
ip::bad_address_cast, ip::bad_address_cast::~bad_address_cast +
+
~basic_channel
+
experimental::basic_channel, experimental::basic_channel::~basic_channel +
+
~basic_concurrent_channel
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::~basic_concurrent_channel +
+
~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_descriptor
+
posix::basic_descriptor, posix::basic_descriptor::~basic_descriptor +
+
~basic_executor_type
+
+
io_context::basic_executor_type, io_context::basic_executor_type::~basic_executor_type +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::~basic_executor_type +
+
+
~basic_file
+
basic_file, basic_file::~basic_file +
+
~basic_io_object
+
basic_io_object, basic_io_object::~basic_io_object +
+
~basic_overlapped_handle
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::~basic_overlapped_handle +
+
~basic_random_access_file
+
basic_random_access_file, basic_random_access_file::~basic_random_access_file +
+
~basic_raw_socket
+
basic_raw_socket, basic_raw_socket::~basic_raw_socket +
+
~basic_readable_pipe
+
basic_readable_pipe, basic_readable_pipe::~basic_readable_pipe +
+
~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_serial_port
+
basic_serial_port, basic_serial_port::~basic_serial_port +
+
~basic_signal_set
+
basic_signal_set, basic_signal_set::~basic_signal_set +
+
~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_file
+
basic_stream_file, basic_stream_file::~basic_stream_file +
+
~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_writable_pipe
+
basic_writable_pipe, basic_writable_pipe::~basic_writable_pipe +
+
~buffer_registration
+
buffer_registration, buffer_registration::~buffer_registration +
+
~cancellation_signal
+
cancellation_signal, cancellation_signal::~cancellation_signal +
+
~cancellation_slot_binder
+
cancellation_slot_binder, cancellation_slot_binder::~cancellation_slot_binder +
+
~context
+
ssl::context, ssl::context::~context +
+
~context_base
+
ssl::context_base, ssl::context_base::~context_base +
+
~coro
+
experimental::coro, experimental::coro::~coro +
+
~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 +
+
~file_base
+
file_base, file_base::~file_base +
+
~immediate_executor_binder
+
immediate_executor_binder, immediate_executor_binder::~immediate_executor_binder +
+
~io_context
+
io_context, io_context::~io_context +
+
~overlapped_ptr
+
windows::overlapped_ptr, windows::overlapped_ptr::~overlapped_ptr +
+
~promise
+
experimental::promise, experimental::promise::~promise +
+
~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_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_base
+
signal_set_base, signal_set_base::~signal_set_base +
+
~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::seq_packet_protocol, local::seq_packet_protocol::acceptor +
+
local::stream_protocol, local::stream_protocol::acceptor +
+
+
access_denied
+
error::basic_errors, error::basic_errors +
+
add
+
+
basic_signal_set, basic_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
+
+
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 +
+
all
+
cancellation_type, cancellation_type +
+
allocate
+
+
any_completion_handler_allocator, any_completion_handler_allocator::allocate +
+
recycling_allocator, recycling_allocator::allocate +
+
+
allocator_binder, allocator_binder +
+
allocator_binder, allocator_binder::allocator_binder +
+
allocator_t
+
execution::allocator_t, execution::allocator_t::allocator_t +
+
allocator_type
+
+
allocator_binder, allocator_binder::allocator_type +
+
buffer_registration, buffer_registration::allocator_type +
+
experimental::use_coro_t, experimental::use_coro_t::allocator_type +
+
experimental::use_promise_t, experimental::use_promise_t::allocator_type +
+
use_future_t, use_future_t::allocator_type +
+
+
allowed
+
execution::blocking_adaptation_t, execution::blocking_adaptation_t::allowed +
+
allowed_t
+
execution::blocking_adaptation_t::allowed_t, execution::blocking_adaptation_t::allowed_t::allowed_t +
+
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 +
+
always
+
execution::blocking_t, execution::blocking_t::always +
+
always_t
+
execution::blocking_t::always_t, execution::blocking_t::always_t::always_t +
+
any
+
+
ip::address_v4, ip::address_v4::any +
+
ip::address_v6, ip::address_v6::any +
+
+
any_completion_executor, any_completion_executor +
+
any_completion_executor, any_completion_executor::any_completion_executor +
+
any_completion_handler, any_completion_handler +
+
any_completion_handler, any_completion_handler::any_completion_handler +
+
any_completion_handler_allocator, any_completion_handler_allocator +
+
+
any_completion_handler_allocator, any_completion_handler_allocator::any_completion_handler_allocator +
+
any_completion_handler_allocator< + void, Signatures...>, any_completion_handler_allocator< + void, Signatures...>::any_completion_handler_allocator +
+
+
any_completion_handler_allocator::rebind, any_completion_handler_allocator::rebind +
+
any_completion_handler_allocator< + void, Signatures...>, any_completion_handler_allocator< + void, Signatures...> +
+
any_completion_handler_allocator< + void, Signatures...>::rebind, any_completion_handler_allocator< + void, Signatures...>::rebind +
+
any_executor
+
execution::any_executor, execution::any_executor::any_executor +
+
any_io_executor, any_io_executor +
+
any_io_executor, any_io_executor::any_io_executor +
+
append, append +
+
+
basic_file, basic_file::append +
+
basic_random_access_file, basic_random_access_file::append +
+
basic_stream_file, basic_stream_file::append +
+
file_base, file_base::append +
+
+
append_t, append_t +
+
append_t, append_t::append_t +
+
argument_type
+
+
allocator_binder, allocator_binder::argument_type +
+
cancellation_slot_binder, cancellation_slot_binder::argument_type +
+
executor_binder, executor_binder::argument_type +
+
immediate_executor_binder, immediate_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_file, basic_file::assign +
+
basic_random_access_file, basic_random_access_file::assign +
+
basic_raw_socket, basic_raw_socket::assign +
+
basic_readable_pipe, basic_readable_pipe::assign +
+
basic_seq_packet_socket, basic_seq_packet_socket::assign +
+
basic_serial_port, basic_serial_port::assign +
+
basic_socket, basic_socket::assign +
+
basic_socket_acceptor, basic_socket_acceptor::assign +
+
basic_stream_file, basic_stream_file::assign +
+
basic_stream_socket, basic_stream_socket::assign +
+
basic_writable_pipe, basic_writable_pipe::assign +
+
cancellation_slot, cancellation_slot::assign +
+
error_code, error_code::assign +
+
posix::basic_descriptor, posix::basic_descriptor::assign +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::assign +
+
windows::basic_object_handle, windows::basic_object_handle::assign +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::assign +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::assign +
+
windows::basic_stream_handle, windows::basic_stream_handle::assign +
+
+
associated_allocator, associated_allocator +
+
associated_allocator< + reference_wrapper< T >, Allocator >, associated_allocator< + reference_wrapper< T >, Allocator > +
+
associated_cancellation_slot, associated_cancellation_slot +
+
associated_cancellation_slot< + reference_wrapper< T >, CancellationSlot >, associated_cancellation_slot< + reference_wrapper< T >, CancellationSlot > +
+
associated_executor, associated_executor +
+
associated_executor< + reference_wrapper< T >, Executor >, associated_executor< + reference_wrapper< T >, Executor > +
+
associated_immediate_executor, associated_immediate_executor +
+
associated_immediate_executor< + reference_wrapper< T >, Executor >, associated_immediate_executor< + reference_wrapper< T >, Executor > +
+
associator, associator +
+
async_accept
+
basic_socket_acceptor, basic_socket_acceptor::async_accept +
+
async_completion, async_completion +
+
async_completion, async_completion::async_completion +
+
async_compose, async_compose +
+
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_initiate, async_initiate +
+
async_read, async_read +
+
async_read_at, async_read_at +
+
async_read_some
+
+
basic_readable_pipe, basic_readable_pipe::async_read_some +
+
basic_serial_port, basic_serial_port::async_read_some +
+
basic_stream_file, basic_stream_file::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::basic_stream_descriptor, posix::basic_stream_descriptor::async_read_some +
+
ssl::stream, ssl::stream::async_read_some +
+
windows::basic_stream_handle, windows::basic_stream_handle::async_read_some +
+
+
async_read_some_at
+
+
basic_random_access_file, basic_random_access_file::async_read_some_at +
+
windows::basic_random_access_handle, windows::basic_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 +
+
experimental::basic_channel, experimental::basic_channel::async_receive +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::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 +
+
async_result< + std::packaged_task< Result(Args...)>, Signature >, async_result< + std::packaged_task< Result(Args...)>, Signature >::async_result +
+
+
async_result< + basic_yield_context< Executor >, Signature >, async_result< + basic_yield_context< Executor >, Signature > +
+
async_result< + std::packaged_task< Result(Args...)>, Signature >, async_result< + std::packaged_task< Result(Args...)>, Signature > +
+
async_resume
+
experimental::coro, experimental::coro::async_resume +
+
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 +
+
experimental::basic_channel, experimental::basic_channel::async_send +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::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_signal_set, basic_signal_set::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 +
+
experimental::parallel_group, experimental::parallel_group::async_wait +
+
experimental::ranged_parallel_group, experimental::ranged_parallel_group::async_wait +
+
posix::basic_descriptor, posix::basic_descriptor::async_wait +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::async_wait +
+
windows::basic_object_handle, windows::basic_object_handle::async_wait +
+
+
async_write, async_write +
+
async_write_at, async_write_at +
+
async_write_some
+
+
basic_serial_port, basic_serial_port::async_write_some +
+
basic_stream_file, basic_stream_file::async_write_some +
+
basic_stream_socket, basic_stream_socket::async_write_some +
+
basic_writable_pipe, basic_writable_pipe::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::basic_stream_descriptor, posix::basic_stream_descriptor::async_write_some +
+
ssl::stream, ssl::stream::async_write_some +
+
windows::basic_stream_handle, windows::basic_stream_handle::async_write_some +
+
+
async_write_some_at
+
+
basic_random_access_file, basic_random_access_file::async_write_some_at +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::async_write_some_at +
+
+
as_default_on
+
+
as_tuple_t, as_tuple_t::as_default_on +
+
deferred_t, deferred_t::as_default_on +
+
detached_t, detached_t::as_default_on +
+
experimental::as_single_t, experimental::as_single_t::as_default_on +
+
experimental::use_coro_t, experimental::use_coro_t::as_default_on +
+
experimental::use_promise_t, experimental::use_promise_t::as_default_on +
+
use_awaitable_t, use_awaitable_t::as_default_on +
+
+
as_single_t
+
experimental::as_single_t, experimental::as_single_t::as_single_t +
+
as_tuple, as_tuple +
+
as_tuple_t, as_tuple_t +
+
as_tuple_t, as_tuple_t::as_tuple_t +
+
as_tuple_t::default_constructor_tag, as_tuple_t::default_constructor_tag +
+
as_tuple_t::executor_with_default, as_tuple_t::executor_with_default +
+
at
+
buffer_registration, buffer_registration::at +
+
attach
+
thread_pool, thread_pool::attach +
+
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, awaitable +
+
awaitable, awaitable::awaitable +
+
+
+
+

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::bad_executor +
+
execution::bad_executor, execution::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_channel
+
experimental::basic_channel, experimental::basic_channel::basic_channel +
+
basic_concurrent_channel
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::basic_concurrent_channel +
+
basic_datagram_socket, basic_datagram_socket +
+
basic_datagram_socket, basic_datagram_socket::basic_datagram_socket +
+
basic_datagram_socket::rebind_executor, basic_datagram_socket::rebind_executor +
+
basic_deadline_timer, basic_deadline_timer +
+
basic_deadline_timer, basic_deadline_timer::basic_deadline_timer +
+
basic_deadline_timer::rebind_executor, basic_deadline_timer::rebind_executor +
+
basic_descriptor
+
posix::basic_descriptor, posix::basic_descriptor::basic_descriptor +
+
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_executor_type
+
+
io_context::basic_executor_type, io_context::basic_executor_type::basic_executor_type +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::basic_executor_type +
+
+
basic_file, basic_file +
+
basic_file, basic_file::basic_file +
+
basic_file::rebind_executor, basic_file::rebind_executor +
+
basic_io_object, basic_io_object +
+
basic_io_object, basic_io_object::basic_io_object +
+
basic_object_handle
+
windows::basic_object_handle, windows::basic_object_handle::basic_object_handle +
+
basic_overlapped_handle
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::basic_overlapped_handle +
+
basic_random_access_file, basic_random_access_file +
+
basic_random_access_file, basic_random_access_file::basic_random_access_file +
+
basic_random_access_file::rebind_executor, basic_random_access_file::rebind_executor +
+
basic_random_access_handle
+
windows::basic_random_access_handle, windows::basic_random_access_handle::basic_random_access_handle +
+
basic_raw_socket, basic_raw_socket +
+
basic_raw_socket, basic_raw_socket::basic_raw_socket +
+
basic_raw_socket::rebind_executor, basic_raw_socket::rebind_executor +
+
basic_readable_pipe, basic_readable_pipe +
+
basic_readable_pipe, basic_readable_pipe::basic_readable_pipe +
+
basic_readable_pipe::rebind_executor, basic_readable_pipe::rebind_executor +
+
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_seq_packet_socket +
+
basic_seq_packet_socket::rebind_executor, basic_seq_packet_socket::rebind_executor +
+
basic_serial_port, basic_serial_port +
+
basic_serial_port, basic_serial_port::basic_serial_port +
+
basic_serial_port::rebind_executor, basic_serial_port::rebind_executor +
+
basic_signal_set, basic_signal_set +
+
basic_signal_set, basic_signal_set::basic_signal_set +
+
basic_signal_set::rebind_executor, basic_signal_set::rebind_executor +
+
basic_socket, basic_socket +
+
basic_socket, basic_socket::basic_socket +
+
basic_socket::rebind_executor, basic_socket::rebind_executor +
+
basic_socket_acceptor, basic_socket_acceptor +
+
basic_socket_acceptor, basic_socket_acceptor::basic_socket_acceptor +
+
basic_socket_acceptor::rebind_executor, basic_socket_acceptor::rebind_executor +
+
basic_socket_iostream, 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_socket_streambuf +
+
basic_streambuf, basic_streambuf +
+
basic_streambuf, basic_streambuf::basic_streambuf +
+
basic_streambuf_ref, basic_streambuf_ref +
+
basic_streambuf_ref, basic_streambuf_ref::basic_streambuf_ref +
+
basic_stream_descriptor
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::basic_stream_descriptor +
+
basic_stream_file, basic_stream_file +
+
basic_stream_file, basic_stream_file::basic_stream_file +
+
basic_stream_file::rebind_executor, basic_stream_file::rebind_executor +
+
basic_stream_handle
+
windows::basic_stream_handle, windows::basic_stream_handle::basic_stream_handle +
+
basic_stream_socket, basic_stream_socket +
+
basic_stream_socket, basic_stream_socket::basic_stream_socket +
+
basic_stream_socket::rebind_executor, basic_stream_socket::rebind_executor +
+
basic_system_executor, basic_system_executor +
+
basic_system_executor, basic_system_executor::basic_system_executor +
+
basic_waitable_timer, basic_waitable_timer +
+
basic_waitable_timer, basic_waitable_timer::basic_waitable_timer +
+
basic_waitable_timer::rebind_executor, basic_waitable_timer::rebind_executor +
+
basic_writable_pipe, basic_writable_pipe +
+
basic_writable_pipe, basic_writable_pipe::basic_writable_pipe +
+
basic_writable_pipe::rebind_executor, basic_writable_pipe::rebind_executor +
+
basic_yield_context, 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 +
+
buffer_registration, buffer_registration::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_allocator, bind_allocator +
+
bind_cancellation_slot, bind_cancellation_slot +
+
bind_executor, bind_executor +
+
bind_immediate_executor, bind_immediate_executor +
+
blocking_adaptation_t
+
execution::blocking_adaptation_t, execution::blocking_adaptation_t::blocking_adaptation_t +
+
blocking_t
+
execution::blocking_t, execution::blocking_t::blocking_t +
+
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 +
+
+
const_registered_buffer, const_registered_buffer::buffer +
+
mutable_registered_buffer, mutable_registered_buffer::buffer +
+
+
buffered_read_stream, buffered_read_stream +
+
buffered_read_stream, buffered_read_stream::buffered_read_stream +
+
buffered_stream, buffered_stream +
+
buffered_stream, buffered_stream::buffered_stream +
+
buffered_write_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::buffers_iterator +
+
buffer_cast, buffer_cast +
+
buffer_copy, buffer_copy +
+
buffer_literals::operator""_buf, buffer_literals::operator""_buf +
+
buffer_registration, buffer_registration +
+
buffer_registration, buffer_registration::buffer_registration +
+
buffer_sequence_begin, buffer_sequence_begin +
+
buffer_sequence_end, buffer_sequence_end +
+
buffer_size, buffer_size +
+
bulk_execute
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::bulk_execute +
+
bulk_guarantee_t
+
execution::bulk_guarantee_t, execution::bulk_guarantee_t::bulk_guarantee_t +
+
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::basic_descriptor, posix::basic_descriptor::bytes_readable +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::bytes_readable +
+
posix::descriptor_base, posix::descriptor_base::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

+
+
cancel
+
+
basic_datagram_socket, basic_datagram_socket::cancel +
+
basic_deadline_timer, basic_deadline_timer::cancel +
+
basic_file, basic_file::cancel +
+
basic_random_access_file, basic_random_access_file::cancel +
+
basic_raw_socket, basic_raw_socket::cancel +
+
basic_readable_pipe, basic_readable_pipe::cancel +
+
basic_seq_packet_socket, basic_seq_packet_socket::cancel +
+
basic_serial_port, basic_serial_port::cancel +
+
basic_signal_set, basic_signal_set::cancel +
+
basic_socket, basic_socket::cancel +
+
basic_socket_acceptor, basic_socket_acceptor::cancel +
+
basic_stream_file, basic_stream_file::cancel +
+
basic_stream_socket, basic_stream_socket::cancel +
+
basic_waitable_timer, basic_waitable_timer::cancel +
+
basic_writable_pipe, basic_writable_pipe::cancel +
+
experimental::basic_channel, experimental::basic_channel::cancel +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::cancel +
+
experimental::promise, experimental::promise::cancel +
+
ip::basic_resolver, ip::basic_resolver::cancel +
+
posix::basic_descriptor, posix::basic_descriptor::cancel +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::cancel +
+
windows::basic_object_handle, windows::basic_object_handle::cancel +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::cancel +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::cancel +
+
windows::basic_stream_handle, windows::basic_stream_handle::cancel +
+
+
cancellation_filter, cancellation_filter +
+
cancellation_signal, cancellation_signal +
+
cancellation_signal, cancellation_signal::cancellation_signal +
+
cancellation_slot, cancellation_slot +
+
cancellation_slot, cancellation_slot::cancellation_slot +
+
cancellation_slot_binder, cancellation_slot_binder +
+
cancellation_slot_binder, cancellation_slot_binder::cancellation_slot_binder +
+
cancellation_slot_type
+
+
basic_yield_context, basic_yield_context::cancellation_slot_type +
+
cancellation_slot_binder, cancellation_slot_binder::cancellation_slot_type +
+
+
cancellation_state, cancellation_state +
+
cancellation_state, cancellation_state::cancellation_state +
+
cancellation_state_t
+
this_coro::cancellation_state_t, this_coro::cancellation_state_t::cancellation_state_t +
+
cancellation_type, cancellation_type +
+
cancellation_type_t, cancellation_type_t +
+
cancelled
+
+
basic_yield_context, basic_yield_context::cancelled +
+
cancellation_state, cancellation_state::cancelled +
+
+
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 +
+
+
can_prefer, can_prefer +
+
can_query, can_query +
+
can_require, can_require +
+
can_require_concept, can_require_concept +
+
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 +
+
experimental::basic_channel, experimental::basic_channel::capacity +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::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
+
+
buffer_registration, buffer_registration::cbegin +
+
ip::basic_resolver_results, ip::basic_resolver_results::cbegin +
+
+
cend
+
+
buffer_registration, buffer_registration::cend +
+
ip::basic_resolver_results, ip::basic_resolver_results::cend +
+
+
channel_cancelled
+
experimental::error::channel_errors, experimental::error::channel_errors +
+
channel_closed
+
experimental::error::channel_errors, experimental::error::channel_errors +
+
character_size
+
serial_port_base::character_size, serial_port_base::character_size::character_size +
+
clear
+
+
basic_signal_set, basic_signal_set::clear +
+
cancellation_slot, cancellation_slot::clear +
+
cancellation_state, cancellation_state::clear +
+
error_code, error_code::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_file, basic_file::close +
+
basic_random_access_file, basic_random_access_file::close +
+
basic_raw_socket, basic_raw_socket::close +
+
basic_readable_pipe, basic_readable_pipe::close +
+
basic_seq_packet_socket, basic_seq_packet_socket::close +
+
basic_serial_port, basic_serial_port::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_file, basic_stream_file::close +
+
basic_stream_socket, basic_stream_socket::close +
+
basic_writable_pipe, basic_writable_pipe::close +
+
buffered_read_stream, buffered_read_stream::close +
+
buffered_stream, buffered_stream::close +
+
buffered_write_stream, buffered_write_stream::close +
+
experimental::basic_channel, experimental::basic_channel::close +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::close +
+
posix::basic_descriptor, posix::basic_descriptor::close +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::close +
+
windows::basic_object_handle, windows::basic_object_handle::close +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::close +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::close +
+
windows::basic_stream_handle, windows::basic_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 +
+
completed
+
experimental::promise, experimental::promise::completed +
+
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 +
+
+
completion_signature_of, completion_signature_of +
+
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 +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::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 +
+
connect_pipe, connect_pipe +
+
consign, consign +
+
consign_t, consign_t +
+
consign_t, consign_t::consign_t +
+
const_buffer, const_buffer +
+
const_buffer, const_buffer::const_buffer +
+
const_buffers_1, 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
+
+
buffer_registration, buffer_registration::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 +
+
const_registered_buffer, const_registered_buffer +
+
const_registered_buffer, const_registered_buffer::const_registered_buffer +
+
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
+
+
any_completion_executor, any_completion_executor::context +
+
any_io_executor, any_io_executor::context +
+
basic_system_executor, basic_system_executor::context +
+
execution::any_executor, execution::any_executor::context +
+
execution_context::service, execution_context::service::context +
+
executor, executor::context +
+
io_context::basic_executor_type, io_context::basic_executor_type::context +
+
io_context::strand, io_context::strand::context +
+
ssl::context, ssl::context::context +
+
strand, strand::context +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::context +
+
+
continuation
+
execution::relationship_t, execution::relationship_t::continuation +
+
continuation_t
+
execution::relationship_t::continuation_t, execution::relationship_t::continuation_t::continuation_t +
+
coro
+
experimental::coro, experimental::coro::coro +
+
coroutine, coroutine +
+
coroutine, coroutine::coroutine +
+
count_type
+
io_context, io_context::count_type +
+
co_spawn, co_spawn +
+
create
+
+
basic_file, basic_file::create +
+
basic_random_access_file, basic_random_access_file::create +
+
basic_stream_file, basic_stream_file::create +
+
file_base, file_base::create +
+
+
+
+
+

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 +
+
const_registered_buffer, const_registered_buffer::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 +
+
mutable_registered_buffer, mutable_registered_buffer::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 +
+
deallocate
+
+
any_completion_handler_allocator, any_completion_handler_allocator::deallocate +
+
recycling_allocator, recycling_allocator::deallocate +
+
+
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 +
+
+
decltype
+
+
associated_allocator, associated_allocator::decltype +
+
associated_cancellation_slot, associated_cancellation_slot::decltype +
+
associated_executor, associated_executor::decltype +
+
associated_immediate_executor, associated_immediate_executor::decltype +
+
+
default_buffer_size
+
+
buffered_read_stream, buffered_read_stream::default_buffer_size +
+
buffered_write_stream, buffered_write_stream::default_buffer_size +
+
+
default_completion_token, default_completion_token +
+
default_completion_token_type
+
+
as_tuple_t::executor_with_default, as_tuple_t::executor_with_default::default_completion_token_type +
+
deferred_t::executor_with_default, deferred_t::executor_with_default::default_completion_token_type +
+
detached_t::executor_with_default, detached_t::executor_with_default::default_completion_token_type +
+
experimental::as_single_t::executor_with_default, experimental::as_single_t::executor_with_default::default_completion_token_type +
+
experimental::use_coro_t::executor_with_default, experimental::use_coro_t::executor_with_default::default_completion_token_type +
+
experimental::use_promise_t::executor_with_default, experimental::use_promise_t::executor_with_default::default_completion_token_type +
+
use_awaitable_t::executor_with_default, use_awaitable_t::executor_with_default::default_completion_token_type +
+
+
default_workarounds
+
+
ssl::context, ssl::context::default_workarounds +
+
ssl::context_base, ssl::context_base::default_workarounds +
+
+
defer, defer +
+
+
basic_system_executor, basic_system_executor::defer +
+
executor, executor::defer +
+
io_context::basic_executor_type, io_context::basic_executor_type::defer +
+
io_context::strand, io_context::strand::defer +
+
strand, strand::defer +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::defer +
+
+
deferred, deferred +
+
deferred_async_operation, deferred_async_operation +
+
+
deferred_async_operation, deferred_async_operation::deferred_async_operation +
+
deferred_async_operation< + deferred_signatures< Signatures...>, Initiation, InitArgs...>, deferred_async_operation< + deferred_signatures< Signatures...>, Initiation, InitArgs...>::deferred_async_operation +
+
+
deferred_async_operation< + deferred_signatures< Signatures...>, Initiation, InitArgs...>, deferred_async_operation< + deferred_signatures< Signatures...>, Initiation, InitArgs...> +
+
deferred_conditional, deferred_conditional +
+
deferred_conditional, deferred_conditional::deferred_conditional +
+
deferred_function, deferred_function +
+
deferred_function, deferred_function::deferred_function +
+
deferred_init_tag, deferred_init_tag +
+
deferred_noop, deferred_noop +
+
deferred_sequence, deferred_sequence +
+
deferred_sequence, deferred_sequence::deferred_sequence +
+
deferred_signatures, deferred_signatures +
+
deferred_t, deferred_t +
+
deferred_t, deferred_t::deferred_t +
+
deferred_t::executor_with_default, deferred_t::executor_with_default +
+
deferred_values, deferred_values +
+
deferred_values, deferred_values::deferred_values +
+
deferred_values::initiate, deferred_values::initiate +
+
dereference
+
+
ip::basic_resolver_iterator, ip::basic_resolver_iterator::dereference +
+
ip::basic_resolver_results, ip::basic_resolver_results::dereference +
+
+
destroy
+
+
execution_context, execution_context::destroy +
+
io_context, io_context::destroy +
+
system_context, system_context::destroy +
+
thread_pool, thread_pool::destroy +
+
+
detached, detached +
+
detached_t, detached_t +
+
detached_t, detached_t::detached_t +
+
detached_t::executor_with_default, detached_t::executor_with_default +
+
detail::index_sequence_for
+
+
deferred_async_operation, deferred_async_operation::detail::index_sequence_for +
+
deferred_async_operation< + deferred_signatures< Signatures...>, Initiation, InitArgs...>, deferred_async_operation< + deferred_signatures< Signatures...>, Initiation, InitArgs...>::detail::index_sequence_for +
+
deferred_values, deferred_values::detail::index_sequence_for +
+
+
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 +
+
+
disable_cancellation, disable_cancellation +
+
disallowed
+
execution::blocking_adaptation_t, execution::blocking_adaptation_t::disallowed +
+
disallowed_t
+
execution::blocking_adaptation_t::disallowed_t, execution::blocking_adaptation_t::disallowed_t::disallowed_t +
+
dispatch, dispatch +
+
+
basic_system_executor, basic_system_executor::dispatch +
+
executor, executor::dispatch +
+
io_context, io_context::dispatch +
+
io_context::basic_executor_type, io_context::basic_executor_type::dispatch +
+
io_context::strand, io_context::strand::dispatch +
+
strand, strand::dispatch +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::dispatch +
+
+
dont_care
+
+
basic_signal_set, basic_signal_set::flags +
+
signal_set_base, signal_set_base::flags +
+
+
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_string_buffer +
+
dynamic_vector_buffer, dynamic_vector_buffer +
+
dynamic_vector_buffer, dynamic_vector_buffer::dynamic_vector_buffer +
+
+
+
+

E

+
+
ec_
+
redirect_error_t, redirect_error_t::ec_ +
+
emit
+
cancellation_signal, cancellation_signal::emit +
+
emplace
+
cancellation_slot, cancellation_slot::emplace +
+
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 +
+
+
enable_partial_cancellation, enable_partial_cancellation +
+
enable_terminal_cancellation, enable_terminal_cancellation +
+
enable_total_cancellation, enable_total_cancellation +
+
end
+
+
buffers_iterator, buffers_iterator::end +
+
buffer_registration, buffer_registration::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::seq_packet_protocol, local::seq_packet_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::clear, error::clear +
+
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_category, error_category +
+
error_code, error_code +
+
error_code, error_code::error_code +
+
error_code::unspecified_bool_type_t, error_code::unspecified_bool_type_t +
+
even
+
serial_port_base::parity, serial_port_base::parity::type +
+
exclusive
+
+
basic_file, basic_file::exclusive +
+
basic_random_access_file, basic_random_access_file::exclusive +
+
basic_stream_file, basic_stream_file::exclusive +
+
file_base, file_base::exclusive +
+
+
execute
+
+
any_completion_executor, any_completion_executor::execute +
+
any_io_executor, any_io_executor::execute +
+
basic_system_executor, basic_system_executor::execute +
+
execution::any_executor, execution::any_executor::execute +
+
io_context::basic_executor_type, io_context::basic_executor_type::execute +
+
strand, strand::execute +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::execute +
+
+
execution::allocator, execution::allocator +
+
execution::allocator_t, execution::allocator_t +
+
execution::any_executor, execution::any_executor +
+
execution::bad_executor, execution::bad_executor +
+
execution::blocking, execution::blocking +
+
execution::blocking_adaptation, execution::blocking_adaptation +
+
execution::blocking_adaptation_t, execution::blocking_adaptation_t +
+
execution::blocking_adaptation_t::allowed_t, execution::blocking_adaptation_t::allowed_t +
+
execution::blocking_adaptation_t::disallowed_t, execution::blocking_adaptation_t::disallowed_t +
+
execution::blocking_t, execution::blocking_t +
+
execution::blocking_t::always_t, execution::blocking_t::always_t +
+
execution::blocking_t::never_t, execution::blocking_t::never_t +
+
execution::blocking_t::possibly_t, execution::blocking_t::possibly_t +
+
execution::bulk_execute, execution::bulk_execute +
+
execution::bulk_guarantee, execution::bulk_guarantee +
+
execution::bulk_guarantee_t, execution::bulk_guarantee_t +
+
execution::bulk_guarantee_t::parallel_t, execution::bulk_guarantee_t::parallel_t +
+
execution::bulk_guarantee_t::sequenced_t, execution::bulk_guarantee_t::sequenced_t +
+
execution::bulk_guarantee_t::unsequenced_t, execution::bulk_guarantee_t::unsequenced_t +
+
execution::can_bulk_execute, execution::can_bulk_execute +
+
execution::can_connect, execution::can_connect +
+
execution::can_execute, execution::can_execute +
+
execution::can_schedule, execution::can_schedule +
+
execution::can_set_done, execution::can_set_done +
+
execution::can_set_error, execution::can_set_error +
+
execution::can_set_value, execution::can_set_value +
+
execution::can_start, execution::can_start +
+
execution::can_submit, execution::can_submit +
+
execution::connect, execution::connect +
+
execution::connect_result, execution::connect_result +
+
execution::context, execution::context +
+
execution::context_as, execution::context_as +
+
execution::context_as_t, execution::context_as_t +
+
execution::context_t, execution::context_t +
+
execution::execute, execution::execute +
+
execution::executor_index, execution::executor_index +
+
execution::executor_shape, execution::executor_shape +
+
execution::invocable_archetype, execution::invocable_archetype +
+
execution::is_executor, execution::is_executor +
+
execution::is_executor_of, execution::is_executor_of +
+
execution::is_nothrow_receiver_of, execution::is_nothrow_receiver_of +
+
execution::is_operation_state, execution::is_operation_state +
+
execution::is_receiver, execution::is_receiver +
+
execution::is_receiver_of, execution::is_receiver_of +
+
execution::is_scheduler, execution::is_scheduler +
+
execution::is_sender, execution::is_sender +
+
execution::is_sender_to, execution::is_sender_to +
+
execution::is_typed_sender, execution::is_typed_sender +
+
execution::mapping, execution::mapping +
+
execution::mapping_t, execution::mapping_t +
+
execution::mapping_t::new_thread_t, execution::mapping_t::new_thread_t +
+
execution::mapping_t::other_t, execution::mapping_t::other_t +
+
execution::mapping_t::thread_t, execution::mapping_t::thread_t +
+
execution::occupancy, execution::occupancy +
+
execution::occupancy_t, execution::occupancy_t +
+
execution::outstanding_work, execution::outstanding_work +
+
execution::outstanding_work_t, execution::outstanding_work_t +
+
execution::outstanding_work_t::tracked_t, execution::outstanding_work_t::tracked_t +
+
execution::outstanding_work_t::untracked_t, execution::outstanding_work_t::untracked_t +
+
execution::prefer_only, execution::prefer_only +
+
execution::receiver_invocation_error, execution::receiver_invocation_error +
+
execution::relationship, execution::relationship +
+
execution::relationship_t, execution::relationship_t +
+
execution::relationship_t::continuation_t, execution::relationship_t::continuation_t +
+
execution::relationship_t::fork_t, execution::relationship_t::fork_t +
+
execution::schedule, execution::schedule +
+
execution::sender_base, execution::sender_base +
+
execution::sender_traits, execution::sender_traits +
+
execution::set_done, execution::set_done +
+
execution::set_error, execution::set_error +
+
execution::set_value, execution::set_value +
+
execution::start, execution::start +
+
execution::submit, execution::submit +
+
execution_context, execution_context +
+
execution_context, execution_context::execution_context +
+
execution_context::id, execution_context::id +
+
execution_context::service, execution_context::service +
+
executor, executor +
+
+
executor, executor::executor +
+
thread_pool, thread_pool::executor +
+
+
executor::unspecified_bool_type_t, executor::unspecified_bool_type_t +
+
executor_arg, executor_arg +
+
executor_arg_t, executor_arg_t +
+
executor_arg_t, executor_arg_t::executor_arg_t +
+
executor_binder, executor_binder +
+
executor_binder, executor_binder::executor_binder +
+
executor_t
+
this_coro::executor_t, this_coro::executor_t::executor_t +
+
executor_type
+
+
awaitable, awaitable::executor_type +
+
basic_datagram_socket, basic_datagram_socket::executor_type +
+
basic_deadline_timer, basic_deadline_timer::executor_type +
+
basic_file, basic_file::executor_type +
+
basic_io_object, basic_io_object::executor_type +
+
basic_random_access_file, basic_random_access_file::executor_type +
+
basic_raw_socket, basic_raw_socket::executor_type +
+
basic_readable_pipe, basic_readable_pipe::executor_type +
+
basic_seq_packet_socket, basic_seq_packet_socket::executor_type +
+
basic_serial_port, basic_serial_port::executor_type +
+
basic_signal_set, basic_signal_set::executor_type +
+
basic_socket, basic_socket::executor_type +
+
basic_socket_acceptor, basic_socket_acceptor::executor_type +
+
basic_stream_file, basic_stream_file::executor_type +
+
basic_stream_socket, basic_stream_socket::executor_type +
+
basic_waitable_timer, basic_waitable_timer::executor_type +
+
basic_writable_pipe, basic_writable_pipe::executor_type +
+
basic_yield_context, basic_yield_context::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::basic_channel, experimental::basic_channel::executor_type +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::executor_type +
+
io_context, io_context::executor_type +
+
ip::basic_resolver, ip::basic_resolver::executor_type +
+
posix::basic_descriptor, posix::basic_descriptor::executor_type +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::executor_type +
+
ssl::stream, ssl::stream::executor_type +
+
system_context, system_context::executor_type +
+
thread_pool, thread_pool::executor_type +
+
windows::basic_object_handle, windows::basic_object_handle::executor_type +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::executor_type +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::executor_type +
+
windows::basic_stream_handle, windows::basic_stream_handle::executor_type +
+
+
executor_with_default
+
+
as_tuple_t::executor_with_default, as_tuple_t::executor_with_default::executor_with_default +
+
deferred_t::executor_with_default, deferred_t::executor_with_default::executor_with_default +
+
detached_t::executor_with_default, detached_t::executor_with_default::executor_with_default +
+
experimental::as_single_t::executor_with_default, experimental::as_single_t::executor_with_default::executor_with_default +
+
experimental::use_coro_t::executor_with_default, experimental::use_coro_t::executor_with_default::executor_with_default +
+
experimental::use_promise_t::executor_with_default, experimental::use_promise_t::executor_with_default::executor_with_default +
+
use_awaitable_t::executor_with_default, use_awaitable_t::executor_with_default::executor_with_default +
+
+
executor_work_guard, executor_work_guard +
+
executor_work_guard, executor_work_guard::executor_work_guard +
+
experimental::as_single, experimental::as_single +
+
experimental::as_single_t, experimental::as_single_t +
+
experimental::as_single_t::default_constructor_tag, experimental::as_single_t::default_constructor_tag +
+
experimental::as_single_t::executor_with_default, experimental::as_single_t::executor_with_default +
+
experimental::awaitable_operators::operator + &&, experimental::awaitable_operators::operator + && +
+
experimental::awaitable_operators::operator||, experimental::awaitable_operators::operator|| +
+
experimental::basic_channel, experimental::basic_channel +
+
experimental::basic_channel::rebind_executor, experimental::basic_channel::rebind_executor +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel +
+
experimental::basic_concurrent_channel::rebind_executor, experimental::basic_concurrent_channel::rebind_executor +
+
experimental::channel_traits, experimental::channel_traits +
+
experimental::channel_traits::container, experimental::channel_traits::container +
+
experimental::channel_traits::rebind, experimental::channel_traits::rebind +
+
experimental::coro, experimental::coro +
+
experimental::coro_traits, experimental::coro_traits +
+
experimental::co_composed, experimental::co_composed +
+
experimental::co_spawn, experimental::co_spawn +
+
experimental::error::channel_category, experimental::error::channel_category +
+
experimental::error::channel_errors, experimental::error::channel_errors +
+
experimental::error::get_channel_category, experimental::error::get_channel_category +
+
experimental::error::make_error_code, experimental::error::make_error_code +
+
experimental::is_async_operation_range, experimental::is_async_operation_range +
+
experimental::is_promise, experimental::is_promise +
+
experimental::is_promise< + promise< Ts...>>, experimental::is_promise< + promise< Ts...>> +
+
experimental::is_promise_v, experimental::is_promise_v +
+
experimental::make_parallel_group, experimental::make_parallel_group +
+
experimental::parallel_group, experimental::parallel_group +
+
experimental::promise, experimental::promise +
+
experimental::promise_value_type, experimental::promise_value_type +
+
experimental::promise_value_type< + T >, experimental::promise_value_type< + T > +
+
experimental::promise_value_type<>, experimental::promise_value_type<> +
+
experimental::ranged_parallel_group, experimental::ranged_parallel_group +
+
experimental::use_coro, experimental::use_coro +
+
experimental::use_coro_t, experimental::use_coro_t +
+
experimental::use_coro_t::executor_with_default, experimental::use_coro_t::executor_with_default +
+
experimental::use_promise, experimental::use_promise +
+
experimental::use_promise_t, experimental::use_promise_t +
+
experimental::use_promise_t::executor_with_default, experimental::use_promise_t::executor_with_default +
+
experimental::wait_for_all, experimental::wait_for_all +
+
experimental::wait_for_one, experimental::wait_for_one +
+
experimental::wait_for_one_error, experimental::wait_for_one_error +
+
experimental::wait_for_one_success, experimental::wait_for_one_success +
+
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::seq_packet_protocol, local::seq_packet_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_base, file_base +
+
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
+
+
allocator_binder, allocator_binder::first_argument_type +
+
cancellation_slot_binder, cancellation_slot_binder::first_argument_type +
+
executor_binder, executor_binder::first_argument_type +
+
immediate_executor_binder, immediate_executor_binder::first_argument_type +
+
+
first_exception
+
multiple_exceptions, multiple_exceptions::first_exception +
+
flags
+
+
basic_file, basic_file::flags +
+
basic_random_access_file, basic_random_access_file::flags +
+
basic_signal_set, basic_signal_set::flags +
+
basic_stream_file, basic_stream_file::flags +
+
file_base, file_base::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 +
+
signal_set_base, signal_set_base::flags +
+
+
flags_t
+
+
basic_signal_set, basic_signal_set::flags_t +
+
signal_set_base, signal_set_base::flags_t +
+
+
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
+
execution::relationship_t, execution::relationship_t::fork +
+
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 +
+
+
fork_t
+
execution::relationship_t::fork_t, execution::relationship_t::fork_t::fork_t +
+
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 +
+
+
function_
+
deferred_function, deferred_function::function_ +
+
+
+
+

G

+
+
generic::basic_endpoint, generic::basic_endpoint +
+
generic::datagram_protocol, generic::datagram_protocol +
+
generic::raw_protocol, generic::raw_protocol +
+
generic::seq_packet_protocol, generic::seq_packet_protocol +
+
generic::stream_protocol, generic::stream_protocol +
+
get
+
+
allocator_binder, allocator_binder::get +
+
associated_allocator< + reference_wrapper< T >, Allocator >, associated_allocator< + reference_wrapper< T >, Allocator >::get +
+
associated_cancellation_slot< + reference_wrapper< T >, CancellationSlot >, associated_cancellation_slot< + reference_wrapper< T >, CancellationSlot >::get +
+
associated_executor< + reference_wrapper< T >, Executor >, associated_executor< + reference_wrapper< T >, Executor >::get +
+
associated_immediate_executor< + reference_wrapper< T >, Executor >, associated_immediate_executor< + reference_wrapper< T >, Executor >::get +
+
async_result, async_result::get +
+
async_result< + std::packaged_task< Result(Args...)>, Signature >, async_result< + std::packaged_task< Result(Args...)>, Signature >::get +
+
cancellation_slot_binder, cancellation_slot_binder::get +
+
executor_binder, executor_binder::get +
+
immediate_executor_binder, immediate_executor_binder::get +
+
windows::overlapped_ptr, windows::overlapped_ptr::get +
+
+
get_allocator
+
+
allocator_binder, allocator_binder::get_allocator +
+
any_completion_handler, any_completion_handler::get_allocator +
+
experimental::coro, experimental::coro::get_allocator +
+
experimental::use_coro_t, experimental::use_coro_t::get_allocator +
+
experimental::use_promise_t, experimental::use_promise_t::get_allocator +
+
use_future_t, use_future_t::get_allocator +
+
+
get_associated_allocator, get_associated_allocator +
+
get_associated_cancellation_slot, get_associated_cancellation_slot +
+
get_associated_executor, get_associated_executor +
+
get_associated_immediate_executor, get_associated_immediate_executor +
+
get_cancellation_slot
+
+
any_completion_handler, any_completion_handler::get_cancellation_slot +
+
basic_yield_context, basic_yield_context::get_cancellation_slot +
+
cancellation_slot_binder, cancellation_slot_binder::get_cancellation_slot +
+
+
get_cancellation_state
+
basic_yield_context, basic_yield_context::get_cancellation_state +
+
get_executor
+
+
basic_datagram_socket, basic_datagram_socket::get_executor +
+
basic_deadline_timer, basic_deadline_timer::get_executor +
+
basic_file, basic_file::get_executor +
+
basic_io_object, basic_io_object::get_executor +
+
basic_random_access_file, basic_random_access_file::get_executor +
+
basic_raw_socket, basic_raw_socket::get_executor +
+
basic_readable_pipe, basic_readable_pipe::get_executor +
+
basic_seq_packet_socket, basic_seq_packet_socket::get_executor +
+
basic_serial_port, basic_serial_port::get_executor +
+
basic_signal_set, basic_signal_set::get_executor +
+
basic_socket, basic_socket::get_executor +
+
basic_socket_acceptor, basic_socket_acceptor::get_executor +
+
basic_stream_file, basic_stream_file::get_executor +
+
basic_stream_socket, basic_stream_socket::get_executor +
+
basic_waitable_timer, basic_waitable_timer::get_executor +
+
basic_writable_pipe, basic_writable_pipe::get_executor +
+
basic_yield_context, basic_yield_context::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::basic_channel, experimental::basic_channel::get_executor +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::get_executor +
+
experimental::coro, experimental::coro::get_executor +
+
io_context, io_context::get_executor +
+
ip::basic_resolver, ip::basic_resolver::get_executor +
+
posix::basic_descriptor, posix::basic_descriptor::get_executor +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::get_executor +
+
ssl::stream, ssl::stream::get_executor +
+
system_context, system_context::get_executor +
+
thread_pool, thread_pool::get_executor +
+
windows::basic_object_handle, windows::basic_object_handle::get_executor +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::get_executor +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::get_executor +
+
windows::basic_stream_handle, windows::basic_stream_handle::get_executor +
+
+
get_immediate_executor
+
immediate_executor_binder, immediate_executor_binder::get_immediate_executor +
+
get_implementation
+
basic_io_object, basic_io_object::get_implementation +
+
get_inner_executor
+
strand, strand::get_inner_executor +
+
get_io_context
+
+
basic_io_object, basic_io_object::get_io_context +
+
io_context::service, io_context::service::get_io_context +
+
io_context::work, io_context::work::get_io_context +
+
+
get_io_service
+
basic_io_object, basic_io_object::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_serial_port, basic_serial_port::get_option +
+
basic_socket, basic_socket::get_option +
+
basic_socket_acceptor, basic_socket_acceptor::get_option +
+
basic_stream_socket, basic_stream_socket::get_option +
+
+
get_service
+
basic_io_object, basic_io_object::get_service +
+
grow
+
+
dynamic_string_buffer, dynamic_string_buffer::grow +
+
dynamic_vector_buffer, dynamic_vector_buffer::grow +
+
+
+
+
+

H

+
+
handler_type
+
async_result< + basic_yield_context< Executor >, Signature >, async_result< + basic_yield_context< Executor >, Signature >::handler_type +
+
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_handler
+
cancellation_slot, cancellation_slot::has_handler +
+
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_name_verification
+
ssl::host_name_verification, ssl::host_name_verification::host_name_verification +
+
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
+
+
const_registered_buffer, const_registered_buffer::id +
+
execution_context::id, execution_context::id::id +
+
mutable_registered_buffer, mutable_registered_buffer::id +
+
+
immediate_executor_binder, immediate_executor_binder +
+
immediate_executor_binder, immediate_executor_binder::immediate_executor_binder +
+
immediate_executor_type
+
immediate_executor_binder, immediate_executor_binder::immediate_executor_type +
+
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_ +
+
+
index_type
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::index_type +
+
initiate
+
+
async_result, async_result::initiate +
+
async_result< + basic_yield_context< Executor >, Signature >, async_result< + basic_yield_context< Executor >, Signature >::initiate +
+
+
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::invalid_service_owner +
+
invoke_receive_cancelled
+
experimental::channel_traits, experimental::channel_traits::invoke_receive_cancelled +
+
invoke_receive_closed
+
experimental::channel_traits, experimental::channel_traits::invoke_receive_closed +
+
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_context +
+
io_context::basic_executor_type, io_context::basic_executor_type +
+
io_context::service, io_context::service +
+
io_context::strand, io_context::strand +
+
io_context::work, io_context::work +
+
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::basic_descriptor, posix::basic_descriptor::io_control +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::io_control +
+
+
io_service, io_service +
+
ip::address, ip::address +
+
ip::address_v4, ip::address_v4 +
+
ip::address_v4_iterator, ip::address_v4_iterator +
+
ip::address_v4_range, ip::address_v4_range +
+
ip::address_v6, ip::address_v6 +
+
ip::address_v6_iterator, ip::address_v6_iterator +
+
ip::address_v6_range, ip::address_v6_range +
+
ip::bad_address_cast, ip::bad_address_cast +
+
ip::basic_address_iterator< + address_v4 >, ip::basic_address_iterator< + address_v4 > +
+
ip::basic_address_iterator< + address_v6 >, ip::basic_address_iterator< + address_v6 > +
+
ip::basic_address_range< + address_v4 >, ip::basic_address_range< + address_v4 > +
+
ip::basic_address_range< + address_v6 >, ip::basic_address_range< + address_v6 > +
+
ip::basic_endpoint, ip::basic_endpoint +
+
ip::basic_resolver, ip::basic_resolver +
+
ip::basic_resolver::rebind_executor, ip::basic_resolver::rebind_executor +
+
ip::basic_resolver_entry, ip::basic_resolver_entry +
+
ip::basic_resolver_iterator, ip::basic_resolver_iterator +
+
ip::basic_resolver_query, ip::basic_resolver_query +
+
ip::basic_resolver_results, ip::basic_resolver_results +
+
ip::host_name, ip::host_name +
+
ip::icmp, ip::icmp +
+
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::network_v4, ip::network_v4 +
+
ip::network_v6, ip::network_v6 +
+
ip::port_type, ip::port_type +
+
ip::resolver_base, ip::resolver_base +
+
ip::resolver_query_base, ip::resolver_query_base +
+
ip::scope_id_type, ip::scope_id_type +
+
ip::tcp, ip::tcp +
+
ip::udp, ip::udp +
+
ip::unicast::hops, ip::unicast::hops +
+
ip::v4_mapped_t, ip::v4_mapped_t +
+
ip::v6_only, ip::v6_only +
+
is_applicable_property, is_applicable_property +
+
is_applicable_property_v
+
+
execution::allocator_t, execution::allocator_t::is_applicable_property_v +
+
execution::blocking_adaptation_t, execution::blocking_adaptation_t::is_applicable_property_v +
+
execution::blocking_adaptation_t::allowed_t, execution::blocking_adaptation_t::allowed_t::is_applicable_property_v +
+
execution::blocking_adaptation_t::disallowed_t, execution::blocking_adaptation_t::disallowed_t::is_applicable_property_v +
+
execution::blocking_t, execution::blocking_t::is_applicable_property_v +
+
execution::blocking_t::always_t, execution::blocking_t::always_t::is_applicable_property_v +
+
execution::blocking_t::never_t, execution::blocking_t::never_t::is_applicable_property_v +
+
execution::blocking_t::possibly_t, execution::blocking_t::possibly_t::is_applicable_property_v +
+
execution::bulk_guarantee_t, execution::bulk_guarantee_t::is_applicable_property_v +
+
execution::bulk_guarantee_t::parallel_t, execution::bulk_guarantee_t::parallel_t::is_applicable_property_v +
+
execution::bulk_guarantee_t::sequenced_t, execution::bulk_guarantee_t::sequenced_t::is_applicable_property_v +
+
execution::bulk_guarantee_t::unsequenced_t, execution::bulk_guarantee_t::unsequenced_t::is_applicable_property_v +
+
execution::context_as_t, execution::context_as_t::is_applicable_property_v +
+
execution::context_t, execution::context_t::is_applicable_property_v +
+
execution::mapping_t, execution::mapping_t::is_applicable_property_v +
+
execution::mapping_t::new_thread_t, execution::mapping_t::new_thread_t::is_applicable_property_v +
+
execution::mapping_t::other_t, execution::mapping_t::other_t::is_applicable_property_v +
+
execution::mapping_t::thread_t, execution::mapping_t::thread_t::is_applicable_property_v +
+
execution::occupancy_t, execution::occupancy_t::is_applicable_property_v +
+
execution::outstanding_work_t, execution::outstanding_work_t::is_applicable_property_v +
+
execution::outstanding_work_t::tracked_t, execution::outstanding_work_t::tracked_t::is_applicable_property_v +
+
execution::outstanding_work_t::untracked_t, execution::outstanding_work_t::untracked_t::is_applicable_property_v +
+
execution::prefer_only, execution::prefer_only::is_applicable_property_v +
+
execution::relationship_t, execution::relationship_t::is_applicable_property_v +
+
execution::relationship_t::continuation_t, execution::relationship_t::continuation_t::is_applicable_property_v +
+
execution::relationship_t::fork_t, execution::relationship_t::fork_t::is_applicable_property_v +
+
+
is_async_operation, is_async_operation +
+
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_connected
+
cancellation_slot, cancellation_slot::is_connected +
+
is_const_buffer_sequence, is_const_buffer_sequence +
+
is_contiguous_iterator, is_contiguous_iterator +
+
is_deferred, is_deferred +
+
is_dynamic_buffer, is_dynamic_buffer +
+
is_dynamic_buffer_v1, is_dynamic_buffer_v1 +
+
is_dynamic_buffer_v2, is_dynamic_buffer_v2 +
+
is_endpoint_sequence, is_endpoint_sequence +
+
is_executor, is_executor +
+
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_match_condition, is_match_condition +
+
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_mutable_buffer_sequence, is_mutable_buffer_sequence +
+
is_noexcept
+
+
experimental::coro, experimental::coro::is_noexcept +
+
experimental::coro_traits, experimental::coro_traits::is_noexcept +
+
+
is_nothrow_prefer, is_nothrow_prefer +
+
is_nothrow_query, is_nothrow_query +
+
is_nothrow_require, is_nothrow_require +
+
is_nothrow_require_concept, is_nothrow_require_concept +
+
is_open
+
+
basic_datagram_socket, basic_datagram_socket::is_open +
+
basic_file, basic_file::is_open +
+
basic_random_access_file, basic_random_access_file::is_open +
+
basic_raw_socket, basic_raw_socket::is_open +
+
basic_readable_pipe, basic_readable_pipe::is_open +
+
basic_seq_packet_socket, basic_seq_packet_socket::is_open +
+
basic_serial_port, basic_serial_port::is_open +
+
basic_socket, basic_socket::is_open +
+
basic_socket_acceptor, basic_socket_acceptor::is_open +
+
basic_stream_file, basic_stream_file::is_open +
+
basic_stream_socket, basic_stream_socket::is_open +
+
basic_writable_pipe, basic_writable_pipe::is_open +
+
experimental::basic_channel, experimental::basic_channel::is_open +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::is_open +
+
experimental::coro, experimental::coro::is_open +
+
posix::basic_descriptor, posix::basic_descriptor::is_open +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::is_open +
+
windows::basic_object_handle, windows::basic_object_handle::is_open +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::is_open +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::is_open +
+
windows::basic_stream_handle, windows::basic_stream_handle::is_open +
+
+
is_parent
+
coroutine, coroutine::is_parent +
+
is_preferable
+
+
execution::allocator_t, execution::allocator_t::is_preferable +
+
execution::blocking_adaptation_t, execution::blocking_adaptation_t::is_preferable +
+
execution::blocking_adaptation_t::allowed_t, execution::blocking_adaptation_t::allowed_t::is_preferable +
+
execution::blocking_adaptation_t::disallowed_t, execution::blocking_adaptation_t::disallowed_t::is_preferable +
+
execution::blocking_t, execution::blocking_t::is_preferable +
+
execution::blocking_t::always_t, execution::blocking_t::always_t::is_preferable +
+
execution::blocking_t::never_t, execution::blocking_t::never_t::is_preferable +
+
execution::blocking_t::possibly_t, execution::blocking_t::possibly_t::is_preferable +
+
execution::bulk_guarantee_t, execution::bulk_guarantee_t::is_preferable +
+
execution::bulk_guarantee_t::parallel_t, execution::bulk_guarantee_t::parallel_t::is_preferable +
+
execution::bulk_guarantee_t::sequenced_t, execution::bulk_guarantee_t::sequenced_t::is_preferable +
+
execution::bulk_guarantee_t::unsequenced_t, execution::bulk_guarantee_t::unsequenced_t::is_preferable +
+
execution::context_as_t, execution::context_as_t::is_preferable +
+
execution::context_t, execution::context_t::is_preferable +
+
execution::mapping_t, execution::mapping_t::is_preferable +
+
execution::mapping_t::new_thread_t, execution::mapping_t::new_thread_t::is_preferable +
+
execution::mapping_t::other_t, execution::mapping_t::other_t::is_preferable +
+
execution::mapping_t::thread_t, execution::mapping_t::thread_t::is_preferable +
+
execution::occupancy_t, execution::occupancy_t::is_preferable +
+
execution::outstanding_work_t, execution::outstanding_work_t::is_preferable +
+
execution::outstanding_work_t::tracked_t, execution::outstanding_work_t::tracked_t::is_preferable +
+
execution::outstanding_work_t::untracked_t, execution::outstanding_work_t::untracked_t::is_preferable +
+
execution::prefer_only, execution::prefer_only::is_preferable +
+
execution::relationship_t, execution::relationship_t::is_preferable +
+
execution::relationship_t::continuation_t, execution::relationship_t::continuation_t::is_preferable +
+
execution::relationship_t::fork_t, execution::relationship_t::fork_t::is_preferable +
+
+
is_read_buffered, is_read_buffered +
+
is_requirable
+
+
execution::allocator_t, execution::allocator_t::is_requirable +
+
execution::blocking_adaptation_t, execution::blocking_adaptation_t::is_requirable +
+
execution::blocking_adaptation_t::allowed_t, execution::blocking_adaptation_t::allowed_t::is_requirable +
+
execution::blocking_adaptation_t::disallowed_t, execution::blocking_adaptation_t::disallowed_t::is_requirable +
+
execution::blocking_t, execution::blocking_t::is_requirable +
+
execution::blocking_t::always_t, execution::blocking_t::always_t::is_requirable +
+
execution::blocking_t::never_t, execution::blocking_t::never_t::is_requirable +
+
execution::blocking_t::possibly_t, execution::blocking_t::possibly_t::is_requirable +
+
execution::bulk_guarantee_t, execution::bulk_guarantee_t::is_requirable +
+
execution::bulk_guarantee_t::parallel_t, execution::bulk_guarantee_t::parallel_t::is_requirable +
+
execution::bulk_guarantee_t::sequenced_t, execution::bulk_guarantee_t::sequenced_t::is_requirable +
+
execution::bulk_guarantee_t::unsequenced_t, execution::bulk_guarantee_t::unsequenced_t::is_requirable +
+
execution::context_as_t, execution::context_as_t::is_requirable +
+
execution::context_t, execution::context_t::is_requirable +
+
execution::mapping_t, execution::mapping_t::is_requirable +
+
execution::mapping_t::new_thread_t, execution::mapping_t::new_thread_t::is_requirable +
+
execution::mapping_t::other_t, execution::mapping_t::other_t::is_requirable +
+
execution::mapping_t::thread_t, execution::mapping_t::thread_t::is_requirable +
+
execution::occupancy_t, execution::occupancy_t::is_requirable +
+
execution::outstanding_work_t, execution::outstanding_work_t::is_requirable +
+
execution::outstanding_work_t::tracked_t, execution::outstanding_work_t::tracked_t::is_requirable +
+
execution::outstanding_work_t::untracked_t, execution::outstanding_work_t::untracked_t::is_requirable +
+
execution::prefer_only, execution::prefer_only::is_requirable +
+
execution::relationship_t, execution::relationship_t::is_requirable +
+
execution::relationship_t::continuation_t, execution::relationship_t::continuation_t::is_requirable +
+
execution::relationship_t::fork_t, execution::relationship_t::fork_t::is_requirable +
+
+
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 +
+
is_write_buffered, is_write_buffered +
+
iterator
+
+
buffer_registration, buffer_registration::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::basic_endpoint, local::basic_endpoint +
+
local::connect_pair, local::connect_pair +
+
local::datagram_protocol, local::datagram_protocol +
+
local::seq_packet_protocol, local::seq_packet_protocol +
+
local::stream_protocol, local::stream_protocol +
+
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_readable_pipe, basic_readable_pipe::lowest_layer +
+
basic_seq_packet_socket, basic_seq_packet_socket::lowest_layer +
+
basic_serial_port, basic_serial_port::lowest_layer +
+
basic_socket, basic_socket::lowest_layer +
+
basic_stream_socket, basic_stream_socket::lowest_layer +
+
basic_writable_pipe, basic_writable_pipe::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::basic_descriptor, posix::basic_descriptor::lowest_layer +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::lowest_layer +
+
ssl::stream, ssl::stream::lowest_layer +
+
windows::basic_object_handle, windows::basic_object_handle::lowest_layer +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::lowest_layer +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::lowest_layer +
+
windows::basic_stream_handle, windows::basic_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_readable_pipe, basic_readable_pipe::lowest_layer_type +
+
basic_seq_packet_socket, basic_seq_packet_socket::lowest_layer_type +
+
basic_serial_port, basic_serial_port::lowest_layer_type +
+
basic_socket, basic_socket::lowest_layer_type +
+
basic_stream_socket, basic_stream_socket::lowest_layer_type +
+
basic_writable_pipe, basic_writable_pipe::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::basic_descriptor, posix::basic_descriptor::lowest_layer_type +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::lowest_layer_type +
+
ssl::stream, ssl::stream::lowest_layer_type +
+
windows::basic_object_handle, windows::basic_object_handle::lowest_layer_type +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::lowest_layer_type +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::lowest_layer_type +
+
windows::basic_stream_handle, windows::basic_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_strand, make_strand +
+
make_work_guard, make_work_guard +
+
mapping_t
+
execution::mapping_t, execution::mapping_t::mapping_t +
+
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 +
+
+
multiple_exceptions, multiple_exceptions +
+
multiple_exceptions, multiple_exceptions::multiple_exceptions +
+
mutable_buffer, mutable_buffer +
+
mutable_buffer, mutable_buffer::mutable_buffer +
+
mutable_buffers_1, 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 +
+
+
mutable_registered_buffer, mutable_registered_buffer +
+
mutable_registered_buffer, mutable_registered_buffer::mutable_registered_buffer +
+
+
+
+

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_file, basic_file::native_handle +
+
basic_random_access_file, basic_random_access_file::native_handle +
+
basic_raw_socket, basic_raw_socket::native_handle +
+
basic_readable_pipe, basic_readable_pipe::native_handle +
+
basic_seq_packet_socket, basic_seq_packet_socket::native_handle +
+
basic_serial_port, basic_serial_port::native_handle +
+
basic_socket, basic_socket::native_handle +
+
basic_socket_acceptor, basic_socket_acceptor::native_handle +
+
basic_stream_file, basic_stream_file::native_handle +
+
basic_stream_socket, basic_stream_socket::native_handle +
+
basic_writable_pipe, basic_writable_pipe::native_handle +
+
posix::basic_descriptor, posix::basic_descriptor::native_handle +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::native_handle +
+
registered_buffer_id, registered_buffer_id::native_handle +
+
ssl::context, ssl::context::native_handle +
+
ssl::stream, ssl::stream::native_handle +
+
ssl::verify_context, ssl::verify_context::native_handle +
+
windows::basic_object_handle, windows::basic_object_handle::native_handle +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::native_handle +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::native_handle +
+
windows::basic_stream_handle, windows::basic_stream_handle::native_handle +
+
+
native_handle_type
+
+
basic_datagram_socket, basic_datagram_socket::native_handle_type +
+
basic_file, basic_file::native_handle_type +
+
basic_random_access_file, basic_random_access_file::native_handle_type +
+
basic_raw_socket, basic_raw_socket::native_handle_type +
+
basic_readable_pipe, basic_readable_pipe::native_handle_type +
+
basic_seq_packet_socket, basic_seq_packet_socket::native_handle_type +
+
basic_serial_port, basic_serial_port::native_handle_type +
+
basic_socket, basic_socket::native_handle_type +
+
basic_socket_acceptor, basic_socket_acceptor::native_handle_type +
+
basic_stream_file, basic_stream_file::native_handle_type +
+
basic_stream_socket, basic_stream_socket::native_handle_type +
+
basic_writable_pipe, basic_writable_pipe::native_handle_type +
+
posix::basic_descriptor, posix::basic_descriptor::native_handle_type +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::native_handle_type +
+
registered_buffer_id, registered_buffer_id::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::basic_object_handle, windows::basic_object_handle::native_handle_type +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::native_handle_type +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::native_handle_type +
+
windows::basic_stream_handle, windows::basic_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::basic_descriptor, posix::basic_descriptor::native_non_blocking +
+
posix::basic_stream_descriptor, posix::basic_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 +
+
never
+
execution::blocking_t, execution::blocking_t::never +
+
never_t
+
execution::blocking_t::never_t, execution::blocking_t::never_t::never_t +
+
new_thread
+
execution::mapping_t, execution::mapping_t::new_thread +
+
new_thread_t
+
execution::mapping_t::new_thread_t, execution::mapping_t::new_thread_t::new_thread_t +
+
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 +
+
+
noexcept
+
+
associated_allocator, associated_allocator::noexcept +
+
associated_cancellation_slot, associated_cancellation_slot::noexcept +
+
associated_executor, associated_executor::noexcept +
+
associated_immediate_executor, associated_immediate_executor::noexcept +
+
+
none
+
+
basic_signal_set, basic_signal_set::flags +
+
cancellation_type, cancellation_type +
+
serial_port_base::flow_control, serial_port_base::flow_control::type +
+
serial_port_base::parity, serial_port_base::parity::type +
+
signal_set_base, signal_set_base::flags +
+
+
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::basic_descriptor, posix::basic_descriptor::non_blocking +
+
posix::basic_stream_descriptor, posix::basic_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_child_stop
+
+
basic_signal_set, basic_signal_set::flags +
+
signal_set_base, signal_set_base::flags +
+
+
no_child_wait
+
+
basic_signal_set, basic_signal_set::flags +
+
signal_set_base, signal_set_base::flags +
+
+
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 +
+
+
null_buffers, null_buffers +
+
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

+
+
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
+
+
basic_system_executor, basic_system_executor::on_work_finished +
+
executor, executor::on_work_finished +
+
io_context::basic_executor_type, io_context::basic_executor_type::on_work_finished +
+
io_context::strand, io_context::strand::on_work_finished +
+
strand, strand::on_work_finished +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::on_work_finished +
+
+
on_work_started
+
+
basic_system_executor, basic_system_executor::on_work_started +
+
executor, executor::on_work_started +
+
io_context::basic_executor_type, io_context::basic_executor_type::on_work_started +
+
io_context::strand, io_context::strand::on_work_started +
+
strand, strand::on_work_started +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::on_work_started +
+
+
open
+
+
basic_datagram_socket, basic_datagram_socket::open +
+
basic_file, basic_file::open +
+
basic_random_access_file, basic_random_access_file::open +
+
basic_raw_socket, basic_raw_socket::open +
+
basic_seq_packet_socket, basic_seq_packet_socket::open +
+
basic_serial_port, basic_serial_port::open +
+
basic_socket, basic_socket::open +
+
basic_socket_acceptor, basic_socket_acceptor::open +
+
basic_stream_file, basic_stream_file::open +
+
basic_stream_socket, basic_stream_socket::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 bool
+
+
any_completion_executor, any_completion_executor::operator + bool +
+
any_completion_handler, any_completion_handler::operator + bool +
+
any_io_executor, any_io_executor::operator + bool +
+
execution::any_executor, execution::any_executor::operator + bool +
+
experimental::coro, experimental::coro::operator + bool +
+
+
operator co_await
+
experimental::coro, experimental::coro::operator + co_await +
+
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!
+
+
any_completion_handler, any_completion_handler::operator! +
+
error_code, error_code::operator! +
+
+
operator!=
+
+
any_completion_executor, any_completion_executor::operator!= +
+
any_completion_handler, any_completion_handler::operator!= +
+
any_completion_handler_allocator, any_completion_handler_allocator::operator!= +
+
any_completion_handler_allocator< + void, Signatures...>, any_completion_handler_allocator< + void, Signatures...>::operator!= +
+
any_io_executor, any_io_executor::operator!= +
+
basic_system_executor, basic_system_executor::operator!= +
+
buffers_iterator, buffers_iterator::operator!= +
+
cancellation_slot, cancellation_slot::operator!= +
+
error_category, error_category::operator!= +
+
error_code, error_code::operator!= +
+
execution::any_executor, execution::any_executor::operator!= +
+
execution::blocking_adaptation_t, execution::blocking_adaptation_t::operator!= +
+
execution::blocking_t, execution::blocking_t::operator!= +
+
execution::bulk_guarantee_t, execution::bulk_guarantee_t::operator!= +
+
execution::mapping_t, execution::mapping_t::operator!= +
+
execution::outstanding_work_t, execution::outstanding_work_t::operator!= +
+
execution::relationship_t, execution::relationship_t::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::basic_executor_type, io_context::basic_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!= +
+
recycling_allocator, recycling_allocator::operator!= +
+
recycling_allocator< + void >, recycling_allocator< + void >::operator!= +
+
registered_buffer_id, registered_buffer_id::operator!= +
+
strand, strand::operator!= +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::operator!= +
+
+
operator()
+
+
allocator_binder, allocator_binder::operator() +
+
any_completion_handler, any_completion_handler::operator() +
+
cancellation_filter, cancellation_filter::operator() +
+
cancellation_slot_binder, cancellation_slot_binder::operator() +
+
deferred_async_operation, deferred_async_operation::operator() +
+
deferred_async_operation< + deferred_signatures< Signatures...>, Initiation, InitArgs...>, deferred_async_operation< + deferred_signatures< Signatures...>, Initiation, InitArgs...>::operator() +
+
deferred_conditional, deferred_conditional::operator() +
+
deferred_function, deferred_function::operator() +
+
deferred_noop, deferred_noop::operator() +
+
deferred_sequence, deferred_sequence::operator() +
+
deferred_t, deferred_t::operator() +
+
deferred_values, deferred_values::operator() +
+
deferred_values::initiate, deferred_values::initiate::operator() +
+
execution::invocable_archetype, execution::invocable_archetype::operator() +
+
executor_binder, executor_binder::operator() +
+
experimental::coro, experimental::coro::operator() +
+
experimental::promise, experimental::promise::operator() +
+
experimental::wait_for_all, experimental::wait_for_all::operator() +
+
experimental::wait_for_one, experimental::wait_for_one::operator() +
+
experimental::wait_for_one_error, experimental::wait_for_one_error::operator() +
+
experimental::wait_for_one_success, experimental::wait_for_one_success::operator() +
+
immediate_executor_binder, immediate_executor_binder::operator() +
+
ssl::host_name_verification, ssl::host_name_verification::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+ +
+
const_registered_buffer, const_registered_buffer::operator+ +
+
mutable_buffer, mutable_buffer::operator+ +
+
mutable_buffers_1, mutable_buffers_1::operator+ +
+
mutable_registered_buffer, mutable_registered_buffer::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+= +
+
const_registered_buffer, const_registered_buffer::operator+= +
+
mutable_buffer, mutable_buffer::operator+= +
+
mutable_buffers_1, mutable_buffers_1::operator+= +
+
mutable_registered_buffer, mutable_registered_buffer::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=
+
+
any_completion_executor, any_completion_executor::operator= +
+
any_completion_handler, any_completion_handler::operator= +
+
any_io_executor, any_io_executor::operator= +
+
awaitable, awaitable::operator= +
+
basic_datagram_socket, basic_datagram_socket::operator= +
+
basic_deadline_timer, basic_deadline_timer::operator= +
+
basic_file, basic_file::operator= +
+
basic_io_object, basic_io_object::operator= +
+
basic_random_access_file, basic_random_access_file::operator= +
+
basic_raw_socket, basic_raw_socket::operator= +
+
basic_readable_pipe, basic_readable_pipe::operator= +
+
basic_seq_packet_socket, basic_seq_packet_socket::operator= +
+
basic_serial_port, basic_serial_port::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_file, basic_stream_file::operator= +
+
basic_stream_socket, basic_stream_socket::operator= +
+
basic_waitable_timer, basic_waitable_timer::operator= +
+
basic_writable_pipe, basic_writable_pipe::operator= +
+
buffer_registration, buffer_registration::operator= +
+
execution::any_executor, execution::any_executor::operator= +
+
executor, executor::operator= +
+
experimental::basic_channel, experimental::basic_channel::operator= +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::operator= +
+
experimental::coro, experimental::coro::operator= +
+
generic::basic_endpoint, generic::basic_endpoint::operator= +
+
io_context::basic_executor_type, io_context::basic_executor_type::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::basic_descriptor, posix::basic_descriptor::operator= +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::operator= +
+
ssl::context, ssl::context::operator= +
+
ssl::stream, ssl::stream::operator= +
+
strand, strand::operator= +
+
system_error, system_error::operator= +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::operator= +
+
windows::basic_object_handle, windows::basic_object_handle::operator= +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::operator= +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::operator= +
+
windows::basic_stream_handle, windows::basic_stream_handle::operator= +
+
+
operator==
+
+
any_completion_executor, any_completion_executor::operator== +
+
any_completion_handler, any_completion_handler::operator== +
+
any_completion_handler_allocator, any_completion_handler_allocator::operator== +
+
any_completion_handler_allocator< + void, Signatures...>, any_completion_handler_allocator< + void, Signatures...>::operator== +
+
any_io_executor, any_io_executor::operator== +
+
basic_system_executor, basic_system_executor::operator== +
+
buffers_iterator, buffers_iterator::operator== +
+
cancellation_slot, cancellation_slot::operator== +
+
error_category, error_category::operator== +
+
error_code, error_code::operator== +
+
execution::any_executor, execution::any_executor::operator== +
+
execution::blocking_adaptation_t, execution::blocking_adaptation_t::operator== +
+
execution::blocking_t, execution::blocking_t::operator== +
+
execution::bulk_guarantee_t, execution::bulk_guarantee_t::operator== +
+
execution::mapping_t, execution::mapping_t::operator== +
+
execution::outstanding_work_t, execution::outstanding_work_t::operator== +
+
execution::relationship_t, execution::relationship_t::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::basic_executor_type, io_context::basic_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== +
+
recycling_allocator, recycling_allocator::operator== +
+
recycling_allocator< + void >, recycling_allocator< + void >::operator== +
+
registered_buffer_id, registered_buffer_id::operator== +
+
strand, strand::operator== +
+
thread_pool::basic_executor_type, thread_pool::basic_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[] +
+
buffer_registration, buffer_registration::operator[] +
+
use_future_t, use_future_t::operator[] +
+
+
operator|, operator| +
+
options
+
+
ssl::context, ssl::context::options +
+
ssl::context_base, ssl::context_base::options +
+
+
other
+
+
any_completion_handler_allocator::rebind, any_completion_handler_allocator::rebind::other +
+
any_completion_handler_allocator< + void, Signatures...>::rebind, any_completion_handler_allocator< + void, Signatures...>::rebind::other +
+
basic_datagram_socket::rebind_executor, basic_datagram_socket::rebind_executor::other +
+
basic_deadline_timer::rebind_executor, basic_deadline_timer::rebind_executor::other +
+
basic_file::rebind_executor, basic_file::rebind_executor::other +
+
basic_random_access_file::rebind_executor, basic_random_access_file::rebind_executor::other +
+
basic_raw_socket::rebind_executor, basic_raw_socket::rebind_executor::other +
+
basic_readable_pipe::rebind_executor, basic_readable_pipe::rebind_executor::other +
+
basic_seq_packet_socket::rebind_executor, basic_seq_packet_socket::rebind_executor::other +
+
basic_serial_port::rebind_executor, basic_serial_port::rebind_executor::other +
+
basic_signal_set::rebind_executor, basic_signal_set::rebind_executor::other +
+
basic_socket::rebind_executor, basic_socket::rebind_executor::other +
+
basic_socket_acceptor::rebind_executor, basic_socket_acceptor::rebind_executor::other +
+
basic_stream_file::rebind_executor, basic_stream_file::rebind_executor::other +
+
basic_stream_socket::rebind_executor, basic_stream_socket::rebind_executor::other +
+
basic_waitable_timer::rebind_executor, basic_waitable_timer::rebind_executor::other +
+
basic_writable_pipe::rebind_executor, basic_writable_pipe::rebind_executor::other +
+
execution::mapping_t, execution::mapping_t::other +
+
experimental::basic_channel::rebind_executor, experimental::basic_channel::rebind_executor::other +
+
experimental::basic_concurrent_channel::rebind_executor, experimental::basic_concurrent_channel::rebind_executor::other +
+
experimental::channel_traits::rebind, experimental::channel_traits::rebind::other +
+
ip::basic_resolver::rebind_executor, ip::basic_resolver::rebind_executor::other +
+
posix::basic_descriptor::rebind_executor, posix::basic_descriptor::rebind_executor::other +
+
posix::basic_stream_descriptor::rebind_executor, posix::basic_stream_descriptor::rebind_executor::other +
+
recycling_allocator::rebind, recycling_allocator::rebind::other +
+
recycling_allocator< + void >::rebind, recycling_allocator< + void >::rebind::other +
+
windows::basic_object_handle::rebind_executor, windows::basic_object_handle::rebind_executor::other +
+
windows::basic_overlapped_handle::rebind_executor, windows::basic_overlapped_handle::rebind_executor::other +
+
windows::basic_random_access_handle::rebind_executor, windows::basic_random_access_handle::rebind_executor::other +
+
windows::basic_stream_handle::rebind_executor, windows::basic_stream_handle::rebind_executor::other +
+
+
otherwise
+
deferred_conditional, deferred_conditional::otherwise +
+
other_t
+
execution::mapping_t::other_t, execution::mapping_t::other_t::other_t +
+
outstanding_work_t
+
execution::outstanding_work_t, execution::outstanding_work_t::outstanding_work_t +
+
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_ptr
+
windows::overlapped_ptr, windows::overlapped_ptr::overlapped_ptr +
+
owns_work
+
executor_work_guard, executor_work_guard::owns_work +
+
+
+
+

P

+
+
parallel
+
execution::bulk_guarantee_t, execution::bulk_guarantee_t::parallel +
+
parallel_group
+
experimental::parallel_group, experimental::parallel_group::parallel_group +
+
parallel_t
+
execution::bulk_guarantee_t::parallel_t, execution::bulk_guarantee_t::parallel_t::parallel_t +
+
parity
+
serial_port_base::parity, serial_port_base::parity::parity +
+
partial
+
cancellation_type, cancellation_type +
+
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 +
+
polymorphic_query_result_type
+
+
execution::blocking_adaptation_t, execution::blocking_adaptation_t::polymorphic_query_result_type +
+
execution::blocking_adaptation_t::allowed_t, execution::blocking_adaptation_t::allowed_t::polymorphic_query_result_type +
+
execution::blocking_adaptation_t::disallowed_t, execution::blocking_adaptation_t::disallowed_t::polymorphic_query_result_type +
+
execution::blocking_t, execution::blocking_t::polymorphic_query_result_type +
+
execution::blocking_t::always_t, execution::blocking_t::always_t::polymorphic_query_result_type +
+
execution::blocking_t::never_t, execution::blocking_t::never_t::polymorphic_query_result_type +
+
execution::blocking_t::possibly_t, execution::blocking_t::possibly_t::polymorphic_query_result_type +
+
execution::bulk_guarantee_t, execution::bulk_guarantee_t::polymorphic_query_result_type +
+
execution::bulk_guarantee_t::parallel_t, execution::bulk_guarantee_t::parallel_t::polymorphic_query_result_type +
+
execution::bulk_guarantee_t::sequenced_t, execution::bulk_guarantee_t::sequenced_t::polymorphic_query_result_type +
+
execution::bulk_guarantee_t::unsequenced_t, execution::bulk_guarantee_t::unsequenced_t::polymorphic_query_result_type +
+
execution::context_as_t, execution::context_as_t::polymorphic_query_result_type +
+
execution::context_t, execution::context_t::polymorphic_query_result_type +
+
execution::mapping_t, execution::mapping_t::polymorphic_query_result_type +
+
execution::mapping_t::new_thread_t, execution::mapping_t::new_thread_t::polymorphic_query_result_type +
+
execution::mapping_t::other_t, execution::mapping_t::other_t::polymorphic_query_result_type +
+
execution::mapping_t::thread_t, execution::mapping_t::thread_t::polymorphic_query_result_type +
+
execution::occupancy_t, execution::occupancy_t::polymorphic_query_result_type +
+
execution::outstanding_work_t, execution::outstanding_work_t::polymorphic_query_result_type +
+
execution::outstanding_work_t::tracked_t, execution::outstanding_work_t::tracked_t::polymorphic_query_result_type +
+
execution::outstanding_work_t::untracked_t, execution::outstanding_work_t::untracked_t::polymorphic_query_result_type +
+
execution::prefer_only, execution::prefer_only::polymorphic_query_result_type +
+
execution::relationship_t, execution::relationship_t::polymorphic_query_result_type +
+
execution::relationship_t::continuation_t, execution::relationship_t::continuation_t::polymorphic_query_result_type +
+
execution::relationship_t::fork_t, execution::relationship_t::fork_t::polymorphic_query_result_type +
+
+
port
+
ip::basic_endpoint, ip::basic_endpoint::port +
+
posix::basic_descriptor, posix::basic_descriptor +
+
posix::basic_descriptor::rebind_executor, posix::basic_descriptor::rebind_executor +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor +
+
posix::basic_stream_descriptor::rebind_executor, posix::basic_stream_descriptor::rebind_executor +
+
posix::descriptor, posix::descriptor +
+
posix::descriptor_base, posix::descriptor_base +
+
posix::stream_descriptor, posix::stream_descriptor +
+
possibly
+
execution::blocking_t, execution::blocking_t::possibly +
+
possibly_t
+
execution::blocking_t::possibly_t, execution::blocking_t::possibly_t::possibly_t +
+
post, post +
+
+
basic_system_executor, basic_system_executor::post +
+
executor, executor::post +
+
io_context, io_context::post +
+
io_context::basic_executor_type, io_context::basic_executor_type::post +
+
io_context::strand, io_context::strand::post +
+
strand, strand::post +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::post +
+
+
prefer, prefer +
+
+
any_completion_executor, any_completion_executor::prefer +
+
any_io_executor, any_io_executor::prefer +
+
execution::any_executor, execution::any_executor::prefer +
+
strand, strand::prefer +
+
+
prefer_result, prefer_result +
+
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 +
+
+
prepend, prepend +
+
prepend_t, prepend_t +
+
prepend_t, prepend_t::prepend_t +
+
promise
+
experimental::promise, experimental::promise::promise +
+
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::seq_packet_protocol, local::seq_packet_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, query +
+
+
any_completion_executor, any_completion_executor::query +
+
any_io_executor, any_io_executor::query +
+
basic_system_executor, basic_system_executor::query, basic_system_executor::query +
+
execution::any_executor, execution::any_executor::query +
+
io_context::basic_executor_type, io_context::basic_executor_type::query, io_context::basic_executor_type::query +
+
ip::basic_resolver, ip::basic_resolver::query +
+
strand, strand::query +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::query, thread_pool::basic_executor_type::query +
+
+
query_result, query_result +
+
+
+
+

R

+
+
random_access_file, random_access_file +
+
ranged_parallel_group
+
experimental::ranged_parallel_group, experimental::ranged_parallel_group::ranged_parallel_group +
+
raw_protocol
+
generic::raw_protocol, generic::raw_protocol::raw_protocol +
+
rdbuf
+
basic_socket_iostream, basic_socket_iostream::rdbuf +
+
read, read +
+
readable_pipe, readable_pipe +
+
ready
+
+
experimental::basic_channel, experimental::basic_channel::ready +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::ready +
+
+
read_at, read_at +
+
read_only
+
+
basic_file, basic_file::read_only +
+
basic_random_access_file, basic_random_access_file::read_only +
+
basic_stream_file, basic_stream_file::read_only +
+
file_base, file_base::read_only +
+
+
read_some
+
+
basic_readable_pipe, basic_readable_pipe::read_some +
+
basic_serial_port, basic_serial_port::read_some +
+
basic_stream_file, basic_stream_file::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::basic_stream_descriptor, posix::basic_stream_descriptor::read_some +
+
ssl::stream, ssl::stream::read_some +
+
windows::basic_stream_handle, windows::basic_stream_handle::read_some +
+
+
read_some_at
+
+
basic_random_access_file, basic_random_access_file::read_some_at +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::read_some_at +
+
+
read_until, read_until +
+
read_write
+
+
basic_file, basic_file::read_write +
+
basic_random_access_file, basic_random_access_file::read_write +
+
basic_stream_file, basic_stream_file::read_write +
+
file_base, file_base::read_write +
+
+
rebind
+
+
experimental::use_coro_t, experimental::use_coro_t::rebind +
+
experimental::use_promise_t, experimental::use_promise_t::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 +
+
+
receiver_invocation_error
+
execution::receiver_invocation_error, execution::receiver_invocation_error::receiver_invocation_error +
+
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_cancelled_signature
+
experimental::channel_traits, experimental::channel_traits::receive_cancelled_signature +
+
receive_closed_signature
+
experimental::channel_traits, experimental::channel_traits::receive_closed_signature +
+
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 +
+
+
recycling_allocator, recycling_allocator +
+
+
recycling_allocator, recycling_allocator::recycling_allocator +
+
recycling_allocator< + void >, recycling_allocator< + void >::recycling_allocator +
+
+
recycling_allocator::rebind, recycling_allocator::rebind +
+
recycling_allocator< void + >, recycling_allocator< + void > +
+
recycling_allocator< + void >::rebind, recycling_allocator< + void >::rebind +
+
redirect_error, redirect_error +
+
redirect_error_t, redirect_error_t +
+
redirect_error_t, 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 +
+
+
registered_buffer_id, registered_buffer_id +
+
registered_buffer_id, registered_buffer_id::registered_buffer_id +
+
register_buffers, register_buffers +
+
relationship_t
+
execution::relationship_t, execution::relationship_t::relationship_t +
+
release
+
+
basic_datagram_socket, basic_datagram_socket::release +
+
basic_file, basic_file::release +
+
basic_random_access_file, basic_random_access_file::release +
+
basic_raw_socket, basic_raw_socket::release +
+
basic_readable_pipe, basic_readable_pipe::release +
+
basic_seq_packet_socket, basic_seq_packet_socket::release +
+
basic_socket, basic_socket::release +
+
basic_socket_acceptor, basic_socket_acceptor::release +
+
basic_stream_file, basic_stream_file::release +
+
basic_stream_socket, basic_stream_socket::release +
+
basic_writable_pipe, basic_writable_pipe::release +
+
posix::basic_descriptor, posix::basic_descriptor::release +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::release +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle::release +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::release +
+
windows::basic_stream_handle, windows::basic_stream_handle::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
+
basic_signal_set, basic_signal_set::remove +
+
require, require +
+
+
any_completion_executor, any_completion_executor::require +
+
any_io_executor, any_io_executor::require +
+
basic_system_executor, basic_system_executor::require +
+
execution::any_executor, execution::any_executor::require +
+
io_context::basic_executor_type, io_context::basic_executor_type::require +
+
strand, strand::require +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::require +
+
+
require_concept, require_concept +
+
require_concept_result, require_concept_result +
+
require_result, require_result +
+
reserve
+
basic_streambuf, basic_streambuf::reserve +
+
reset
+
+
executor_work_guard, executor_work_guard::reset +
+
experimental::basic_channel, experimental::basic_channel::reset +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::reset +
+
io_context, io_context::reset +
+
windows::overlapped_ptr, windows::overlapped_ptr::reset +
+
+
reset_cancellation_state
+
basic_yield_context, basic_yield_context::reset_cancellation_state +
+
resize
+
+
basic_file, basic_file::resize +
+
basic_random_access_file, basic_random_access_file::resize +
+
basic_stream_file, basic_stream_file::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
+
+
basic_signal_set, basic_signal_set::flags +
+
io_context, io_context::restart +
+
signal_set_base, signal_set_base::flags +
+
+
result
+
async_completion, async_completion::result +
+
results_type
+
ip::basic_resolver, ip::basic_resolver::results_type +
+
result_type
+
+
allocator_binder, allocator_binder::result_type +
+
cancellation_slot_binder, cancellation_slot_binder::result_type +
+
executor_binder, executor_binder::result_type +
+
immediate_executor_binder, immediate_executor_binder::result_type +
+
ssl::host_name_verification, ssl::host_name_verification::result_type +
+
ssl::rfc2818_verification, ssl::rfc2818_verification::result_type +
+
+
return_type
+
+
async_result, async_result::return_type +
+
async_result< + basic_yield_context< Executor >, Signature >, async_result< + basic_yield_context< Executor >, Signature >::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::basic_executor_type, io_context::basic_executor_type::running_in_this_thread +
+
io_context::strand, io_context::strand::running_in_this_thread +
+
strand, strand::running_in_this_thread +
+
thread_pool::basic_executor_type, thread_pool::basic_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

+
+
schedule
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::schedule +
+
scheduler
+
thread_pool, thread_pool::scheduler +
+
scheduler_type
+
thread_pool, thread_pool::scheduler_type +
+
scope_id
+
ip::address_v6, ip::address_v6::scope_id +
+
second_argument_type
+
+
allocator_binder, allocator_binder::second_argument_type +
+
cancellation_slot_binder, cancellation_slot_binder::second_argument_type +
+
executor_binder, executor_binder::second_argument_type +
+
immediate_executor_binder, immediate_executor_binder::second_argument_type +
+
+
seek
+
basic_stream_file, basic_stream_file::seek +
+
seek_basis
+
+
basic_file, basic_file::seek_basis +
+
basic_random_access_file, basic_random_access_file::seek_basis +
+
basic_stream_file, basic_stream_file::seek_basis +
+
file_base, file_base::seek_basis +
+
+
seek_cur
+
+
basic_file, basic_file::seek_basis +
+
basic_random_access_file, basic_random_access_file::seek_basis +
+
basic_stream_file, basic_stream_file::seek_basis +
+
file_base, file_base::seek_basis +
+
+
seek_end
+
+
basic_file, basic_file::seek_basis +
+
basic_random_access_file, basic_random_access_file::seek_basis +
+
basic_stream_file, basic_stream_file::seek_basis +
+
file_base, file_base::seek_basis +
+
+
seek_set
+
+
basic_file, basic_file::seek_basis +
+
basic_random_access_file, basic_random_access_file::seek_basis +
+
basic_stream_file, basic_stream_file::seek_basis +
+
file_base, file_base::seek_basis +
+
+
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 +
+
+
sender_type
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::sender_type +
+
send_break
+
basic_serial_port, basic_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 +
+
+
sequenced
+
execution::bulk_guarantee_t, execution::bulk_guarantee_t::sequenced +
+
sequenced_t
+
execution::bulk_guarantee_t::sequenced_t, execution::bulk_guarantee_t::sequenced_t::sequenced_t +
+
seq_packet_protocol
+
generic::seq_packet_protocol, generic::seq_packet_protocol::seq_packet_protocol +
+
serial_port, serial_port +
+
serial_port_base, serial_port_base +
+
serial_port_base::baud_rate, serial_port_base::baud_rate +
+
serial_port_base::character_size, serial_port_base::character_size +
+
serial_port_base::flow_control, serial_port_base::flow_control +
+
serial_port_base::parity, serial_port_base::parity +
+
serial_port_base::stop_bits, serial_port_base::stop_bits +
+
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_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_serial_port, basic_serial_port::set_option +
+
basic_socket, basic_socket::set_option +
+
basic_socket_acceptor, basic_socket_acceptor::set_option +
+
basic_stream_socket, basic_stream_socket::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 +
+
+
shape_type
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type::shape_type +
+
shrink
+
+
dynamic_string_buffer, dynamic_string_buffer::shrink +
+
dynamic_vector_buffer, dynamic_vector_buffer::shrink +
+
+
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_base, signal_set_base +
+
signature
+
+
experimental::parallel_group, experimental::parallel_group::signature +
+
experimental::ranged_parallel_group, experimental::ranged_parallel_group::signature +
+
+
single_dh_use
+
+
ssl::context, ssl::context::single_dh_use +
+
ssl::context_base, ssl::context_base::single_dh_use +
+
+
size
+
+
basic_file, basic_file::size +
+
basic_random_access_file, basic_random_access_file::size +
+
basic_streambuf, basic_streambuf::size +
+
basic_streambuf_ref, basic_streambuf_ref::size +
+
basic_stream_file, basic_stream_file::size +
+
buffer_registration, buffer_registration::size +
+
const_buffer, const_buffer::size +
+
const_buffers_1, const_buffers_1::size +
+
const_registered_buffer, const_registered_buffer::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 +
+
mutable_registered_buffer, mutable_registered_buffer::size +
+
+
size_type
+
ip::basic_resolver_results, ip::basic_resolver_results::size_type +
+
slot
+
+
cancellation_signal, cancellation_signal::slot +
+
cancellation_state, cancellation_state::slot +
+
+
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::seq_packet_protocol, local::seq_packet_protocol::socket +
+
local::stream_protocol, local::stream_protocol::socket +
+
+
socket_base, socket_base +
+
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::context, ssl::context +
+
ssl::context_base, ssl::context_base +
+
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::host_name_verification, ssl::host_name_verification +
+
ssl::rfc2818_verification, ssl::rfc2818_verification +
+
ssl::stream, ssl::stream +
+
ssl::stream::impl_struct, ssl::stream::impl_struct +
+
ssl::stream_base, ssl::stream_base +
+
ssl::verify_client_once, ssl::verify_client_once +
+
ssl::verify_context, ssl::verify_context +
+
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 +
+
+
static_thread_pool, static_thread_pool +
+
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, strand +
+
+
io_context::strand, io_context::strand::strand +
+
strand, strand::strand +
+
+
stream
+
ssl::stream, ssl::stream::stream +
+
streambuf, streambuf +
+
stream_file, stream_file +
+
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
+
+
any_completion_executor, any_completion_executor::swap +
+
any_completion_handler, any_completion_handler::swap +
+
any_io_executor, any_io_executor::swap +
+
execution::any_executor, execution::any_executor::swap +
+
ip::basic_resolver_results, ip::basic_resolver_results::swap +
+
+
sync
+
basic_socket_streambuf, basic_socket_streambuf::sync +
+
sync_all
+
+
basic_file, basic_file::sync_all +
+
basic_random_access_file, basic_random_access_file::sync_all +
+
basic_stream_file, basic_stream_file::sync_all +
+
+
sync_all_on_write
+
+
basic_file, basic_file::sync_all_on_write +
+
basic_random_access_file, basic_random_access_file::sync_all_on_write +
+
basic_stream_file, basic_stream_file::sync_all_on_write +
+
file_base, file_base::sync_all_on_write +
+
+
sync_data
+
+
basic_file, basic_file::sync_data +
+
basic_random_access_file, basic_random_access_file::sync_data +
+
basic_stream_file, basic_stream_file::sync_data +
+
+
system_category, system_category +
+
system_context, system_context +
+
system_error, system_error +
+
system_error, system_error::system_error +
+
system_executor, system_executor +
+
system_timer, system_timer +
+
+
+
+

T

+
+
target
+
+
any_completion_executor, any_completion_executor::target +
+
any_io_executor, any_io_executor::target +
+
execution::any_executor, execution::any_executor::target +
+
executor, executor::target +
+
+
target_type
+
+
allocator_binder, allocator_binder::target_type +
+
any_completion_executor, any_completion_executor::target_type +
+
any_io_executor, any_io_executor::target_type +
+
cancellation_slot_binder, cancellation_slot_binder::target_type +
+
execution::any_executor, execution::any_executor::target_type +
+
executor, executor::target_type +
+
executor_binder, executor_binder::target_type +
+
immediate_executor_binder, immediate_executor_binder::target_type +
+
+
terminal
+
cancellation_type, cancellation_type +
+
then
+
deferred_conditional, deferred_conditional::then +
+
this_coro::cancellation_state, this_coro::cancellation_state +
+
this_coro::cancellation_state_t, this_coro::cancellation_state_t +
+
this_coro::executor, this_coro::executor +
+
this_coro::executor_t, this_coro::executor_t +
+
this_coro::reset_cancellation_state, this_coro::reset_cancellation_state +
+
this_coro::throw_if_cancelled, this_coro::throw_if_cancelled +
+
thread, thread +
+
+
execution::mapping_t, execution::mapping_t::thread +
+
thread, thread::thread +
+
+
thread_pool, thread_pool +
+
thread_pool, thread_pool::thread_pool +
+
thread_pool::basic_executor_type, thread_pool::basic_executor_type +
+
thread_t
+
execution::mapping_t::thread_t, execution::mapping_t::thread_t::thread_t +
+
throw_if_cancelled
+
basic_yield_context, basic_yield_context::throw_if_cancelled +
+
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_traits< boost::posix_time::ptime + >, time_traits< + boost::posix_time::ptime > +
+
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_
+
+
append_t, append_t::token_ +
+
as_tuple_t, as_tuple_t::token_ +
+
experimental::as_single_t, experimental::as_single_t::token_ +
+
prepend_t, prepend_t::token_ +
+
redirect_error_t, redirect_error_t::token_ +
+
+
total
+
cancellation_type, cancellation_type +
+
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 +
+
tracked
+
execution::outstanding_work_t, execution::outstanding_work_t::tracked +
+
tracked_t
+
execution::outstanding_work_t::tracked_t, execution::outstanding_work_t::tracked_t::tracked_t +
+
traits_type
+
+
basic_deadline_timer, basic_deadline_timer::traits_type +
+
basic_waitable_timer, basic_waitable_timer::traits_type +
+
experimental::basic_channel, experimental::basic_channel::traits_type +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::traits_type +
+
+
transfer_all, transfer_all +
+
transfer_at_least, transfer_at_least +
+
transfer_exactly, transfer_exactly +
+
truncate
+
+
basic_file, basic_file::truncate +
+
basic_random_access_file, basic_random_access_file::truncate +
+
basic_stream_file, basic_stream_file::truncate +
+
file_base, file_base::truncate +
+
+
try_again
+
error::basic_errors, error::basic_errors +
+
try_receive
+
+
experimental::basic_channel, experimental::basic_channel::try_receive +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::try_receive +
+
+
try_send
+
+
experimental::basic_channel, experimental::basic_channel::try_send +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::try_send +
+
+
try_send_n
+
+
experimental::basic_channel, experimental::basic_channel::try_send_n +
+
experimental::basic_concurrent_channel, experimental::basic_concurrent_channel::try_send_n +
+
+
two
+
serial_port_base::stop_bits, serial_port_base::stop_bits::type +
+
type
+
+
associated_allocator, associated_allocator::type +
+
associated_allocator< + reference_wrapper< T >, Allocator >, associated_allocator< + reference_wrapper< T >, Allocator >::type +
+
associated_cancellation_slot, associated_cancellation_slot::type +
+
associated_cancellation_slot< + reference_wrapper< T >, CancellationSlot >, associated_cancellation_slot< + reference_wrapper< T >, CancellationSlot >::type +
+
associated_executor, associated_executor::type +
+
associated_executor< + reference_wrapper< T >, Executor >, associated_executor< + reference_wrapper< T >, Executor >::type +
+
associated_immediate_executor, associated_immediate_executor::type +
+
associated_immediate_executor< + reference_wrapper< T >, Executor >, associated_immediate_executor< + reference_wrapper< T >, Executor >::type +
+
completion_signature_of, completion_signature_of::type +
+
default_completion_token, default_completion_token::type +
+
execution::connect_result, execution::connect_result::type +
+
execution::executor_index, execution::executor_index::type +
+
execution::executor_shape, execution::executor_shape::type +
+
experimental::channel_traits::container, experimental::channel_traits::container::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 +
+
ip::icmp, ip::icmp::type +
+
ip::tcp, ip::tcp::type +
+
ip::udp, ip::udp::type +
+
local::datagram_protocol, local::datagram_protocol::type +
+
local::seq_packet_protocol, local::seq_packet_protocol::type +
+
local::stream_protocol, local::stream_protocol::type +
+
prefer_result, prefer_result::type +
+
query_result, query_result::type +
+
require_concept_result, require_concept_result::type +
+
require_result, require_result::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 +
+
+
unexpected_result
+
ssl::error::stream_errors, ssl::error::stream_errors +
+
unsequenced
+
execution::bulk_guarantee_t, execution::bulk_guarantee_t::unsequenced +
+
unsequenced_t
+
execution::bulk_guarantee_t::unsequenced_t, execution::bulk_guarantee_t::unsequenced_t::unsequenced_t +
+
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 +
+
+
unspecified_system_error
+
ssl::error::stream_errors, ssl::error::stream_errors +
+
untracked
+
execution::outstanding_work_t, execution::outstanding_work_t::untracked +
+
untracked_t
+
execution::outstanding_work_t::untracked_t, execution::outstanding_work_t::untracked_t::untracked_t +
+
uses_executor, uses_executor +
+
use_awaitable, use_awaitable +
+
use_awaitable_t, use_awaitable_t +
+
use_awaitable_t, use_awaitable_t::use_awaitable_t +
+
use_awaitable_t::executor_with_default, use_awaitable_t::executor_with_default +
+
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_coro_t
+
experimental::use_coro_t, experimental::use_coro_t::use_coro_t +
+
use_future, use_future +
+
use_future_t, 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_promise_t
+
experimental::use_promise_t, experimental::use_promise_t::use_promise_t +
+
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
+
+
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 +
+
+
valid
+
awaitable, awaitable::valid +
+
value
+
+
error_code, error_code::value +
+
execution::allocator_t, execution::allocator_t::value +
+
execution::blocking_adaptation_t::allowed_t, execution::blocking_adaptation_t::allowed_t::value +
+
execution::blocking_adaptation_t::disallowed_t, execution::blocking_adaptation_t::disallowed_t::value +
+
execution::blocking_t::always_t, execution::blocking_t::always_t::value +
+
execution::blocking_t::never_t, execution::blocking_t::never_t::value +
+
execution::blocking_t::possibly_t, execution::blocking_t::possibly_t::value +
+
execution::bulk_guarantee_t::parallel_t, execution::bulk_guarantee_t::parallel_t::value +
+
execution::bulk_guarantee_t::sequenced_t, execution::bulk_guarantee_t::sequenced_t::value +
+
execution::bulk_guarantee_t::unsequenced_t, execution::bulk_guarantee_t::unsequenced_t::value +
+
execution::mapping_t::new_thread_t, execution::mapping_t::new_thread_t::value +
+
execution::mapping_t::other_t, execution::mapping_t::other_t::value +
+
execution::mapping_t::thread_t, execution::mapping_t::thread_t::value +
+
execution::outstanding_work_t::tracked_t, execution::outstanding_work_t::tracked_t::value +
+
execution::outstanding_work_t::untracked_t, execution::outstanding_work_t::untracked_t::value +
+
execution::relationship_t::continuation_t, execution::relationship_t::continuation_t::value +
+
execution::relationship_t::fork_t, execution::relationship_t::fork_t::value +
+
experimental::is_async_operation_range, experimental::is_async_operation_range::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
+
deferred_t, deferred_t::values +
+
values_
+
+
append_t, append_t::values_ +
+
ip::basic_resolver_iterator, ip::basic_resolver_iterator::values_ +
+
ip::basic_resolver_results, ip::basic_resolver_results::values_ +
+
prepend_t, prepend_t::values_ +
+
+
value_type
+
+
any_completion_handler_allocator, any_completion_handler_allocator::value_type +
+
any_completion_handler_allocator< + void, Signatures...>, any_completion_handler_allocator< + void, Signatures...>::value_type +
+
awaitable, awaitable::value_type +
+
buffers_iterator, buffers_iterator::value_type +
+
const_buffers_1, const_buffers_1::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 +
+
recycling_allocator, recycling_allocator::value_type +
+
recycling_allocator< + void >, recycling_allocator< + void >::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::basic_descriptor, posix::basic_descriptor::wait +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::wait +
+
thread_pool, thread_pool::wait +
+
windows::basic_object_handle, windows::basic_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::basic_descriptor, posix::basic_descriptor::wait_type +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::wait_type +
+
posix::descriptor_base, posix::descriptor_base::wait_type +
+
socket_base, socket_base::wait_type +
+
+
wait_for_one
+
experimental::wait_for_one, experimental::wait_for_one::wait_for_one +
+
wait_for_one_error
+
experimental::wait_for_one_error, experimental::wait_for_one_error::wait_for_one_error +
+
wait_for_one_success
+
experimental::wait_for_one_success, experimental::wait_for_one_success::wait_for_one_success +
+
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::basic_descriptor, posix::basic_descriptor::wait_type +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::wait_type +
+
posix::descriptor_base, posix::descriptor_base::wait_type +
+
socket_base, socket_base::wait_type +
+
+
wait_traits, wait_traits +
+
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::basic_descriptor, posix::basic_descriptor::wait_type +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::wait_type +
+
posix::descriptor_base, posix::descriptor_base::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::basic_descriptor, posix::basic_descriptor::wait_type +
+
posix::basic_stream_descriptor, posix::basic_stream_descriptor::wait_type +
+
posix::descriptor_base, posix::descriptor_base::wait_type +
+
socket_base, socket_base::wait_type +
+
+
what
+
+
bad_executor, bad_executor::what +
+
execution::bad_executor, execution::bad_executor::what +
+
ip::bad_address_cast, ip::bad_address_cast::what +
+
multiple_exceptions, multiple_exceptions::what +
+
system_error, system_error::what +
+
+
when
+
deferred_t, deferred_t::when +
+
windows::basic_object_handle, windows::basic_object_handle +
+
windows::basic_object_handle::rebind_executor, windows::basic_object_handle::rebind_executor +
+
windows::basic_overlapped_handle, windows::basic_overlapped_handle +
+
windows::basic_overlapped_handle::rebind_executor, windows::basic_overlapped_handle::rebind_executor +
+
windows::basic_random_access_handle, windows::basic_random_access_handle +
+
windows::basic_random_access_handle::rebind_executor, windows::basic_random_access_handle::rebind_executor +
+
windows::basic_stream_handle, windows::basic_stream_handle +
+
windows::basic_stream_handle::rebind_executor, windows::basic_stream_handle::rebind_executor +
+
windows::object_handle, windows::object_handle +
+
windows::overlapped_handle, windows::overlapped_handle +
+
windows::overlapped_ptr, windows::overlapped_ptr +
+
windows::random_access_handle, windows::random_access_handle +
+
windows::stream_handle, windows::stream_handle +
+
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 +
+
+
writable_pipe, writable_pipe +
+
write, write +
+
write_at, write_at +
+
write_only
+
+
basic_file, basic_file::write_only +
+
basic_random_access_file, basic_random_access_file::write_only +
+
basic_stream_file, basic_stream_file::write_only +
+
file_base, file_base::write_only +
+
+
write_some
+
+
basic_serial_port, basic_serial_port::write_some +
+
basic_stream_file, basic_stream_file::write_some +
+
basic_stream_socket, basic_stream_socket::write_some +
+
basic_writable_pipe, basic_writable_pipe::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::basic_stream_descriptor, posix::basic_stream_descriptor::write_some +
+
ssl::stream, ssl::stream::write_some +
+
windows::basic_stream_handle, windows::basic_stream_handle::write_some +
+
+
write_some_at
+
+
basic_random_access_file, basic_random_access_file::write_some_at +
+
windows::basic_random_access_handle, windows::basic_random_access_handle::write_some_at +
+
+
+
+
+

Y

+
yield_context, yield_context +
+
+
+
+
+ +
+
+PrevUpHome +
+ + diff --git a/3party/asio/doc/asio/net_ts.html b/3party/asio/doc/asio/net_ts.html new file mode 100644 index 0000000..744d937 --- /dev/null +++ b/3party/asio/doc/asio/net_ts.html @@ -0,0 +1,1221 @@ + + + +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 post 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/3party/asio/doc/asio/overview.html b/3party/asio/doc/asio/overview.html new file mode 100644 index 0000000..a592155 --- /dev/null +++ b/3party/asio/doc/asio/overview.html @@ -0,0 +1,271 @@ + + + +Overview + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/basics.html b/3party/asio/doc/asio/overview/basics.html new file mode 100644 index 0000000..aab399e --- /dev/null +++ b/3party/asio/doc/asio/overview/basics.html @@ -0,0 +1,167 @@ + + + +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. +

+

+ +

+

+ Your program will have at least one I/O execution context, such as an asio::io_context + object, asio::thread_pool object, or asio::system_context. + This I/O execution 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 I/O execution context. +

+

+ 3. The I/O execution context calls on the + operating system to perform the connect + operation. +

+

+ 4. The operating system returns the result + of the operation to the I/O execution context. +

+

+ 5. The I/O execution 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. +

+

+ +

+

+ 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 I/O execution context. +

+

+ 3. The I/O execution 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.) +

+

+ +

+

+ 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 I/O execution context. +

+

+ 5. When using an io_context + as the I/O execution context, 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 I/O execution 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/3party/asio/doc/asio/overview/channels.html b/3party/asio/doc/asio/overview/channels.html new file mode 100644 index 0000000..aada50d --- /dev/null +++ b/3party/asio/doc/asio/overview/channels.html @@ -0,0 +1,92 @@ + + + +Channels + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
+ + + + + +
[Note]Note

+ This is an experimental feature. +

+

+ The templates experimental::basic_channel + and experimental::basic_concurrent_channel, + with aliases experimental::channel + and experimental::concurrent_channel, may be used to send + messages between different parts of the same application. A message + is defined as a collection of arguments to be passed to a completion handler, + and the set of messages supported by a channel is specified by its template + parameters. Messages may be sent and received using asynchronous or non-blocking + synchronous operations. +

+

+ For example: +

+
// Create a channel with no buffer space.
+channel<void(error_code, size_t)> ch(ctx);
+
+// The call to try_send fails as there is no buffer
+// space and no waiting receive operations.
+bool ok = ch.try_send(asio::error::eof, 123);
+assert(!ok);
+
+// The async_send operation is outstanding until
+// a receive operation consumes the message.
+ch.async_send(asio::error::eof, 123,
+    [](error_code ec)
+    {
+      // ...
+    });
+
+// The async_receive consumes the message. Both the
+// async_send and async_receive operations complete
+// immediately.
+ch.async_receive(
+    [](error_code ec, size_t n)
+    {
+      // ...
+    });
+
+
+ + See + Also +
+

+ experimental::basic_channel, + experimental::basic_concurrent_channel, + Channels examples (C++20). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition.html b/3party/asio/doc/asio/overview/composition.html new file mode 100644 index 0000000..5981b81 --- /dev/null +++ b/3party/asio/doc/asio/overview/composition.html @@ -0,0 +1,81 @@ + + + +Composition and Completion Tokens + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+ + +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition/compose.html b/3party/asio/doc/asio/overview/composition/compose.html new file mode 100644 index 0000000..1b68ecb --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/compose.html @@ -0,0 +1,136 @@ + + + +Compositions as Asynchronous Operations + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Application developers may wish to package their own compositions as conforming + asynchronous operations + within the asynchronous model. + Doing so facilitates seamless composition of these operations together + with the operations already provided by Asio. +

+

+ While these operations may be written from scratch to conform with the + requirements on + asynchronous operations, Asio includes the async_compose function to simplify + this process. The async_compose + implementation automatically provides an intermediate completion handler + that correctly propagates the associated + characteristics and tracks outstanding work against the I/O executor + and completion executor. +

+

+ The following example illustrates an asynchronous echo loop (i.e. read, + followed by write, and so on), expressed as a simple state machine. +

+
struct async_echo_implementation
+{
+  tcp::socket& socket_;
+  asio::mutable_buffer buffer_;
+  enum { starting, reading, writing } state_;
+
+  template <typename Self>
+  void operator()(Self& self,
+      asio::error_code error = {},
+      std::size_t n = 0)
+  {
+    switch (state_)
+    {
+    case starting:
+      state_ = reading;
+      socket_.async_read_some(
+          buffer_, std::move(self));
+      break;
+    case reading:
+      if (error)
+      {
+        self.complete(error, 0);
+      }
+      else
+      {
+        state_ = writing;
+        asio::async_write(socket_, buffer_,
+            asio::transfer_exactly(n),
+            std::move(self));
+      }
+      break;
+    case writing:
+      self.complete(error, n);
+      break;
+    }
+  }
+};
+
+

+ This implementation is then used in an initiating function, which trivially + wraps async_compose: +

+
template <typename CompletionToken>
+auto async_echo(tcp::socket& socket,
+    asio::mutable_buffer buffer,
+    CompletionToken&& token) ->
+  typename asio::async_result<
+    typename std::decay<CompletionToken>::type,
+      void(asio::error_code, std::size_t)>::return_type
+{
+  return asio::async_compose<CompletionToken,
+    void(asio::error_code, std::size_t)>(
+      async_echo_implementation{socket, buffer,
+        async_echo_implementation::starting},
+      token, socket);
+}
+
+

+ Here, async_compose is + first passed the function object that contains the implementation of the + composed asynchronous operation. The first argument to the function object + is a non-const reference to the enclosing intermediate completion handler. + The remaining arguments are any arguments that originate from the completion + handlers of any asynchronous operations performed by the implementation. +

+

+ The async_compose function + is also passed the completion token, and zero or more I/O objects or I/O + executors for which outstanding work must be maintained. +

+
+ + See + Also +
+

+ async_compose, Operations examples (C++11), + Operations examples + (C++14). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition/coro.html b/3party/asio/doc/asio/overview/composition/coro.html new file mode 100644 index 0000000..9f6c5c4 --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/coro.html @@ -0,0 +1,587 @@ + + + +Resumable C++ 20 Coroutines + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
+ + + + + +
[Note]Note

+ This is an experimental feature. +

+

+ The experimental::coro + class provides support for a universal C++20 coroutine. These coroutines + can be used as tasks, generators and transfomers, depending on their signature. +

+
coro<std::string_view> line_reader(tcp::socket stream)
+{
+   while (stream.is_open())
+   {
+     std::array<char, 4096> buf;
+
+     auto read = co_await stream.async_read_some(
+         asio::buffer(buf), deferred);
+
+     if (read == 0u)
+       continue;
+
+     co_yield std::string_view { buf.data(), read };
+   }
+}
+
+coro<void, std::size_t> line_logger(tcp::socket stream)
+{
+  std::size_t lines_read = 0u;
+  auto reader = line_reader(std::move(stream));
+  while (auto l = co_await reader)
+  {
+    std::cout << "Read: '" << *l << "'" << std::endl;
+    lines_read++;
+  }
+  co_return lines_read;
+}
+
+void read_lines(tcp::socket sock)
+{
+  co_spawn(line_logger(std::move(sock),
+      [](std::exception_ptr, std::size_t lines)
+      {
+        std::clog << "Read " << lines << " lines" << std::endl;
+      }));
+}
+
+

+ A coro + is highly configurable, so that it can cover a set of different use cases. +

+
template<
+    typename Yield,
+    typename Return = void,
+    typename Executor = any_io_executor>
+struct coro;
+
+
+ + Yield +
+

+ The Yield parameter designates + how a co_yield statement + behaves. It can either be a type, like int + or a signature with zero or one types: +

+
coro<void> // A coroutine with no yield
+coro<int> // A coroutine that can yield int
+
+coro<void()> // A coroutine with no yield
+coro<int()> // A coroutine that can yield int
+
+coro<int(double)> // A coroutine that can yield int and receive double
+
+

+ Receiving a value means that the co_yield + statement returns a value. +

+
coro<int(int)> my_sum(any_io_executor)
+{
+  int value = 0;
+  while (true)
+    value += co_yield value; //sum up all values
+}
+
+

+ Putting values into a coroutine can be done it two ways: either by direct + resumption (from another coro) or through async_resume. The first value + gets ignored because the coroutines are lazy. +

+
coro<void> c(any_io_executor exec)
+{
+  auto sum = my_sum(exec);
+  assert(0  == co_await sum(-1));
+  assert(0  == co_await sum(10));
+  assert(10 == co_await sum(15));
+  assert(25 == co_await sum(0));
+}
+
+awaitable<void> a()
+{
+  auto sum = my_sum(co_await this_coro::executor);
+  assert(0  == co_await sum.async_resume(-1, use_awaitable));
+  assert(0  == co_await sum.async_resume(10, use_awaitable));
+  assert(10 == co_await sum.async_resume(15, use_awaitable));
+  assert(25 == co_await sum.async_resume(0, use_awaitable));
+}
+
+
+ + noexcept +
+

+ A coro may be noexcept: +

+
coro<void() noexcept> c;
+coro<int() noexcept> c;
+coro<int(double) noexcept> c;
+
+

+ This will change its @c async_resume signature, from void(std::exception_ptr) to void() or void(std::exception_ptr, T) + to void(T). A + noexcept coro that ends with an exception will cause std::terminate + to be called. +

+

+ Furthermore, calls of async_resume + and co_await of an expired + noexcept coro will cause undefined behaviour. +

+
+ + Return +
+

+ A coro can also define a type that can be used with co_return: +

+
coro<void() noexcept, int> c(any_io_executor)
+{
+  co_return 42;
+}
+
+

+ A coro can have both a Yield + and Return that are non + void at the same time. +

+
+ + Result +
+

+ The result type of a coroutine is dermined by both Yield + and Return. Note that in + the follwing table only the yield output value is considered, i.e. T(U) means T. +

+
+

Table 2. Result type deduction

+
+++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Yield +

+
+

+ Return +

+
+

+ noexcept +

+
+

+ result_type +

+
+

+ completion_signature +

+
+

+ T +

+
+

+ U +

+
+

+ false +

+
+

+ variant<T, + U> +

+
+

+ void(std::exception_ptr, + variant<T, + U>) +

+
+

+ T +

+
+

+ U +

+
+

+ true +

+
+

+ variant<T, + U> +

+
+

+ void(variant<T, + U>) +

+
+

+ T +

+
+

+ void +

+
+

+ false +

+
+

+ optional<T> +

+
+

+ void(std::exception_ptr, + optional<T>) +

+
+

+ T +

+
+

+ void +

+
+

+ true +

+
+

+ optional<T> +

+
+

+ void(optional<T>) +

+
+

+ void +

+
+

+ void +

+
+

+ false +

+
+

+ optional<T> +

+
+

+ void(std::exception_ptr) +

+
+

+ void +

+
+

+ void +

+
+

+ true +

+
+

+ optional<T> +

+
+

+ void() +

+
+

+ void +

+
+

+ T +

+
+

+ false +

+
+

+ optional<T> +

+
+

+ void(std::exception_ptr, + T) +

+
+

+ void +

+
+

+ T +

+
+

+ true +

+
+

+ optional<T> +

+
+

+ void(T) +

+
+
+
+ + Executor +
+

+ Every coroutine needs to have its own executor. Since the coroutine gets + called multiple times, it cannot take the executor from the caller like + an awaitable. Therefore + a coro requires to get + an executor or an execution_context passed in as the first parameter. +

+
coro<int> with_executor(any_io_executor);
+coro<int> with_context(io_context &);
+
+

+ It is to note, that an execution_context is defined as loosely as possible. + An execution context is any object that has a get_executor() function, which returns an executor that + can be transformed into the executor_type of the coroutine. This allows + most io_objects to be used as the source of the executor: +

+
coro<int> with_socket(tcp::socket);
+
+

+ Additionally, a coro that + is a member function will check the this + pointer as well, either if it's an executor or an execution context: +

+
struct my_io_object
+{
+  any_io_executor get_executor();
+
+  coro<int> my_coro();
+};
+
+

+ Finally, a member coro can be given an explicit executor or execution context, + to override the one of the object: +

+
struct my_io_object
+{
+  any_io_executor get_executor();
+
+  coro<int> my_coro(any_io_executor exec); // it will use exec
+};
+
+
+ + co_await +
+

+ The @c co_await within a coro + is not the same as async_resume(deferred), unless both coros use different executors. + If they use the same, the coro + will direclty suspend and resume the executor, without any usage of the + executor. +

+

+ co_await this_coro:: behaves the same as coroutines that use + @c asio::awaitable. +

+
+ + Integrating + with awaitable +
+

+ As the coro member function + async_resume is an asynchronous + operation, it may also be used in conjunction with awaitable + coroutines in a single control flow. For example: +

+
#include <asio.hpp>
+#include <asio/experimental/coro.hpp>
+
+using asio::ip::tcp;
+
+asio::experimental::coro<std::string> reader(tcp::socket& sock)
+{
+  std::string buf;
+  while (sock.is_open())
+  {
+    std::size_t n = co_await asio::async_read_until(
+        sock, asio::dynamic_buffer(buf), '\n',
+        asio::deferred);
+    co_yield buf.substr(0, n);
+    buf.erase(0, n);
+  }
+}
+
+asio::awaitable<void> consumer(tcp::socket sock)
+{
+  auto r = reader(sock);
+  auto msg1 = co_await r.async_resume(asio::use_awaitable);
+  std::cout << "Message 1: " << msg1.value_or("\n");
+  auto msg2 = co_await r.async_resume(asio::use_awaitable);
+  std::cout << "Message 2: " << msg2.value_or("\n");
+}
+
+asio::awaitable<void> listen(tcp::acceptor& acceptor)
+{
+  for (;;)
+  {
+    co_spawn(
+        acceptor.get_executor(),
+        consumer(co_await acceptor.async_accept(asio::use_awaitable)),
+        asio::detached);
+  }
+}
+
+int main()
+{
+  asio::io_context ctx;
+  tcp::acceptor acceptor(ctx, {tcp::v4(), 54321});
+  co_spawn(ctx, listen(acceptor), asio::detached);
+  ctx.run();
+}
+
+
+ + See + Also +
+

+ co_spawn, experimental::coro, + C++20 Coroutines, + Stackful Coroutines, + Stackless Coroutines. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition/coroutine.html b/3party/asio/doc/asio/overview/composition/coroutine.html new file mode 100644 index 0000000..fa7cd48 --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/coroutine.html @@ -0,0 +1,82 @@ + + + +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/3party/asio/doc/asio/overview/composition/cpp20_coroutines.html b/3party/asio/doc/asio/overview/composition/cpp20_coroutines.html new file mode 100644 index 0000000..e8067ef --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/cpp20_coroutines.html @@ -0,0 +1,360 @@ + + + +C++20 Coroutines Support + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Support for C++20 Coroutines is provided via the awaitable class template, the + use_awaitable + completion token, and the co_spawn() + function. These facilities allow programs to implement asynchronous logic + in a synchronous manner, in conjunction with the co_await + keyword, as shown in the following example: +

+
asio::co_spawn(executor, echo(std::move(socket)), asio::detached);
+
+// ...
+
+asio::awaitable<void> echo(tcp::socket socket)
+{
+  try
+  {
+    char data[1024];
+    for (;;)
+    {
+      std::size_t n = co_await socket.async_read_some(asio::buffer(data), asio::use_awaitable);
+      co_await async_write(socket, asio::buffer(data, n), asio::use_awaitable);
+    }
+  }
+  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 an awaitable<R>, + that is the result of the coroutine's entry point function, and in the + above example is the result of the call to echo. + (Alternatively, this argument can be a function object that returns the + awaitable<R>.) The template parameter 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::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. When the use_awaitable 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), asio::use_awaitable);
+
+

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

+
+ + Error + Handling +
+

+ To perform explicit error handling, rather than the default exception-throwing + behaviour, use the as_tuple or redirect_error completion token + adapters. +

+

+ The as_tuple completion + token adapter packages the completion handler arguments into a single tuple, + which is then returned as the result of the awaited operation. For example: +

+
asio::awaitable<void> echo(tcp::socket socket)
+{
+  char data[1024];
+  for (;;)
+  {
+    std::tuple<asio::error_code, std::size_t> result =
+      co_await socket.async_read_some(asio::buffer(data),
+        asio::as_tuple(asio::use_awaitable));
+    if (!std::get<0>(result))
+    {
+      // success
+    }
+
+    // ...
+  }
+}
+
+

+ The result can also be captured directly into a structured binding: +

+
asio::awaitable<void> echo(tcp::socket socket)
+{
+  char data[1024];
+  for (;;)
+  {
+    auto [ec, n] = co_await socket.async_read_some(
+        asio::buffer(data), asio::as_tuple(asio::use_awaitable));
+    if (!ec)
+    {
+      // success
+    }
+
+    // ...
+  }
+}
+
+

+ Alternatively, the redirect_error + completion token adapter may be used to capture the error into a supplied + error_code variable: +

+
asio::awaitable<void> echo(tcp::socket socket)
+{
+  char data[1024];
+  for (;;)
+  {
+    asio::error_code ec;
+    std::size_t n = co_await socket.async_read_some(asio::buffer(data),
+        asio::redirect_error(asio::use_awaitable, ec));
+    if (!ec)
+    {
+      // success
+    }
+
+    // ...
+  }
+}
+
+
+ + Coroutines + and Per-Operation Cancellation +
+

+ All threads of execution created by co_spawn + have a cancellation state that records the current state of any cancellation + requests made to the coroutine. To access this state, use this_coro::cancellation_state as follows: +

+
asio::awaitable<void> my_coroutine()
+{
+  asio::cancellation_state cs
+    = co_await asio::this_coro::cancellation_state;
+
+  // ...
+
+  if (cs.cancelled() != asio::cancellation_type::none)
+    // ...
+}
+
+

+ When first created by co_spawn, + the thread of execution has a cancellation state that supports cancellation_type::terminal values only. To change the cancellation + state, call this_coro::reset_cancellation_state. +

+

+ By default, continued execution of a cancelled coroutine will trigger an + exception from any subsequent co_await + of an awaitable<> + object. This behaviour can be changed by using this_coro::throw_if_cancelled. +

+
+ + Co-ordinating + Parallel Coroutines +
+
+ + + + + +
[Note]Note

+ This is an experimental feature. +

+

+ The logical operators || and + && have been overloaded + for awaitable<>, + to allow coroutines to be trivially awaited in parallel. +

+

+ When awaited using &&, + the co_await expression + waits until both operations have completed successfully. As a "short-circuit" + evaluation, if one operation fails with an exception, the other is immediately + cancelled. For example: +

+
std::tuple<std::size_t, std::size_t> results =
+  co_await (
+    async_read(socket, input_buffer, use_awaitable)
+      && async_write(socket, output_buffer, use_awaitable)
+  );
+
+

+ Following completion of a && + operation, the results of all operations are concatenated into a tuple. + In the above example, the first size_t + represents the non-exceptional component of the async_read + result, and the second size_t + is the result of the async_write. +

+

+ When awaited using ||, the + co_await expression waits + until either operation succeeds. As a "short-circuit" evaluation, + if one operation succeeds without throwing an exception, the other is immediately + cancelled. For example: +

+
std::variant<std::size_t, std::monostate> results =
+  co_await (
+    async_read(socket, input_buffer, use_awaitable)
+      || timer.async_wait(use_awaitable)
+  );
+
+

+ Following completion of a || + operation, the result of the first operation to complete non-exceptionally + is placed into a std::variant. The active index of the variant + reflects which of the operations completed first. In the above example, + index 0 corresponds to the + async_read operation. +

+

+ These operators may be enabled by adding the #include: +

+
#include <asio/experimental/awaitable_operators.hpp>
+
+

+ and then bringing the contents of the experimental::awaitable_operators + namespace into scope: +

+
using namespace asio::experimental::awaitable_operators;
+
+
+ + Lightweight + Coroutines Implementing Asynchonous Operations +
+

+ The experimental::co_composed template facilitates a lightweight + implementation of user-defined asynchronous operations using C++20 coroutines. + The following example illustrates a simple asynchronous operation that + implements an echo protocol in terms of a coroutine: +

+
template <typename CompletionToken>
+auto async_echo(tcp::socket& socket,
+    CompletionToken&& token)
+{
+  return asio::async_initiate<
+    CompletionToken, void(asio::error_code)>(
+      asio::experimental::co_composed<
+        void(asio::error_code)>(
+          [](auto state, tcp::socket& socket) -> void
+          {
+            try
+            {
+              state.throw_if_cancelled(true);
+              state.reset_cancellation_state(
+                asio::enable_terminal_cancellation());
+
+              for (;;)
+              {
+                char data[1024];
+                std::size_t n = co_await socket.async_read_some(
+                    asio::buffer(data), asio::deferred);
+
+                co_await asio::async_write(socket,
+                    asio::buffer(data, n), asio::deferred);
+              }
+            }
+            catch (const asio::system_error& e)
+            {
+              co_return {e.code()};
+            }
+          }, socket),
+      token, std::ref(socket));
+}
+
+
+ + See Also +
+

+ co_spawn, detached, + as_tuple, redirect_error, + awaitable, use_awaitable_t, + use_awaitable, this_coro::executor, + experimental::co_composed, + Coroutines + examples, Resumable + C++20 Coroutines, Stackful + Coroutines, Stackless + Coroutines. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition/deferred.html b/3party/asio/doc/asio/overview/composition/deferred.html new file mode 100644 index 0000000..7c84dc0 --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/deferred.html @@ -0,0 +1,86 @@ + + + +Deferred Operations + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ The deferred, + completion token takes a call to an asynchronous operation's initiating + function and turns it into a function object that accepts a completion + token. For example: +

+
auto deferred_op =
+  timer.async_wait(
+    asio::deferred);
+...
+std::move(deferred_op)(
+    [](asio::error_code ec){ ... });
+
+

+ or: +

+
auto deferred_op =
+  timer.async_wait(
+    asio::deferred);
+...
+std::future<void> =
+  std::move(deferred_op)(
+    asio::use_future);
+
+

+ The deferred token also supports chaining, to create simple compositions: +

+
auto deferred_op =
+  timer.async_wait(
+    asio::deferred(
+      [&](asio::error_code ec)
+      {
+        timer.expires_after(
+            std::chrono::seconds(1));
+
+        return timer.async_wait(
+            asio::deferred);
+      });
+...
+std::future<void> = std::move(deferred_op)(asio::use_future);
+
+
+ + See + Also +
+

+ deferred, deferred_t, + Deferred examples + (C++11), Deferred + examples (C++14). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition/futures.html b/3party/asio/doc/asio/overview/composition/futures.html new file mode 100644 index 0000000..32b83bf --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/futures.html @@ -0,0 +1,78 @@ + + + +Futures + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ The asio::use_future completion token provides + first-class support for returning a std::future + from an asynchronous operation's initiating function. +

+

+ To use asio::use_future, pass it to an asynchronous + operation instead of a completion handler. For example: +

+
std::future<std::size_t> length =
+  my_socket.async_read_some(my_buffer, asio::use_future);
+
+

+ Where a completion 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 completion 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. +

+
+ + See + Also +
+

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

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition/immediate_completion.html b/3party/asio/doc/asio/overview/composition/immediate_completion.html new file mode 100644 index 0000000..bf6f44a --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/immediate_completion.html @@ -0,0 +1,82 @@ + + + +Customising Immediate Completion + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ The associated_immediate_executor + associator trait, along with the bind_immediate_executor + function, provide the ability to customise the execution of a completion + handler when an asynchronous operation completes immediately. +

+

+ When a supported operation completes immediately (that is, within the initiating + function) the associated immmediate executor is obtained, and the completion + handler is delivered through that executor as if by using asio::dispatch on that executor. By default, + the immediate executor delivers the completion handler as if using asio::post via the operation's I/O executor. +

+

+ For example, to allow a recursive call to the completion handler of an + async_read_some operation, + we may specify that immediate completion is delivered via a system_executor: +

+
my_socket.async_read_some(my_buffer,
+    bind_immediate_executor(
+      system_executor(),
+      [](error_code e, size_t n)
+      {
+        // ...
+      }
+    )
+  );
+
+

+ Immediate execution is currently supported for asynchronous operations + on reactor-based sockets and descriptors, and for asynchronous operations + on channels. +

+

+ Note: When enabling the immediate execution + of completion handlers, care must be taken to ensure that unbounded recursion + and stack overflow do not occur. Furthermore, use of immediate completion + may impact the fairness of completion handler scheduling, with a potential + for starvation for other pending work. +

+
+ + See Also +
+

+ associated_immediate_executor, + bind_immediate_executor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition/parallel_group.html b/3party/asio/doc/asio/overview/composition/parallel_group.html new file mode 100644 index 0000000..2102998 --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/parallel_group.html @@ -0,0 +1,104 @@ + + + +Co-ordinating Parallel Operations + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
+ + + + + +
[Note]Note

+ This is an experimental feature. +

+

+ The experimental::make_parallel_group function may + be used to launch work that is performed in parallel, and wait for one + or all of the operations to complete. A parallel_group + implements automatic cancellation of incomplete operations. For example: +

+
experimental::make_parallel_group(
+    [&](auto token)
+    {
+      return stream.async_read_some(asio::buffer(data), token);
+    },
+    [&](auto token)
+    {
+      return timer.async_wait(token);
+    }
+  ).async_wait(
+    experimental::wait_for_one(),
+    [](
+        std::array<std::size_t, 2> completion_order,
+        asio::error_code ec1, std::size_t n1,
+        asio::error_code ec2
+    )
+    {
+      // ...
+    }
+  );
+
+

+ The conditions for completion of the group may be specified using one of + the four provided function objects wait_for_all, wait_for_one, wait_for_one_success, wait_for_one_error, or with a + custom function. +

+

+ The parallel_group facility + can also be combined with deferred as follows: +

+
experimental::make_parallel_group(
+    stream.async_read_some(asio::buffer(data), deferred),
+    timer.async_wait(experimental::deferred)
+  ).async_wait(
+    // ...
+  );
+
+

+ Note: for maximum flexibility, parallel_group + does not propagate the executor automatically to the operations within + the group. +

+
+ + See + Also +
+

+ experimental::make_parallel_group, + experimental::parallel_group, + Parallel Groups + examples (C++11), Parallel + Groups examples (C++14). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition/promises.html b/3party/asio/doc/asio/overview/composition/promises.html new file mode 100644 index 0000000..5f11b25 --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/promises.html @@ -0,0 +1,131 @@ + + + +Promises + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
+ + + + + +
[Note]Note

+ This is an experimental feature. +

+

+ The experimental::promise type and experimental::use_promise completion token allow + eager execution and synchronisation of asynchronous operations. For example: +

+
auto promise = async_read(
+    stream, asio::buffer(my_buffer),
+    asio::experimental::use_promise);
+
+... do other stuff while the read is going on ...
+
+promise.async_wait( // completion the operation
+    [](error_code ec, std::size_t bytes_read)
+    {
+      ...
+    });
+
+

+ Promises can be safely disregarded if the result is no longer required. + Different operations can be combined to either wait for all to complete + or for one to complete (and cancel the rest). For example, to wait for + one to complete: +

+
auto timeout_promise =
+  timer.async_wait(
+    asio::experimental::use_promise);
+
+auto read_promise = async_read(
+    stream, asio::buffer(my_buffer),
+    asio::experimental::use_promise);
+
+auto promise =
+  asio::experimental::make_parallel_group(
+    timeout_promise.async_wait(asio::deferred),
+    read_promise.async_wait(asio::deferred)
+  ).async_wait(
+    asio::experimental::wait_for_one(),
+    asio::experimental::use_promise);
+
+promise.async_wait(
+    [](std::array<std::size_t, 2> order,
+       error_code timer_ec,
+       error_code read_ec, std::size_t read_size)
+    {
+      if (order[0] == 0)
+      {
+        // timed out
+      }
+      else
+      {
+        // completed in time
+      }
+    });
+
+

+ or to wait for all to complete: +

+
auto write_promise = async_write(
+    stream, asio::buffer(my_write_buffer),
+    asio::experimental::use_promise);
+
+auto read_promise = async_read(
+    stream, asio::buffer(my_buffer),
+    asio::experimental::use_promise);
+
+auto promise =
+  asio::experimental::make_parallel_group(
+    timeout_promise.async_wait(asio::deferred),
+    read_promise.async_wait(asio::deferred)
+  ).async_wait(
+    asio::experimental::wait_for_all(),
+    asio::experimental::use_promise);
+
+promise.async_wait(
+    [](std::array<std::size_t, 2> order,
+       error_code timer_ec,
+       error_code read_ec, std::size_t read_size)
+    {
+      // ...
+    });
+
+
+ + See + Also +
+

+ promise, use_promise. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition/spawn.html b/3party/asio/doc/asio/overview/composition/spawn.html new file mode 100644 index 0000000..946299b --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/spawn.html @@ -0,0 +1,144 @@ + + + +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, asio::detached);
+
+// ...
+
+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 an executor or execution context. + 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 specified executor of + type Executor, the function + object signature is actually: +

+
void coroutine(asio::basic_yield_context<Executor> yield);
+
+
+ + See + Also +
+

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

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition/token_adapters.html b/3party/asio/doc/asio/overview/composition/token_adapters.html new file mode 100644 index 0000000..3a417c9 --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/token_adapters.html @@ -0,0 +1,316 @@ + + + +Completion Token Adapters + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A completion token adapter is a utility that can be + generically applied to a completion + token, to produce a new completion token with modified behaviour. + Common uses of completion token adapters include: +

+
    +
  • + Automatically wrapping the completion handler to add associated + characteristics. +
  • +
  • + Transforming the completion signature and arguments passed to the completion + handler. +
  • +
+

+ Asio includes a number of completion token adapters as described below. +

+
+ + bind_executor, + bind_allocator, and bind_cancellation_slot +
+

+ The bind_executor + function adapts a completion token to imbue the completion handler with + an associated executor. +

+

+ This example shows the bind_executor + adapter applied to a lambda, to specify that the handler should execute + in the specified strand. The arguments to the completion handler are passed + through as-is. +

+
my_socket.async_read_some(my_buffer,
+    asio::bind_executor(my_strand,
+      [](asio::error_code error, std::size_t bytes_transferred)
+      {
+        // ...
+      }));
+
+

+ When applied to completion tokens that cause the initiating function to + produce a result, such as use_awaitable, the result is returned + unmodified. +

+
asio::awaitable<void> my_coroutine()
+{
+  // ...
+  std::size_t bytes_transferred =
+    co_await my_socket.async_read_some(my_buffer,
+      asio::bind_executor(my_strand, asio::use_awaitable));
+  // ...
+}
+
+

+ The bind_allocator + and bind_cancellation_slot adapters + work similarly, to imbue the completion handler with an associated + allocator or associated + cancellation slot respectively. +

+
+ + redirect_error +
+

+ The redirect_error + function adapts a completion token to capture the error_code + produced by an operation into a specified variable. In doing so, it modifies + the completion signature to remove the initial error_code + parameter. +

+

+ This example shows the redirect_error + adapter applied to a lambda, to specify that the error should be captured + into my_error. The error_code is no longer passed to the + completion handler, but the remaining arguments are passed through as-is. +

+
asio::error_code my_error; // N.B. must be valid until operation completes
+// ...
+my_socket.async_read_some(my_buffer,
+    asio::redirect_error(
+      [](std::size_t bytes_transferred)
+      {
+        // ...
+      }, my_error));
+
+

+ When applied to completion tokens that cause the initiating function to + produce a result, such as use_awaitable, the result is returned + unmodified. However, if the operation fails, the co_await + expression will no longer throw an exception on resumption. +

+
asio::awaitable<void> my_coroutine()
+{
+  // ...
+  asio::error_code my_error;
+  std::size_t bytes_transferred =
+    co_await my_socket.async_read_some(my_buffer,
+      asio::redirect_error(asio::use_awaitable, my_error));
+  // ...
+}
+
+
+ + as_tuple +
+

+ The as_tuple + adapter can be used to specify that the completion handler arguments should + be combined into a single tuple argument. +

+

+ For example, the as_tuple + adapter may be used in conjunction with use_awaitable and structured bindings + as follows: +

+
auto [e, n] =
+  co_await my_socket.async_read_some(my_buffer,
+    asio::as_tuple(asio::use_awaitable));
+
+

+ This adapter may also be used as a default completion token: +

+
using default_token = asio::as_tuple_t<asio::use_awaitable_t<>>;
+using tcp_socket = default_token::as_default_on_t<tcp::socket>;
+// ...
+asio::awaitable<void> do_read(tcp_socket my_socket)
+{
+  // ...
+  auto [e, n] = co_await my_socket.async_read_some(my_buffer);
+  // ...
+}
+
+
+ + as_single +
+
+ + + + + +
[Note]Note

+ This is an experimental feature. +

+

+ The experimental::as_single adapter can be used + to specify that the completion handler arguments should be combined into + a single argument. For completion signatures with a single parameter, the + argument is passed through as-is. For signatures with two or more parameters, + the arguments are combined into a tuple. +

+

+ For example, when applied to a timer wait operation, the single error_code argument is passed directly + to the completion handler: +

+
my_timer.async_wait(
+    asio::experimental::as_single(
+      [](asio::error_code error)
+      {
+        // ...
+      }));
+
+

+ When applied to a socket read operation, where the completion signature + specifies two parameters, the handler is passed the result as a tuple: +

+
my_socket.async_read_some(my_buffer,
+    asio::experimental::as_single,
+      [](std::tuple<asio::error_code, std::size_t> result)
+      {
+        // ...
+      }));
+
+
+ + append +
+

+ The append + completion token adapter can be used to pass additional completion handler + arguments at the end of the completion signature. +

+

+ For example: +

+
timer.async_wait(
+    asio::append(
+      [](std::error_code ec, int i)
+      {
+        // ...
+      },
+      42
+    )
+  );
+
+std::future<int> f = timer.async_wait(
+    asio::append(
+      asio::use_future,
+      42
+    )
+  );
+
+
+ + prepend +
+

+ The prepend + completion token adapter can be used to pass additional completion handler + arguments before the existing completion handler arguments. +

+

+ For example: +

+
timer.async_wait(
+    asio::prepend(
+      [](int i, std::error_code ec)
+      {
+        // ...
+      },
+      42
+    )
+  );
+
+std::future<std::tuple<int, std::error_code>> f = timer.async_wait(
+    asio::prepend(
+      asio::use_future,
+      42
+    )
+  );
+
+
+ + consign +
+

+ The consign + completion token adapter can be used to attach additional values to a completion + handler. This is typically used to keep at least one copy of an object, + such as a smart pointer, alive until the completion handler is called. +

+

+ For example: +

+
auto timer1 = std::make_shared<asio::steady_timer>(my_io_context);
+timer1->expires_after(std::chrono::seconds(1));
+timer1->async_wait(
+    asio::consign(
+      [](std::error_code ec)
+      {
+        // ...
+      },
+      timer1
+    )
+  );
+
+auto timer2 = std::make_shared<asio::steady_timer>(my_io_context);
+timer2->expires_after(std::chrono::seconds(30));
+std::future<void> f =
+  timer2->async_wait(
+    asio::consign(
+      asio::use_future,
+      timer2
+    )
+  );
+
+
+ + See + Also +
+

+ bind_executor, bind_allocator, bind_cancellation_slot, + redirect_error, as_tuple, experimental::as_single, + append, prepend. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/composition/type_erasure.html b/3party/asio/doc/asio/overview/composition/type_erasure.html new file mode 100644 index 0000000..77b89a1 --- /dev/null +++ b/3party/asio/doc/asio/overview/composition/type_erasure.html @@ -0,0 +1,126 @@ + + + +Type Erasure, Separate Compilation and Virtual Functions + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ The any_completion_handler<> class template can be used to type-erase + completion handlers. This template stores a completion handler in a runtime-polymorphic + wrapper, and forwards the function call operator, associated executor, + associated allocator, and associated cancellation slot to the target handler. +

+

+ One use case is to enable separate compilation of asynchronous operation + implementations. For example, we can declare our implementation function + in a header file, and provide a thin asynchronous operation wrapper: +

+
void async_sleep_impl(
+    asio::any_completion_handler<void(asio::error_code)> handler,
+    asio::any_io_executor ex, std::chrono::nanoseconds duration);
+
+template <typename CompletionToken>
+inline auto async_sleep(asio::any_io_executor ex,
+    std::chrono::nanoseconds duration, CompletionToken&& token)
+{
+  return asio::async_initiate<
+    CompletionToken, void(asio::error_code)>(
+      async_sleep_impl, token, std::move(ex), duration);
+}
+
+

+ By wrapping a call to async_initiate, + the async_sleep template + function adds full support for completion tokens. The definition of async_sleep_impl is then put into a separately + compiled source file: +

+
void async_sleep_impl(
+    asio::any_completion_handler<void(asio::error_code)> handler,
+    asio::any_io_executor ex, std::chrono::nanoseconds duration)
+{
+  auto timer = std::make_shared<asio::steady_timer>(ex, duration);
+  timer->async_wait(asio::consign(std::move(handler), timer));
+}
+
+

+ Another use for any_completion_handler<> is to vary the implementation behind + an asynchronous operation at runtime, by using virtual functions: +

+
class line_reader
+{
+public:
+  // ...
+
+  template <typename CompletionToken>
+  auto async_read_line(std::string prompt, CompletionToken&& token)
+  {
+    return asio::async_initiate<
+      CompletionToken, void(asio::error_code, std::string)>(
+        [](auto handler, line_reader* self, std::string prompt)
+        {
+          self->async_read_line_impl(std::move(prompt), std::move(handler));
+        }, token, this, prompt);
+  }
+
+private:
+  virtual void async_read_line_impl(std::string prompt,
+      asio::any_completion_handler<
+        void(asio::error_code, std::string)> handler) = 0;
+};
+
+

+ A derived class provides the implementation of the operation: +

+
class stdin_line_reader : public line_reader
+{
+private:
+  // ...
+
+  void async_read_line_impl(std::string prompt,
+      asio::any_completion_handler<
+        void(asio::error_code, std::string)> handler) override
+  {
+    // ...
+  }
+};
+
+
+ + See + Also +
+

+ any_completion_handler, + type erasure + examples (C++11), type + erasure examples (C++20). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/core.html b/3party/asio/doc/asio/overview/core.html new file mode 100644 index 0000000..0d3de1a --- /dev/null +++ b/3party/asio/doc/asio/overview/core.html @@ -0,0 +1,72 @@ + + + +Core Concepts and Functionality + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+ + +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/core/allocation.html b/3party/asio/doc/asio/overview/core/allocation.html new file mode 100644 index 0000000..a94a68c --- /dev/null +++ b/3party/asio/doc/asio/overview/core/allocation.html @@ -0,0 +1,139 @@ + + + +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 an Asio library function. The implementation guarantees, + for the asynchronous operations included with the library, that within + the context of an individual operation 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 an asynchronous operation need to call the allocation + functions from different threads. (Note: If the same allocator is shared + across multiple concurrent asynchronous operations, this can result in + concurrent calls to the memory allocation functions. Use of a strand + does not prevent these concurrent calls, as an operation may need to allocate + memory from outside the strand. In this case, the shared allocator is responsible + for providing the necessary thread safety guarantees.) +

+
+ + See + Also +
+

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

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/core/async.html b/3party/asio/doc/asio/overview/core/async.html new file mode 100644 index 0000000..1d0d5ba --- /dev/null +++ b/3party/asio/doc/asio/overview/core/async.html @@ -0,0 +1,278 @@ + + + +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 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, Vista, 7 and later, 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/3party/asio/doc/asio/overview/core/buffers.html b/3party/asio/doc/asio/overview/core/buffers.html new file mode 100644 index 0000000..740a205 --- /dev/null +++ b/3party/asio/doc/asio/overview/core/buffers.html @@ -0,0 +1,258 @@ + + + +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::array + 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 + Literals +
+

+ The _buf literal suffix, + defined in namespace asio::buffer_literals, + may be used to create const_buffer + objects from string, binary integer, and hexadecimal integer literals. + These buffer literals may be arbitrarily long. For example: +

+
using namespace asio::buffer_literals;
+
+asio::const_buffer b1 = "hello"_buf;
+asio::const_buffer b2 = 0xdeadbeef_buf;
+asio::const_buffer b3 = 0x01234567'89abcdef'01234567'89abcdef_buf;
+asio::const_buffer b4 = 0b1010101011001100_buf;
+
+

+ The memory associated with a buffer literal is valid for the lifetime of + the program. This means that the buffer can be safely used with asynchronous + operations: +

+
async_write(my_socket, "hello"_buf, my_handler);
+
+
+ + 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/3party/asio/doc/asio/overview/core/cancellation.html b/3party/asio/doc/asio/overview/core/cancellation.html new file mode 100644 index 0000000..5f9b004 --- /dev/null +++ b/3party/asio/doc/asio/overview/core/cancellation.html @@ -0,0 +1,386 @@ + + + +Per-Operation Cancellation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
+ + + + + +
[Note]Note

+ These type requirements and classes are the low level building blocks + of cancellation. For most use cases, consider using a higher level abstraction, + such as experimental::make_parallel_group + or the logical + operators for awaitable. +

+

+ I/O objects, such as sockets and timers, support object-wide cancellation + of outstanding asynchronous operations via their close + or cancel member functions. + However, certain asynchronous operations also support individual, targeted + cancellation. This per-operation cancellation is enabled by specifying + that a completion handler has an associated + cancellation slot which satisfies the CancellationSlot + type requirements. A cancellation slot is a lightweight channel used for + delivering a cancellation request. +

+

+ Given a copy of a user-defined Handler + object h, if an asynchronous + operation supports cancellation it will obtain a cancellation slot using + the get_associated_cancellation_slot + function. For example: +

+
asio::associated_cancellation_slot_t<Handler> s
+  = asio::get_associated_cancellation_slot(h);
+
+

+ The associated cancellation slot must satisfy the CancellationSlot type + requirements. +

+

+ By default, handlers use a default-constructed cancellation_slot, which means + that per-operation cancellation is disabled. The cancellation slot may + be customised for a particular handler type by specifying a nested type + cancellation_slot_type + and member function get_cancellation_slot(): +

+
class my_handler
+{
+public:
+  // Custom implementation of CancellationSlot type requirements.
+  typedef my_cancellation_slot cancellation_slot_type;
+
+  // Return a custom cancellation slot implementation.
+  cancellation_slot_type get_cancellation_slot() const noexcept
+  {
+    return my_cancellation_slot(...);
+  }
+
+  void operator()() { ... }
+};
+
+

+ In more complex cases, the associated_cancellation_slot + template may be partially specialised directly: +

+
namespace asio {
+
+  template <typename CancellationSlot>
+  struct associated_cancellation_slot<my_handler, CancellationSlot>
+  {
+    // Custom implementation of CancellationSlot type requirements.
+    typedef my_cancellation_slot type;
+
+    // Return a custom cancellation_slot implementation.
+    static type get(const my_handler&,
+        const CancellationSlot& a = CancellationSlot()) noexcept
+    {
+      return my_cancellation_slot(...);
+    }
+  };
+
+} // namespace asio
+
+

+ For convenience, a cancellation slot may be associated with a handler by + using the bind_cancellation_slot function. + This is particularly useful when associating a cancellation slot with a + lambda: +

+
asio::async_read(my_socket, my_buffer,
+    asio::bind_cancellation_slot(
+      my_cancellation_slot,
+      [](asio::error_code e, std::size_t n)
+      {
+        ...
+      }
+    )
+  );
+
+

+ Asio provides a ready-to-use cancellation slot in the form of cancellation_slot and its counterpart + cancellation_signal. + These two classes implement a one-to-one pairing of producer (signal) and + consumer (slot) interfaces. The following example shows its use: +

+
class session
+  : public std::enable_shared_from_this<proxy>
+{
+  ...
+
+  void do_read()
+  {
+    auto self = shared_from_this();
+    socket_.async_read_some(
+        buffer(data_),
+        asio::bind_cancellation_slot(
+          cancel_signal_.slot(),
+          [self](std::error_code error, std::size_t n)
+          {
+            ...
+          }
+        )
+      );
+  }
+
+  ...
+
+  void request_cancel()
+  {
+    cancel_signal_.emit(asio::cancellation_type::total);
+  }
+
+  ...
+
+  asio::cancellation_signal cancel_signal_;
+};
+
+

+ A cancellation_signal contains + a single slot, and consequently a cancellation signal/slot pair may be + used with at most one operation at a time. However, the same slot may be + reused for subsequent operations. +

+

+ To support cancellation, an asynchronous operation installs a cancellation + handler into the slot by calling the slot's assign + or emplace functions. This + handler will be invoked when a cancellation signal is emitted. A slot holds + exactly one handler at a time, and installing a new handler will overwrite + any previously installed handler. +

+

+ When emitting a cancellation signal, the caller must specify a cancellation + type. This value is a bitmask that dictates what guarantees the + cancellation target must make if successful cancellation occurs. The possible + bit values are, from weakest to strongest guarantee, are: +

+
+

Table 1. cancellation types

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Bit +

+
+

+ Guarantee if cancellation is successful +

+
+

+ Examples where this is the strongest supported guarantee +

+
+

+ terminal +

+
+

+ The operation had unspecified side effects, and it is only safe + to close or destroy the I/O object. +

+
+

+ A stateful implementation of a message framing protocol, where + an asynchronous operation sends or receives a complete message. + If cancellation occurs part-way through the message body, it + is not possible to report a sensible state to the completion + handler. +

+
+

+ partial +

+
+

+ The operation had well-defined side effects, and the completion + handler for the operation indicates what these side effects were. +

+
+

+ Composed operations such as async_read + and async_write. + If cancellation occurs before all bytes are transferred, the + completion handler is passed the total bytes transferred so far. + The caller may use this information to start another operation + to transfer the remaining bytes. +

+
+

+ total +

+
+

+ The operation had no side effects that are observable through + the API. +

+
+

+ Low level system calls that transfer either zero or non-zero + bytes.

Wait-for-readiness operations that have no + side effects, even when successful.

A fully buffered + message framing protocol implementation, where partial messages + are stored so that they may be reused on the next operation. +

+
+
+

+ For example, if application logic requires that an operation complete with + all-or-nothing side effects, it should emit only the total + cancellation type. If this type is unsupported by the target operation, + no cancellation will occur. +

+

+ Furthermore, a stronger guarantee always satisfies the requirements of + a weaker guarantee. The partial + guarantee still satisfies the terminal + guarantee. The total guarantee + satisfies both partial + and total. This means that + when an operation supports a given cancellation type as its strongest guarantee, + it should honour cancellation requests for any of the weaker guarantees. +

+

+ Cancellation requests should not be emitted during an asynchronous operation's + initiating function. Cancellation requests that are emitted before an operation + starts have no effect. Similarly, cancellation requests made after completion + have no effect. +

+

+ When emitting a cancellation signal, the thread safety rules apply as if + calling a member function on the target operation's I/O object. For non-composed + operations, this means that it is safe to emit the cancellation signal + from any thread provided there are no other concurrent calls to the I/O + object, and no other concurrent cancellation signal requests. For composed + operations, care must be taken to ensure the cancellation request does + not occur concurrently with the operation's intermediate completion handlers. +

+
+ + Supported + Operations +
+

+ Consult the documentation for individual asynchronous operations for their + supported cancellation types, if any. The ability to cancel individual + operations, or composed operations, is currently supported by: +

+
    +
  • + timers +
  • +
  • + sockets on POSIX and Windows +
  • +
  • + POSIX descriptors +
  • +
  • + Windows HANDLEs +
  • +
  • + signal sets +
  • +
  • + serial ports +
  • +
  • + SSL streams +
  • +
  • + all Asio-provided composed operations such as async_read + and async_write +
  • +
  • + compositions based on async_compose +
  • +
  • + C++20 coroutines that use awaitable +
  • +
  • + C++20 coroutines that use experimental::coro +
  • +
  • + the experimental::parallel_group operation +
  • +
  • + the experimental::promise class +
  • +
+
+ + See + Also +
+

+ CancellationSlot, + associated_cancellation_slot, + bind_cancellation_slot, + cancellation_signal, + cancellation_slot, + cancellation_state, + cancellation_type, + get_associated_cancellation_slot, + experimental::parallel_group, + experimental::make_parallel_group +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/core/concurrency_hint.html b/3party/asio/doc/asio/overview/core/concurrency_hint.html new file mode 100644 index 0000000..58bb502 --- /dev/null +++ b/3party/asio/doc/asio/overview/core/concurrency_hint.html @@ -0,0 +1,173 @@ + + + +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). +

+

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

+
+

+ 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 the run functions + on the io_context + (i.e. run, run_for, run_until, + run_one, run_one_for, run_one_until, poll, and poll_one), + 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/3party/asio/doc/asio/overview/core/handler_tracking.html b/3party/asio/doc/asio/overview/core/handler_tracking.html new file mode 100644 index 0000000..3ee4e79 --- /dev/null +++ b/3party/asio/doc/asio/overview/core/handler_tracking.html @@ -0,0 +1,487 @@ + + + +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|1589424178.741850|0*1|signal_set@0x7ffee977d878.async_wait
+@asio|1589424178.742593|0*2|socket@0x7ffee977d8a8.async_accept
+@asio|1589424178.742619|.2|non_blocking_accept,ec=asio.system:11
+@asio|1589424178.742625|0|resolver@0x7ffee977d760.cancel
+@asio|1589424195.830382|.2|non_blocking_accept,ec=system:0
+@asio|1589424195.830413|>2|ec=system:0
+@asio|1589424195.830473|2*3|socket@0x7fa71d808230.async_receive
+@asio|1589424195.830496|.3|non_blocking_recv,ec=system:0,bytes_transferred=151
+@asio|1589424195.830503|2*4|socket@0x7ffee977d8a8.async_accept
+@asio|1589424195.830507|.4|non_blocking_accept,ec=asio.system:11
+@asio|1589424195.830510|<2|
+@asio|1589424195.830529|>3|ec=system:0,bytes_transferred=151
+@asio|1589424195.831143|3^5|in 'async_write' (./../../../include/asio/impl/write.hpp:330)
+@asio|1589424195.831143|3*5|socket@0x7fa71d808230.async_send
+@asio|1589424195.831186|.5|non_blocking_send,ec=system:0,bytes_transferred=1090
+@asio|1589424195.831194|<3|
+@asio|1589424195.831218|>5|ec=system:0,bytes_transferred=1090
+@asio|1589424195.831263|5|socket@0x7fa71d808230.close
+@asio|1589424195.831298|<5|
+@asio|1589424199.793770|>1|ec=system:0,signal_number=2
+@asio|1589424199.793781|1|socket@0x7ffee977d8a8.close
+@asio|1589424199.793809|<1|
+@asio|1589424199.793840|>4|ec=asio.system:125
+@asio|1589424199.793854|<4|
+@asio|1589424199.793883|0|signal_set@0x7ffee977d878.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 is about to create a new asynchronous + operation with completion handler number m. The <description> + contains source location information to help identify where in the + program the asynchronous operation is being started. +

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

+
+ + Adding + Location Information +
+

+ Programs may augment the handler tracking output's location information + by using the macro ASIO_HANDLER_LOCATION + in the source code. For example: +

+
#define HANDLER_LOCATION \
+  ASIO_HANDLER_LOCATION((__FILE__, __LINE__, __func__))
+
+// ...
+
+void do_read()
+{
+  HANDLER_LOCATION;
+
+  auto self(shared_from_this());
+  socket_.async_read_some(asio::buffer(data_, max_length),
+      [this, self](std::error_code ec, std::size_t length)
+      {
+        HANDLER_LOCATION;
+
+        if (!ec)
+        {
+          do_write(length);
+        }
+      });
+}
+
+

+ With the additional location information available, the handler tracking + output may include a call stack of source locations: +

+
@asio|1589423304.861944|>7|ec=system:0,bytes_transferred=5
+@asio|1589423304.861952|7^8|in 'async_write' (./../../../include/asio/impl/write.hpp:330)
+@asio|1589423304.861952|7^8|called from 'do_write' (handler_tracking/async_tcp_echo_server.cpp:62)
+@asio|1589423304.861952|7^8|called from 'operator()' (handler_tracking/async_tcp_echo_server.cpp:51)
+@asio|1589423304.861952|7*8|socket@0x7ff61c008230.async_send
+@asio|1589423304.861975|.8|non_blocking_send,ec=system:0,bytes_transferred=5
+@asio|1589423304.861980|<7|
+
+

+ Furthermore, if std::source_location or std::experimental::source_location + are available, the use_awaitable_t + token (when default-constructed or used as a default completion token) + will also cause handler tracking to output a source location for each newly + created asynchronous operation. A use_awaitable_t object may + also be explicitly constructed with location information. +

+
+ + 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_LOCATION(args) +

+
+

+ A variable declaration that is used to define a source code location. + args is a parenthesised + function argument list containing the file name, line number, + and function name. +

+
+

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

+ Handler tracking + examples. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/core/line_based.html b/3party/asio/doc/asio/overview/core/line_based.html new file mode 100644 index 0000000..b58fe68 --- /dev/null +++ b/3party/asio/doc/asio/overview/core/line_based.html @@ -0,0 +1,155 @@ + + + +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/3party/asio/doc/asio/overview/core/reactor.html b/3party/asio/doc/asio/overview/core/reactor.html new file mode 100644 index 0000000..fa3acda --- /dev/null +++ b/3party/asio/doc/asio/overview/core/reactor.html @@ -0,0 +1,76 @@ + + + +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/3party/asio/doc/asio/overview/core/strands.html b/3party/asio/doc/asio/overview/core/strands.html new file mode 100644 index 0000000..6f973eb --- /dev/null +++ b/3party/asio/doc/asio/overview/core/strands.html @@ -0,0 +1,158 @@ + + + +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/3party/asio/doc/asio/overview/core/streams.html b/3party/asio/doc/asio/overview/core/streams.html new file mode 100644 index 0000000..e596722 --- /dev/null +++ b/3party/asio/doc/asio/overview/core/streams.html @@ -0,0 +1,118 @@ + + + +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/3party/asio/doc/asio/overview/core/threads.html b/3party/asio/doc/asio/overview/core/threads.html new file mode 100644 index 0000000..d230ef1 --- /dev/null +++ b/3party/asio/doc/asio/overview/core/threads.html @@ -0,0 +1,121 @@ + + + +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/3party/asio/doc/asio/overview/cpp2011.html b/3party/asio/doc/asio/overview/cpp2011.html new file mode 100644 index 0000000..8ccbbf9 --- /dev/null +++ b/3party/asio/doc/asio/overview/cpp2011.html @@ -0,0 +1,59 @@ + + + +C++ 2011 Support + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+ + +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/cpp2011/array.html b/3party/asio/doc/asio/overview/cpp2011/array.html new file mode 100644 index 0000000..2be9372 --- /dev/null +++ b/3party/asio/doc/asio/overview/cpp2011/array.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/overview/cpp2011/atomic.html b/3party/asio/doc/asio/overview/cpp2011/atomic.html new file mode 100644 index 0000000..4678d68 --- /dev/null +++ b/3party/asio/doc/asio/overview/cpp2011/atomic.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/overview/cpp2011/chrono.html b/3party/asio/doc/asio/overview/cpp2011/chrono.html new file mode 100644 index 0000000..852f3e9 --- /dev/null +++ b/3party/asio/doc/asio/overview/cpp2011/chrono.html @@ -0,0 +1,56 @@ + + + +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/3party/asio/doc/asio/overview/cpp2011/move_handlers.html b/3party/asio/doc/asio/overview/cpp2011/move_handlers.html new file mode 100644 index 0000000..e8fe45a --- /dev/null +++ b/3party/asio/doc/asio/overview/cpp2011/move_handlers.html @@ -0,0 +1,77 @@ + + + +Movable Handlers + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ With C++11 and later, user-defined completion handlers are only required + to be move constructible, and are not 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
+{
+  unique_ptr<tcp::socket> socket;
+  unique_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/3party/asio/doc/asio/overview/cpp2011/move_objects.html b/3party/asio/doc/asio/overview/cpp2011/move_objects.html new file mode 100644 index 0000000..c4de1ea --- /dev/null +++ b/3party/asio/doc/asio/overview/cpp2011/move_objects.html @@ -0,0 +1,99 @@ + + + +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/3party/asio/doc/asio/overview/cpp2011/shared_ptr.html b/3party/asio/doc/asio/overview/cpp2011/shared_ptr.html new file mode 100644 index 0000000..d39e729 --- /dev/null +++ b/3party/asio/doc/asio/overview/cpp2011/shared_ptr.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/overview/cpp2011/system_error.html b/3party/asio/doc/asio/overview/cpp2011/system_error.html new file mode 100644 index 0000000..a0edff3 --- /dev/null +++ b/3party/asio/doc/asio/overview/cpp2011/system_error.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/overview/cpp2011/variadic.html b/3party/asio/doc/asio/overview/cpp2011/variadic.html new file mode 100644 index 0000000..6304754 --- /dev/null +++ b/3party/asio/doc/asio/overview/cpp2011/variadic.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/overview/files.html b/3party/asio/doc/asio/overview/files.html new file mode 100644 index 0000000..25683bf --- /dev/null +++ b/3party/asio/doc/asio/overview/files.html @@ -0,0 +1,85 @@ + + + +Files + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+

+Files +

+
+ + + + + +
[Note]Note

+ This feature requires I/O completion ports on Windows, and io_uring on + Linux (define ASIO_HAS_IO_URING + to enable). +

+

+ Asio provides support for manipulating stream-oriented and random-access + files. For example, to write to a newly created stream-oriented file: +

+
asio::stream_file file(
+    my_io_context, "/path/to/file",
+    asio::stream_file::write_only
+      | asio::stream_file::create
+      | asio::stream_file::truncate);
+
+file.async_write_some(my_buffer,
+    [](error_code e, size_t n)
+    {
+      // ...
+    });
+
+

+ or to read from a random-access file: +

+
asio::random_access_file file(
+    my_io_context, "/path/to/file",
+    asio::random_access_file::read_only);
+
+file.async_read_some_at(1234, my_buffer,
+    [](error_code e, size_t n)
+    {
+      // ...
+    });
+
+
+ + See + Also +
+

+ basic_file, basic_random_access_file, + basic_stream_file, + file_base, random_access_file, + stream_file. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/implementation.html b/3party/asio/doc/asio/overview/implementation.html new file mode 100644 index 0000000..4454803 --- /dev/null +++ b/3party/asio/doc/asio/overview/implementation.html @@ -0,0 +1,553 @@ + + + +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. +
+
+ + Linux + Kernel 5.10 +
+

+ Demultiplexing mechanism: +

+
    +
  • + If ASIO_HAS_IO_URING + is defined, uses io_uring + for file-related asynchonous operations. +
  • +
  • + Uses epoll for demultiplexing + other event sources. +
  • +
  • + Optionally uses io_uring + for all asynchronous operations if, in addition to ASIO_HAS_IO_URING, + ASIO_DISABLE_EPOLL is + defined to disable epoll. +
  • +
+

+ Threads: +

+
    +
  • + Demultiplexing using epoll + and io_uring 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, 8, 10 and 11 +
+

+ 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 + may be used for select + demultiplexing. This thread is created on the first call to: +
      +
    • + A socket async_wait() function, except when using + wait_read on a + stream-oriented socket. (For wait_read + on a stream-oriented socket, the overlapped I/O operation WSARecv is used and no additional + thread is required.) +
    • +
    • + A socket async_connect() operation, if the overlapped + I/O operation ConnectEx + is unavailable. (On recent versions of Windows, ConnectEx + is used and no additional thread is required.) +
    • +
    +
  • +
  • + 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/3party/asio/doc/asio/overview/model.html b/3party/asio/doc/asio/overview/model.html new file mode 100644 index 0000000..bafb7f1 --- /dev/null +++ b/3party/asio/doc/asio/overview/model.html @@ -0,0 +1,77 @@ + + + +Asynchronous Model + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ This section presents a high-level overview of the asynchronous model at + the core of the Asio library. This model enshrines asynchronous operations + as the fundamental building block of asynchronous composition, but in a way + that decouples them from the composition mechanism. The asynchronous operations + in Asio support callbacks, futures (both eager and lazy), fibers, coroutines, + and approaches yet to be imagined. This allows the application programmer + to select an approach based on appropriate trade-offs. +

+ +
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/model/allocators.html b/3party/asio/doc/asio/overview/model/allocators.html new file mode 100644 index 0000000..184cac8 --- /dev/null +++ b/3party/asio/doc/asio/overview/model/allocators.html @@ -0,0 +1,113 @@ + + + +Allocators + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Every asynchronous agent has an associated allocator. + An agent's allocator is an interface used by the agent's asynchronous operations + to obtain per-operation stable memory resources (POSMs). + This name reflects the fact that the memory is per-operation because the + memory is only retained for the lifetime of that operation, and stable, + because the memory is guaranteed to be available at that location throughout + the operation. +

+

+ Asynchronous operations may utilise POSMs in a number of different ways: +

+
    +
  • + The operation doesn't require any POSMs. For example, the operation + wraps an existing API that performs its own memory management, or is + copying the long lived state into existing memory like a circular buffer. +
  • +
  • + The operation uses a single, fixed-size POSM for as long as the operation + is outstanding. For example, the operation stores some state in a linked + list. +
  • +
  • + The operation uses a single, runtime-sized POSM. For example, the operation + stores a copy of a user-supplied buffer, or a runtime-sized array of + iovec structures. +
  • +
  • + The operation uses multiple POSMs concurrently. For example, a fixed + size POSM for a linked list plus a runtime-sized POSM for a buffer. +
  • +
  • + The operation uses multiple POSMs serially, which may vary in size. +
  • +
+

+ Associated allocators allow users to treat POSM optimisation as a cross-cutting + concern to the composition of asynchronous operations. Furthermore, using + allocators as the interface to obtain POSMs grant substantial flexibility + to both the implementers and users of asynchronous operations: +

+
    +
  • + Users can ignore the allocator and accept whatever default strategy + is employed by the application. +
  • +
  • + Implementers can ignore the allocator, especially if the operation + is not considered performance-sensitive. +
  • +
  • + Users can co-locate POSMs for related asynchronous operations, for + better locality of reference. +
  • +
  • + For compositions that involve serial POSMs of different sizes, memory + usage need only be as great as the currently extant POSM. For example, + consider a composition that contains a short-lived operation that uses + large POSMs (connection establishment and handshake) followed by a + long-lived operation that uses small POSMs (transferring data to and + from the peer). +
  • +
+

+ As noted previously, all resources must be released prior to calling the + completion handler. This enables memory to be recycled for subsequent asynchronous + operations within an agent. This allows applications with long-lived asynchronous + agents to have no hot-path memory allocations, even though the user code + is unaware of associated allocators. +

+
+ + See + Also +
+

+ Custom Memory Allocation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/model/associators.html b/3party/asio/doc/asio/overview/model/associators.html new file mode 100644 index 0000000..fe0d408 --- /dev/null +++ b/3party/asio/doc/asio/overview/model/associators.html @@ -0,0 +1,150 @@ + + + +Associated Characteristics and Associators + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ An asynchronous agent has associated characteristics + that specify how asynchronous operations should behave when composed as + part of that agent, such as: +

+
    +
  • + An allocator, which determines how the agent's asynchronous operations + obtain memory resources. +
  • +
  • + A cancellation slot, which determines how the agent's asynchronous + operations support cancellation. +
  • +
  • + An executor, which determines how the agent's completion handlers will + be queued and run. +
  • +
+

+ When an asynchronous operation is run within an asynchronous agent, its + implementation may query these associated characteristics and use them + to satisfy the requirements or preferences they represent. The asynchronous + operation performs these queries by applying associator + traits to the completion handler. Each characteristic has a corresponding + associator trait. +

+

+ An associator trait may be specialised for concrete completion handler + types to: +

+
    +
  • + accept the default characteristic supplied by the asynchronous operation, + returning this default as-is +
  • +
  • + return an unrelated implementation of the characteristic, or +
  • +
  • + adapt the supplied default to introduce additional behaviour required + by the completion handler. +
  • +
+
+ + Specification + of an Associator +
+

+ Given an associator trait named[2] associated_R, + having: +

+
    +
  • + a source value s of + type S, in this case + the completion handler and its type, +
  • +
  • + a set of type requirements (or a concept) R + that define the syntactic and semantic requirements of the associated + characteristic, and +
  • +
  • + a candidate value c + of type C that meets + the type requirements R, + which represents a default implementation of the associated characteristic, + supplied by the asynchronous operation +
  • +
+

+ the asynchronous operation uses the associator trait to compute: +

+
    +
  • + the type associated_R<S, C>::type, + and +
  • +
  • + the value associated_R<S, C>::get(s, c) +
  • +
+

+ that meet the requirements defined in R. + For convenience, these are also accessible via type alias associated_R_t<S, C> and free function get_associated_R(s, + c), + respectively. +

+

+ The trait's primary template is specified such that: +

+
    +
  • + if S::R_type is well-formed, defines a + nested type alias type as S::R_type, + and a static member function get that returns s.get_R() +
  • +
  • + otherwise, if associator<associated_R, S, C>::type + is well-formed and denotes a type, inherits from associator<associated_R, S, C> +
  • +
  • + otherwise, defines a nested type alias type as C, + and a static member function get that returns c. +
  • +
+
+

+

[2] + The associator traits are named associated_allocator, associated_executor, + and associated_cancellation_slot. +

+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/model/async_agents.html b/3party/asio/doc/asio/overview/model/async_agents.html new file mode 100644 index 0000000..efd594a --- /dev/null +++ b/3party/asio/doc/asio/overview/model/async_agents.html @@ -0,0 +1,69 @@ + + + +Asynchronous Agents + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ An asynchronous agent is a sequential composition + of asynchronous operations. Every asynchronous operation is considered + to run as a part of an asynchronous agent, even if that agent contains + only that single operation. An asynchronous agent is an entity that may + perform work concurrently with other agents. Asynchronous agents are to + asynchronous operations as threads are to synchronous operations. +

+

+ However, an asynchronous agent is a purely notional construct that allows + us to reason about the context for, and composition of, asynchronous operations + in a program. The name “asynchronous agent” does not appear in the + library, nor is it important which concrete mechanism[1] is used to compose the asynchronous operations in an agent. +

+

+ We can visualise an asynchronous agent as follows: +

+

+ +

+

+ Asynchronous agents alternately wait for an asynchronous operation to complete, + and then run a completion handler for that operation. Within the context + of an agent, these completion handlers represent indivisible units of schedulable + work. +

+
+

+

[1] + Such as chains of lambdas, coroutines, fibers, state machines, etc. +

+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/model/async_ops.html b/3party/asio/doc/asio/overview/model/async_ops.html new file mode 100644 index 0000000..0f28097 --- /dev/null +++ b/3party/asio/doc/asio/overview/model/async_ops.html @@ -0,0 +1,139 @@ + + + +Asynchronous Operations + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ An asynchronous operation is the basic unit of composition + in the Asio asynchronous model. Asynchronous operations represent work + that is launched and performed in the background, while the user's code + that initiated the work can continue with other things. +

+

+ Conceptually, the lifecycle of an asynchronous operation can be described + in terms of the following events and phases: +

+

+ +

+

+ An initiating function is a function which may be + called by the user to start an asynchronous operation. +

+

+ A completion handler is a user-provided, move-only + function object that will be invoked, at most once, with the result of + the asynchronous operation. The invocation of the completion handler tells + the user about something that has already happened: the operation completed, + and the side effects of the operation were established. +

+

+ The initiating function and completion handler are incorporated into the + user's code as follows: +

+

+ +

+

+ Synchronous operations, being embodied as single functions, have several + inherent semantic properties as a consequence. Asynchronous operations + adopt some of these semantic properties from their synchronous counterparts, + in order to facilitate flexible and efficient composition. +

+
++++ + + + + + + + + + + + + + + +
+

+ Property of synchronous operations +

+
+

+ Equivalent property of asynchronous operations +

+
+

+ When a synchronous operation is generic (i.e. a template) the + return type is deterministically derived from the function and + its arguments. +

+
+

+ When an asynchronous operation is generic, the completion handler's + arguments' types and order are deterministically derived from + the initiating function and its arguments. +

+
+

+ If a synchronous operation requires a temporary resource (such + as memory, a file descriptor, or a thread), this resource is + released before returning from the function. +

+
+

+ If an asynchronous operation requires a temporary resource (such + as memory, a file descriptor, or a thread), this resource is + released before calling the completion handler. +

+
+

+ The latter is an important property of asynchronous operations, in that + it allows a completion handler to initiate further asynchronous operations + without overlapping resource usage. Consider the trivial (and relatively + common) case of the same operation being repeated over and over in a chain: +

+

+ +

+

+ By ensuring that resources are released before the completion handler runs, + we avoid doubling the peak resource usage of the chain of operations. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/model/cancellation.html b/3party/asio/doc/asio/overview/model/cancellation.html new file mode 100644 index 0000000..f191953 --- /dev/null +++ b/3party/asio/doc/asio/overview/model/cancellation.html @@ -0,0 +1,64 @@ + + + +Cancellation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ In Asio, many objects, such as sockets and timers, support object-wide + cancellation of outstanding asynchronous operations via their close or + cancel member functions. However, certain asynchronous operations also + support individual, targeted cancellation. This per-operation cancellation + is enabled by specifying that every asynchronous agent has an associated + cancellation slot. +

+

+ To support cancellation, an asynchronous operation installs a cancellation + handler into the agent's slot. The cancellation handler is a function object + that will be invoked when a cancellation signal is emitted by the user + into the slot. Since a cancellation slot is associated with a single agent, + the slot holds at most one handler at a time, and installing a new handler + will overwrite any previously installed handler. Thus, the same slot is + reused for subsequent asynchronous operations within the agent. +

+

+ Cancellation is particularly useful when an asynchronous operation contains + multiple child agents. For example, one child agent may be complete and + the other is then cancelled, as its side effects are no longer required. +

+
+ + See + Also +
+

+ Per-Operation Cancellation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/model/child_agents.html b/3party/asio/doc/asio/overview/model/child_agents.html new file mode 100644 index 0000000..799e433 --- /dev/null +++ b/3party/asio/doc/asio/overview/model/child_agents.html @@ -0,0 +1,108 @@ + + + +Child Agents + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ The asynchronous operations within an agent may themselves be implemented + in terms of child agents.[3] As far as the parent agent is concerned, it is waiting for + the completion of a single asynchronous operation. The asynchronous operations + that constitute the child agent run in sequence, and when the final completion + handler runs the parent agent is resumed. +

+

+ +

+

+ As with individual asynchronous operations, the asynchronous operations + built on child agents must release their temporary resources prior to calling + the completion handler. We may also think of these child agents as resources + that end their lifetimes before the completion handler is invoked. +

+

+ When an asynchronous operation creates a child agent, it may propagate[4] the associated characteristics of the parent agent to the child + agent. These associated characteristics may then be recursively propagated + through further layers of asynchronous operations and child agents. This + stacking of asynchronous operations replicates another property of synchronous + operations. +

+
++++ + + + + + + + + +
+

+ Property of synchronous operations +

+
+

+ Equivalent property of asynchronous operations +

+
+

+ Compositions of synchronous operations may be refactored to use + child functions that run on the same thread (i.e. are simply + called) without altering functionality. +

+
+

+ Asynchronous agents may be refactored to use asynchronous operations + and child agents that share the associated characteristics of + the parent agent, without altering functionality. +

+
+

+ Finally, some asynchronous operations may be implemented in terms of multiple + child agents that run concurrently. In this case, the asynchronous operation + may choose to selectively propagate the associated characteristics of the + parent agent. +

+
+

+

[3] + In Asio these asynchronous operations are referred to as composed + operations. +

+

[4] + Typically, by specialising the associator trait and forwarding to the + outer completion handler. +

+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/model/completion_tokens.html b/3party/asio/doc/asio/overview/model/completion_tokens.html new file mode 100644 index 0000000..dedeccb --- /dev/null +++ b/3party/asio/doc/asio/overview/model/completion_tokens.html @@ -0,0 +1,325 @@ + + + +Completion Tokens + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A key goal of Asio's asynchronous model is to support multiple composition + mechanisms. This is achieved via a completion token, + which the user passes to an asynchronous operation's initiating function + to customise the API surface of the library. By convention, the completion + token is the final argument to an asynchronous operation's initiating function. +

+

+ For example, if the user passes a lambda (or other function object) as + the completion token, the asynchronous operation behaves as previously + described: the operation begins, and when the operation completes the result + is passed to the lambda. +

+
socket.async_read_some(buffer,
+    [](error_code e, size_t)
+    {
+      // ...
+    }
+  );
+
+

+ When the user passes the use_future + completion token, the operation behaves as though implemented in terms + of a promise and future pair. The initiating function + does not just launch the operation, but also returns a future that may + be used to await the result. +

+
future<size_t> f =
+  socket.async_read_some(
+      buffer, use_future
+    );
+// ...
+size_t n = f.get();
+
+

+ Similarly, when the user passes the use_awaitable + completion token, the initiating function behaves as though it is an awaitable-based coroutine [6]. However, in this case the initiating function does not launch + the asynchronous operation directly. It only returns the awaitable, which in turn launches the + operation when it is co_await-ed. +

+
awaitable<void> foo()
+{
+  size_t n =
+    co_await socket.async_read_some(
+        buffer, use_awaitable
+      );
+
+  // ...
+}
+
+

+ Finally, the yield_context + completion token causes the initiating function to behave as a synchronous + operation within the context of a stackful coroutine. It not only begins + the asynchronous operation, but blocks the stackful coroutine until it + is complete. From the point of the stackful coroutine, it is a synchronous + operation. +

+
void foo(asio::yield_context yield)
+{
+  size_t n = socket.async_read_some(buffer, yield);
+
+  // ...
+}
+
+

+ All of these uses are supported by a single implementation of the async_read_some initiating function. +

+

+ To achieve this, an asynchronous operation must first specify a completion + signature (or, possibly, signatures) that describes the arguments + that will be passed to its completion handler. +

+

+ Then, the operation's initiating function takes the completion signature, + completion token, and its internal implementation and passes them to the + async_result trait. The async_result + trait is a customisation point that combines these to first produce a concrete + completion handler, and then launch the operation. +

+

+ +

+

+ To see this in practice, let's use a detached thread to adapt a synchronous + operation into an asynchronous one:[7] +

+
template <
+    completion_token_for<void(error_code, size_t)> 1
+      CompletionToken>
+auto async_read_some(
+    tcp::socket& s,
+    const mutable_buffer& b,
+    CompletionToken&& token)
+{
+  auto init = []( 2
+      auto completion_handler,
+      tcp::socket* s,
+      const mutable_buffer& b)
+  {
+    std::thread( 3
+        [](
+            auto completion_handler,
+            tcp::socket* s,
+            const mutable_buffer& b
+          )
+        {
+          error_code ec;
+          size_t n = s->read_some(b, ec);
+          std::move(completion_handler)(ec, n); 4
+        },
+        std::move(completion_handler),
+        s,
+        b
+      ).detach();
+  };
+
+  return async_result< 5
+      decay_t<CompletionToken>,
+      void(error_code, size_t)
+    >::initiate(
+        init, 6
+        std::forward<CompletionToken>(token), 7
+        &s, 8
+        b
+      );
+}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

1

+ The completion_token_for + concept checks whether the user-supplied completion token will satisfy + the specified completion signature. For older versions of C++, simply + use typename here instead. +

2

+ Define a function object that contains the code to launch the asynchronous + operation. This is passed the concrete completion handler, followed + by any additional arguments that were passed through the async_result trait. +

3

+ The body of the function object spawns a new thread to perform the + operation. +

4

+ Once the operation completes, the completion handler is passed the + result. +

5

+ The async_result trait + is passed the (decayed) completion token type, and the completion signatures + of the asynchronous operation. +

6

+ Call the trait’s initiate + member function, first passing the function object that launches the + operation. +

7

+ Next comes the forwarded completion token. The trait implementation + will convert this into a concrete completion handler. +

8

+ Finally, pass any additional arguments for the function object. Assume + that these may be decay-copied and moved by the trait implementation. +

+

+ In practice we should call the async_initiate + helper function, rather than use the async_result + trait directly. The async_initiate + function automatically performs the necessary decay and forward of the + completion token, and also enables backwards compatibility with legacy + completion token implementations. +

+
template <
+    completion_token_for<void(error_code, size_t)>
+      CompletionToken>
+auto async_read_some(
+    tcp::socket& s,
+    const mutable_buffer& b,
+    CompletionToken&& token)
+{
+  auto init = /* ... as above ... */;
+
+  return async_initiate<
+      CompletionToken,
+      void(error_code, size_t)
+    >(init, token, &s, b);
+}
+
+

+ We can think of the completion token as a kind of proto completion handler. + In the case where we pass a function object (like a lambda) as the completion + token, it already satisfies the completion handler requirements. The async_result + primary template handles this case by trivially forwarding the arguments + through: +

+
template <class CompletionToken, completion_signature... Signatures>
+struct async_result
+{
+  template <
+      class Initiation,
+      completion_handler_for<Signatures...> CompletionHandler,
+      class... Args>
+  static void initiate(
+      Initiation&& initiation,
+      CompletionHandler&& completion_handler,
+      Args&&... args)
+  {
+    std::forward<Initiation>(initiation)(
+        std::forward<CompletionHandler>(completion_handler),
+        std::forward<Args>(args)...);
+  }
+};
+
+

+ We can see here that this default implementation avoids copies of all arguments, + thus ensuring that eager initiation is as efficient as possible. +

+

+ On the other hand, a lazy completion token (such as use_awaitable + above) may capture these arguments for deferred launching of the operation. + For example, a specialisation for a trivial deferred + token (that simply packages the operation for later) might look something + like this: +

+
template <completion_signature... Signatures>
+struct async_result<deferred_t, Signatures...>
+{
+  template <class Initiation, class... Args>
+  static auto initiate(Initiation initiation, deferred_t, Args... args)
+  {
+    return [
+        initiation = std::move(initiation),
+        arg_pack = std::make_tuple(std::move(args)...)
+      ](auto&& token) mutable
+    {
+      return std::apply(
+          [&](auto&&... args)
+          {
+            return async_result<decay_t<decltype(token)>, Signatures...>::initiate(
+                std::move(initiation),
+                std::forward<decltype(token)>(token),
+                std::forward<decltype(args)>(args)...
+              );
+          },
+          std::move(arg_pack)
+        );
+    };
+  }
+};
+
+
+

+

[6] + The awaitable class template + is included with the Asio library as a return type for C++20 coroutines. + These coroutines can be trivially implemented in terms of other awaitable-based coroutines. +

+

[7] + For illustrative purposes only. Not recommended for real world use! +

+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/model/executors.html b/3party/asio/doc/asio/overview/model/executors.html new file mode 100644 index 0000000..4bb0125 --- /dev/null +++ b/3party/asio/doc/asio/overview/model/executors.html @@ -0,0 +1,104 @@ + + + +Executors + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Every asynchronous agent has an associated executor. + An agent's executor determines how the agent's completion handlers are + queued and ultimately run. +

+

+ Example uses of executors include: +

+
    +
  • + Coordinating a group of asynchronous agents that operate on shared + data structures, ensuring that the agents' completion handlers never + run concurrently[5]. +
  • +
  • + Ensuring that agents are run on specified execution resource (e.g. + a CPU) that is proximal to data or an event source (e.g. a NIC). +
  • +
  • + Denoting a group of related agents, and so enabling dynamic thread + pools to make smarter scheduling decisions (such as moving the agents + between execution resources as a unit). +
  • +
  • + Queuing all completion handlers to run on a GUI application thread, + so that they may safely update user interface elements. +
  • +
  • + Returning an asynchronous operation's default executor as-is, to run + completion handlers as close as possible to the event that triggered + the operation's completion. +
  • +
  • + Adapting an asynchronous operation's default executor, to run code + before and after every completion handler, such as logging, user authorisation, + or exception handling. +
  • +
  • + Specifying a priority for an asynchronous agent and its completion + handlers. +
  • +
+

+ The asynchronous operations within an asynchronous agent use the agent's + associated executor to: +

+
    +
  • + Track the existence of the work that the asynchronous operation represents, + while the operation is outstanding. +
  • +
  • + Enqueue the completion handler for execution on completion of an operation. +
  • +
  • + Ensure that completion handlers do not run re-entrantly, if doing so + might lead to inadvertent recursion and stack overflow. +
  • +
+

+ Thus, an asynchronous agent's associated executor represents a policy of + how, where, and when the agent should run, specified as a cross-cutting + concern to the code that makes up the agent. +

+
+

+

[5] + In Asio, this kind of executor is called a strand. +

+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/model/higher_levels.html b/3party/asio/doc/asio/overview/model/higher_levels.html new file mode 100644 index 0000000..96176ea --- /dev/null +++ b/3party/asio/doc/asio/overview/model/higher_levels.html @@ -0,0 +1,71 @@ + + + +Higher Level Abstractions + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The asynchronous model presented in this section provides a basis for defining + higher level abstractions. Asio builds on this core model to provide additional + facilities, such as: +

+
+

+ To allow users to more easily write their own asynchronous operations that + adhere to this model, Asio also provides the helper function async_compose. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/model/library_elements.html b/3party/asio/doc/asio/overview/model/library_elements.html new file mode 100644 index 0000000..deb5d26 --- /dev/null +++ b/3party/asio/doc/asio/overview/model/library_elements.html @@ -0,0 +1,185 @@ + + + +Supporting Library Elements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ The Asio asynchronous model is enabled by the library elements listed in + the table below. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Library Element +

+
+

+ Description +

+
+

+ completion_signature + concept +

+
+

+ Defines valid completion signature forms. +

+
+

+ completion_handler_for + concept +

+
+

+ Determines whether a completion handler is callable with a given + set of completion signatures. +

+
+

+ async_result + trait +

+
+

+ Converts a completion signature and completion token into a concrete + completion handler, and launches the operation. +

+
+

+ async_initiate + function +

+
+

+ Helper function to simplify use of the async_result + trait. +

+
+

+ completion_token_for + concept +

+
+

+ Determines whether a completion token produces a completion handler + for a given set of completion signatures. +

+
+

+ associator trait +

+
+

+ Automatically propagates all associators through layers of abstraction. +

+
+

+ associated_executor + trait, associated_executor_t + type alias, and get_associated_executor + function +

+
+

+ Defines an asynchronous agent’s associated executor. +

+
+

+ associated_allocator + trait, associated_allocator_t + type alias, and get_associated_allocator + function +

+
+

+ Defines an asynchronous agent’s associated allocator. +

+
+

+ associated_cancellation_slot + trait, associated_cancellation_slot_t + type alias, and get_associated_cancellation_slot + function +

+
+

+ Defines an asynchronous agent’s associated cancellation slot. +

+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/networking.html b/3party/asio/doc/asio/overview/networking.html new file mode 100644 index 0000000..32e23bf --- /dev/null +++ b/3party/asio/doc/asio/overview/networking.html @@ -0,0 +1,50 @@ + + + +Networking + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+ + +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/networking/bsd_sockets.html b/3party/asio/doc/asio/overview/networking/bsd_sockets.html new file mode 100644 index 0000000..2b7800e --- /dev/null +++ b/3party/asio/doc/asio/overview/networking/bsd_sockets.html @@ -0,0 +1,554 @@ + + + +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 are 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/3party/asio/doc/asio/overview/networking/iostreams.html b/3party/asio/doc/asio/overview/networking/iostreams.html new file mode 100644 index 0000000..6728189 --- /dev/null +++ b/3party/asio/doc/asio/overview/networking/iostreams.html @@ -0,0 +1,110 @@ + + + +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/3party/asio/doc/asio/overview/networking/other_protocols.html b/3party/asio/doc/asio/overview/networking/other_protocols.html new file mode 100644 index 0000000..4460457 --- /dev/null +++ b/3party/asio/doc/asio/overview/networking/other_protocols.html @@ -0,0 +1,147 @@ + + + +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/3party/asio/doc/asio/overview/networking/protocols.html b/3party/asio/doc/asio/overview/networking/protocols.html new file mode 100644 index 0000000..63309a3 --- /dev/null +++ b/3party/asio/doc/asio/overview/networking/protocols.html @@ -0,0 +1,201 @@ + + + +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/3party/asio/doc/asio/overview/pipes.html b/3party/asio/doc/asio/overview/pipes.html new file mode 100644 index 0000000..cb6386e --- /dev/null +++ b/3party/asio/doc/asio/overview/pipes.html @@ -0,0 +1,66 @@ + + + +Pipes + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+

+Pipes +

+

+ Asio provides support for portable anonymous pipes on POSIX and Windows (when + I/O completion ports are available). For example, to create and use a connected + pair of pipe objects: +

+
asio::readable_pipe read_end(my_io_context);
+asio::writable_pipe write_end(my_io_context);
+asio::connect_pipe(read_end, write_end);
+
+write_end.async_write_some(my_write_buffer,
+    [](asio::error_code e, size_t n)
+    {
+      // ...
+    });
+
+read_end.async_read_some(my_read_buffer,
+    [](asio::error_code e, size_t n)
+    {
+      // ...
+    });
+
+
+ + See + Also +
+

+ basic_readable_pipe, + basic_writable_pipe, + connect_pipe, readable_pipe, + writable_pipe. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/posix.html b/3party/asio/doc/asio/overview/posix.html new file mode 100644 index 0000000..8dd405b --- /dev/null +++ b/3party/asio/doc/asio/overview/posix.html @@ -0,0 +1,44 @@ + + + +POSIX-Specific Functionality + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+ + +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/posix/fork.html b/3party/asio/doc/asio/overview/posix/fork.html new file mode 100644 index 0000000..45e83e3 --- /dev/null +++ b/3party/asio/doc/asio/overview/posix/fork.html @@ -0,0 +1,74 @@ + + + +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/3party/asio/doc/asio/overview/posix/local.html b/3party/asio/doc/asio/overview/posix/local.html new file mode 100644 index 0000000..a1bae76 --- /dev/null +++ b/3party/asio/doc/asio/overview/posix/local.html @@ -0,0 +1,101 @@ + + + +UNIX Domain Sockets + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Asio provides basic support for 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/3party/asio/doc/asio/overview/posix/stream_descriptor.html b/3party/asio/doc/asio/overview/posix/stream_descriptor.html new file mode 100644 index 0000000..4b01bcc --- /dev/null +++ b/3party/asio/doc/asio/overview/posix/stream_descriptor.html @@ -0,0 +1,83 @@ + + + +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/3party/asio/doc/asio/overview/rationale.html b/3party/asio/doc/asio/overview/rationale.html new file mode 100644 index 0000000..26eed02 --- /dev/null +++ b/3party/asio/doc/asio/overview/rationale.html @@ -0,0 +1,94 @@ + + + +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/3party/asio/doc/asio/overview/serial_ports.html b/3party/asio/doc/asio/overview/serial_ports.html new file mode 100644 index 0000000..41eb5c6 --- /dev/null +++ b/3party/asio/doc/asio/overview/serial_ports.html @@ -0,0 +1,81 @@ + + + +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/3party/asio/doc/asio/overview/signals.html b/3party/asio/doc/asio/overview/signals.html new file mode 100644 index 0000000..1225223 --- /dev/null +++ b/3party/asio/doc/asio/overview/signals.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/overview/ssl.html b/3party/asio/doc/asio/overview/ssl.html new file mode 100644 index 0000000..e375c1e --- /dev/null +++ b/3party/asio/doc/asio/overview/ssl.html @@ -0,0 +1,185 @@ + + + +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 6125 (identity verification in the context of Transport Layer Security), + 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::host_name_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::host_name_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/3party/asio/doc/asio/overview/timers.html b/3party/asio/doc/asio/overview/timers.html new file mode 100644 index 0000000..0065de7 --- /dev/null +++ b/3party/asio/doc/asio/overview/timers.html @@ -0,0 +1,86 @@ + + + +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;
+...
+steady_timer t(i);
+t.expires_after(chrono::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;
+...
+steady_timer t(i);
+t.expires_after(chrono::milliseconds(400));
+t.async_wait(handler);
+...
+i.run();
+
+

+ The deadline associated with a timer may also be obtained as an absolute + time: +

+
steady_timer::time_point time_of_expiry = t.expiry();
+
+

+ which allows composition of timers: +

+
steady_timer t2(i);
+t2.expires_at(t.expiry() + chrono::seconds(30));
+
+
+ + See + Also +
+

+ basic_waitable_timer, + steady_timer, system_timer, + high_resolution_timer, + timer tutorials. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/windows.html b/3party/asio/doc/asio/overview/windows.html new file mode 100644 index 0000000..9c8790a --- /dev/null +++ b/3party/asio/doc/asio/overview/windows.html @@ -0,0 +1,44 @@ + + + +Windows-Specific Functionality + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+ + +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/overview/windows/object_handle.html b/3party/asio/doc/asio/overview/windows/object_handle.html new file mode 100644 index 0000000..974e50d --- /dev/null +++ b/3party/asio/doc/asio/overview/windows/object_handle.html @@ -0,0 +1,94 @@ + + + +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/3party/asio/doc/asio/overview/windows/random_access_handle.html b/3party/asio/doc/asio/overview/windows/random_access_handle.html new file mode 100644 index 0000000..bf16e84 --- /dev/null +++ b/3party/asio/doc/asio/overview/windows/random_access_handle.html @@ -0,0 +1,76 @@ + + + +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/3party/asio/doc/asio/overview/windows/stream_handle.html b/3party/asio/doc/asio/overview/windows/stream_handle.html new file mode 100644 index 0000000..e25a144 --- /dev/null +++ b/3party/asio/doc/asio/overview/windows/stream_handle.html @@ -0,0 +1,78 @@ + + + +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/3party/asio/doc/asio/reference.html b/3party/asio/doc/asio/reference.html new file mode 100644 index 0000000..04d1aac --- /dev/null +++ b/3party/asio/doc/asio/reference.html @@ -0,0 +1,933 @@ + + + +Reference + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
+ ++++++ + + + + + + + + + + +
+

+Properties

+
+

+Execution

+
+

+Customisation Points

+ + + + + +
prefer
query
require
require_concept
+

+Traits

+ + + + + + + + + + + + + +
can_prefer
can_query
can_require
can_require_concept
is_nothrow_prefer
is_nothrow_query
is_nothrow_require
is_nothrow_require_concept
prefer_result
query_result
require_result
require_concept_result
+
+

+Class Templates

+
execution::any_executor
+

+Classes

+ + + + +
execution::bad_executor
execution::invocable_archetype
+execution::receiver_invocation_error (deprecated)
+

+Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
execution::allocator_t
execution::blocking_t
execution::blocking_t::possibly_t
execution::blocking_t::always_t
execution::blocking_t::never_t
execution::blocking_adaptation_t
execution::blocking_adaptation_t::disallowed_t
execution::blocking_adaptation_t::allowed_t
+execution::bulk_guarantee_t (deprecated)
+execution::bulk_guarantee_t::unsequenced_t (deprecated)
+execution::bulk_guarantee_t::sequenced_t (deprecated)
+execution::bulk_guarantee_t::parallel_t (deprecated)
execution::context_t
execution::context_as_t
execution::mapping_t
execution::mapping_t::thread_t
execution::mapping_t::new_thread_t
execution::mapping_t::other_t
execution::occupancy_t
execution::outstanding_work_t
execution::outstanding_work_t::untracked_t
execution::outstanding_work_t::tracked_t
execution::prefer_only
execution::relationship_t
execution::relationship_t::fork_t
execution::relationship_t::continuation_t
+
+

+Customisation Points

+ + + + + + + + + + +
+execution::bulk_execute (deprecated)
+execution::connect (deprecated)
+execution::execute (deprecated)
+execution::schedule (deprecated)
+execution::set_done (deprecated)
+execution::set_error (deprecated)
+execution::set_value (deprecated)
+execution::start (deprecated)
+execution::submit (deprecated)
+

+Property Objects

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
execution::allocator
execution::blocking
execution::blocking.possibly
execution::blocking.always
execution::blocking.never
execution::blocking_adaptation
execution::blocking_adaptation.disallowed
execution::blocking_adaptation.allowed
+execution::bulk_guarantee (deprecated)
+execution::bulk_guarantee.unsequenced (deprecated)
+execution::bulk_guarantee.sequenced (deprecated)
+execution::bulk_guarantee.parallel (deprecated)
execution::context
execution::context_as
execution::mapping
execution::mapping.thread
execution::mapping.new_thread
execution::mapping.other
execution::occupancy
execution::outstanding_work
execution::outstanding_work.untracked
execution::outstanding_work.tracked
execution::relationship
execution::relationship.fork
execution::relationship.continuation
+
+

+Type Traits

+ + + + + + + + + + + + + + + + + + + + +
+execution::can_bulk_execute (deprecated)
+execution::can_connect (deprecated)
+execution::can_execute (deprecated)
+execution::can_schedule (deprecated)
+execution::can_set_done (deprecated)
+execution::can_set_error (deprecated)
+execution::can_set_value (deprecated)
+execution::can_start (deprecated)>
+execution::can_submit (deprecated)
+execution::connect_result (deprecated)
execution::is_executor
execution::is_executor_of
+execution::is_nothrow_receiver_of (deprecated)
+execution::is_receiver (deprecated)
+execution::is_receiver_of (deprecated)
+execution::is_sender (deprecated)
+execution::is_sender_to (deprecated)
+execution::is_typed_sender (deprecated)
+execution::sender_traits (deprecated)
+

+Concepts

+ + + + + + + + + + +
executor
executor_of
+operation_state (deprecated)
+receiver (deprecated)
+receiver_of (deprecated)
+scheduler (deprecated)
+sender (deprecated)
+sender_to (deprecated)
+typed_sender (deprecated)
+
+ ++++++ + + + + + + + +
+

+Core

+
+

+Classes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
any_completion_executor
any_io_executor
bad_executor
cancellation_signal
cancellation_slot
cancellation_state
cancellation_type
coroutine
detached_t
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)
multiple_exceptions
service_already_exists
static_thread_pool
system_context
system_error
system_executor
this_coro::executor_t
thread
thread_pool
thread_pool::executor_type
yield_context
+
+

+Free Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
add_service
append
as_tuple
experimental::as_single
experimental::make_parallel_group
+asio_handler_allocate (deprecated)
+asio_handler_deallocate (deprecated)
+asio_handler_invoke (deprecated)
asio_handler_is_continuation
async_compose
async_initiate
bind_allocator
bind_cancellation_slot
bind_executor
bind_immediate_executor
co_spawn
consign
dispatch
defer
experimental::co_composed
get_associated_allocator
get_associated_cancellation_slot
get_associated_executor
get_associated_immediate_executor
has_service
make_strand
make_work_guard
post
prepend
redirect_error
spawn
this_coro::reset_cancellation_state
this_coro::throw_if_cancelled
use_service
+
+

+Class Templates

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
any_completion_handler
any_completion_handler_allocator
append_t
as_tuple_t
async_completion
awaitable
basic_io_object
basic_system_executor
basic_yield_context
cancellation_filter
cancellation_slot_binder
consign_t
deferred_t
executor_binder
executor_work_guard
experimental::as_single_t
experimental::basic_channel
experimental::basic_concurrent_channel
experimental::channel_traits
experimental::coro
experimental::parallel_group
experimental::promise
experimental::ranged_parallel_group
experimental::use_coro_t
experimental::use_promise_t
experimental::wait_for_all
experimental::wait_for_one
experimental::wait_for_one_error
experimental::wait_for_one_success
io_context::basic_executor_type
prepend_t
recycling_allocator
redirect_error_t
strand
thread_pool::basic_executor_type
use_awaitable_t
use_future_t
+

+Special Values

+ + + + + + + + + + +
detached
executor_arg
deferred
experimental::use_coro
experimental::use_promise
this_coro::cancellation_state
this_coro::executor
use_future
use_awaitable
+
+

+Error Codes

+ + + + + +
error::basic_errors
error::netdb_errors
error::addrinfo_errors
error::misc_errors
+

+Boost.Bind Placeholders

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

+Type Traits

+ + + + + + + + + + + + +
associated_allocator
associated_cancellation_slot
associated_executor
associated_immediate_executor
associator
async_result
completion_signature_of
default_completion_token
is_async_operation
is_executor
uses_executor
+

+Type Requirements

+ + + + + + + + + +
Asynchronous operations
CancellationHandler
CancellationSlot
ExecutionContext
Executor
Handler
NullaryToken
Service
+
+ ++++++ + + + + + + + +
+

+Buffers and Buffer-Oriented Operations

+
+

+Classes

+ + + + + + + + + + +
const_buffer
mutable_buffer
+const_buffers_1 (deprecated)
+mutable_buffers_1 (deprecated)
const_registered_buffer
mutable_registered_buffer
+null_buffers (deprecated)
streambuf
registered_buffer_id
+

+Class Templates

+ + + + + + + + + +
basic_streambuf
buffer_registration
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
buffer_sequence_begin
buffer_sequence_end
buffers_begin
buffers_end
dynamic_buffer
read
read_at
read_until
register_buffers
transfer_all
transfer_at_least
transfer_exactly
write
write_at
+
+

+Type Traits

+ + + + + + + + + +
is_const_buffer_sequence
is_dynamic_buffer
is_dynamic_buffer_v1
is_dynamic_buffer_v2
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
DynamicBuffer_v1
DynamicBuffer_v2
MutableBufferSequence
ReadHandler
ReadToken
SyncRandomAccessReadDevice
SyncRandomAccessWriteDevice
SyncReadStream
SyncWriteStream
WriteHandler
WriteToken
+
+ ++++++ + + + + + + + +
+

+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::bad_address_cast
ip::icmp
ip::icmp::endpoint
ip::icmp::resolver
ip::icmp::socket
ip::network_v4
ip::network_v6
ip::resolver_base
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
ip::v4_mapped_t
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_results
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
AcceptToken
ConnectCondition
ConnectHandler
ConnectToken
Endpoint
EndpointSequence
GettableSocketOption
InternetProtocol
IoControlCommand
IteratorConnectHandler
IteratorConnectToken
MoveAcceptHandler
MoveAcceptToken
Protocol
RangeConnectHandler
RangeConnectToken
ResolveHandler
ResolveToken
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
WaitToken
WaitTraits
+
+

+Classes

+ + + + + + + +
ssl::context
ssl::context_base
ssl::host_name_verification
+ssl::rfc2818_verification (deprecated)
ssl::stream_base
ssl::verify_context
+

+Class Templates

+
ssl::stream
+

+Error Codes

+
ssl::error::stream_errors
+

+Type Requirements

+ + + + + + + +
BufferedHandshakeHandler
BufferedHandshakeToken
HandshakeHandler
HandshakeToken
ShutdownHandler
ShutdownToken
+
+

+Classes

+ + + +
serial_port
serial_port_base
+

+Class templates

+
basic_serial_port
+

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

+Class Templates

+
basic_signal_set
+

+Type Requirements

+ + + +
SignalHandler
SignalToken
+
+ ++++++ + + + + + + + + + + + +
+

+Files and Pipes

+
+

+POSIX-specific

+
+

+Windows-specific

+
+

+Class Templates

+ + + + + + +
basic_file
basic_random_access_file
basic_readable_pipe
basic_stream_file
basic_writable_pipe
+

+Classes

+ + + + + + +
file_base
random_access_file
readable_pipe
stream_file
writable_pipe
+

+Free Functions

+
connect_pipe
+
+

+Classes

+ + + + + + + + + + + + + + + + +
local::seq_packet_protocol
local::seq_packet_protocol::acceptor
local::seq_packet_protocol::endpoint
local::seq_packet_protocol::socket
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
posix::basic_descriptor
posix::basic_stream_descriptor
+
+

+Classes

+ + + + + + +
windows::object_handle
windows::overlapped_handle
windows::overlapped_ptr
windows::random_access_handle
windows::stream_handle
+

+Class Templates

+ + + + + +
windows::basic_object_handle
windows::basic_overlapped_handle
windows::basic_random_access_handle
windows::basic_stream_handle
+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/AcceptHandler.html b/3party/asio/doc/asio/reference/AcceptHandler.html new file mode 100644 index 0000000..ecf22d9 --- /dev/null +++ b/3party/asio/doc/asio/reference/AcceptHandler.html @@ -0,0 +1,41 @@ + + + +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. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/AcceptToken.html b/3party/asio/doc/asio/reference/AcceptToken.html new file mode 100644 index 0000000..7084605 --- /dev/null +++ b/3party/asio/doc/asio/reference/AcceptToken.html @@ -0,0 +1,133 @@ + + + +Accept token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A accept token is a completion + token for completion signature void(error_code). +

+
+ + Examples +
+

+ A free function as a accept token: +

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

+ A accept token function object: +

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

+ A lambda as a accept token: +

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

+ A non-static class member function adapted to a accept token 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 a accept token 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));
+
+

+ Using use_future as a accept + token: +

+
std::future<void> f = acceptor.async_accept(..., asio::use_future);
+...
+try
+{
+  f.get();
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a accept token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    co_await acceptor.async_accept(..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/AcceptableProtocol.html b/3party/asio/doc/asio/reference/AcceptableProtocol.html new file mode 100644 index 0000000..dcc27aa --- /dev/null +++ b/3party/asio/doc/asio/reference/AcceptableProtocol.html @@ -0,0 +1,85 @@ + + + +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 3. 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/3party/asio/doc/asio/reference/AsyncRandomAccessReadDevice.html b/3party/asio/doc/asio/reference/AsyncRandomAccessReadDevice.html new file mode 100644 index 0000000..b30318d --- /dev/null +++ b/3party/asio/doc/asio/reference/AsyncRandomAccessReadDevice.html @@ -0,0 +1,133 @@ + + + +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 4. 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/3party/asio/doc/asio/reference/AsyncRandomAccessWriteDevice.html b/3party/asio/doc/asio/reference/AsyncRandomAccessWriteDevice.html new file mode 100644 index 0000000..db9e415 --- /dev/null +++ b/3party/asio/doc/asio/reference/AsyncRandomAccessWriteDevice.html @@ -0,0 +1,133 @@ + + + +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 5. 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/3party/asio/doc/asio/reference/AsyncReadStream.html b/3party/asio/doc/asio/reference/AsyncReadStream.html new file mode 100644 index 0000000..6aa9829 --- /dev/null +++ b/3party/asio/doc/asio/reference/AsyncReadStream.html @@ -0,0 +1,135 @@ + + + +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 6. 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/3party/asio/doc/asio/reference/AsyncWriteStream.html b/3party/asio/doc/asio/reference/AsyncWriteStream.html new file mode 100644 index 0000000..fa6553d --- /dev/null +++ b/3party/asio/doc/asio/reference/AsyncWriteStream.html @@ -0,0 +1,131 @@ + + + +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 7. 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/3party/asio/doc/asio/reference/BufferedHandshakeHandler.html b/3party/asio/doc/asio/reference/BufferedHandshakeHandler.html new file mode 100644 index 0000000..51a13c1 --- /dev/null +++ b/3party/asio/doc/asio/reference/BufferedHandshakeHandler.html @@ -0,0 +1,45 @@ + + + +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. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/BufferedHandshakeToken.html b/3party/asio/doc/asio/reference/BufferedHandshakeToken.html new file mode 100644 index 0000000..55d1fd3 --- /dev/null +++ b/3party/asio/doc/asio/reference/BufferedHandshakeToken.html @@ -0,0 +1,147 @@ + + + +SSL buffered handshake token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A buffered_handshake token is a completion + token for completion signature void(error_code, size_t). +

+
+ + Examples +
+

+ A free function as a buffered_handshake token: +

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

+ A buffered_handshake token function object: +

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

+ A lambda as a buffered_handshake token: +

+
ssl_stream.async_handshake(...,
+    [](const asio::error_code& ec,
+      std::size_t bytes_transferred)
+    {
+      ...
+    });
+
+

+ A non-static class member function adapted to a buffered_handshake token + using std::bind(): +

+
void my_class::buffered_handshake_handler(
+    const asio::error_code& ec,
+    std::size_t bytes_transferred)
+{
+  ...
+}
+...
+ssl_stream.async_handshake(...,
+    std::bind(&my_class::buffered_handshake_handler,
+      this, std::placeholders::_1,
+      std::placeholders::_2));
+
+

+ A non-static class member function adapted to a buffered_handshake token + using boost::bind(): +

+
void my_class::buffered_handshake_handler(
+    const asio::error_code& ec,
+    std::size_t bytes_transferred)
+{
+  ...
+}
+...
+ssl_stream.async_handshake(...,
+    boost::bind(&my_class::buffered_handshake_handler,
+      this, asio::placeholders::error,
+      asio::placeholders::bytes_transferred));
+
+

+ Using use_future as a buffered + handshake token: +

+
std::future<std::size_t> f =
+  ssl_stream.async_handshake(..., asio::use_future);
+...
+try
+{
+  std::size_t n = f.get();
+  ...
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a buffered handshake token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    std::size_t n =
+      co_await ssl_stream.async_handshake(
+          ..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/CancellationHandler.html b/3party/asio/doc/asio/reference/CancellationHandler.html new file mode 100644 index 0000000..31e3637 --- /dev/null +++ b/3party/asio/doc/asio/reference/CancellationHandler.html @@ -0,0 +1,81 @@ + + + +Cancellation handler requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A value h of a cancellation + handler class should work correctly in the expression h(t), + where t is a value of type + asio::cancellation_type. +

+
+ + Examples +
+

+ A free function as a cancellation handler: +

+
void cancellation_handler(
+    asio::cancellation_type type)
+{
+  ...
+}
+
+slot.assign(cancellation_handler);
+
+

+ A cancellation handler function object: +

+
struct cancellation_handler
+{
+  ...
+  void operator()(
+      asio::cancellation_type type)
+  {
+    ...
+  }
+  ...
+};
+
+cancellation_handler& h = slot.assign(cancellation_handler{ ... });
+
+

+ A lambda as a cancellation handler: +

+
auto& h = slot.assign(
+    [](asio::cancellation_type type)
+    {
+      ...
+    });
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/CancellationSlot.html b/3party/asio/doc/asio/reference/CancellationSlot.html new file mode 100644 index 0000000..0a51ba9 --- /dev/null +++ b/3party/asio/doc/asio/reference/CancellationSlot.html @@ -0,0 +1,182 @@ + + + +Cancellation slot requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

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

+

+ In the table below, x1 and + x2 denote (possibly const) + values of type X, mx1 denotes an xvalue of type X, H + denotes a type that satisfies CancellationHandler, + h denotes an xvalue of type + H, and u0 + to uN denote identifiers. +

+
+

Table 8. CancellationSlot requirements

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ expression +

+
+

+ type +

+
+

+ assertion/note
pre/post-conditions +

+
+

+ X u(x1); +

+
+ +

+ Shall not exit via an exception.

post: u == + x1. +

+
+

+ X u(mx1); +

+
+ +

+ Shall not exit via an exception.

post: u equals the prior value of + mx1. +

+
+

+ x1 == + x2 +

+
+

+ bool +

+
+

+ Returns true only + if x1 and x2 can be interchanged with identical + effects.
operator== shall be reflexive, symmetric, + and transitive, and shall not exit via an exception. +

+
+

+ x1 != + x2 +

+
+

+ bool +

+
+

+ Same as !(x1 + == x2). +

+
+

+ x1.assign(h) +

+
+

+ H& +

+
+
+

+ x1.emplace<H>(u0, + ..., uN) +

+
+

+ H& +

+
+

+ Requires that is_constructible<H, decltype(u0), ..., + decltype(u0)>::value be true. +

+
+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/CompletionCondition.html b/3party/asio/doc/asio/reference/CompletionCondition.html new file mode 100644 index 0000000..733a460 --- /dev/null +++ b/3party/asio/doc/asio/reference/CompletionCondition.html @@ -0,0 +1,107 @@ + + + +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 MoveConstructible + (C++Std [moveconstructible]), 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 9. 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/3party/asio/doc/asio/reference/ConnectCondition.html b/3party/asio/doc/asio/reference/ConnectCondition.html new file mode 100644 index 0000000..15011b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ConnectCondition.html @@ -0,0 +1,99 @@ + + + +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 10. 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/3party/asio/doc/asio/reference/ConnectHandler.html b/3party/asio/doc/asio/reference/ConnectHandler.html new file mode 100644 index 0000000..ff6659c --- /dev/null +++ b/3party/asio/doc/asio/reference/ConnectHandler.html @@ -0,0 +1,41 @@ + + + +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. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ConnectToken.html b/3party/asio/doc/asio/reference/ConnectToken.html new file mode 100644 index 0000000..75eabf2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ConnectToken.html @@ -0,0 +1,133 @@ + + + +Connect token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A connect token is a completion + token for completion signature void(error_code). +

+
+ + Examples +
+

+ A free function as a connect token: +

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

+ A connect token function object: +

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

+ A lambda as a connect token: +

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

+ A non-static class member function adapted to a connect token 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 token 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));
+
+

+ Using use_future as a connect + token: +

+
std::future<void> f = socket.async_connect(..., asio::use_future);
+...
+try
+{
+  f.get();
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a connect token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    co_await socket.async_connect(..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ConstBufferSequence.html b/3party/asio/doc/asio/reference/ConstBufferSequence.html new file mode 100644 index 0000000..06c03d1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ConstBufferSequence.html @@ -0,0 +1,123 @@ + + + +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 11. 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/3party/asio/doc/asio/reference/DynamicBuffer.html b/3party/asio/doc/asio/reference/DynamicBuffer.html new file mode 100644 index 0000000..fed630f --- /dev/null +++ b/3party/asio/doc/asio/reference/DynamicBuffer.html @@ -0,0 +1,47 @@ + + + +Dynamic buffer requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+ + +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/DynamicBuffer_v1.html b/3party/asio/doc/asio/reference/DynamicBuffer_v1.html new file mode 100644 index 0000000..d48b270 --- /dev/null +++ b/3party/asio/doc/asio/reference/DynamicBuffer_v1.html @@ -0,0 +1,260 @@ + + + +Dynamic buffer requirements (version 1) + + + + + + + + + +
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 12. DynamicBuffer_v1 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/3party/asio/doc/asio/reference/DynamicBuffer_v2.html b/3party/asio/doc/asio/reference/DynamicBuffer_v2.html new file mode 100644 index 0000000..9790234 --- /dev/null +++ b/3party/asio/doc/asio/reference/DynamicBuffer_v2.html @@ -0,0 +1,271 @@ + + + +Dynamic buffer requirements (version 2) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A dynamic buffer encapsulates memory storage that may be automatically resized + as required. +

+

+ A dynamic buffer type X shall + satisfy the requirements of CopyConstructible + (C++ Std, [copyconstructible]) 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&, + pos and n + denote values of type size_t, + and u denotes an identifier. +

+
+

Table 13. DynamicBuffer_v2 requirements

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ expression +

+
+

+ type +

+
+

+ assertion/note
pre/post-conditions +

+
+

+ X::const_buffers_type +

+
+

+ type meeting ConstBufferSequence + requirements. +

+
+

+ This type represents the underlying memory as a sequence of @c + const_buffer objects. +

+
+

+ X::mutable_buffers_type +

+
+

+ type meeting MutableBufferSequence + requirements. +

+
+

+ This type represents the underlying memory as a sequence of @c + mutable_buffer objects. +

+
+

+ x1.size() +

+
+

+ size_t +

+
+

+ Returns the size, in bytes, of the underlying memory. +

+
+

+ x1.max_size() +

+
+

+ size_t +

+
+

+ Returns the permitted maximum size of the underlying memory. +

+
+

+ x1.capacity() +

+
+

+ size_t +

+
+

+ Returns the maximum size to which the underlying memory can grow + without requiring reallocation. +

+
+

+ x1.data(pos, + n) +

+
+

+ X::const_buffers_type +

+
+

+ Returns a constant buffer sequence u + that represents the underlying memory beginning at offset pos, and where buffer_size(u) + <= n. +

+
+

+ x.data(pos, + n) +

+
+

+ X::mutable_buffers_type +

+
+

+ Returns a mutable buffer sequence u + that represents the underlying memory beginning at offset pos, and where buffer_size(u) + <= n. +

+
+

+ x.grow(n) +

+
+ +

+ Requires: size() + n <= + max_size().
+
Extends the underlying memory to accommodate n additional bytes at the end. + The dynamic buffer reallocates memory as required. All constant + or mutable buffer sequences previously obtained using data() + are invalidated.

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

+
+

+ x.shrink(n) +

+
+ +

+ Removes n bytes + from the end of the underlying memory. If n + is greater than the size of the underlying memory, the entire underlying + memory is emptied. All constant or mutable buffer sequences previously + obtained using data() are invalidated. +

+
+

+ x.consume(n) +

+
+ +

+ Removes n bytes + from the beginning of the underlying memory. If n + is greater than the size of the underlying memory, the entire underlying + memory is emptied. All constant or mutable buffer sequences previously + obtained using data() are invalidated. +

+
+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/Endpoint.html b/3party/asio/doc/asio/reference/Endpoint.html new file mode 100644 index 0000000..2f7a5c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/Endpoint.html @@ -0,0 +1,260 @@ + + + +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. +

+

+ The default constructor and move operations of the type X + shall not exit via an exception. +

+

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

+
+

Table 14. 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 15. 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/3party/asio/doc/asio/reference/EndpointSequence.html b/3party/asio/doc/asio/reference/EndpointSequence.html new file mode 100644 index 0000000..bf1f06e --- /dev/null +++ b/3party/asio/doc/asio/reference/EndpointSequence.html @@ -0,0 +1,94 @@ + + + +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 16. 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/3party/asio/doc/asio/reference/ExecutionContext.html b/3party/asio/doc/asio/reference/ExecutionContext.html new file mode 100644 index 0000000..d350911 --- /dev/null +++ b/3party/asio/doc/asio/reference/ExecutionContext.html @@ -0,0 +1,120 @@ + + + +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 17. 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/3party/asio/doc/asio/reference/Executor1.html b/3party/asio/doc/asio/reference/Executor1.html new file mode 100644 index 0000000..e19d29e --- /dev/null +++ b/3party/asio/doc/asio/reference/Executor1.html @@ -0,0 +1,424 @@ + + + +Executor requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
+ + Standard + executors +
+

+ Let executor-of-impl + be the exposition-only concept +

+
template<class E, class F>
+  concept executor-of-impl =
+    invocable<decay_t<F>&> &&
+    constructible_from<decay_t<F>, F> &&
+    move_constructible<decay_t<F>> &&
+    copy_constructible<E> &&
+    is_nothrow_copy_constructible_v<E> &&
+    equality_comparable<E> /* nothrow */ &&
+    requires(const E& e, F&& f) {
+      e.execute((F&&)f);
+    };
+
+

+ Then the executor and executor_of concepts are defined as follows: +

+
template<class E>
+  concept executor =
+    executor-of-impl<E, execution::invocable_archetype>;
+
+template<class E, class F>
+  concept executor_of =
+    executor<E> &&
+    executor-of-impl<E, F>;
+
+

+ Neither an executor's equality comparison nor swap + operation shall exit via an exception. +

+

+ None of an executor type's copy constructor, destructor, equality comparison, + swap function, execute function, or associated query functions shall introduce data races + as a result of concurrent invocations of those functions from different threads. +

+

+ For any two (possibly const) values x1 + and x2 of some executor type + X, x1 + == x2 + shall return true only if asio::query(x1,p) == asio::query(x2,p) for + every property p where both + asio::query(x1,p) and asio::query(x2,p) are + well-formed and result in a non-void type that is equality_comparable + (C++Std [equalitycomparable]). [Note: The above requirements + imply that x1 == + x2 returns true + if x1 and x2 + can be interchanged with identical effects. An executor may conceptually + contain additional properties which are not exposed by a named property type + that can be observed via asio::query; + in this case, it is up to the concrete executor implementation to decide + if these properties affect equality. Returning false + does not necessarily imply that the effects are not identical. —end + note] +

+

+ An executor type's destructor shall not block pending completion of the submitted + function objects. [Note: The ability to wait for completion + of submitted function objects may be provided by the associated execution + context. —end note] +

+

+ In addition to the above requirements, types E + and F model executor_of only if they satisfy the requirements + of the Table below. +

+

+ Let: +

+
    +
  • + e denotes a (possibly + const) executor object of type E, +
  • +
  • + cf denotes the function + object DECAY_COPY(std::forward<F>(f)) +
  • +
  • + f denotes a function + of type F&& + invocable as cf() + and where decay_t<F> + models move_constructible. +
  • +
+

+ The expression e.execute(f): +

+
    +
  • + Evaluates DECAY_COPY(std::forward<F>(f)) on the calling thread to create cf that will be invoked at most once + by an execution agent. +
  • +
  • + May block pending completion of this invocation. Synchronizes with [intro.multithread] + the invocation of f. +
  • +
  • + Shall not propagate any exception thrown by the function object or any + other function submitted to the executor. +
  • +
+

+ [Note: The treatment of exceptions thrown by one-way + submitted functions is implementation-defined. The forward progress guarantee + of the associated execution agent(s) is implementation-defined. —end + note] +

+
+ + Networking + TS-style executors +
+

+ 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 18. 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/3party/asio/doc/asio/reference/GettableSerialPortOption.html b/3party/asio/doc/asio/reference/GettableSerialPortOption.html new file mode 100644 index 0000000..9a07111 --- /dev/null +++ b/3party/asio/doc/asio/reference/GettableSerialPortOption.html @@ -0,0 +1,95 @@ + + + +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 19. 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/3party/asio/doc/asio/reference/GettableSocketOption.html b/3party/asio/doc/asio/reference/GettableSocketOption.html new file mode 100644 index 0000000..7285a83 --- /dev/null +++ b/3party/asio/doc/asio/reference/GettableSocketOption.html @@ -0,0 +1,175 @@ + + + +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 20. 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/3party/asio/doc/asio/reference/Handler.html b/3party/asio/doc/asio/reference/Handler.html new file mode 100644 index 0000000..8369174 --- /dev/null +++ b/3party/asio/doc/asio/reference/Handler.html @@ -0,0 +1,43 @@ + + + +Handlers + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A handler must satisfy the requirements of Destructible + (C++Std [destructible]) and MoveConstructible + (C++Std [moveconstructible]). +

+

+ A handler may expose additional information and behaviour via associators, + such as associated_allocator, associated_executor, and associated_cancellation_slot. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/HandshakeHandler.html b/3party/asio/doc/asio/reference/HandshakeHandler.html new file mode 100644 index 0000000..b2a0a56 --- /dev/null +++ b/3party/asio/doc/asio/reference/HandshakeHandler.html @@ -0,0 +1,42 @@ + + + +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. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/HandshakeToken.html b/3party/asio/doc/asio/reference/HandshakeToken.html new file mode 100644 index 0000000..c2c8c0d --- /dev/null +++ b/3party/asio/doc/asio/reference/HandshakeToken.html @@ -0,0 +1,133 @@ + + + +SSL handshake token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A handshake token is a completion + token for completion signature void(error_code). +

+
+ + Examples +
+

+ A free function as a handshake token: +

+
void handshake_handler(
+    const asio::error_code& ec)
+{
+  ...
+}
+
+

+ A handshake token function object: +

+
struct handshake_handler
+{
+  ...
+  void operator()(
+      const asio::error_code& ec)
+  {
+    ...
+  }
+  ...
+};
+
+

+ A lambda as a handshake token: +

+
ssl_stream.async_handshake(...,
+    [](const asio::error_code& ec)
+    {
+      ...
+    });
+
+

+ A non-static class member function adapted to a handshake token 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 token 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));
+
+

+ Using use_future as a handshake + token: +

+
std::future<void> f = ssl_stream.async_handshake(..., asio::use_future);
+...
+try
+{
+  f.get();
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a handshake token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    co_await ssl_stream.async_handshake(..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/InternetProtocol.html b/3party/asio/doc/asio/reference/InternetProtocol.html new file mode 100644 index 0000000..3e1e1b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/InternetProtocol.html @@ -0,0 +1,164 @@ + + + +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 21. 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/3party/asio/doc/asio/reference/IoControlCommand.html b/3party/asio/doc/asio/reference/IoControlCommand.html new file mode 100644 index 0000000..4e1c38e --- /dev/null +++ b/3party/asio/doc/asio/reference/IoControlCommand.html @@ -0,0 +1,108 @@ + + + +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 22. 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/3party/asio/doc/asio/reference/IoObjectService.html b/3party/asio/doc/asio/reference/IoObjectService.html new file mode 100644 index 0000000..4954c75 --- /dev/null +++ b/3party/asio/doc/asio/reference/IoObjectService.html @@ -0,0 +1,153 @@ + + + +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 23. 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/3party/asio/doc/asio/reference/IteratorConnectHandler.html b/3party/asio/doc/asio/reference/IteratorConnectHandler.html new file mode 100644 index 0000000..d8df436 --- /dev/null +++ b/3party/asio/doc/asio/reference/IteratorConnectHandler.html @@ -0,0 +1,45 @@ + + + +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 async_connect() function. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/IteratorConnectToken.html b/3party/asio/doc/asio/reference/IteratorConnectToken.html new file mode 100644 index 0000000..2b39587 --- /dev/null +++ b/3party/asio/doc/asio/reference/IteratorConnectToken.html @@ -0,0 +1,149 @@ + + + +Iterator connect token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ An iterator connect token is a completion + token for completion signature void(error_code, Iterator), where the type Iterator + is used in the corresponding async_connect() function. +

+
+ + Examples +
+

+ A free function as an iterator connect token: +

+
void connect_handler(
+    const asio::error_code& ec,
+    asio::ip::tcp::resolver::iterator iterator)
+{
+  ...
+}
+
+

+ An iterator connect token function object: +

+
struct connect_handler
+{
+  ...
+  template <typename Iterator>
+  void operator()(
+      const asio::error_code& ec,
+      Iterator iterator)
+  {
+    ...
+  }
+  ...
+};
+
+

+ A lambda as an iterator connect token: +

+
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 token 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 token 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));
+
+

+ Using use_future as an iterator + connect token: +

+
std::future<asio::ip::tcp::resolver::iterator> f =
+  asio::async_connect(..., asio::use_future);
+...
+try
+{
+  asio::ip::tcp::resolver::iterator i = f.get();
+  ...
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + an iterator connect token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    asio::ip::tcp::resolver::iterator i =
+      co_await asio::async_connect(
+          ..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/LegacyCompletionHandler.html b/3party/asio/doc/asio/reference/LegacyCompletionHandler.html new file mode 100644 index 0000000..0fadaa5 --- /dev/null +++ b/3party/asio/doc/asio/reference/LegacyCompletionHandler.html @@ -0,0 +1,97 @@ + + + +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/3party/asio/doc/asio/reference/MoveAcceptHandler.html b/3party/asio/doc/asio/reference/MoveAcceptHandler.html new file mode 100644 index 0000000..67595a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/MoveAcceptHandler.html @@ -0,0 +1,46 @@ + + + +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. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/MoveAcceptToken.html b/3party/asio/doc/asio/reference/MoveAcceptToken.html new file mode 100644 index 0000000..1d53486 --- /dev/null +++ b/3party/asio/doc/asio/reference/MoveAcceptToken.html @@ -0,0 +1,128 @@ + + + +Move accept token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A move accept token is a completion + token for completion signature void(error_code, typename Protocol::socket) + or completion signature void(error_code, typename Protocol::socket::template rebind_executor<Executor>::other), for the type Protocol + of the acceptor class template. +

+
+ + Examples +
+

+ A free function as a move accept token: +

+
void accept_handler(
+    const asio::error_code& ec, asio::ip::tcp::socket s)
+{
+  ...
+}
+
+

+ A move accept token function object: +

+
struct accept_handler
+{
+  ...
+  void operator()(
+      const asio::error_code& ec, asio::ip::tcp::socket s)
+  {
+    ...
+  }
+  ...
+};
+
+

+ A lambda as a move accept token: +

+
acceptor.async_accept(...,
+    [](const asio::error_code& ec, asio::ip::tcp::socket s)
+    {
+      ...
+    });
+
+

+ A non-static class member function adapted to a move accept token 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));
+
+

+ Using use_future as a move + accept token: +

+
std::future<asio::ip::tcp::socket> f =
+  acceptor.async_accept(..., asio::use_future);
+...
+try
+{
+  asio::ip::tcp::socket s = f.get();
+  ...
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a move accept token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    asio::ip::tcp::socket s =
+      co_await acceptor.async_accept(
+          ..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/MutableBufferSequence.html b/3party/asio/doc/asio/reference/MutableBufferSequence.html new file mode 100644 index 0000000..6d38571 --- /dev/null +++ b/3party/asio/doc/asio/reference/MutableBufferSequence.html @@ -0,0 +1,124 @@ + + + +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 24. 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/3party/asio/doc/asio/reference/NullaryToken.html b/3party/asio/doc/asio/reference/NullaryToken.html new file mode 100644 index 0000000..6fece69 --- /dev/null +++ b/3party/asio/doc/asio/reference/NullaryToken.html @@ -0,0 +1,113 @@ + + + +Nullary token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A nullary token is a completion + token for completion signature void(). +

+
+ + Examples +
+

+ A free function as a nullary token: +

+
void nullary_handler()
+{
+  ...
+}
+
+

+ A nullary token function object: +

+
struct nullary_handler
+{
+  ...
+  void operator()()
+  {
+    ...
+  }
+  ...
+};
+
+

+ A lambda as a nullary token: +

+
asio::post(...,
+    []()
+    {
+      ...
+    });
+
+

+ A non-static class member function adapted to a nullary token using std::bind(): +

+
void my_class::nullary_handler()
+{
+  ...
+}
+...
+asio::post(...,
+    std::bind(&my_class::nullary_handler, this));
+
+

+ A non-static class member function adapted to a nullary token using boost::bind(): +

+
void my_class::nullary_handler()
+{
+  ...
+}
+...
+asio::post(...,
+    boost::bind(&my_class::nullary_handler, this));
+
+

+ Using use_future as a nullary + token: +

+
std::future<void> f = asio::post(..., asio::use_future);
+...
+f.get();
+
+

+ Using use_awaitable as + a nullary token: +

+
asio::awaitable<void> my_coroutine()
+{
+  ...
+  co_await asio::post(..., asio::use_awaitable);
+  ...
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/OperationState.html b/3party/asio/doc/asio/reference/OperationState.html new file mode 100644 index 0000000..3e5a34c --- /dev/null +++ b/3party/asio/doc/asio/reference/OperationState.html @@ -0,0 +1,65 @@ + + + +Operation state concept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<class O>
+  concept operation_state =
+    destructible<O> &&
+    is_object_v<O> &&
+    requires (O& o) {
+      { execution::start(o) } noexcept;
+    };
+
+

+ An object whose type satisfies operation_state + represents the state of an asynchronous operation. It is the result of calling + execution::connect with a sender + and a receiver. +

+

+ execution::start may be called on an operation_state object at most once. Once + execution::start has been invoked, the caller shall + ensure that the start of a non-exceptional invocation of one of the receiver's + completion-signalling operations strongly happens before [intro.multithread] + the call to the operation_state + destructor. +

+

+ The start of the invocation of execution::start + shall strongly happen before [intro.multithread] the invocation of one of + the three receiver operations. +

+

+ execution::start may or may not block pending the + successful transfer of execution to one of the three receiver operations. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ProtoAllocator.html b/3party/asio/doc/asio/reference/ProtoAllocator.html new file mode 100644 index 0000000..651afa2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ProtoAllocator.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/Protocol.html b/3party/asio/doc/asio/reference/Protocol.html new file mode 100644 index 0000000..32ed4b2 --- /dev/null +++ b/3party/asio/doc/asio/reference/Protocol.html @@ -0,0 +1,179 @@ + + + +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. +

+

+ No copy or move operation of the type X + shall exit via an exception. +

+
+

Table 25. 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 26. 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/3party/asio/doc/asio/reference/RangeConnectHandler.html b/3party/asio/doc/asio/reference/RangeConnectHandler.html new file mode 100644 index 0000000..9ffc791 --- /dev/null +++ b/3party/asio/doc/asio/reference/RangeConnectHandler.html @@ -0,0 +1,46 @@ + + + +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 async_connect() function. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/RangeConnectToken.html b/3party/asio/doc/asio/reference/RangeConnectToken.html new file mode 100644 index 0000000..a20986e --- /dev/null +++ b/3party/asio/doc/asio/reference/RangeConnectToken.html @@ -0,0 +1,150 @@ + + + +Range connect token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A range connect token is a completion + token for completion signature void(error_code, typename Protocol::endpoint), + where the type Protocol is + used in the corresponding async_connect() function. +

+
+ + Examples +
+

+ A free function as a range connect token: +

+
void connect_handler(
+    const asio::error_code& ec,
+    const asio::ip::tcp::endpoint& endpoint)
+{
+  ...
+}
+
+

+ A range connect token 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 token: +

+
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 token 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 token 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));
+
+

+ Using use_future as a range + connect token: +

+
std::future<asio::ip::tcp::endpoint> f =
+  asio::async_connect(..., asio::use_future);
+...
+try
+{
+  asio::ip::tcp::endpoint e = f.get();
+  ...
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a range connect token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    asio::ip::tcp::endpoint e =
+      co_await asio::async_connect(
+          ..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ReadHandler.html b/3party/asio/doc/asio/reference/ReadHandler.html new file mode 100644 index 0000000..b6f2753 --- /dev/null +++ b/3party/asio/doc/asio/reference/ReadHandler.html @@ -0,0 +1,44 @@ + + + +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. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ReadToken.html b/3party/asio/doc/asio/reference/ReadToken.html new file mode 100644 index 0000000..04a0f96 --- /dev/null +++ b/3party/asio/doc/asio/reference/ReadToken.html @@ -0,0 +1,144 @@ + + + +Read token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A read token is a completion + token for completion signature void(error_code, size_t). +

+
+ + Examples +
+

+ A free function as a read token: +

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

+ A read token function object: +

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

+ A lambda as a read token: +

+
socket.async_read_some(...,
+    [](const asio::error_code& ec,
+      std::size_t bytes_transferred)
+    {
+      ...
+    });
+
+

+ A non-static class member function adapted to a read token using std::bind(): +

+
void my_class::read_handler(
+    const asio::error_code& ec,
+    std::size_t bytes_transferred)
+{
+  ...
+}
+...
+socket.async_read_some(...,
+    std::bind(&my_class::read_handler,
+      this, std::placeholders::_1,
+      std::placeholders::_2));
+
+

+ A non-static class member function adapted to a read token using boost::bind(): +

+
void my_class::read_handler(
+    const asio::error_code& ec,
+    std::size_t bytes_transferred)
+{
+  ...
+}
+...
+socket.async_read_some(...,
+    boost::bind(&my_class::read_handler,
+      this, asio::placeholders::error,
+      asio::placeholders::bytes_transferred));
+
+

+ Using use_future as a read + token: +

+
std::future<std::size_t> f =
+  socket.async_read_some(..., asio::use_future);
+...
+try
+{
+  std::size_t n = f.get();
+  ...
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a read token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    std::size_t n =
+      co_await socket.async_read_some(
+          ..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/Receiver.html b/3party/asio/doc/asio/reference/Receiver.html new file mode 100644 index 0000000..b943272 --- /dev/null +++ b/3party/asio/doc/asio/reference/Receiver.html @@ -0,0 +1,85 @@ + + + +Receiver concepts + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A receiver represents the continuation of an asynchronous operation. An asynchronous + operation may complete with a (possibly empty) set of values, an error, or + it may be cancelled. A receiver has three principal operations corresponding + to the three ways an asynchronous operation may complete: set_value, + set_error, and set_done. These are collectively known + as a receiver’s completion-signal operations. +

+
template<class T, class E = exception_ptr>
+concept receiver =
+  move_constructible<remove_cvref_t<T>> &&
+  constructible_from<remove_cvref_t<T>, T> &&
+  requires(remove_cvref_t<T>&& t, E&& e) {
+    { execution::set_done(std::move(t)) } noexcept;
+    { execution::set_error(std::move(t), (E&&) e) } noexcept;
+  };
+
+template<class T, class... An>
+concept receiver_of =
+  receiver<T> &&
+  requires(remove_cvref_t<T>&& t, An&&... an) {
+    execution::set_value(std::move(t), (An&&) an...);
+  };
+
+

+ The receiver’s completion-signal operations have semantic requirements + that are collectively known as the receiver contract, + described below: +

+
    +
  • + None of a receiver’s completion-signal operations shall be invoked + before execution::start has been called on the operation + state object that was returned by execution::connect + to connect that receiver to a sender. +
  • +
  • + Once execution::start has been called on the operation + state object, exactly one of the receiver’s completion-signal operations + shall complete non-exceptionally before the receiver is destroyed. +
  • +
  • + If execution::set_value exits with an exception, + it is still valid to call execution::set_error + or execution::set_done on the receiver. +
  • +
+

+ Once one of a receiver’s completion-signal operations has completed non-exceptionally, + the receiver contract has been satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ResolveHandler.html b/3party/asio/doc/asio/reference/ResolveHandler.html new file mode 100644 index 0000000..ef38f6e --- /dev/null +++ b/3party/asio/doc/asio/reference/ResolveHandler.html @@ -0,0 +1,46 @@ + + + +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. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ResolveToken.html b/3party/asio/doc/asio/reference/ResolveToken.html new file mode 100644 index 0000000..53e9aae --- /dev/null +++ b/3party/asio/doc/asio/reference/ResolveToken.html @@ -0,0 +1,145 @@ + + + +Resolve token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A resolve token is a completion + token for completion signature void(error_code, ip::basic_resolver_results<InternetProtocol>), + for a specified InternetProtocol. +

+
+ + Examples +
+

+ A free function as a resolve token: +

+
void resolve_handler(
+    const asio::error_code& ec,
+    asio::ip::tcp::resolver::results_type results)
+{
+  ...
+}
+
+

+ A resolve token function object: +

+
struct resolve_handler
+{
+  ...
+  void operator()(
+      const asio::error_code& ec,
+      asio::ip::tcp::resolver::results_type results)
+  {
+    ...
+  }
+  ...
+};
+
+

+ A lambda as a resolve token: +

+
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 token 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 token 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));
+
+

+ Using use_future as a resolve + token: +

+
std::future<asio::ip::tcp::resolver::results_type> f =
+  resolver.async_resolve(..., asio::use_future);
+...
+try
+{
+  asio::ip::tcp::resolver::results_type r = f.get();
+  ...
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a resolve token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    asio::ip::tcp::resolver::results_type r =
+      co_await resolver.async_resolve(
+          ..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/Scheduler.html b/3party/asio/doc/asio/reference/Scheduler.html new file mode 100644 index 0000000..f61ad5e --- /dev/null +++ b/3party/asio/doc/asio/reference/Scheduler.html @@ -0,0 +1,197 @@ + + + +Scheduler concept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<class S>
+  concept scheduler =
+    copy_constructible<remove_cvref_t<S>> &&
+    equality_comparable<remove_cvref_t<S>> &&
+    requires(E&& e) {
+      execution::schedule((E&&)e);
+    };
+
+

+ None of a scheduler's copy constructor, destructor, equality comparison, + or swap operation shall exit + via an exception. +

+

+ None of these operations, nor a scheduler type's schedule + function, or associated query functions shall introduce data races as a result + of concurrent invocations of those functions from different threads. +

+

+ For any two (possibly const) values x1 + and x2 of some scheduler + type X, x1 + == x2 + shall return true only if asio::query(x1, p) == asio::query(x2, + p) + for every property p where + both asio::query(x1, p) and asio::query(x2, + p) + are well-formed and result in a non-void type that is EqualityComparable + (C++Std [equalitycomparable]). [Note: The above requirements + imply that x1 == + x2 returns true + if x1 and x2 + can be interchanged with identical effects. A scheduler may conceptually + contain additional properties which are not exposed by a named property type + that can be observed via asio::query; + in this case, it is up to the concrete scheduler implementation to decide + if these properties affect equality. Returning false + does not necessarily imply that the effects are not identical. —end + note] +

+

+ A scheduler type's destructor shall not block pending completion of any receivers + submitted to the sender objects returned from schedule. + [Note: The ability to wait for completion of submitted + function objects may be provided by the execution context that produced the + scheduler. —end note] +

+

+ In addition to the above requirements, type S + models scheduler only if + it satisfies the requirements in the Table below. +

+

+ In the Table below, +

+
    +
  • + s denotes a (possibly + const) scheduler object of type S, +
  • +
  • + N denotes a type that + models sender, and +
  • +
  • + n denotes a sender object + of type N +
  • +
+
+

Table 27. Scheduler requirements

+
+++++ + + + + + + + + + + +
+

+ expression +

+
+

+ return type +

+
+

+ operation semantics +

+
+

+ execution::schedule(s) +

+
+

+ N +

+
+

+ Evaluates execution::schedule(s) on the calling thread to create + N. +

+
+
+

+ execution::start(o), where + o is the result of a call + to execution::connect(N, r) for some receiver object r, + is required to eagerly submit r + for execution on an execution agent that s + creates for it. Let rc be + r or an object created by + copy or move construction from r. + The semantic constraints on the sender + N returned from a scheduler + s's schedule + function are as follows: +

+
    +
  • + If rc's set_error function is called in response + to a submission error, scheduling error, or other internal error, let + E be an expression that + refers to that error if set_error(rc, E) is well-formed; otherwise, let E be an exception_ptr + that refers to that error. [Note: E + could be the result of calling current_exception + or make_exception_ptr.] + The scheduler calls set_error(rc, E) on an unspecified weakly-parallel execution + agent ([Note: An invocation of set_error + on a receiver is required to be noexcept]), + and +
  • +
  • + If rc's set_error function is called in response + to an exception that propagates out of the invocation of set_value on rc, + let E be make_exception_ptr(receiver_invocation_error{}) + invoked from within a catch clause that has caught the exception. The + executor calls set_error(rc, E) on an unspecified weakly-parallel execution + agent, and +
  • +
  • + A call to set_done(rc) + is made on an unspecified weakly-parallel execution agent ([Note: An + invocation of a receiver's set_done + function is required to be noexcept]). +
  • +
+

+ [Note: The senders returned from a scheduler's schedule function have wide discretion + when deciding which of the three receiver functions to call upon submission. + —end note] +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/Sender.html b/3party/asio/doc/asio/reference/Sender.html new file mode 100644 index 0000000..1e8470f --- /dev/null +++ b/3party/asio/doc/asio/reference/Sender.html @@ -0,0 +1,95 @@ + + + +Sender concepts + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
+ + sender + and sender_to +
+
template<class S>
+  concept sender =
+    move_constructible<remove_cvref_t<S>> &&
+    !requires {
+      typename sender_traits<remove_cvref_t<S>>::__unspecialized; // exposition only
+    };
+
+template<class S, class R>
+  concept sender_to =
+    sender<S> &&
+    receiver<R> &&
+    requires (S&& s, R&& r) {
+      execution::connect((S&&) s, (R&&) r);
+    };
+
+

+ None of these operations shall introduce data races as a result of concurrent + invocations of those functions from different threads. +

+

+ A sender type's destructor shall not block pending completion of the submitted + function objects. +

+

+ [Note: The ability to wait for completion of submitted + function objects may be provided by the associated execution context. —end + note] +

+
+ + typed_sender +
+

+ A sender is typed if it declares what types + it sends through a receiver's channels. The typed_sender + concept is defined as: +

+
template<template<template<class...> class Tuple, template<class...> class Variant> class>
+  struct has-value-types; // exposition only
+
+template<template<class...> class Variant>
+  struct has-error-types; // exposition only
+
+template<class S>
+  concept has-sender-types = // exposition only
+    requires {
+      typename has-value-types<S::template value_types>;
+      typename has-error-types<S::template error_types>;
+      typename bool_constant<S::sends_done>;
+    };
+
+template<class S>
+  concept typed_sender =
+    sender<S> &&
+    has-sender-types<sender_traits<remove_cvref_t<S>>>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/Service.html b/3party/asio/doc/asio/reference/Service.html new file mode 100644 index 0000000..31f8dfc --- /dev/null +++ b/3party/asio/doc/asio/reference/Service.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/SettableSerialPortOption.html b/3party/asio/doc/asio/reference/SettableSerialPortOption.html new file mode 100644 index 0000000..57f46a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/SettableSerialPortOption.html @@ -0,0 +1,95 @@ + + + +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 28. 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/3party/asio/doc/asio/reference/SettableSocketOption.html b/3party/asio/doc/asio/reference/SettableSocketOption.html new file mode 100644 index 0000000..ca309a9 --- /dev/null +++ b/3party/asio/doc/asio/reference/SettableSocketOption.html @@ -0,0 +1,152 @@ + + + +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 29. 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/3party/asio/doc/asio/reference/ShutdownHandler.html b/3party/asio/doc/asio/reference/ShutdownHandler.html new file mode 100644 index 0000000..258edef --- /dev/null +++ b/3party/asio/doc/asio/reference/ShutdownHandler.html @@ -0,0 +1,42 @@ + + + +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. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ShutdownToken.html b/3party/asio/doc/asio/reference/ShutdownToken.html new file mode 100644 index 0000000..2397dba --- /dev/null +++ b/3party/asio/doc/asio/reference/ShutdownToken.html @@ -0,0 +1,133 @@ + + + +SSL shutdown token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A shutdown token is a completion + token for completion signature void(error_code). +

+
+ + Examples +
+

+ A free function as a shutdown token: +

+
void shutdown_handler(
+    const asio::error_code& ec)
+{
+  ...
+}
+
+

+ A shutdown token function object: +

+
struct shutdown_handler
+{
+  ...
+  void operator()(
+      const asio::error_code& ec)
+  {
+    ...
+  }
+  ...
+};
+
+

+ A lambda as a shutdown token: +

+
ssl_stream.async_shutdown(...,
+    [](const asio::error_code& ec)
+    {
+      ...
+    });
+
+

+ A non-static class member function adapted to a shutdown token 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 token 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));
+
+

+ Using use_future as a shutdown + token: +

+
std::future<void> f = ssl_stream.async_shutdown(..., asio::use_future);
+...
+try
+{
+  f.get();
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a shutdown token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    co_await ssl_stream.async_shutdown(..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/SignalHandler.html b/3party/asio/doc/asio/reference/SignalHandler.html new file mode 100644 index 0000000..441d83f --- /dev/null +++ b/3party/asio/doc/asio/reference/SignalHandler.html @@ -0,0 +1,44 @@ + + + +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. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/SignalToken.html b/3party/asio/doc/asio/reference/SignalToken.html new file mode 100644 index 0000000..9f60a0f --- /dev/null +++ b/3party/asio/doc/asio/reference/SignalToken.html @@ -0,0 +1,143 @@ + + + +Signal token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A signal token is a completion + token for completion signature void(error_code, int). +

+
+ + Examples +
+

+ A free function as a signal token: +

+
void signal_handler(
+    const asio::error_code& ec,
+    int signal_number)
+{
+  ...
+}
+
+

+ A signal token function object: +

+
struct signal_handler
+{
+  ...
+  void operator()(
+      const asio::error_code& ec,
+      int signal_number)
+  {
+    ...
+  }
+  ...
+};
+
+

+ A lambda as a signal token: +

+
signal_set.async_wait(...,
+    [](const asio::error_code& ec,
+      int signal_number)
+    {
+      ...
+    });
+
+

+ A non-static class member function adapted to a signal token using std::bind(): +

+
void my_class::signal_handler(
+    const asio::error_code& ec,
+    int signal_number)
+{
+  ...
+}
+...
+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 token using boost::bind(): +

+
void my_class::signal_handler(
+    const asio::error_code& ec,
+    int signal_number)
+{
+  ...
+}
+...
+signal_set.async_wait(...,
+    boost::bind(&my_class::signal_handler,
+      this, asio::placeholders::error,
+      asio::placeholders::signal_number));
+
+

+ Using use_future as a signal + token: +

+
std::future<int> f = signal_set.async_wait(..., asio::use_future);
+...
+try
+{
+  int signo = f.get();
+  ...
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a signal token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    int signo =
+      co_await signal_set.async_wait(
+          ..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/SyncRandomAccessReadDevice.html b/3party/asio/doc/asio/reference/SyncRandomAccessReadDevice.html new file mode 100644 index 0000000..e41da54 --- /dev/null +++ b/3party/asio/doc/asio/reference/SyncRandomAccessReadDevice.html @@ -0,0 +1,128 @@ + + + +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 30. 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/3party/asio/doc/asio/reference/SyncRandomAccessWriteDevice.html b/3party/asio/doc/asio/reference/SyncRandomAccessWriteDevice.html new file mode 100644 index 0000000..1fc6008 --- /dev/null +++ b/3party/asio/doc/asio/reference/SyncRandomAccessWriteDevice.html @@ -0,0 +1,129 @@ + + + +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 31. 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/3party/asio/doc/asio/reference/SyncReadStream.html b/3party/asio/doc/asio/reference/SyncReadStream.html new file mode 100644 index 0000000..d544d92 --- /dev/null +++ b/3party/asio/doc/asio/reference/SyncReadStream.html @@ -0,0 +1,108 @@ + + + +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 32. 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/3party/asio/doc/asio/reference/SyncWriteStream.html b/3party/asio/doc/asio/reference/SyncWriteStream.html new file mode 100644 index 0000000..4688dee --- /dev/null +++ b/3party/asio/doc/asio/reference/SyncWriteStream.html @@ -0,0 +1,105 @@ + + + +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 33. 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/3party/asio/doc/asio/reference/TimeTraits.html b/3party/asio/doc/asio/reference/TimeTraits.html new file mode 100644 index 0000000..f1b7e9d --- /dev/null +++ b/3party/asio/doc/asio/reference/TimeTraits.html @@ -0,0 +1,200 @@ + + + +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 34. 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/3party/asio/doc/asio/reference/WaitHandler.html b/3party/asio/doc/asio/reference/WaitHandler.html new file mode 100644 index 0000000..3abf95b --- /dev/null +++ b/3party/asio/doc/asio/reference/WaitHandler.html @@ -0,0 +1,41 @@ + + + +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. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/WaitToken.html b/3party/asio/doc/asio/reference/WaitToken.html new file mode 100644 index 0000000..c8fe3c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/WaitToken.html @@ -0,0 +1,133 @@ + + + +Wait token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A wait token is a completion + token for completion signature void(error_code). +

+
+ + Examples +
+

+ A free function as a wait token: +

+
void wait_handler(
+    const asio::error_code& ec)
+{
+  ...
+}
+
+

+ A wait token function object: +

+
struct wait_handler
+{
+  ...
+  void operator()(
+      const asio::error_code& ec)
+  {
+    ...
+  }
+  ...
+};
+
+

+ A lambda as a wait token: +

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

+ A non-static class member function adapted to a wait token 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 token 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));
+
+

+ Using use_future as a wait + token: +

+
std::future<void> f = socket.async_wait(..., asio::use_future);
+...
+try
+{
+  f.get();
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a wait token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    co_await socket.async_wait(..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/WaitTraits.html b/3party/asio/doc/asio/reference/WaitTraits.html new file mode 100644 index 0000000..d3c55af --- /dev/null +++ b/3party/asio/doc/asio/reference/WaitTraits.html @@ -0,0 +1,136 @@ + + + +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 35. 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/3party/asio/doc/asio/reference/WriteHandler.html b/3party/asio/doc/asio/reference/WriteHandler.html new file mode 100644 index 0000000..8a711c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/WriteHandler.html @@ -0,0 +1,44 @@ + + + +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. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/WriteToken.html b/3party/asio/doc/asio/reference/WriteToken.html new file mode 100644 index 0000000..b31cfaf --- /dev/null +++ b/3party/asio/doc/asio/reference/WriteToken.html @@ -0,0 +1,144 @@ + + + +Write token requirements + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ A write token is a completion + token for completion signature void(error_code, size_t). +

+
+ + Examples +
+

+ A free function as a write token: +

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

+ A write token function object: +

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

+ A lambda as a write token: +

+
socket.async_write_some(...,
+    [](const asio::error_code& ec,
+      std::size_t bytes_transferred)
+    {
+      ...
+    });
+
+

+ A non-static class member function adapted to a write token using std::bind(): +

+
void my_class::write_handler(
+    const asio::error_code& ec,
+    std::size_t bytes_transferred)
+{
+  ...
+}
+...
+socket.async_write_some(...,
+    std::bind(&my_class::write_handler,
+      this, std::placeholders::_1,
+      std::placeholders::_2));
+
+

+ A non-static class member function adapted to a write token using boost::bind(): +

+
void my_class::write_handler(
+    const asio::error_code& ec,
+    std::size_t bytes_transferred)
+{
+  ...
+}
+...
+socket.async_write_some(...,
+    boost::bind(&my_class::write_handler,
+      this, asio::placeholders::error,
+      asio::placeholders::bytes_transferred));
+
+

+ Using use_future as a write + token: +

+
std::future<std::size_t> f =
+  socket.async_write_some(..., asio::use_future);
+...
+try
+{
+  std::size_t n = f.get();
+  ...
+}
+catch (const system_error& e)
+{
+  ...
+}
+
+

+ Using use_awaitable as + a write token: +

+
asio::awaitable<void> my_coroutine()
+{
+  try
+  {
+    ...
+    std::size_t n =
+      co_await socket.async_write_some(
+          ..., asio::use_awaitable);
+    ...
+  }
+  catch (const system_error& e)
+  {
+    ...
+  }
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder.html b/3party/asio/doc/asio/reference/allocator_binder.html new file mode 100644 index 0000000..74711e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder.html @@ -0,0 +1,243 @@ + + + +allocator_binder + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A call wrapper type to bind an allocator of type Allocator + to an object of type T. +

+
template<
+    typename T,
+    typename Allocator>
+class allocator_binder
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocator_type +

+
+

+ The type of the associated allocator. +

+
+

+ argument_type +

+
+

+ The type of the function's argument. +

+
+

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

+
+

+ allocator_binder [constructor] +

+
+

+ Construct an allocator wrapper for the specified object.
+
Copy constructor.

Construct a copy, but specify + a different allocator.

Construct a copy of a different + allocator wrapper type.

Construct a copy of a different + allocator wrapper type, but specify a different allocator.
+
Move constructor.

Move construct the target + object, but specify a different allocator.

Move construct + from a different allocator wrapper type.

Move construct + from a different allocator wrapper type, but specify a different + allocator. +

+
+

+ get +

+
+

+ Obtain a reference to the target object. +

+
+

+ get_allocator +

+
+

+ Obtain the associated allocator. +

+
+

+ operator() +

+
+
+

+ ~allocator_binder [destructor] +

+
+

+ Destructor. +

+
+
+ + Requirements +
+

+ Header: asio/bind_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/_allocator_binder.html b/3party/asio/doc/asio/reference/allocator_binder/_allocator_binder.html new file mode 100644 index 0000000..8c5317a --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/_allocator_binder.html @@ -0,0 +1,40 @@ + + + +allocator_binder::~allocator_binder + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~allocator_binder();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/allocator_binder.html b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder.html new file mode 100644 index 0000000..0217852 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder.html @@ -0,0 +1,120 @@ + + + +allocator_binder::allocator_binder + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + an allocator wrapper for the specified object. +

+
template<
+    typename U>
+allocator_binder(
+    const allocator_type & s,
+    U && u);
+  » more...
+
+

+ Copy constructor. +

+
allocator_binder(
+    const allocator_binder & other);
+  » more...
+
+

+ Construct a copy, but specify a different allocator. +

+
allocator_binder(
+    const allocator_type & s,
+    const allocator_binder & other);
+  » more...
+
+

+ Construct a copy of a different allocator wrapper type. +

+
template<
+    typename U,
+    typename OtherAllocator>
+allocator_binder(
+    const allocator_binder< U, OtherAllocator > & other);
+  » more...
+
+

+ Construct a copy of a different allocator wrapper type, but specify a different + allocator. +

+
template<
+    typename U,
+    typename OtherAllocator>
+allocator_binder(
+    const allocator_type & s,
+    const allocator_binder< U, OtherAllocator > & other);
+  » more...
+
+

+ Move constructor. +

+
allocator_binder(
+    allocator_binder && other);
+  » more...
+
+

+ Move construct the target object, but specify a different allocator. +

+
allocator_binder(
+    const allocator_type & s,
+    allocator_binder && other);
+  » more...
+
+

+ Move construct from a different allocator wrapper type. +

+
template<
+    typename U,
+    typename OtherAllocator>
+allocator_binder(
+    allocator_binder< U, OtherAllocator > && other);
+  » more...
+
+

+ Move construct from a different allocator wrapper type, but specify a different + allocator. +

+
template<
+    typename U,
+    typename OtherAllocator>
+allocator_binder(
+    const allocator_type & s,
+    allocator_binder< U, OtherAllocator > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload1.html b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload1.html new file mode 100644 index 0000000..4c1661e --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload1.html @@ -0,0 +1,48 @@ + + + +allocator_binder::allocator_binder (1 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an allocator wrapper for the specified object. +

+
template<
+    typename U>
+allocator_binder(
+    const allocator_type & s,
+    U && u);
+
+

+ This constructor is only valid if the type T + is constructible from type U. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload2.html b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload2.html new file mode 100644 index 0000000..acd2a33 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload2.html @@ -0,0 +1,41 @@ + + + +allocator_binder::allocator_binder (2 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
allocator_binder(
+    const allocator_binder & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload3.html b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload3.html new file mode 100644 index 0000000..24fcd26 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload3.html @@ -0,0 +1,42 @@ + + + +allocator_binder::allocator_binder (3 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a copy, but specify a different allocator. +

+
allocator_binder(
+    const allocator_type & s,
+    const allocator_binder & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload4.html b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload4.html new file mode 100644 index 0000000..b5e7af8 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload4.html @@ -0,0 +1,50 @@ + + + +allocator_binder::allocator_binder (4 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a copy of a different allocator wrapper type. +

+
template<
+    typename U,
+    typename OtherAllocator>
+allocator_binder(
+    const allocator_binder< U, OtherAllocator > & other);
+
+

+ This constructor is only valid if the Allocator + type is constructible from type OtherAllocator, + and the type T is constructible + from type U. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload5.html b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload5.html new file mode 100644 index 0000000..cc26caa --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload5.html @@ -0,0 +1,50 @@ + + + +allocator_binder::allocator_binder (5 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a copy of a different allocator wrapper type, but specify a + different allocator. +

+
template<
+    typename U,
+    typename OtherAllocator>
+allocator_binder(
+    const allocator_type & s,
+    const allocator_binder< U, OtherAllocator > & other);
+
+

+ This constructor is only valid if the type T + is constructible from type U. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload6.html b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload6.html new file mode 100644 index 0000000..71fa0b3 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload6.html @@ -0,0 +1,41 @@ + + + +allocator_binder::allocator_binder (6 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
allocator_binder(
+    allocator_binder && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload7.html b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload7.html new file mode 100644 index 0000000..1a2bf18 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload7.html @@ -0,0 +1,42 @@ + + + +allocator_binder::allocator_binder (7 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move construct the target object, but specify a different allocator. +

+
allocator_binder(
+    const allocator_type & s,
+    allocator_binder && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload8.html b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload8.html new file mode 100644 index 0000000..6c698d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload8.html @@ -0,0 +1,44 @@ + + + +allocator_binder::allocator_binder (8 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move construct from a different allocator wrapper type. +

+
template<
+    typename U,
+    typename OtherAllocator>
+allocator_binder(
+    allocator_binder< U, OtherAllocator > && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload9.html b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload9.html new file mode 100644 index 0000000..4e27fea --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/allocator_binder/overload9.html @@ -0,0 +1,46 @@ + + + +allocator_binder::allocator_binder (9 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move construct from a different allocator wrapper type, but specify a + different allocator. +

+
template<
+    typename U,
+    typename OtherAllocator>
+allocator_binder(
+    const allocator_type & s,
+    allocator_binder< U, OtherAllocator > && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/allocator_type.html b/3party/asio/doc/asio/reference/allocator_binder/allocator_type.html new file mode 100644 index 0000000..49ec8c8 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/allocator_type.html @@ -0,0 +1,51 @@ + + + +allocator_binder::allocator_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the associated allocator. +

+
typedef Allocator allocator_type;
+
+
+ + Requirements +
+

+ Header: asio/bind_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/argument_type.html b/3party/asio/doc/asio/reference/allocator_binder/argument_type.html new file mode 100644 index 0000000..01b4633 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/argument_type.html @@ -0,0 +1,73 @@ + + + +allocator_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_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/first_argument_type.html b/3party/asio/doc/asio/reference/allocator_binder/first_argument_type.html new file mode 100644 index 0000000..3535ad5 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/first_argument_type.html @@ -0,0 +1,73 @@ + + + +allocator_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_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/get.html b/3party/asio/doc/asio/reference/allocator_binder/get.html new file mode 100644 index 0000000..10210a6 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/get.html @@ -0,0 +1,45 @@ + + + +allocator_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/3party/asio/doc/asio/reference/allocator_binder/get/overload1.html b/3party/asio/doc/asio/reference/allocator_binder/get/overload1.html new file mode 100644 index 0000000..264ad19 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/get/overload1.html @@ -0,0 +1,40 @@ + + + +allocator_binder::get (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain a reference to the target object. +

+
target_type & get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/get/overload2.html b/3party/asio/doc/asio/reference/allocator_binder/get/overload2.html new file mode 100644 index 0000000..ebc8ec5 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/get/overload2.html @@ -0,0 +1,40 @@ + + + +allocator_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/3party/asio/doc/asio/reference/allocator_binder/get_allocator.html b/3party/asio/doc/asio/reference/allocator_binder/get_allocator.html new file mode 100644 index 0000000..64ebb0a --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/get_allocator.html @@ -0,0 +1,41 @@ + + + +allocator_binder::get_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the associated allocator. +

+
allocator_type get_allocator() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_.html b/3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_.html new file mode 100644 index 0000000..c3cc1f1 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_.html @@ -0,0 +1,49 @@ + + + +allocator_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/3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_/overload1.html b/3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_/overload1.html new file mode 100644 index 0000000..3e23c06 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_/overload1.html @@ -0,0 +1,40 @@ + + + +allocator_binder::operator() (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename... Args>
+auto operator()(
+    Args && ...);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_/overload2.html b/3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_/overload2.html new file mode 100644 index 0000000..90fe34f --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/operator_lp__rp_/overload2.html @@ -0,0 +1,40 @@ + + + +allocator_binder::operator() (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename... Args>
+auto operator()(
+    Args && ...) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/result_type.html b/3party/asio/doc/asio/reference/allocator_binder/result_type.html new file mode 100644 index 0000000..68faa12 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/result_type.html @@ -0,0 +1,73 @@ + + + +allocator_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_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/second_argument_type.html b/3party/asio/doc/asio/reference/allocator_binder/second_argument_type.html new file mode 100644 index 0000000..b552948 --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/second_argument_type.html @@ -0,0 +1,73 @@ + + + +allocator_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_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/allocator_binder/target_type.html b/3party/asio/doc/asio/reference/allocator_binder/target_type.html new file mode 100644 index 0000000..287d5bc --- /dev/null +++ b/3party/asio/doc/asio/reference/allocator_binder/target_type.html @@ -0,0 +1,51 @@ + + + +allocator_binder::target_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the target object. +

+
typedef T target_type;
+
+
+ + Requirements +
+

+ Header: asio/bind_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor.html b/3party/asio/doc/asio/reference/any_completion_executor.html new file mode 100644 index 0000000..12255c9 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor.html @@ -0,0 +1,291 @@ + + + +any_completion_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Polymorphic executor type for use with I/O objects. +

+
class any_completion_executor :
+  public execution::any_executor< SupportableProperties >
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ any_completion_executor [constructor] +

+
+

+ Default constructor.

Construct in an empty state. + Equivalent effects to default constructor.

Copy constructor. +

Move constructor.

Construct to point + to the same target as another any_executor.

Construct + a polymorphic wrapper for the specified executor. +

+
+

+ context +

+
+

+ Obtain the underlying execution context. +

+
+

+ execute +

+
+

+ Execute the function on the target executor. +

+
+

+ operator bool +

+
+

+ Determine whether the wrapper has a target executor. +

+
+

+ operator= +

+
+

+ Assignment operator.

Move assignment operator.
+
Assignment operator that sets the polymorphic wrapper to + the empty state. +

+
+

+ prefer +

+
+

+ Obtain a polymorphic wrapper with the specified property.
+
+

+
+

+ query +

+
+

+ Obtain the value associated with the specified property. +

+
+

+ require +

+
+

+ Obtain a polymorphic wrapper with the specified property. +

+
+

+ swap +

+
+

+ Swap targets with another polymorphic wrapper. +

+
+

+ target +

+
+

+ Get a pointer to the target executor. +

+
+

+ target_type +

+
+

+ Get the type of the target executor. +

+
+

+ ~any_completion_executor [destructor] +

+
+

+ Destructor. +

+
+
+ + Related + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Inequality operator. +

+
+

+ operator== +

+
+

+ Equality operator. +

+
+

+ The any_completion_executor + type is a polymorphic executor that supports the set of properties required + for the execution of completion handlers. It is defined as the execution::any_executor class template parameterised + as follows: +

+
execution::any_executor<
+  execution::prefer_only<execution::outstanding_work_t::tracked_t>,
+  execution::prefer_only<execution::outstanding_work_t::untracked_t>
+  execution::prefer_only<execution::relationship_t::fork_t>,
+  execution::prefer_only<execution::relationship_t::continuation_t>
+>
+
+
+ + Requirements +
+

+ Header: asio/any_completion_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/_any_completion_executor.html b/3party/asio/doc/asio/reference/any_completion_executor/_any_completion_executor.html new file mode 100644 index 0000000..ab9d450 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/_any_completion_executor.html @@ -0,0 +1,40 @@ + + + +any_completion_executor::~any_completion_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~any_completion_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor.html b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor.html new file mode 100644 index 0000000..470043d --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor.html @@ -0,0 +1,105 @@ + + + +any_completion_executor::any_completion_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
any_completion_executor();
+  » more...
+
+

+ Construct in an empty state. Equivalent effects to default constructor. +

+
any_completion_executor(
+    nullptr_t );
+  » more...
+
+

+ Copy constructor. +

+
any_completion_executor(
+    const any_completion_executor & e);
+  » more...
+
+

+ Move constructor. +

+
any_completion_executor(
+    any_completion_executor && e);
+  » more...
+
+

+ Construct to point to the same target as another any_executor. +

+
template<
+    class... OtherSupportableProperties>
+any_completion_executor(
+    execution::any_executor< OtherSupportableProperties...> e);
+  » more...
+
+template<
+    class... OtherSupportableProperties>
+any_completion_executor(
+    std::nothrow_t ,
+    execution::any_executor< OtherSupportableProperties...> e);
+  » more...
+
+any_completion_executor(
+    std::nothrow_t ,
+    const any_completion_executor & e);
+  » more...
+
+any_completion_executor(
+    std::nothrow_t ,
+    any_completion_executor && e);
+  » more...
+
+

+ Construct a polymorphic wrapper for the specified executor. +

+
template<
+    typename Executor>
+any_completion_executor(
+    Executor e);
+  » more...
+
+template<
+    typename Executor>
+any_completion_executor(
+    std::nothrow_t ,
+    Executor e);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload1.html b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload1.html new file mode 100644 index 0000000..f7ec46f --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload1.html @@ -0,0 +1,40 @@ + + + +any_completion_executor::any_completion_executor (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
any_completion_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload10.html b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload10.html new file mode 100644 index 0000000..9b5f4a2 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload10.html @@ -0,0 +1,44 @@ + + + +any_completion_executor::any_completion_executor (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a polymorphic wrapper for the specified executor. +

+
template<
+    typename Executor>
+any_completion_executor(
+    std::nothrow_t ,
+    Executor e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload2.html b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload2.html new file mode 100644 index 0000000..958882c --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload2.html @@ -0,0 +1,41 @@ + + + +any_completion_executor::any_completion_executor (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct in an empty state. Equivalent effects to default constructor. +

+
any_completion_executor(
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload3.html b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload3.html new file mode 100644 index 0000000..088f1bd --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload3.html @@ -0,0 +1,41 @@ + + + +any_completion_executor::any_completion_executor (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
any_completion_executor(
+    const any_completion_executor & e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload4.html b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload4.html new file mode 100644 index 0000000..b10523b --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload4.html @@ -0,0 +1,41 @@ + + + +any_completion_executor::any_completion_executor (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
any_completion_executor(
+    any_completion_executor && e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload5.html b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload5.html new file mode 100644 index 0000000..552700b --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload5.html @@ -0,0 +1,43 @@ + + + +any_completion_executor::any_completion_executor (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another any_executor. +

+
template<
+    class... OtherSupportableProperties>
+any_completion_executor(
+    execution::any_executor< OtherSupportableProperties...> e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload6.html b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload6.html new file mode 100644 index 0000000..7c045ad --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload6.html @@ -0,0 +1,44 @@ + + + +any_completion_executor::any_completion_executor (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another any_executor. +

+
template<
+    class... OtherSupportableProperties>
+any_completion_executor(
+    std::nothrow_t ,
+    execution::any_executor< OtherSupportableProperties...> e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload7.html b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload7.html new file mode 100644 index 0000000..2864958 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload7.html @@ -0,0 +1,42 @@ + + + +any_completion_executor::any_completion_executor (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another any_executor. +

+
any_completion_executor(
+    std::nothrow_t ,
+    const any_completion_executor & e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload8.html b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload8.html new file mode 100644 index 0000000..88d0ea3 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload8.html @@ -0,0 +1,42 @@ + + + +any_completion_executor::any_completion_executor (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another any_executor. +

+
any_completion_executor(
+    std::nothrow_t ,
+    any_completion_executor && e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload9.html b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload9.html new file mode 100644 index 0000000..99d92fb --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/any_completion_executor/overload9.html @@ -0,0 +1,43 @@ + + + +any_completion_executor::any_completion_executor (9 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a polymorphic wrapper for the specified executor. +

+
template<
+    typename Executor>
+any_completion_executor(
+    Executor e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/context.html b/3party/asio/doc/asio/reference/any_completion_executor/context.html new file mode 100644 index 0000000..6717fa0 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/context.html @@ -0,0 +1,49 @@ + + + +any_completion_executor::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ +Obtain + the underlying execution context. +

+
automatically_determined context() const;
+
+

+ This function is provided for backward compatibility. It is automatically + defined when the SupportableProperties... + list includes a property of type execution::context_as<U>, for some type U. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/execute.html b/3party/asio/doc/asio/reference/any_completion_executor/execute.html new file mode 100644 index 0000000..bcd54e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/execute.html @@ -0,0 +1,51 @@ + + + +any_completion_executor::execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ +Execute + the function on the target executor. +

+
template<
+    typename Function>
+void execute(
+    Function && f) const;
+
+

+ Throws bad_executor + if the polymorphic wrapper has no target. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_bool.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_bool.html new file mode 100644 index 0000000..e264a02 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_bool.html @@ -0,0 +1,54 @@ + + + +any_completion_executor::operator bool + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ +Determine + whether the wrapper has a target executor. +

+
operator bool() const;
+
+
+ + Return + Value +
+

+ true if the polymorphic wrapper + has a target executor, otherwise false. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_.html new file mode 100644 index 0000000..c04bcad --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_.html @@ -0,0 +1,57 @@ + + + +any_completion_executor::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assignment + operator. +

+
any_completion_executor & operator=(
+    const any_completion_executor & e);
+  » more...
+
+

+ Move assignment operator. +

+
any_completion_executor & operator=(
+    any_completion_executor && e);
+  » more...
+
+

+ Assignment operator that sets the polymorphic wrapper to the empty state. +

+
any_completion_executor & operator=(
+    nullptr_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload1.html new file mode 100644 index 0000000..29cefec --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +any_completion_executor::operator= (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator. +

+
any_completion_executor & operator=(
+    const any_completion_executor & e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload2.html new file mode 100644 index 0000000..d678528 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload2.html @@ -0,0 +1,41 @@ + + + +any_completion_executor::operator= (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move assignment operator. +

+
any_completion_executor & operator=(
+    any_completion_executor && e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload3.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload3.html new file mode 100644 index 0000000..50ae218 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq_/overload3.html @@ -0,0 +1,41 @@ + + + +any_completion_executor::operator= (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator that sets the polymorphic wrapper to the empty state. +

+
any_completion_executor & operator=(
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_.html new file mode 100644 index 0000000..972dee7 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_.html @@ -0,0 +1,54 @@ + + + +any_completion_executor::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Equality + operator. +

+
bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+  » more...
+
+bool operator==(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload1.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload1.html new file mode 100644 index 0000000..f581185 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload1.html @@ -0,0 +1,45 @@ + + + +any_completion_executor::operator== (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Equality operator. +

+
bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload2.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload2.html new file mode 100644 index 0000000..85f35fd --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload2.html @@ -0,0 +1,45 @@ + + + +any_completion_executor::operator== (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Equality operator. +

+
bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload3.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload3.html new file mode 100644 index 0000000..328b33a --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload3.html @@ -0,0 +1,45 @@ + + + +any_completion_executor::operator== (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Equality operator. +

+
bool operator==(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_.html new file mode 100644 index 0000000..13ef7de --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_.html @@ -0,0 +1,54 @@ + + + +any_completion_executor::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Inequality + operator. +

+
bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+  » more...
+
+bool operator!=(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload1.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload1.html new file mode 100644 index 0000000..bfe28bb --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload1.html @@ -0,0 +1,45 @@ + + + +any_completion_executor::operator!= (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Inequality operator. +

+
bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload2.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload2.html new file mode 100644 index 0000000..0c636ed --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload2.html @@ -0,0 +1,45 @@ + + + +any_completion_executor::operator!= (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Inequality operator. +

+
bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload3.html b/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload3.html new file mode 100644 index 0000000..2d03ff3 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/operator_not__eq_/overload3.html @@ -0,0 +1,45 @@ + + + +any_completion_executor::operator!= (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Inequality operator. +

+
bool operator!=(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/prefer.html b/3party/asio/doc/asio/reference/any_completion_executor/prefer.html new file mode 100644 index 0000000..d86d7d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/prefer.html @@ -0,0 +1,78 @@ + + + +any_completion_executor::prefer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_completion_executor prefer(
+    const Property & p,
+    typename constraint< traits::prefer_member< const base_type &, const Property & >::is_valid >::type  = 0) const;
+  » more...
+
+
+
+template<>
+any_completion_executor prefer(
+    const execution::outstanding_work_t::tracked_t & p,
+    int ) const;
+  » more...
+
+template<>
+any_completion_executor prefer(
+    const execution::outstanding_work_t::untracked_t & p,
+    int ) const;
+  » more...
+
+template<>
+any_completion_executor prefer(
+    const execution::relationship_t::fork_t & p,
+    int ) const;
+  » more...
+
+template<>
+any_completion_executor prefer(
+    const execution::relationship_t::continuation_t & p,
+    int ) const;
+  » more...
+
+template<
+    typename Property>
+any_executor prefer(
+    Property ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload1.html b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload1.html new file mode 100644 index 0000000..650d35d --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload1.html @@ -0,0 +1,55 @@ + + + +any_completion_executor::prefer (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_completion_executor prefer(
+    const Property & p,
+    typename constraint< traits::prefer_member< const base_type &, const Property & >::is_valid >::type  = 0) const;
+
+

+ Do not call this function directly. It is intended for use with the + prefer + customisation point. +

+

+ For example: +

+
any_completion_executor ex = ...;
+auto ex2 = asio::prefer(ex, execution::relationship.fork);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload2.html b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload2.html new file mode 100644 index 0000000..2cc2088 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload2.html @@ -0,0 +1,40 @@ + + + +any_completion_executor::prefer (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<>
+any_completion_executor prefer(
+    const execution::outstanding_work_t::tracked_t & p,
+    int ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload3.html b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload3.html new file mode 100644 index 0000000..018170d --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload3.html @@ -0,0 +1,40 @@ + + + +any_completion_executor::prefer (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<>
+any_completion_executor prefer(
+    const execution::outstanding_work_t::untracked_t & p,
+    int ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload4.html b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload4.html new file mode 100644 index 0000000..5f803d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload4.html @@ -0,0 +1,40 @@ + + + +any_completion_executor::prefer (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<>
+any_completion_executor prefer(
+    const execution::relationship_t::fork_t & p,
+    int ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload5.html b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload5.html new file mode 100644 index 0000000..2d09d75 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload5.html @@ -0,0 +1,40 @@ + + + +any_completion_executor::prefer (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<>
+any_completion_executor prefer(
+    const execution::relationship_t::continuation_t & p,
+    int ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload6.html b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload6.html new file mode 100644 index 0000000..58b6121 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/prefer/overload6.html @@ -0,0 +1,57 @@ + + + +any_completion_executor::prefer (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Obtain a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_executor prefer(
+    Property ) const;
+
+

+ Do not call this function directly. It is intended for use with the + prefer + customisation point. +

+

+ For example: +

+
execution::any_executor<execution::blocking_t::possibly_t> ex = ...;
+auto ex2 = asio::prefer(ex, execution::blocking.possibly);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/query.html b/3party/asio/doc/asio/reference/any_completion_executor/query.html new file mode 100644 index 0000000..fdc897e --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/query.html @@ -0,0 +1,57 @@ + + + +any_completion_executor::query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ +Obtain + the value associated with the specified property. +

+
template<
+    typename Property>
+Property::polymorphic_query_result_type query(
+    Property ) const;
+
+

+ Do not call this function directly. It is intended for use with the query + customisation point. +

+

+ For example: +

+
execution::any_executor<execution::occupancy_t> ex = ...;
+size_t n = asio::query(ex, execution::occupancy);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/require.html b/3party/asio/doc/asio/reference/any_completion_executor/require.html new file mode 100644 index 0000000..9926011 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/require.html @@ -0,0 +1,52 @@ + + + +any_completion_executor::require + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_completion_executor require(
+    const Property & p,
+    typename constraint< traits::require_member< const base_type &, const Property & >::is_valid >::type  = 0) const;
+  » more...
+
+template<
+    typename Property>
+any_executor require(
+    Property ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/require/overload1.html b/3party/asio/doc/asio/reference/any_completion_executor/require/overload1.html new file mode 100644 index 0000000..b479297 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/require/overload1.html @@ -0,0 +1,56 @@ + + + +any_completion_executor::require (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_completion_executor require(
+    const Property & p,
+    typename constraint< traits::require_member< const base_type &, const Property & >::is_valid >::type  = 0) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + and prefer + customisation points. +

+

+ For example: +

+
any_completion_executor ex = ...;
+auto ex2 = asio::require(ex, execution::relationship.fork);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/require/overload2.html b/3party/asio/doc/asio/reference/any_completion_executor/require/overload2.html new file mode 100644 index 0000000..254be76 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/require/overload2.html @@ -0,0 +1,58 @@ + + + +any_completion_executor::require (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Obtain a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_executor require(
+    Property ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + and prefer + customisation points. +

+

+ For example: +

+
execution::any_executor<execution::blocking_t::possibly_t> ex = ...;
+auto ex2 = asio::requre(ex, execution::blocking.possibly);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/swap.html b/3party/asio/doc/asio/reference/any_completion_executor/swap.html new file mode 100644 index 0000000..8c97a84 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/swap.html @@ -0,0 +1,47 @@ + + + +any_completion_executor::swap + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Swap + targets with another polymorphic wrapper. +

+
void swap(
+    any_completion_executor & other);
+  » more...
+
+void swap(
+    any_executor & other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/swap/overload1.html b/3party/asio/doc/asio/reference/any_completion_executor/swap/overload1.html new file mode 100644 index 0000000..d3aa507 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/swap/overload1.html @@ -0,0 +1,41 @@ + + + +any_completion_executor::swap (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Swap targets with another polymorphic wrapper. +

+
void swap(
+    any_completion_executor & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/swap/overload2.html b/3party/asio/doc/asio/reference/any_completion_executor/swap/overload2.html new file mode 100644 index 0000000..16af9e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/swap/overload2.html @@ -0,0 +1,44 @@ + + + +any_completion_executor::swap (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Swap targets with another polymorphic wrapper. +

+
void swap(
+    any_executor & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/target.html b/3party/asio/doc/asio/reference/any_completion_executor/target.html new file mode 100644 index 0000000..e3a097e --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/target.html @@ -0,0 +1,49 @@ + + + +any_completion_executor::target + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + a pointer to the target executor. +

+
template<
+    typename Executor>
+Executor * target();
+  » more...
+
+template<
+    typename Executor>
+const Executor * target() const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/target/overload1.html b/3party/asio/doc/asio/reference/any_completion_executor/target/overload1.html new file mode 100644 index 0000000..d893f1b --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/target/overload1.html @@ -0,0 +1,45 @@ + + + +any_completion_executor::target (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Get a pointer to the target executor. +

+
template<
+    typename Executor>
+Executor * target();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/target/overload2.html b/3party/asio/doc/asio/reference/any_completion_executor/target/overload2.html new file mode 100644 index 0000000..0fdb202 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/target/overload2.html @@ -0,0 +1,45 @@ + + + +any_completion_executor::target (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Get a pointer to the target executor. +

+
template<
+    typename Executor>
+const Executor * target() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_executor/target_type.html b/3party/asio/doc/asio/reference/any_completion_executor/target_type.html new file mode 100644 index 0000000..88b1dab --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_executor/target_type.html @@ -0,0 +1,44 @@ + + + +any_completion_executor::target_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ +Get + the type of the target executor. +

+
const type_info & target_type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler.html b/3party/asio/doc/asio/reference/any_completion_handler.html new file mode 100644 index 0000000..4c0c788 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler.html @@ -0,0 +1,264 @@ + + + +any_completion_handler + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Polymorphic wrapper for completion handlers. +

+
template<
+    typename... Signatures>
+class any_completion_handler
+
+
+ + Member Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ any_completion_handler [constructor] +

+
+

+ Construct an any_completion_handler in an empty state, without + a target object.

Construct an any_completion_handler + to contain the specified target.

Move-construct an + any_completion_handler from another. +

+
+

+ get_allocator +

+
+

+ Get the associated allocator. +

+
+

+ get_cancellation_slot +

+
+

+ Get the associated cancellation slot. +

+
+

+ operator bool +

+
+

+ Test if the polymorphic wrapper is empty. +

+
+

+ operator! +

+
+

+ Test if the polymorphic wrapper is non-empty. +

+
+

+ operator() +

+
+

+ Function call operator. +

+
+

+ operator= +

+
+

+ Move-assign an any_completion_handler from another.

+ Assignment operator that sets the polymorphic wrapper to the empty + state. +

+
+

+ swap +

+
+

+ Swap the content of an any_completion_handler with another. +

+
+

+ ~any_completion_handler [destructor] +

+
+

+ Destructor. +

+
+
+ + Friends +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Inequality operator. +

+
+

+ operator== +

+
+

+ Equality operator. +

+
+

+ The any_completion_handler + class template is a polymorphic wrapper for completion handlers that propagates + the associated executor, associated allocator, and associated cancellation + slot through a type-erasing interface. +

+

+ When using any_completion_handler, + specify one or more completion signatures as template parameters. These will + dictate the arguments that may be passed to the handler through the polymorphic + interface. +

+

+ Typical uses for any_completion_handler + include: +

+
    +
  • + Separate compilation of asynchronous operation implementations. +
  • +
  • + Enabling interoperability between asynchronous operations and virtual + functions. +
  • +
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/_any_completion_handler.html b/3party/asio/doc/asio/reference/any_completion_handler/_any_completion_handler.html new file mode 100644 index 0000000..4543815 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/_any_completion_handler.html @@ -0,0 +1,40 @@ + + + +any_completion_handler::~any_completion_handler + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~any_completion_handler();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler.html b/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler.html new file mode 100644 index 0000000..20301c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler.html @@ -0,0 +1,67 @@ + + + +any_completion_handler::any_completion_handler + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + an any_completion_handler + in an empty state, without a target object. +

+
constexpr any_completion_handler();
+  » more...
+
+constexpr any_completion_handler(
+    nullptr_t );
+  » more...
+
+

+ Construct an any_completion_handler + to contain the specified target. +

+
template<
+    typename H,
+    typename Handler = typename decay<H>::type>
+any_completion_handler(
+    H && h,
+    typename constraint< !is_same< typename decay< H >::type, any_completion_handler >::value >::type  = 0);
+  » more...
+
+

+ Move-construct an any_completion_handler + from another. +

+
any_completion_handler(
+    any_completion_handler && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload1.html b/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload1.html new file mode 100644 index 0000000..301fd2b --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload1.html @@ -0,0 +1,41 @@ + + + +any_completion_handler::any_completion_handler (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an any_completion_handler + in an empty state, without a target object. +

+
constexpr any_completion_handler();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload2.html b/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload2.html new file mode 100644 index 0000000..1ad5b8c --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload2.html @@ -0,0 +1,42 @@ + + + +any_completion_handler::any_completion_handler (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an any_completion_handler + in an empty state, without a target object. +

+
constexpr any_completion_handler(
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload3.html b/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload3.html new file mode 100644 index 0000000..60dad5f --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload3.html @@ -0,0 +1,46 @@ + + + +any_completion_handler::any_completion_handler (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an any_completion_handler + to contain the specified target. +

+
template<
+    typename H,
+    typename Handler = typename decay<H>::type>
+any_completion_handler(
+    H && h,
+    typename constraint< !is_same< typename decay< H >::type, any_completion_handler >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload4.html b/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload4.html new file mode 100644 index 0000000..5ba2c63 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/any_completion_handler/overload4.html @@ -0,0 +1,46 @@ + + + +any_completion_handler::any_completion_handler (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct an any_completion_handler + from another. +

+
any_completion_handler(
+    any_completion_handler && other);
+
+

+ After the operation, the moved-from object other + has no target. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/get_allocator.html b/3party/asio/doc/asio/reference/any_completion_handler/get_allocator.html new file mode 100644 index 0000000..ee9fbad --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/get_allocator.html @@ -0,0 +1,41 @@ + + + +any_completion_handler::get_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the associated allocator. +

+
allocator_type get_allocator() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/get_cancellation_slot.html b/3party/asio/doc/asio/reference/any_completion_handler/get_cancellation_slot.html new file mode 100644 index 0000000..f1abed5 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/get_cancellation_slot.html @@ -0,0 +1,41 @@ + + + +any_completion_handler::get_cancellation_slot + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the associated cancellation slot. +

+
cancellation_slot_type get_cancellation_slot() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_bool.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_bool.html new file mode 100644 index 0000000..8810483 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_bool.html @@ -0,0 +1,42 @@ + + + +any_completion_handler::operator bool + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Test + if the polymorphic wrapper is empty. +

+
constexpr operator bool() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_eq_.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq_.html new file mode 100644 index 0000000..9a55002 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq_.html @@ -0,0 +1,51 @@ + + + +any_completion_handler::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + an any_completion_handler + from another. +

+
any_completion_handler & operator=(
+    any_completion_handler && other);
+  » more...
+
+

+ Assignment operator that sets the polymorphic wrapper to the empty state. +

+
any_completion_handler & operator=(
+    nullptr_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq_/overload1.html new file mode 100644 index 0000000..d73f480 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq_/overload1.html @@ -0,0 +1,46 @@ + + + +any_completion_handler::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign an any_completion_handler + from another. +

+
any_completion_handler & operator=(
+    any_completion_handler && other);
+
+

+ After the operation, the moved-from object other + has no target. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq_/overload2.html new file mode 100644 index 0000000..d559bac --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq_/overload2.html @@ -0,0 +1,41 @@ + + + +any_completion_handler::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator that sets the polymorphic wrapper to the empty state. +

+
any_completion_handler & operator=(
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_.html new file mode 100644 index 0000000..0744b7b --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_.html @@ -0,0 +1,49 @@ + + + +any_completion_handler::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Equality + operator. +

+
friend constexpr bool operator==(
+    const any_completion_handler & a,
+    nullptr_t );
+  » more...
+
+friend constexpr bool operator==(
+    nullptr_t ,
+    const any_completion_handler & b);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_/overload1.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_/overload1.html new file mode 100644 index 0000000..ec9df20 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_/overload1.html @@ -0,0 +1,52 @@ + + + +any_completion_handler::operator== (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Equality operator. +

+
friend constexpr bool operator==(
+    const any_completion_handler & a,
+    nullptr_t );
+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_/overload2.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_/overload2.html new file mode 100644 index 0000000..955779b --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_eq__eq_/overload2.html @@ -0,0 +1,52 @@ + + + +any_completion_handler::operator== (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Equality operator. +

+
friend constexpr bool operator==(
+    nullptr_t ,
+    const any_completion_handler & b);
+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_lp__rp_.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_lp__rp_.html new file mode 100644 index 0000000..3bf5c07 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_lp__rp_.html @@ -0,0 +1,55 @@ + + + +any_completion_handler::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Function + call operator. +

+
template<
+    typename... Args>
+auto operator()(
+    Args &&... args);
+
+

+ Invokes target completion handler with the supplied arguments. +

+

+ This function may only be called once, as the target handler is moved from. + The polymorphic wrapper is left in an empty state. +

+

+ Throws std::bad_function_call if the polymorphic + wrapper is empty. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_not_.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_not_.html new file mode 100644 index 0000000..1962151 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_not_.html @@ -0,0 +1,41 @@ + + + +any_completion_handler::operator! + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Test + if the polymorphic wrapper is non-empty. +

+
constexpr bool operator!() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_.html new file mode 100644 index 0000000..39938bc --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_.html @@ -0,0 +1,49 @@ + + + +any_completion_handler::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Inequality + operator. +

+
friend constexpr bool operator!=(
+    const any_completion_handler & a,
+    nullptr_t );
+  » more...
+
+friend constexpr bool operator!=(
+    nullptr_t ,
+    const any_completion_handler & b);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_/overload1.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_/overload1.html new file mode 100644 index 0000000..6ced22b --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_/overload1.html @@ -0,0 +1,52 @@ + + + +any_completion_handler::operator!= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inequality operator. +

+
friend constexpr bool operator!=(
+    const any_completion_handler & a,
+    nullptr_t );
+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_/overload2.html b/3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_/overload2.html new file mode 100644 index 0000000..65a1d77 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/operator_not__eq_/overload2.html @@ -0,0 +1,52 @@ + + + +any_completion_handler::operator!= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inequality operator. +

+
friend constexpr bool operator!=(
+    nullptr_t ,
+    const any_completion_handler & b);
+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler/swap.html b/3party/asio/doc/asio/reference/any_completion_handler/swap.html new file mode 100644 index 0000000..c559404 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler/swap.html @@ -0,0 +1,43 @@ + + + +any_completion_handler::swap + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Swap + the content of an any_completion_handler + with another. +

+
void swap(
+    any_completion_handler & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator.html new file mode 100644 index 0000000..b78ee65 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator.html @@ -0,0 +1,176 @@ + + + +any_completion_handler_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ An allocator type that forwards memory allocation operations through an instance + of any_completion_handler. +

+
template<
+    typename T,
+    typename... Signatures>
+class any_completion_handler_allocator
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ value_type +

+
+

+ The type of objects that may be allocated by the allocator. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocate +

+
+

+ Allocate space for n objects of the allocator's value type. +

+
+

+ any_completion_handler_allocator + [constructor] +

+
+

+ Construct from another any_completion_handler_allocator. +

+
+

+ deallocate +

+
+

+ Deallocate space for n objects of the allocator's value type. +

+
+

+ operator!= +

+
+

+ Inequality operator. +

+
+

+ operator== +

+
+

+ Equality operator. +

+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator/allocate.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator/allocate.html new file mode 100644 index 0000000..acafbcd --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator/allocate.html @@ -0,0 +1,43 @@ + + + +any_completion_handler_allocator::allocate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Allocate + space for n objects of + the allocator's value type. +

+
T * allocate(
+    std::size_t n) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator/any_completion_handler_allocator.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator/any_completion_handler_allocator.html new file mode 100644 index 0000000..21f5278 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator/any_completion_handler_allocator.html @@ -0,0 +1,44 @@ + + + +any_completion_handler_allocator::any_completion_handler_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + from another any_completion_handler_allocator. +

+
template<
+    typename U>
+constexpr any_completion_handler_allocator(
+    const any_completion_handler_allocator< U, Signatures...> & a);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator/deallocate.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator/deallocate.html new file mode 100644 index 0000000..ff1412c --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator/deallocate.html @@ -0,0 +1,44 @@ + + + +any_completion_handler_allocator::deallocate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Deallocate + space for n objects of + the allocator's value type. +

+
void deallocate(
+    T * p,
+    std::size_t n) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator/operator_eq__eq_.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator/operator_eq__eq_.html new file mode 100644 index 0000000..f8ce0ab --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator/operator_eq__eq_.html @@ -0,0 +1,42 @@ + + + +any_completion_handler_allocator::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Equality + operator. +

+
constexpr bool operator==(
+    const any_completion_handler_allocator & other) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator/operator_not__eq_.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator/operator_not__eq_.html new file mode 100644 index 0000000..979d75d --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator/operator_not__eq_.html @@ -0,0 +1,42 @@ + + + +any_completion_handler_allocator::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Inequality + operator. +

+
constexpr bool operator!=(
+    const any_completion_handler_allocator & other) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator/value_type.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator/value_type.html new file mode 100644 index 0000000..4fd2a63 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator/value_type.html @@ -0,0 +1,51 @@ + + + +any_completion_handler_allocator::value_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of objects that may be allocated by the allocator. +

+
typedef T value_type;
+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator__rebind.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator__rebind.html new file mode 100644 index 0000000..fe9d50e --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator__rebind.html @@ -0,0 +1,88 @@ + + + +any_completion_handler_allocator::rebind + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds an allocator to another value type. +

+
template<
+    typename U>
+struct rebind
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ Specifies the type of the rebound allocator. +

+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator__rebind/other.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator__rebind/other.html new file mode 100644 index 0000000..88763e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator__rebind/other.html @@ -0,0 +1,171 @@ + + + +any_completion_handler_allocator::rebind::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Specifies + the type of the rebound allocator. +

+
typedef any_completion_handler_allocator< U, Signatures...> other;
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ value_type +

+
+

+ The type of objects that may be allocated by the allocator. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocate +

+
+

+ Allocate space for n objects of the allocator's value type. +

+
+

+ any_completion_handler_allocator + [constructor] +

+
+

+ Construct from another any_completion_handler_allocator. +

+
+

+ deallocate +

+
+

+ Deallocate space for n objects of the allocator's value type. +

+
+

+ operator!= +

+
+

+ Inequality operator. +

+
+

+ operator== +

+
+

+ Equality operator. +

+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_.html new file mode 100644 index 0000000..cf9ce0a --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_.html @@ -0,0 +1,151 @@ + + + +any_completion_handler_allocator< void, Signatures...> + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A protoco-allocator type that may be rebound to obtain an allocator that + forwards memory allocation operations through an instance of any_completion_handler. +

+
template<
+    typename... Signatures>
+class any_completion_handler_allocator< void, Signatures...>
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ value_type +

+
+

+ void as no objects can be allocated through a proto-allocator. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ any_completion_handler_allocator +

+
+

+ Construct from another any_completion_handler_allocator. +

+
+

+ operator!= +

+
+

+ Inequality operator. +

+
+

+ operator== +

+
+

+ Equality operator. +

+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/any_completion_handler_allocator.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/any_completion_handler_allocator.html new file mode 100644 index 0000000..5d130ff --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/any_completion_handler_allocator.html @@ -0,0 +1,44 @@ + + + +any_completion_handler_allocator< void, Signatures...>::any_completion_handler_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct from another any_completion_handler_allocator. +

+
template<
+    typename U>
+constexpr any_completion_handler_allocator(
+    const any_completion_handler_allocator< U, Signatures...> & a);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_eq__eq_.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_eq__eq_.html new file mode 100644 index 0000000..6183398 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_eq__eq_.html @@ -0,0 +1,42 @@ + + + +any_completion_handler_allocator< void, Signatures...>::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Equality operator. +

+
constexpr bool operator==(
+    const any_completion_handler_allocator & other) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_not__eq_.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_not__eq_.html new file mode 100644 index 0000000..385d4cc --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_not__eq_.html @@ -0,0 +1,42 @@ + + + +any_completion_handler_allocator< void, Signatures...>::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Inequality operator. +

+
constexpr bool operator!=(
+    const any_completion_handler_allocator & other) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/value_type.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/value_type.html new file mode 100644 index 0000000..a35ba8d --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/value_type.html @@ -0,0 +1,52 @@ + + + +any_completion_handler_allocator< void, Signatures...>::value_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +void + as no objects can be allocated through a proto-allocator. +

+
typedef void value_type;
+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind.html new file mode 100644 index 0000000..76bc643 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind.html @@ -0,0 +1,89 @@ + + + +any_completion_handler_allocator< void, Signatures...>::rebind + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds an allocator to another value type. +

+
template<
+    typename U>
+struct any_completion_handler_allocator< void, Signatures...>::rebind
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ Specifies the type of the rebound allocator. +

+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind/other.html b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind/other.html new file mode 100644 index 0000000..390fb75 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind/other.html @@ -0,0 +1,171 @@ + + + +any_completion_handler_allocator< void, Signatures...>::rebind::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Specifies the type of the rebound allocator. +

+
typedef any_completion_handler_allocator< U, Signatures...> other;
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ value_type +

+
+

+ The type of objects that may be allocated by the allocator. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocate +

+
+

+ Allocate space for n objects of the allocator's value type. +

+
+

+ any_completion_handler_allocator + [constructor] +

+
+

+ Construct from another any_completion_handler_allocator. +

+
+

+ deallocate +

+
+

+ Deallocate space for n objects of the allocator's value type. +

+
+

+ operator!= +

+
+

+ Inequality operator. +

+
+

+ operator== +

+
+

+ Equality operator. +

+
+
+ + Requirements +
+

+ Header: asio/any_completion_handler.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor.html b/3party/asio/doc/asio/reference/any_io_executor.html new file mode 100644 index 0000000..63f7338 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor.html @@ -0,0 +1,294 @@ + + + +any_io_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Polymorphic executor type for use with I/O objects. +

+
class any_io_executor :
+  public execution::any_executor< SupportableProperties >
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ any_io_executor [constructor] +

+
+

+ Default constructor.

Construct in an empty state. + Equivalent effects to default constructor.

Copy constructor. +

Move constructor.

Construct to point + to the same target as another any_executor.

Construct + a polymorphic wrapper for the specified executor. +

+
+

+ context +

+
+

+ Obtain the underlying execution context. +

+
+

+ execute +

+
+

+ Execute the function on the target executor. +

+
+

+ operator bool +

+
+

+ Determine whether the wrapper has a target executor. +

+
+

+ operator= +

+
+

+ Assignment operator.

Move assignment operator.
+
Assignment operator that sets the polymorphic wrapper to + the empty state. +

+
+

+ prefer +

+
+

+ Obtain a polymorphic wrapper with the specified property. +

+
+

+ query +

+
+

+ Obtain the value associated with the specified property. +

+
+

+ require +

+
+

+ Obtain a polymorphic wrapper with the specified property.
+
+

+
+

+ swap +

+
+

+ Swap targets with another polymorphic wrapper. +

+
+

+ target +

+
+

+ Get a pointer to the target executor. +

+
+

+ target_type +

+
+

+ Get the type of the target executor. +

+
+

+ ~any_io_executor [destructor] +

+
+

+ Destructor. +

+
+
+ + Related + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Inequality operator. +

+
+

+ operator== +

+
+

+ Equality operator. +

+
+

+ The any_io_executor type + is a polymorphic executor that supports the set of properties required by + I/O objects. It is defined as the execution::any_executor class template parameterised + as follows: +

+
execution::any_executor<
+  execution::context_as_t<execution_context&>,
+  execution::blocking_t::never_t,
+  execution::prefer_only<execution::blocking_t::possibly_t>,
+  execution::prefer_only<execution::outstanding_work_t::tracked_t>,
+  execution::prefer_only<execution::outstanding_work_t::untracked_t>,
+  execution::prefer_only<execution::relationship_t::fork_t>,
+  execution::prefer_only<execution::relationship_t::continuation_t>
+>
+
+
+ + Requirements +
+

+ Header: asio/any_io_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/_any_io_executor.html b/3party/asio/doc/asio/reference/any_io_executor/_any_io_executor.html new file mode 100644 index 0000000..f16849e --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/_any_io_executor.html @@ -0,0 +1,40 @@ + + + +any_io_executor::~any_io_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~any_io_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/any_io_executor.html b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor.html new file mode 100644 index 0000000..96aaabc --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor.html @@ -0,0 +1,105 @@ + + + +any_io_executor::any_io_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
any_io_executor();
+  » more...
+
+

+ Construct in an empty state. Equivalent effects to default constructor. +

+
any_io_executor(
+    nullptr_t );
+  » more...
+
+

+ Copy constructor. +

+
any_io_executor(
+    const any_io_executor & e);
+  » more...
+
+

+ Move constructor. +

+
any_io_executor(
+    any_io_executor && e);
+  » more...
+
+

+ Construct to point to the same target as another any_executor. +

+
template<
+    class... OtherSupportableProperties>
+any_io_executor(
+    execution::any_executor< OtherSupportableProperties...> e);
+  » more...
+
+template<
+    class... OtherSupportableProperties>
+any_io_executor(
+    std::nothrow_t ,
+    execution::any_executor< OtherSupportableProperties...> e);
+  » more...
+
+any_io_executor(
+    std::nothrow_t ,
+    const any_io_executor & e);
+  » more...
+
+any_io_executor(
+    std::nothrow_t ,
+    any_io_executor && e);
+  » more...
+
+

+ Construct a polymorphic wrapper for the specified executor. +

+
template<
+    typename Executor>
+any_io_executor(
+    Executor e);
+  » more...
+
+template<
+    typename Executor>
+any_io_executor(
+    std::nothrow_t ,
+    Executor e);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload1.html b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload1.html new file mode 100644 index 0000000..24863bc --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload1.html @@ -0,0 +1,40 @@ + + + +any_io_executor::any_io_executor (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
any_io_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload10.html b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload10.html new file mode 100644 index 0000000..4b0e12d --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload10.html @@ -0,0 +1,44 @@ + + + +any_io_executor::any_io_executor (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a polymorphic wrapper for the specified executor. +

+
template<
+    typename Executor>
+any_io_executor(
+    std::nothrow_t ,
+    Executor e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload2.html b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload2.html new file mode 100644 index 0000000..f2502e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload2.html @@ -0,0 +1,41 @@ + + + +any_io_executor::any_io_executor (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct in an empty state. Equivalent effects to default constructor. +

+
any_io_executor(
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload3.html b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload3.html new file mode 100644 index 0000000..94d64b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload3.html @@ -0,0 +1,41 @@ + + + +any_io_executor::any_io_executor (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
any_io_executor(
+    const any_io_executor & e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload4.html b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload4.html new file mode 100644 index 0000000..7fa1a02 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload4.html @@ -0,0 +1,41 @@ + + + +any_io_executor::any_io_executor (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
any_io_executor(
+    any_io_executor && e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload5.html b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload5.html new file mode 100644 index 0000000..6a022b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload5.html @@ -0,0 +1,43 @@ + + + +any_io_executor::any_io_executor (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another any_executor. +

+
template<
+    class... OtherSupportableProperties>
+any_io_executor(
+    execution::any_executor< OtherSupportableProperties...> e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload6.html b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload6.html new file mode 100644 index 0000000..c1e4b8f --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload6.html @@ -0,0 +1,44 @@ + + + +any_io_executor::any_io_executor (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another any_executor. +

+
template<
+    class... OtherSupportableProperties>
+any_io_executor(
+    std::nothrow_t ,
+    execution::any_executor< OtherSupportableProperties...> e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload7.html b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload7.html new file mode 100644 index 0000000..3313194 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload7.html @@ -0,0 +1,42 @@ + + + +any_io_executor::any_io_executor (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another any_executor. +

+
any_io_executor(
+    std::nothrow_t ,
+    const any_io_executor & e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload8.html b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload8.html new file mode 100644 index 0000000..35f2c5d --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload8.html @@ -0,0 +1,42 @@ + + + +any_io_executor::any_io_executor (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another any_executor. +

+
any_io_executor(
+    std::nothrow_t ,
+    any_io_executor && e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload9.html b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload9.html new file mode 100644 index 0000000..c86befb --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/any_io_executor/overload9.html @@ -0,0 +1,43 @@ + + + +any_io_executor::any_io_executor (9 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a polymorphic wrapper for the specified executor. +

+
template<
+    typename Executor>
+any_io_executor(
+    Executor e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/context.html b/3party/asio/doc/asio/reference/any_io_executor/context.html new file mode 100644 index 0000000..9fd07e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/context.html @@ -0,0 +1,49 @@ + + + +any_io_executor::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ +Obtain the + underlying execution context. +

+
automatically_determined context() const;
+
+

+ This function is provided for backward compatibility. It is automatically + defined when the SupportableProperties... + list includes a property of type execution::context_as<U>, for some type U. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/execute.html b/3party/asio/doc/asio/reference/any_io_executor/execute.html new file mode 100644 index 0000000..776e82d --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/execute.html @@ -0,0 +1,51 @@ + + + +any_io_executor::execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ +Execute the + function on the target executor. +

+
template<
+    typename Function>
+void execute(
+    Function && f) const;
+
+

+ Throws bad_executor + if the polymorphic wrapper has no target. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_bool.html b/3party/asio/doc/asio/reference/any_io_executor/operator_bool.html new file mode 100644 index 0000000..cd6410c --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_bool.html @@ -0,0 +1,54 @@ + + + +any_io_executor::operator bool + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ +Determine + whether the wrapper has a target executor. +

+
operator bool() const;
+
+
+ + Return + Value +
+

+ true if the polymorphic wrapper + has a target executor, otherwise false. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_eq_.html b/3party/asio/doc/asio/reference/any_io_executor/operator_eq_.html new file mode 100644 index 0000000..8e81582 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_eq_.html @@ -0,0 +1,57 @@ + + + +any_io_executor::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assignment + operator. +

+
any_io_executor & operator=(
+    const any_io_executor & e);
+  » more...
+
+

+ Move assignment operator. +

+
any_io_executor & operator=(
+    any_io_executor && e);
+  » more...
+
+

+ Assignment operator that sets the polymorphic wrapper to the empty state. +

+
any_io_executor & operator=(
+    nullptr_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload1.html new file mode 100644 index 0000000..6d4348a --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +any_io_executor::operator= (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator. +

+
any_io_executor & operator=(
+    const any_io_executor & e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload2.html new file mode 100644 index 0000000..819999f --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload2.html @@ -0,0 +1,41 @@ + + + +any_io_executor::operator= (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move assignment operator. +

+
any_io_executor & operator=(
+    any_io_executor && e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload3.html b/3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload3.html new file mode 100644 index 0000000..9abe772 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_eq_/overload3.html @@ -0,0 +1,41 @@ + + + +any_io_executor::operator= (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator that sets the polymorphic wrapper to the empty state. +

+
any_io_executor & operator=(
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_.html b/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_.html new file mode 100644 index 0000000..961b294 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_.html @@ -0,0 +1,54 @@ + + + +any_io_executor::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Equality + operator. +

+
bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+  » more...
+
+bool operator==(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload1.html b/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload1.html new file mode 100644 index 0000000..45ef192 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload1.html @@ -0,0 +1,45 @@ + + + +any_io_executor::operator== (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Equality operator. +

+
bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload2.html b/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload2.html new file mode 100644 index 0000000..c2af948 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload2.html @@ -0,0 +1,45 @@ + + + +any_io_executor::operator== (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Equality operator. +

+
bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload3.html b/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload3.html new file mode 100644 index 0000000..6feaaff --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_eq__eq_/overload3.html @@ -0,0 +1,45 @@ + + + +any_io_executor::operator== (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Equality operator. +

+
bool operator==(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_.html b/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_.html new file mode 100644 index 0000000..0a8dcc6 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_.html @@ -0,0 +1,54 @@ + + + +any_io_executor::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Inequality + operator. +

+
bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+  » more...
+
+bool operator!=(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload1.html b/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload1.html new file mode 100644 index 0000000..66eea9f --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload1.html @@ -0,0 +1,45 @@ + + + +any_io_executor::operator!= (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Inequality operator. +

+
bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload2.html b/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload2.html new file mode 100644 index 0000000..c65f121 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload2.html @@ -0,0 +1,45 @@ + + + +any_io_executor::operator!= (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Inequality operator. +

+
bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload3.html b/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload3.html new file mode 100644 index 0000000..f1f1da0 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/operator_not__eq_/overload3.html @@ -0,0 +1,45 @@ + + + +any_io_executor::operator!= (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Inequality operator. +

+
bool operator!=(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/prefer.html b/3party/asio/doc/asio/reference/any_io_executor/prefer.html new file mode 100644 index 0000000..1559f08 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/prefer.html @@ -0,0 +1,82 @@ + + + +any_io_executor::prefer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain a polymorphic + wrapper with the specified property. +

+
template<
+    typename Property>
+any_io_executor prefer(
+    const Property & p,
+    typename constraint< traits::prefer_member< const base_type &, const Property & >::is_valid >::type  = 0) const;
+  » more...
+
+template<>
+any_io_executor prefer(
+    const execution::blocking_t::possibly_t & p,
+    int ) const;
+  » more...
+
+template<>
+any_io_executor prefer(
+    const execution::outstanding_work_t::tracked_t & p,
+    int ) const;
+  » more...
+
+template<>
+any_io_executor prefer(
+    const execution::outstanding_work_t::untracked_t & p,
+    int ) const;
+  » more...
+
+template<>
+any_io_executor prefer(
+    const execution::relationship_t::fork_t & p,
+    int ) const;
+  » more...
+
+template<>
+any_io_executor prefer(
+    const execution::relationship_t::continuation_t & p,
+    int ) const;
+  » more...
+
+template<
+    typename Property>
+any_executor prefer(
+    Property ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/prefer/overload1.html b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload1.html new file mode 100644 index 0000000..674a998 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload1.html @@ -0,0 +1,55 @@ + + + +any_io_executor::prefer (1 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_io_executor prefer(
+    const Property & p,
+    typename constraint< traits::prefer_member< const base_type &, const Property & >::is_valid >::type  = 0) const;
+
+

+ Do not call this function directly. It is intended for use with the + prefer + customisation point. +

+

+ For example: +

+
any_io_executor ex = ...;
+auto ex2 = asio::prefer(ex, execution::blocking.possibly);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/prefer/overload2.html b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload2.html new file mode 100644 index 0000000..f4b27c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload2.html @@ -0,0 +1,40 @@ + + + +any_io_executor::prefer (2 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<>
+any_io_executor prefer(
+    const execution::blocking_t::possibly_t & p,
+    int ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/prefer/overload3.html b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload3.html new file mode 100644 index 0000000..0d2ef07 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload3.html @@ -0,0 +1,40 @@ + + + +any_io_executor::prefer (3 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<>
+any_io_executor prefer(
+    const execution::outstanding_work_t::tracked_t & p,
+    int ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/prefer/overload4.html b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload4.html new file mode 100644 index 0000000..4847a1c --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload4.html @@ -0,0 +1,40 @@ + + + +any_io_executor::prefer (4 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<>
+any_io_executor prefer(
+    const execution::outstanding_work_t::untracked_t & p,
+    int ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/prefer/overload5.html b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload5.html new file mode 100644 index 0000000..1cbc383 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload5.html @@ -0,0 +1,40 @@ + + + +any_io_executor::prefer (5 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<>
+any_io_executor prefer(
+    const execution::relationship_t::fork_t & p,
+    int ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/prefer/overload6.html b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload6.html new file mode 100644 index 0000000..8cb8a75 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload6.html @@ -0,0 +1,40 @@ + + + +any_io_executor::prefer (6 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<>
+any_io_executor prefer(
+    const execution::relationship_t::continuation_t & p,
+    int ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/prefer/overload7.html b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload7.html new file mode 100644 index 0000000..8a65ce5 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/prefer/overload7.html @@ -0,0 +1,57 @@ + + + +any_io_executor::prefer (7 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Obtain a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_executor prefer(
+    Property ) const;
+
+

+ Do not call this function directly. It is intended for use with the + prefer + customisation point. +

+

+ For example: +

+
execution::any_executor<execution::blocking_t::possibly_t> ex = ...;
+auto ex2 = asio::prefer(ex, execution::blocking.possibly);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/query.html b/3party/asio/doc/asio/reference/any_io_executor/query.html new file mode 100644 index 0000000..f292575 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/query.html @@ -0,0 +1,57 @@ + + + +any_io_executor::query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ +Obtain the value + associated with the specified property. +

+
template<
+    typename Property>
+Property::polymorphic_query_result_type query(
+    Property ) const;
+
+

+ Do not call this function directly. It is intended for use with the query + customisation point. +

+

+ For example: +

+
execution::any_executor<execution::occupancy_t> ex = ...;
+size_t n = asio::query(ex, execution::occupancy);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/require.html b/3party/asio/doc/asio/reference/any_io_executor/require.html new file mode 100644 index 0000000..1e9cd8e --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/require.html @@ -0,0 +1,60 @@ + + + +any_io_executor::require + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain a polymorphic + wrapper with the specified property. +

+
template<
+    typename Property>
+any_io_executor require(
+    const Property & p,
+    typename constraint< traits::require_member< const base_type &, const Property & >::is_valid >::type  = 0) const;
+  » more...
+
+
+
+template<>
+any_io_executor require(
+    const execution::blocking_t::never_t & p,
+    int ) const;
+  » more...
+
+template<
+    typename Property>
+any_executor require(
+    Property ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/require/overload1.html b/3party/asio/doc/asio/reference/any_io_executor/require/overload1.html new file mode 100644 index 0000000..3f6d8a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/require/overload1.html @@ -0,0 +1,56 @@ + + + +any_io_executor::require (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_io_executor require(
+    const Property & p,
+    typename constraint< traits::require_member< const base_type &, const Property & >::is_valid >::type  = 0) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + and prefer + customisation points. +

+

+ For example: +

+
any_io_executor ex = ...;
+auto ex2 = asio::require(ex, execution::blocking.possibly);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/require/overload2.html b/3party/asio/doc/asio/reference/any_io_executor/require/overload2.html new file mode 100644 index 0000000..80fc669 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/require/overload2.html @@ -0,0 +1,40 @@ + + + +any_io_executor::require (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<>
+any_io_executor require(
+    const execution::blocking_t::never_t & p,
+    int ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/require/overload3.html b/3party/asio/doc/asio/reference/any_io_executor/require/overload3.html new file mode 100644 index 0000000..a0913e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/require/overload3.html @@ -0,0 +1,58 @@ + + + +any_io_executor::require (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Obtain a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_executor require(
+    Property ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + and prefer + customisation points. +

+

+ For example: +

+
execution::any_executor<execution::blocking_t::possibly_t> ex = ...;
+auto ex2 = asio::requre(ex, execution::blocking.possibly);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/swap.html b/3party/asio/doc/asio/reference/any_io_executor/swap.html new file mode 100644 index 0000000..9af299f --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/swap.html @@ -0,0 +1,47 @@ + + + +any_io_executor::swap + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Swap targets with + another polymorphic wrapper. +

+
void swap(
+    any_io_executor & other);
+  » more...
+
+void swap(
+    any_executor & other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/swap/overload1.html b/3party/asio/doc/asio/reference/any_io_executor/swap/overload1.html new file mode 100644 index 0000000..54bff35 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/swap/overload1.html @@ -0,0 +1,41 @@ + + + +any_io_executor::swap (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Swap targets with another polymorphic wrapper. +

+
void swap(
+    any_io_executor & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/swap/overload2.html b/3party/asio/doc/asio/reference/any_io_executor/swap/overload2.html new file mode 100644 index 0000000..6d52400 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/swap/overload2.html @@ -0,0 +1,44 @@ + + + +any_io_executor::swap (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Swap targets with another polymorphic wrapper. +

+
void swap(
+    any_executor & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/target.html b/3party/asio/doc/asio/reference/any_io_executor/target.html new file mode 100644 index 0000000..1a30d52 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/target.html @@ -0,0 +1,49 @@ + + + +any_io_executor::target + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get a pointer + to the target executor. +

+
template<
+    typename Executor>
+Executor * target();
+  » more...
+
+template<
+    typename Executor>
+const Executor * target() const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/target/overload1.html b/3party/asio/doc/asio/reference/any_io_executor/target/overload1.html new file mode 100644 index 0000000..6c73104 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/target/overload1.html @@ -0,0 +1,45 @@ + + + +any_io_executor::target (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Get a pointer to the target executor. +

+
template<
+    typename Executor>
+Executor * target();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/target/overload2.html b/3party/asio/doc/asio/reference/any_io_executor/target/overload2.html new file mode 100644 index 0000000..eeffc06 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/target/overload2.html @@ -0,0 +1,45 @@ + + + +any_io_executor::target (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ Get a pointer to the target executor. +

+
template<
+    typename Executor>
+const Executor * target() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/any_io_executor/target_type.html b/3party/asio/doc/asio/reference/any_io_executor/target_type.html new file mode 100644 index 0000000..d2728f4 --- /dev/null +++ b/3party/asio/doc/asio/reference/any_io_executor/target_type.html @@ -0,0 +1,44 @@ + + + +any_io_executor::target_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from execution::any_executor. +

+

+ +Get + the type of the target executor. +

+
const type_info & target_type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/append.html b/3party/asio/doc/asio/reference/append.html new file mode 100644 index 0000000..6dc8199 --- /dev/null +++ b/3party/asio/doc/asio/reference/append.html @@ -0,0 +1,58 @@ + + + +append + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+

+append +

+

+ +

+

+ Completion token type used to specify that the completion handler arguments + should be passed additional values after the results of the operation. +

+
template<
+    typename CompletionToken,
+    typename... Values>
+constexpr append_t< typename decay< CompletionToken >::type, typename decay< Values >::type...> append(
+    CompletionToken && completion_token,
+    Values &&... values);
+
+
+ + Requirements +
+

+ Header: asio/append.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/append_t.html b/3party/asio/doc/asio/reference/append_t.html new file mode 100644 index 0000000..a04f146 --- /dev/null +++ b/3party/asio/doc/asio/reference/append_t.html @@ -0,0 +1,135 @@ + + + +append_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Completion token type used to specify that the completion handler arguments + should be passed additional values after the results of the operation. +

+
template<
+    typename CompletionToken,
+    typename... Values>
+class append_t
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ append_t + [constructor] +

+
+

+ Constructor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ token_ +

+
+
+

+ values_ +

+
+
+
+ + Requirements +
+

+ Header: asio/append.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/append_t/append_t.html b/3party/asio/doc/asio/reference/append_t/append_t.html new file mode 100644 index 0000000..10eba1f --- /dev/null +++ b/3party/asio/doc/asio/reference/append_t/append_t.html @@ -0,0 +1,45 @@ + + + +append_t::append_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
template<
+    typename T,
+    typename... V>
+constexpr append_t(
+    T && completion_token,
+    V &&... values);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/append_t/token_.html b/3party/asio/doc/asio/reference/append_t/token_.html new file mode 100644 index 0000000..506edfc --- /dev/null +++ b/3party/asio/doc/asio/reference/append_t/token_.html @@ -0,0 +1,39 @@ + + + +append_t::token_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
CompletionToken token_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/append_t/values_.html b/3party/asio/doc/asio/reference/append_t/values_.html new file mode 100644 index 0000000..e4c098f --- /dev/null +++ b/3party/asio/doc/asio/reference/append_t/values_.html @@ -0,0 +1,39 @@ + + + +append_t::values_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
std::tuple< Values...> values_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/as_tuple.html b/3party/asio/doc/asio/reference/as_tuple.html new file mode 100644 index 0000000..16eedad --- /dev/null +++ b/3party/asio/doc/asio/reference/as_tuple.html @@ -0,0 +1,57 @@ + + + +as_tuple + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Adapt a completion + token to specify that the completion handler arguments should be combined + into a single tuple argument. +

+
template<
+    typename CompletionToken>
+constexpr as_tuple_t< typename decay< CompletionToken >::type > as_tuple(
+    CompletionToken && completion_token);
+
+
+ + Requirements +
+

+ Header: asio/as_tuple.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/as_tuple_t.html b/3party/asio/doc/asio/reference/as_tuple_t.html new file mode 100644 index 0000000..582df2b --- /dev/null +++ b/3party/asio/doc/asio/reference/as_tuple_t.html @@ -0,0 +1,195 @@ + + + +as_tuple_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + adapter used to specify that the completion handler arguments should be combined + into a single tuple argument. +

+
template<
+    typename CompletionToken>
+class as_tuple_t
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_constructor_tag +

+
+

+ Tag type used to prevent the "default" constructor from + being used for conversions. +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the as_tuple_t completion token as the + default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use as_tuple_t as its + default completion token type. +

+
+

+ as_tuple_t [constructor] +

+
+

+ Default constructor.

Constructor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ token_ +

+
+
+

+ The as_tuple_t + class is used to indicate that any arguments to the completion handler should + be combined and passed as a single tuple argument. The arguments are first + moved into a std::tuple and that tuple is then passed to + the completion handler. +

+
+ + Requirements +
+

+ Header: asio/as_tuple.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/as_tuple_t/as_default_on.html b/3party/asio/doc/asio/reference/as_tuple_t/as_default_on.html new file mode 100644 index 0000000..f0ca738 --- /dev/null +++ b/3party/asio/doc/asio/reference/as_tuple_t/as_default_on.html @@ -0,0 +1,45 @@ + + + +as_tuple_t::as_default_on + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Function + helper to adapt an I/O object to use as_tuple_t + as its default completion token type. +

+
template<
+    typename T>
+static decay< T >::type::template rebind_executor< executor_with_default< typename decay< T >::type::executor_type > >::other as_default_on(
+    T && object);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t.html b/3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t.html new file mode 100644 index 0000000..4863064 --- /dev/null +++ b/3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t.html @@ -0,0 +1,52 @@ + + + +as_tuple_t::as_tuple_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default constructor. +

+
constexpr as_tuple_t(
+    default_constructor_tag  = default_constructor_tag(),
+    CompletionToken token = CompletionToken());
+  » more...
+
+

+ Constructor. +

+
template<
+    typename T>
+explicit constexpr as_tuple_t(
+    T && completion_token);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t/overload1.html b/3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t/overload1.html new file mode 100644 index 0000000..bef4e9c --- /dev/null +++ b/3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t/overload1.html @@ -0,0 +1,48 @@ + + + +as_tuple_t::as_tuple_t (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr as_tuple_t(
+    default_constructor_tag  = default_constructor_tag(),
+    CompletionToken token = CompletionToken());
+
+

+ This constructor is only valid if the underlying completion token is + default constructible and move constructible. The underlying completion + token is itself defaulted as an argument to allow it to capture a source + location. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t/overload2.html b/3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t/overload2.html new file mode 100644 index 0000000..588d061 --- /dev/null +++ b/3party/asio/doc/asio/reference/as_tuple_t/as_tuple_t/overload2.html @@ -0,0 +1,43 @@ + + + +as_tuple_t::as_tuple_t (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor. +

+
template<
+    typename T>
+constexpr as_tuple_t(
+    T && completion_token);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/as_tuple_t/token_.html b/3party/asio/doc/asio/reference/as_tuple_t/token_.html new file mode 100644 index 0000000..9561212 --- /dev/null +++ b/3party/asio/doc/asio/reference/as_tuple_t/token_.html @@ -0,0 +1,39 @@ + + + +as_tuple_t::token_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
CompletionToken token_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/as_tuple_t__default_constructor_tag.html b/3party/asio/doc/asio/reference/as_tuple_t__default_constructor_tag.html new file mode 100644 index 0000000..cdc28f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/as_tuple_t__default_constructor_tag.html @@ -0,0 +1,53 @@ + + + +as_tuple_t::default_constructor_tag + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Tag type used to prevent the "default" constructor from being used + for conversions. +

+
struct default_constructor_tag
+
+
+ + Requirements +
+

+ Header: asio/as_tuple.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/as_tuple_t__executor_with_default.html b/3party/asio/doc/asio/reference/as_tuple_t__executor_with_default.html new file mode 100644 index 0000000..3bbc46b --- /dev/null +++ b/3party/asio/doc/asio/reference/as_tuple_t__executor_with_default.html @@ -0,0 +1,124 @@ + + + +as_tuple_t::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Adapts an executor to add the as_tuple_t + completion token as the default. +

+
template<
+    typename InnerExecutor>
+struct executor_with_default
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_completion_token_type +

+
+

+ Specify as_tuple_t as the default completion token type. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default [constructor] +

+
+

+ Construct the adapted executor from the inner executor type. +

+
+
+ + Requirements +
+

+ Header: asio/as_tuple.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/as_tuple_t__executor_with_default/default_completion_token_type.html b/3party/asio/doc/asio/reference/as_tuple_t__executor_with_default/default_completion_token_type.html new file mode 100644 index 0000000..8a97ebd --- /dev/null +++ b/3party/asio/doc/asio/reference/as_tuple_t__executor_with_default/default_completion_token_type.html @@ -0,0 +1,191 @@ + + + +as_tuple_t::executor_with_default::default_completion_token_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Specify + as_tuple_t as the default + completion token type. +

+
typedef as_tuple_t default_completion_token_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_constructor_tag +

+
+

+ Tag type used to prevent the "default" constructor + from being used for conversions. +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the as_tuple_t completion token as + the default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use as_tuple_t as its + default completion token type. +

+
+

+ as_tuple_t [constructor] +

+
+

+ Default constructor.

Constructor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ token_ +

+
+
+

+ The as_tuple_t + class is used to indicate that any arguments to the completion handler + should be combined and passed as a single tuple argument. The arguments + are first moved into a std::tuple + and that tuple is then passed to the completion handler. +

+
+ + Requirements +
+

+ Header: asio/as_tuple.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/as_tuple_t__executor_with_default/executor_with_default.html b/3party/asio/doc/asio/reference/as_tuple_t__executor_with_default/executor_with_default.html new file mode 100644 index 0000000..70c5daf --- /dev/null +++ b/3party/asio/doc/asio/reference/as_tuple_t__executor_with_default/executor_with_default.html @@ -0,0 +1,45 @@ + + + +as_tuple_t::executor_with_default::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + the adapted executor from the inner executor type. +

+
template<
+    typename InnerExecutor1>
+executor_with_default(
+    const InnerExecutor1 & ex,
+    typename constraint< conditional< !is_same< InnerExecutor1, executor_with_default >::value, is_convertible< InnerExecutor1, InnerExecutor >, false_type >::type::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/asio_handler_allocate.html b/3party/asio/doc/asio/reference/asio_handler_allocate.html new file mode 100644 index 0000000..8d09001 --- /dev/null +++ b/3party/asio/doc/asio/reference/asio_handler_allocate.html @@ -0,0 +1,95 @@ + + + +asio_handler_allocate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ (Deprecated: Use the associated_allocator trait.) Default + allocation function for handlers. +

+
asio_handler_allocate_is_deprecated 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/3party/asio/doc/asio/reference/asio_handler_deallocate.html b/3party/asio/doc/asio/reference/asio_handler_deallocate.html new file mode 100644 index 0000000..ed2b673 --- /dev/null +++ b/3party/asio/doc/asio/reference/asio_handler_deallocate.html @@ -0,0 +1,64 @@ + + + +asio_handler_deallocate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Default deallocation function for handlers. +

+
asio_handler_deallocate_is_deprecated 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/3party/asio/doc/asio/reference/asio_handler_invoke.html b/3party/asio/doc/asio/reference/asio_handler_invoke.html new file mode 100644 index 0000000..79be0ae --- /dev/null +++ b/3party/asio/doc/asio/reference/asio_handler_invoke.html @@ -0,0 +1,114 @@ + + + +asio_handler_invoke + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ (Deprecated: Use the associated_executor trait.) Default + invoke function for handlers. +

+

+ Default handler invocation hook used for non-const function objects. +

+
template<
+    typename Function>
+asio_handler_invoke_is_deprecated asio_handler_invoke(
+    Function & function,
+    ... );
+  » more...
+
+

+ Default handler invocation hook used for const function objects. +

+
template<
+    typename Function>
+asio_handler_invoke_is_deprecated 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/3party/asio/doc/asio/reference/asio_handler_invoke/overload1.html b/3party/asio/doc/asio/reference/asio_handler_invoke/overload1.html new file mode 100644 index 0000000..916eefe --- /dev/null +++ b/3party/asio/doc/asio/reference/asio_handler_invoke/overload1.html @@ -0,0 +1,44 @@ + + + +asio_handler_invoke (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default handler invocation hook used for non-const function objects. +

+
template<
+    typename Function>
+asio_handler_invoke_is_deprecated asio_handler_invoke(
+    Function & function,
+    ... );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/asio_handler_invoke/overload2.html b/3party/asio/doc/asio/reference/asio_handler_invoke/overload2.html new file mode 100644 index 0000000..f434e90 --- /dev/null +++ b/3party/asio/doc/asio/reference/asio_handler_invoke/overload2.html @@ -0,0 +1,44 @@ + + + +asio_handler_invoke (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default handler invocation hook used for const function objects. +

+
template<
+    typename Function>
+asio_handler_invoke_is_deprecated asio_handler_invoke(
+    const Function & function,
+    ... );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/asio_handler_is_continuation.html b/3party/asio/doc/asio/reference/asio_handler_is_continuation.html new file mode 100644 index 0000000..80fbf16 --- /dev/null +++ b/3party/asio/doc/asio/reference/asio_handler_is_continuation.html @@ -0,0 +1,76 @@ + + + +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/3party/asio/doc/asio/reference/associated_allocator.html b/3party/asio/doc/asio/reference/associated_allocator.html new file mode 100644 index 0000000..b662fee --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_allocator.html @@ -0,0 +1,186 @@ + + + +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 +

+
+

+ decltype [static] +

+
+

+ If T has a nested type allocator_type, returns t.get_allocator(). + Otherwise returns type().

If T has a nested type + allocator_type, returns t.get_allocator(). Otherwise returns a. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ noexcept +

+
+
+

+ 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 + or a (possibly const) reference to type. +
  • +
  • + Provide a noexcept static member function named get, + callable as get(t,a) + and with return type type + or a (possibly const) reference to type. +
  • +
+
+ + Requirements +
+

+ Header: asio/associated_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_allocator/decltype.html b/3party/asio/doc/asio/reference/associated_allocator/decltype.html new file mode 100644 index 0000000..3efa2ae --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_allocator/decltype.html @@ -0,0 +1,53 @@ + + + +associated_allocator::decltype + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +If + T has a nested type allocator_type, returns t.get_allocator(). Otherwise returns type(). +

+
static static decltype(
+    auto ) const;
+  » more...
+
+

+ If T has a nested type + allocator_type, returns + t.get_allocator(). + Otherwise returns a. +

+
static static decltype(
+    auto ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_allocator/decltype/overload1.html b/3party/asio/doc/asio/reference/associated_allocator/decltype/overload1.html new file mode 100644 index 0000000..f426fd5 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_allocator/decltype/overload1.html @@ -0,0 +1,44 @@ + + + +associated_allocator::decltype (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ If T has a nested type + allocator_type, returns + t.get_allocator(). + Otherwise returns type(). +

+
static static decltype(
+    auto ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_allocator/decltype/overload2.html b/3party/asio/doc/asio/reference/associated_allocator/decltype/overload2.html new file mode 100644 index 0000000..2dd9220 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_allocator/decltype/overload2.html @@ -0,0 +1,44 @@ + + + +associated_allocator::decltype (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ If T has a nested type + allocator_type, returns + t.get_allocator(). + Otherwise returns a. +

+
static static decltype(
+    auto ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_allocator/noexcept.html b/3party/asio/doc/asio/reference/associated_allocator/noexcept.html new file mode 100644 index 0000000..c0d3d9a --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_allocator/noexcept.html @@ -0,0 +1,39 @@ + + + +associated_allocator::noexcept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
const Allocator &a noexcept;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_allocator/type.html b/3party/asio/doc/asio/reference/associated_allocator/type.html new file mode 100644 index 0000000..602c011 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_allocator/type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_.html b/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_.html new file mode 100644 index 0000000..9eb255c --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_.html @@ -0,0 +1,127 @@ + + + +associated_allocator< reference_wrapper< T >, Allocator > + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Specialisation of associated_allocator for std::reference_wrapper. +

+
template<
+    typename T,
+    typename Allocator>
+struct associated_allocator< reference_wrapper< T >, Allocator >
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ Forwards type to the associator specialisation for the unwrapped + type T. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ get [static] +

+
+

+ Forwards the request to get the allocator to the associator specialisation + for the unwrapped type T. +

+
+
+ + Requirements +
+

+ Header: asio/associated_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get.html b/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get.html new file mode 100644 index 0000000..71f0f6e --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get.html @@ -0,0 +1,50 @@ + + + +associated_allocator< reference_wrapper< T >, Allocator >::get + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Forwards the request to get + the allocator to the associator specialisation for the unwrapped type + T. +

+
static type get(
+    reference_wrapper< T > t);
+  » more...
+
+static auto get(
+    reference_wrapper< T > t,
+    const Allocator & a);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload1.html b/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload1.html new file mode 100644 index 0000000..9bb3363 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload1.html @@ -0,0 +1,42 @@ + + + +associated_allocator< reference_wrapper< T >, Allocator >::get (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Forwards the request to get the allocator to the associator specialisation + for the unwrapped type T. +

+
static type get(
+    reference_wrapper< T > t);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload2.html b/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload2.html new file mode 100644 index 0000000..44c2ee2 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload2.html @@ -0,0 +1,43 @@ + + + +associated_allocator< reference_wrapper< T >, Allocator >::get (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Forwards the request to get the allocator to the associator specialisation + for the unwrapped type T. +

+
static auto get(
+    reference_wrapper< T > t,
+    const Allocator & a);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/type.html b/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/type.html new file mode 100644 index 0000000..2ef0eb2 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/type.html @@ -0,0 +1,185 @@ + + + +associated_allocator< reference_wrapper< T >, Allocator >::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Forwards type + to the associator specialisation for the unwrapped type T. +

+
typedef associated_allocator< T, Allocator >::type type;
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ If T has a nested type allocator_type, T::allocator_type. Otherwise + Allocator. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ decltype [static] +

+
+

+ If T has a nested type allocator_type, returns t.get_allocator(). + Otherwise returns type().

If T has a nested type + allocator_type, returns t.get_allocator(). Otherwise returns + a. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ noexcept +

+
+
+

+ 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 + or a (possibly const) reference to type. +
  • +
  • + Provide a noexcept static member function named get, + callable as get(t,a) + and with return type type + or a (possibly const) reference to type. +
  • +
+
+ + Requirements +
+

+ Header: asio/associated_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_cancellation_slot.html b/3party/asio/doc/asio/reference/associated_cancellation_slot.html new file mode 100644 index 0000000..31c694c --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_cancellation_slot.html @@ -0,0 +1,188 @@ + + + +associated_cancellation_slot + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Traits type used to obtain the cancellation_slot associated with + an object. +

+
template<
+    typename T,
+    typename CancellationSlot = cancellation_slot>
+struct associated_cancellation_slot
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ If T has a nested type cancellation_slot_type, T::cancellation_slot_type. + Otherwise CancellationSlot. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ decltype [static] +

+
+

+ If T has a nested type cancellation_slot_type, returns t.get_cancellation_slot(). + Otherwise returns type().

If T has a nested type + cancellation_slot_type, returns t.get_cancellation_slot(). Otherwise + returns s. +

+
+
+ + Data Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ noexcept +

+
+
+

+ A program may specialise this traits type if the T + template parameter in the specialisation is a user-defined type. The template + parameter CancellationSlot + shall be a type meeting the CancellationSlot requirements. +

+

+ Specialisations shall meet the following requirements, where t is a const reference to an object of + type T, and s is an object of type CancellationSlot. +

+
    +
  • + Provide a nested typedef type + that identifies a type meeting the CancellationSlot requirements. +
  • +
  • + Provide a noexcept static member function named get, + callable as get(t) + and with return type type + or a (possibly const) reference to type. +
  • +
  • + Provide a noexcept static member function named get, + callable as get(t,s) + and with return type type + or a (possibly const) reference to type. +
  • +
+
+ + Requirements +
+

+ Header: asio/associated_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_cancellation_slot/decltype.html b/3party/asio/doc/asio/reference/associated_cancellation_slot/decltype.html new file mode 100644 index 0000000..b0232d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_cancellation_slot/decltype.html @@ -0,0 +1,53 @@ + + + +associated_cancellation_slot::decltype + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +If + T has a nested type cancellation_slot_type, returns t.get_cancellation_slot(). Otherwise returns type(). +

+
static static decltype(
+    auto ) const;
+  » more...
+
+

+ If T has a nested type + cancellation_slot_type, + returns t.get_cancellation_slot(). + Otherwise returns s. +

+
static static decltype(
+    auto ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_cancellation_slot/decltype/overload1.html b/3party/asio/doc/asio/reference/associated_cancellation_slot/decltype/overload1.html new file mode 100644 index 0000000..5b94abf --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_cancellation_slot/decltype/overload1.html @@ -0,0 +1,44 @@ + + + +associated_cancellation_slot::decltype (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ If T has a nested type + cancellation_slot_type, + returns t.get_cancellation_slot(). + Otherwise returns type(). +

+
static static decltype(
+    auto ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_cancellation_slot/decltype/overload2.html b/3party/asio/doc/asio/reference/associated_cancellation_slot/decltype/overload2.html new file mode 100644 index 0000000..6abc2e4 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_cancellation_slot/decltype/overload2.html @@ -0,0 +1,44 @@ + + + +associated_cancellation_slot::decltype (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ If T has a nested type + cancellation_slot_type, + returns t.get_cancellation_slot(). + Otherwise returns s. +

+
static static decltype(
+    auto ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_cancellation_slot/noexcept.html b/3party/asio/doc/asio/reference/associated_cancellation_slot/noexcept.html new file mode 100644 index 0000000..8f0e2b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_cancellation_slot/noexcept.html @@ -0,0 +1,39 @@ + + + +associated_cancellation_slot::noexcept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
const CancellationSlot &s noexcept;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_cancellation_slot/type.html b/3party/asio/doc/asio/reference/associated_cancellation_slot/type.html new file mode 100644 index 0000000..9d63524 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_cancellation_slot/type.html @@ -0,0 +1,52 @@ + + + +associated_cancellation_slot::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +If + T has a nested type cancellation_slot_type, T::cancellation_slot_type. + Otherwise CancellationSlot. +

+
typedef see_below type;
+
+
+ + Requirements +
+

+ Header: asio/associated_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_.html b/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_.html new file mode 100644 index 0000000..e39419f --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_.html @@ -0,0 +1,128 @@ + + + +associated_cancellation_slot< reference_wrapper< T >, CancellationSlot > + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Specialisation of associated_cancellation_slot for + std::reference_wrapper. +

+
template<
+    typename T,
+    typename CancellationSlot>
+struct associated_cancellation_slot< reference_wrapper< T >, CancellationSlot >
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ Forwards type to the associator specialisation for the unwrapped + type T. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ get [static] +

+
+

+ Forwards the request to get the cancellation slot to the associator + specialisation for the unwrapped type T. +

+
+
+ + Requirements +
+

+ Header: asio/associated_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get.html b/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get.html new file mode 100644 index 0000000..8f216cb --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get.html @@ -0,0 +1,50 @@ + + + +associated_cancellation_slot< reference_wrapper< T >, CancellationSlot >::get + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Forwards the request + to get the cancellation slot to the associator specialisation for the unwrapped + type T. +

+
static type get(
+    reference_wrapper< T > t);
+  » more...
+
+static auto get(
+    reference_wrapper< T > t,
+    const CancellationSlot & s);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload1.html b/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload1.html new file mode 100644 index 0000000..29d3d1d --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload1.html @@ -0,0 +1,42 @@ + + + +associated_cancellation_slot< reference_wrapper< T >, CancellationSlot >::get (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Forwards the request to get the cancellation slot to the associator specialisation + for the unwrapped type T. +

+
static type get(
+    reference_wrapper< T > t);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload2.html b/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload2.html new file mode 100644 index 0000000..df31c5c --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload2.html @@ -0,0 +1,43 @@ + + + +associated_cancellation_slot< reference_wrapper< T >, CancellationSlot >::get (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Forwards the request to get the cancellation slot to the associator specialisation + for the unwrapped type T. +

+
static auto get(
+    reference_wrapper< T > t,
+    const CancellationSlot & s);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/type.html b/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/type.html new file mode 100644 index 0000000..797ed01 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/type.html @@ -0,0 +1,185 @@ + + + +associated_cancellation_slot< reference_wrapper< T >, CancellationSlot >::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Forwards type to the associator specialisation + for the unwrapped type T. +

+
typedef associated_cancellation_slot< T, CancellationSlot >::type type;
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ If T has a nested type cancellation_slot_type, T::cancellation_slot_type. + Otherwise CancellationSlot. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ decltype [static] +

+
+

+ If T has a nested type cancellation_slot_type, returns t.get_cancellation_slot(). + Otherwise returns type().

If T has a nested type + cancellation_slot_type, returns t.get_cancellation_slot(). Otherwise + returns s. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ noexcept +

+
+
+

+ A program may specialise this traits type if the T + template parameter in the specialisation is a user-defined type. The template + parameter CancellationSlot + shall be a type meeting the CancellationSlot requirements. +

+

+ Specialisations shall meet the following requirements, where t is a const reference to an object of + type T, and s is an object of type CancellationSlot. +

+
    +
  • + Provide a nested typedef type + that identifies a type meeting the CancellationSlot requirements. +
  • +
  • + Provide a noexcept static member function named get, + callable as get(t) + and with return type type + or a (possibly const) reference to type. +
  • +
  • + Provide a noexcept static member function named get, + callable as get(t,s) + and with return type type + or a (possibly const) reference to type. +
  • +
+
+ + Requirements +
+

+ Header: asio/associated_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_executor.html b/3party/asio/doc/asio/reference/associated_executor.html new file mode 100644 index 0000000..86ee2e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_executor.html @@ -0,0 +1,187 @@ + + + +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 +

+
+

+ decltype [static] +

+
+

+ If T has a nested type executor_type, returns t.get_executor(). + Otherwise returns type().

If T has a nested type + executor_type, returns t.get_executor(). Otherwise returns ex. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ noexcept +

+
+
+

+ 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 + or a (possibly const) reference to type. +
  • +
  • + Provide a noexcept static member function named get, + callable as get(t,e) + and with return type type + or a (possibly const) reference to type. +
  • +
+
+ + Requirements +
+

+ Header: asio/associated_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_executor/decltype.html b/3party/asio/doc/asio/reference/associated_executor/decltype.html new file mode 100644 index 0000000..b5cf1bf --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_executor/decltype.html @@ -0,0 +1,53 @@ + + + +associated_executor::decltype + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +If + T has a nested type executor_type, returns t.get_executor(). Otherwise returns type(). +

+
static static decltype(
+    auto ) const;
+  » more...
+
+

+ If T has a nested type + executor_type, returns + t.get_executor(). + Otherwise returns ex. +

+
static static decltype(
+    auto ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_executor/decltype/overload1.html b/3party/asio/doc/asio/reference/associated_executor/decltype/overload1.html new file mode 100644 index 0000000..2f4f708 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_executor/decltype/overload1.html @@ -0,0 +1,44 @@ + + + +associated_executor::decltype (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ If T has a nested type + executor_type, returns + t.get_executor(). + Otherwise returns type(). +

+
static static decltype(
+    auto ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_executor/decltype/overload2.html b/3party/asio/doc/asio/reference/associated_executor/decltype/overload2.html new file mode 100644 index 0000000..cf7b57f --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_executor/decltype/overload2.html @@ -0,0 +1,44 @@ + + + +associated_executor::decltype (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ If T has a nested type + executor_type, returns + t.get_executor(). + Otherwise returns ex. +

+
static static decltype(
+    auto ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_executor/noexcept.html b/3party/asio/doc/asio/reference/associated_executor/noexcept.html new file mode 100644 index 0000000..1eb6134 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_executor/noexcept.html @@ -0,0 +1,39 @@ + + + +associated_executor::noexcept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
const Executor &ex noexcept;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_executor/type.html b/3party/asio/doc/asio/reference/associated_executor/type.html new file mode 100644 index 0000000..1665371 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_executor/type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html b/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html new file mode 100644 index 0000000..0bcf366 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html @@ -0,0 +1,127 @@ + + + +associated_executor< reference_wrapper< T >, Executor > + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Specialisation of associated_executor for std::reference_wrapper. +

+
template<
+    typename T,
+    typename Executor>
+struct associated_executor< reference_wrapper< T >, Executor >
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ Forwards type to the associator specialisation for the unwrapped + type T. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ get [static] +

+
+

+ Forwards the request to get the executor to the associator specialisation + for the unwrapped type T. +

+
+
+ + Requirements +
+

+ Header: asio/associated_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html b/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html new file mode 100644 index 0000000..44f5370 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html @@ -0,0 +1,49 @@ + + + +associated_executor< reference_wrapper< T >, Executor >::get + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Forwards the request to get + the executor to the associator specialisation for the unwrapped type T. +

+
static type get(
+    reference_wrapper< T > t);
+  » more...
+
+static auto get(
+    reference_wrapper< T > t,
+    const Executor & ex);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload1.html b/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload1.html new file mode 100644 index 0000000..997a17b --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload1.html @@ -0,0 +1,42 @@ + + + +associated_executor< reference_wrapper< T >, Executor >::get (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Forwards the request to get the executor to the associator specialisation + for the unwrapped type T. +

+
static type get(
+    reference_wrapper< T > t);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload2.html b/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload2.html new file mode 100644 index 0000000..4ed0e03 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload2.html @@ -0,0 +1,43 @@ + + + +associated_executor< reference_wrapper< T >, Executor >::get (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Forwards the request to get the executor to the associator specialisation + for the unwrapped type T. +

+
static auto get(
+    reference_wrapper< T > t,
+    const Executor & ex);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html b/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html new file mode 100644 index 0000000..32321f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html @@ -0,0 +1,184 @@ + + + +associated_executor< reference_wrapper< T >, Executor >::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Forwards type + to the associator specialisation for the unwrapped type T. +

+
typedef associated_executor< T, Executor >::type type;
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ If T has a nested type executor_type, T::executor_type. Otherwise + Executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ decltype [static] +

+
+

+ If T has a nested type executor_type, returns t.get_executor(). + Otherwise returns type().

If T has a nested type + executor_type, returns t.get_executor(). Otherwise returns ex. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ noexcept +

+
+
+

+ 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 + or a (possibly const) reference to type. +
  • +
  • + Provide a noexcept static member function named get, + callable as get(t,e) + and with return type type + or a (possibly const) reference to type. +
  • +
+
+ + Requirements +
+

+ Header: asio/associated_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_immediate_executor.html b/3party/asio/doc/asio/reference/associated_immediate_executor.html new file mode 100644 index 0000000..ab6915d --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_immediate_executor.html @@ -0,0 +1,185 @@ + + + +associated_immediate_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Traits type used to obtain the immediate executor associated with an object. +

+
template<
+    typename T,
+    typename Executor>
+struct associated_immediate_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ If T has a nested type immediate_executor_type,. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ decltype [static] +

+
+

+ If T has a nested type immediate_executor_type, returns t.get_immediate_executor(). + Otherwise returns asio::require(ex, asio::execution::blocking.never). +

+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ noexcept +

+
+
+

+ 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 + or a (possibly const) reference to type. +
  • +
  • + Provide a noexcept static member function named get, + callable as get(t,e) + and with return type type + or a (possibly const) reference to type. +
  • +
+
+ + Requirements +
+

+ Header: asio/associated_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_immediate_executor/decltype.html b/3party/asio/doc/asio/reference/associated_immediate_executor/decltype.html new file mode 100644 index 0000000..df42bdb --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_immediate_executor/decltype.html @@ -0,0 +1,43 @@ + + + +associated_immediate_executor::decltype + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +If + T has a nested type immediate_executor_type, returns t.get_immediate_executor(). Otherwise returns asio::require(ex, + asio::execution::blocking.never). +

+
static static decltype(
+    auto ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_immediate_executor/noexcept.html b/3party/asio/doc/asio/reference/associated_immediate_executor/noexcept.html new file mode 100644 index 0000000..c4a7e82 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_immediate_executor/noexcept.html @@ -0,0 +1,39 @@ + + + +associated_immediate_executor::noexcept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
const Executor &ex noexcept;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_immediate_executor/type.html b/3party/asio/doc/asio/reference/associated_immediate_executor/type.html new file mode 100644 index 0000000..c53e1b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_immediate_executor/type.html @@ -0,0 +1,51 @@ + + + +associated_immediate_executor::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +If + T has a nested type immediate_executor_type,. +

+
typedef see_below type;
+
+
+ + Requirements +
+

+ Header: asio/associated_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html b/3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html new file mode 100644 index 0000000..95e8644 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html @@ -0,0 +1,128 @@ + + + +associated_immediate_executor< reference_wrapper< T >, Executor > + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Specialisation of associated_immediate_executor for + std::reference_wrapper. +

+
template<
+    typename T,
+    typename Executor>
+struct associated_immediate_executor< reference_wrapper< T >, Executor >
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ Forwards type to the associator specialisation for the unwrapped + type T. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ get [static] +

+
+

+ Forwards the request to get the executor to the associator specialisation + for the unwrapped type T. +

+
+
+ + Requirements +
+

+ Header: asio/associated_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html b/3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html new file mode 100644 index 0000000..94fc315 --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html @@ -0,0 +1,44 @@ + + + +associated_immediate_executor< reference_wrapper< T >, Executor >::get + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Forwards the request to get + the executor to the associator specialisation for the unwrapped type T. +

+
static auto get(
+    reference_wrapper< T > t,
+    const Executor & ex);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html b/3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html new file mode 100644 index 0000000..9d625fc --- /dev/null +++ b/3party/asio/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html @@ -0,0 +1,182 @@ + + + +associated_immediate_executor< reference_wrapper< T >, Executor >::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Forwards type + to the associator specialisation for the unwrapped type T. +

+
typedef associated_immediate_executor< T, Executor >::type type;
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ If T has a nested type immediate_executor_type,. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ decltype [static] +

+
+

+ If T has a nested type immediate_executor_type, returns t.get_immediate_executor(). + Otherwise returns asio::require(ex, asio::execution::blocking.never). +

+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ noexcept +

+
+
+

+ 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 + or a (possibly const) reference to type. +
  • +
  • + Provide a noexcept static member function named get, + callable as get(t,e) + and with return type type + or a (possibly const) reference to type. +
  • +
+
+ + Requirements +
+

+ Header: asio/associated_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/associator.html b/3party/asio/doc/asio/reference/associator.html new file mode 100644 index 0000000..cb2642a --- /dev/null +++ b/3party/asio/doc/asio/reference/associator.html @@ -0,0 +1,56 @@ + + + +associator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Used to generically specialise associators for a type. +

+
template<
+    template< typename, typename > class Associator,
+    typename T,
+    typename DefaultCandidate>
+struct associator
+
+
+ + Requirements +
+

+ Header: asio/associator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_completion.html b/3party/asio/doc/asio/reference/async_completion.html new file mode 100644 index 0000000..1bba5d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_completion.html @@ -0,0 +1,174 @@ + + + +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... Signatures>
+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] +

+
+

+ 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/3party/asio/doc/asio/reference/async_completion/async_completion.html b/3party/asio/doc/asio/reference/async_completion/async_completion.html new file mode 100644 index 0000000..4a43788 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_completion/async_completion.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/async_completion/completion_handler.html b/3party/asio/doc/asio/reference/async_completion/completion_handler.html new file mode 100644 index 0000000..e65ec47 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_completion/completion_handler.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/async_completion/completion_handler_type.html b/3party/asio/doc/asio/reference/async_completion/completion_handler_type.html new file mode 100644 index 0000000..4bb738d --- /dev/null +++ b/3party/asio/doc/asio/reference/async_completion/completion_handler_type.html @@ -0,0 +1,186 @@ + + + +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, Signatures... >::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 [constructor] +

+
+

+ Construct an async result from a given handler. +

+
+

+ get +

+
+

+ Obtain the value to be returned from the initiating function. +

+
+

+ initiate [static] +

+
+

+ Initiate the asynchronous operation that will produce the result, + and 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/3party/asio/doc/asio/reference/async_completion/result.html b/3party/asio/doc/asio/reference/async_completion/result.html new file mode 100644 index 0000000..bf5b34f --- /dev/null +++ b/3party/asio/doc/asio/reference/async_completion/result.html @@ -0,0 +1,41 @@ + + + +async_completion::result + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The result + of the asynchronous operation's initiating function. +

+
async_result< typename decay< CompletionToken >::type, Signatures... > result;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_compose.html b/3party/asio/doc/asio/reference/async_compose.html new file mode 100644 index 0000000..94ea7bb --- /dev/null +++ b/3party/asio/doc/asio/reference/async_compose.html @@ -0,0 +1,150 @@ + + + +async_compose + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Launch an asynchronous operation with a stateful implementation. +

+
template<
+    typename CompletionToken,
+    typename Signature,
+    typename Implementation,
+    typename... IoObjectsOrExecutors>
+DEDUCED async_compose(
+    Implementation && implementation,
+    CompletionToken & token,
+    IoObjectsOrExecutors &&... io_objects_or_executors);
+
+

+ The async_compose function simplifies the implementation of composed asynchronous + operations automatically wrapping a stateful function object with a conforming + intermediate completion handler. +

+
+ + Parameters +
+
+

+
+
implementation
+

+ A function object that contains the implementation of the composed + asynchronous operation. The first argument to the function object is + a non-const reference to the enclosing intermediate completion handler. + The remaining arguments are any arguments that originate from the completion + handlers of any asynchronous operations performed by the implementation. +

+
token
+

+ The completion token. +

+
io_objects_or_executors
+

+ Zero or more I/O objects or I/O executors for which outstanding work + must be maintained. +

+
+
+
+ + Example: +
+
struct async_echo_implementation
+{
+  tcp::socket& socket_;
+  asio::mutable_buffer buffer_;
+  enum { starting, reading, writing } state_;
+
+  template <typename Self>
+  void operator()(Self& self,
+      asio::error_code error = {},
+      std::size_t n = 0)
+  {
+    switch (state_)
+    {
+    case starting:
+      state_ = reading;
+      socket_.async_read_some(
+          buffer_, std::move(self));
+      break;
+    case reading:
+      if (error)
+      {
+        self.complete(error, 0);
+      }
+      else
+      {
+        state_ = writing;
+        asio::async_write(socket_, buffer_,
+            asio::transfer_exactly(n),
+            std::move(self));
+      }
+      break;
+    case writing:
+      self.complete(error, n);
+      break;
+    }
+  }
+};
+
+template <typename CompletionToken>
+auto async_echo(tcp::socket& socket,
+    asio::mutable_buffer buffer,
+    CompletionToken&& token) ->
+  decltype(
+    asio::async_compose<CompletionToken,
+      void(asio::error_code, std::size_t)>(
+        std::declval<async_echo_implementation>(),
+        token, socket))
+{
+  return asio::async_compose<CompletionToken,
+    void(asio::error_code, std::size_t)>(
+      async_echo_implementation{socket, buffer,
+        async_echo_implementation::starting},
+      token, socket);
+}
+
+
+ + Requirements +
+

+ Header: asio/compose.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_connect.html b/3party/asio/doc/asio/reference/async_connect.html new file mode 100644 index 0000000..5b2527c --- /dev/null +++ b/3party/asio/doc/asio/reference/async_connect.html @@ -0,0 +1,150 @@ + + + +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 Executor,
+    typename EndpointSequence,
+    typename RangeConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    RangeConnectToken && token = DEFAULT,
+    typename constraint< 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 Executor,
+    typename Iterator,
+    typename IteratorConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    IteratorConnectToken && token = DEFAULT,
+    typename constraint<!is_endpoint_sequence< Iterator >::value >::type  = 0);
+  » more...
+
+

+ Asynchronously establishes a socket connection by trying each endpoint in + a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator,
+    typename IteratorConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    Iterator end,
+    IteratorConnectToken && token = DEFAULT);
+  » more...
+
+template<
+    typename Protocol,
+    typename Executor,
+    typename EndpointSequence,
+    typename ConnectCondition,
+    typename RangeConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    ConnectCondition connect_condition,
+    RangeConnectToken && token = DEFAULT,
+    typename constraint< 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 Executor,
+    typename Iterator,
+    typename ConnectCondition,
+    typename IteratorConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    ConnectCondition connect_condition,
+    IteratorConnectToken && token = DEFAULT,
+    typename constraint<!is_endpoint_sequence< Iterator >::value >::type  = 0);
+  » more...
+
+

+ Asynchronously establishes a socket connection by trying each endpoint in + a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator,
+    typename ConnectCondition,
+    typename IteratorConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    Iterator end,
+    ConnectCondition connect_condition,
+    IteratorConnectToken && token = DEFAULT);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/connect.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_connect/overload1.html b/3party/asio/doc/asio/reference/async_connect/overload1.html new file mode 100644 index 0000000..0b554d7 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_connect/overload1.html @@ -0,0 +1,166 @@ + + + +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 Executor,
+    typename EndpointSequence,
+    typename RangeConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    RangeConnectToken && token = DEFAULT,
+    typename constraint< 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. It is an initiating function for an asynchronous operation, + and always returns immediately. +

+
+ + Parameters +
+
+

+
+
s
+

+ The socket to be connected. If the socket is already open, it will + be closed. +

+
endpoints
+

+ A sequence of endpoints. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the connect completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, typename Protocol::endpoint)
+
+
+ + Example +
+
tcp::resolver r(my_context);
+tcp::resolver::query q("host", "service");
+tcp::socket s(my_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)
+{
+  // ...
+}
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the socket's async_connect + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_connect/overload2.html b/3party/asio/doc/asio/reference/async_connect/overload2.html new file mode 100644 index 0000000..d08995c --- /dev/null +++ b/3party/asio/doc/asio/reference/async_connect/overload2.html @@ -0,0 +1,141 @@ + + + +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 Executor,
+    typename Iterator,
+    typename IteratorConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    IteratorConnectToken && token = DEFAULT,
+    typename constraint<!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. It is an initiating function for an asynchronous operation, + and always returns immediately. +

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

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the connect completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the socket's async_connect + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_connect/overload3.html b/3party/asio/doc/asio/reference/async_connect/overload3.html new file mode 100644 index 0000000..ca6e5e1 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_connect/overload3.html @@ -0,0 +1,156 @@ + + + +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 Executor,
+    typename Iterator,
+    typename IteratorConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    Iterator end,
+    IteratorConnectToken && token = DEFAULT);
+
+

+ 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. It is an initiating function for an asynchronous operation, + and always returns immediately. +

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

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the connect completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, Iterator)
+
+
+ + Example +
+
std::vector<tcp::endpoint> endpoints = ...;
+tcp::socket s(my_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)
+{
+  // ...
+}
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the socket's async_connect + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_connect/overload4.html b/3party/asio/doc/asio/reference/async_connect/overload4.html new file mode 100644 index 0000000..0e9adbd --- /dev/null +++ b/3party/asio/doc/asio/reference/async_connect/overload4.html @@ -0,0 +1,217 @@ + + + +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 Executor,
+    typename EndpointSequence,
+    typename ConnectCondition,
+    typename RangeConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    ConnectCondition connect_condition,
+    RangeConnectToken && token = DEFAULT,
+    typename constraint< 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. It is an initiating function for an asynchronous operation, + and always returns immediately. +

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

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the connect completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, typename Protocol::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(my_context);
+tcp::resolver::query q("host", "service");
+tcp::socket s(my_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;
+  }
+}
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the socket's async_connect + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_connect/overload5.html b/3party/asio/doc/asio/reference/async_connect/overload5.html new file mode 100644 index 0000000..e581ab7 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_connect/overload5.html @@ -0,0 +1,163 @@ + + + +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 Executor,
+    typename Iterator,
+    typename ConnectCondition,
+    typename IteratorConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    ConnectCondition connect_condition,
+    IteratorConnectToken && token = DEFAULT,
+    typename constraint<!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. It is an initiating function for an asynchronous operation, + and always returns immediately. +

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

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the connect completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the socket's async_connect + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_connect/overload6.html b/3party/asio/doc/asio/reference/async_connect/overload6.html new file mode 100644 index 0000000..63dde7f --- /dev/null +++ b/3party/asio/doc/asio/reference/async_connect/overload6.html @@ -0,0 +1,222 @@ + + + +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 Executor,
+    typename Iterator,
+    typename ConnectCondition,
+    typename IteratorConnectToken = DEFAULT>
+DEDUCED async_connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    Iterator end,
+    ConnectCondition connect_condition,
+    IteratorConnectToken && token = DEFAULT);
+
+

+ 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. It is an initiating function for an asynchronous operation, + and always returns immediately. +

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

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the connect completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, 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(my_context);
+tcp::resolver::query q("host", "service");
+tcp::socket s(my_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;
+  }
+}
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the socket's async_connect + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_initiate.html b/3party/asio/doc/asio/reference/async_initiate.html new file mode 100644 index 0000000..397e28f --- /dev/null +++ b/3party/asio/doc/asio/reference/async_initiate.html @@ -0,0 +1,57 @@ + + + +async_initiate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename CompletionToken,
+    completion_signature... Signatures,
+    typename Initiation,
+    typename... Args>
+DEDUCED async_initiate(
+    Initiation && initiation,
+    CompletionToken & ,
+    Args &&... args);
+
+
+ + Requirements +
+

+ Header: asio/async_result.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read.html b/3party/asio/doc/asio/reference/async_read.html new file mode 100644 index 0000000..66dae5d --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read.html @@ -0,0 +1,151 @@ + + + +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 ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type  = 0);
+  » more...
+
+template<
+    typename AsyncReadStream,
+    typename MutableBufferSequence,
+    typename CompletionCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    const MutableBufferSequence & buffers,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type  = 0);
+  » more...
+
+template<
+    typename AsyncReadStream,
+    typename DynamicBuffer_v1,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename AsyncReadStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename AsyncReadStream,
+    typename Allocator,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    basic_streambuf< Allocator > & b,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename AsyncReadStream,
+    typename Allocator,
+    typename CompletionCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    basic_streambuf< Allocator > & b,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename AsyncReadStream,
+    typename DynamicBuffer_v2,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename AsyncReadStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/read.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read/overload1.html b/3party/asio/doc/asio/reference/async_read/overload1.html new file mode 100644 index 0000000..235b124 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read/overload1.html @@ -0,0 +1,178 @@ + + + +async_read (1 of 8 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 ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT,
+    typename constraint< 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. It is an initiating function for an asynchronous + operation, and 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 completion + handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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);
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read/overload2.html b/3party/asio/doc/asio/reference/async_read/overload2.html new file mode 100644 index 0000000..f03027a --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read/overload2.html @@ -0,0 +1,184 @@ + + + +async_read (2 of 8 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 ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    const MutableBufferSequence & buffers,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< 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. It is an initiating function for an asynchronous + operation, and 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 completion + 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read/overload3.html b/3party/asio/doc/asio/reference/async_read/overload3.html new file mode 100644 index 0000000..901a1bd --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read/overload3.html @@ -0,0 +1,163 @@ + + + +async_read (3 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous operation to read a certain amount of data from a + stream. +

+
template<
+    typename AsyncReadStream,
+    typename DynamicBuffer_v1,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ This function is used to asynchronously read a certain number of bytes + of data from a stream. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Remarks +
+

+ This overload is equivalent to calling: +

+
asio::async_read(
+    s, buffers,
+    asio::transfer_all(),
+    handler);
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read/overload4.html b/3party/asio/doc/asio/reference/async_read/overload4.html new file mode 100644 index 0000000..cc28c46 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read/overload4.html @@ -0,0 +1,173 @@ + + + +async_read (4 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous operation to read a certain amount of data from a + stream. +

+
template<
+    typename AsyncReadStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ This function is used to asynchronously read a certain number of bytes + of data from a stream. It is an initiating function for an asynchronous + operation, and 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 completion 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read/overload5.html b/3party/asio/doc/asio/reference/async_read/overload5.html new file mode 100644 index 0000000..5068652 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read/overload5.html @@ -0,0 +1,160 @@ + + + +async_read (5 of 8 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 ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    basic_streambuf< Allocator > & b,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read a certain number of bytes + of data from a stream. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Remarks +
+

+ This overload is equivalent to calling: +

+
asio::async_read(
+    s, b,
+    asio::transfer_all(),
+    handler);
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read/overload6.html b/3party/asio/doc/asio/reference/async_read/overload6.html new file mode 100644 index 0000000..2da2887 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read/overload6.html @@ -0,0 +1,170 @@ + + + +async_read (6 of 8 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 ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    basic_streambuf< Allocator > & b,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read a certain number of bytes + of data from a stream. It is an initiating function for an asynchronous + operation, and 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 completion 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read/overload7.html b/3party/asio/doc/asio/reference/async_read/overload7.html new file mode 100644 index 0000000..135ff1a --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read/overload7.html @@ -0,0 +1,162 @@ + + + +async_read (7 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous operation to read a certain amount of data from a + stream. +

+
template<
+    typename AsyncReadStream,
+    typename DynamicBuffer_v2,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ This function is used to asynchronously read a certain number of bytes + of data from a stream. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Remarks +
+

+ This overload is equivalent to calling: +

+
asio::async_read(
+    s, buffers,
+    asio::transfer_all(),
+    handler);
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read/overload8.html b/3party/asio/doc/asio/reference/async_read/overload8.html new file mode 100644 index 0000000..360e7dd --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read/overload8.html @@ -0,0 +1,172 @@ + + + +async_read (8 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous operation to read a certain amount of data from a + stream. +

+
template<
+    typename AsyncReadStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ This function is used to asynchronously read a certain number of bytes + of data from a stream. It is an initiating function for an asynchronous + operation, and 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 completion 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_at.html b/3party/asio/doc/asio/reference/async_read_at.html new file mode 100644 index 0000000..136ea9e --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_at.html @@ -0,0 +1,104 @@ + + + +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 ReadToken = DEFAULT>
+DEDUCED async_read_at(
+    AsyncRandomAccessReadDevice & d,
+    uint64_t offset,
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename AsyncRandomAccessReadDevice,
+    typename MutableBufferSequence,
+    typename CompletionCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_at(
+    AsyncRandomAccessReadDevice & d,
+    uint64_t offset,
+    const MutableBufferSequence & buffers,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename AsyncRandomAccessReadDevice,
+    typename Allocator,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_at(
+    AsyncRandomAccessReadDevice & d,
+    uint64_t offset,
+    basic_streambuf< Allocator > & b,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename AsyncRandomAccessReadDevice,
+    typename Allocator,
+    typename CompletionCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_at(
+    AsyncRandomAccessReadDevice & d,
+    uint64_t offset,
+    basic_streambuf< Allocator > & b,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/read_at.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_at/overload1.html b/3party/asio/doc/asio/reference/async_read_at/overload1.html new file mode 100644 index 0000000..cecfb3c --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_at/overload1.html @@ -0,0 +1,179 @@ + + + +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 ReadToken = DEFAULT>
+DEDUCED async_read_at(
+    AsyncRandomAccessReadDevice & d,
+    uint64_t offset,
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read a certain number of bytes + of data from a random access device at the specified offset. It is an initiating + function for an asynchronous + operation, and 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 completion + handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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);
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncRandomAccessReadDevice + type's async_read_some_at operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_at/overload2.html b/3party/asio/doc/asio/reference/async_read_at/overload2.html new file mode 100644 index 0000000..1ee6d67 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_at/overload2.html @@ -0,0 +1,188 @@ + + + +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 ReadToken = DEFAULT>
+DEDUCED async_read_at(
+    AsyncRandomAccessReadDevice & d,
+    uint64_t offset,
+    const MutableBufferSequence & buffers,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read a certain number of bytes + of data from a random access device at the specified offset. It is an initiating + function for an asynchronous + operation, and 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 completion + 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncRandomAccessReadDevice + type's async_read_some_at operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_at/overload3.html b/3party/asio/doc/asio/reference/async_read_at/overload3.html new file mode 100644 index 0000000..d2745e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_at/overload3.html @@ -0,0 +1,157 @@ + + + +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 ReadToken = DEFAULT>
+DEDUCED async_read_at(
+    AsyncRandomAccessReadDevice & d,
+    uint64_t offset,
+    basic_streambuf< Allocator > & b,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read a certain number of bytes + of data from a random access device at the specified offset. It is an initiating + function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Remarks +
+

+ This overload is equivalent to calling: +

+
asio::async_read_at(
+    d, 42, b,
+    asio::transfer_all(),
+    handler);
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncRandomAccessReadDevice + type's async_read_some_at operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_at/overload4.html b/3party/asio/doc/asio/reference/async_read_at/overload4.html new file mode 100644 index 0000000..6694104 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_at/overload4.html @@ -0,0 +1,167 @@ + + + +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 ReadToken = DEFAULT>
+DEDUCED async_read_at(
+    AsyncRandomAccessReadDevice & d,
+    uint64_t offset,
+    basic_streambuf< Allocator > & b,
+    CompletionCondition completion_condition,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read a certain number of bytes + of data from a random access device at the specified offset. It is an initiating + function for an asynchronous + operation, and 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 completion 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncRandomAccessReadDevice + type's async_read_some_at operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until.html b/3party/asio/doc/asio/reference/async_read_until.html new file mode 100644 index 0000000..4793ab8 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until.html @@ -0,0 +1,239 @@ + + + +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_v1,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    char delim,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename AsyncReadStream,
+    typename DynamicBuffer_v1,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    string_view delim,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » 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_v1,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    const boost::regex & expr,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » 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_v1,
+    typename MatchCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    MatchCondition match_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::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 ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    asio::basic_streambuf< Allocator > & b,
+    char delim,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename AsyncReadStream,
+    typename Allocator,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    asio::basic_streambuf< Allocator > & b,
+    string_view delim,
+    ReadToken && token = DEFAULT);
+  » 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 ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    asio::basic_streambuf< Allocator > & b,
+    const boost::regex & expr,
+    ReadToken && token = DEFAULT);
+  » 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 ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    asio::basic_streambuf< Allocator > & b,
+    MatchCondition match_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0);
+  » more...
+
+

+ Start an asynchronous operation to read data into a dynamic buffer sequence + until it contains a specified delimiter. +

+
template<
+    typename AsyncReadStream,
+    typename DynamicBuffer_v2,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    char delim,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename AsyncReadStream,
+    typename DynamicBuffer_v2,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    string_view delim,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » 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_v2,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    const boost::regex & expr,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » 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_v2,
+    typename MatchCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    MatchCondition match_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/read_until.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload1.html b/3party/asio/doc/asio/reference/async_read_until/overload1.html new file mode 100644 index 0000000..68be9cd --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload1.html @@ -0,0 +1,215 @@ + + + +async_read_until (1 of 12 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_v1,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    char delim,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ 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. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
delim
+

+ The delimiter character. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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.
+  std::size_t bytes_transferred
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload10.html b/3party/asio/doc/asio/reference/async_read_until/overload10.html new file mode 100644 index 0000000..9e701f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload10.html @@ -0,0 +1,214 @@ + + + +async_read_until (10 of 12 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_v2,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    string_view delim,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ 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. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
delim
+

+ The delimiter string. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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.
+  std::size_t bytes_transferred
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload11.html b/3party/asio/doc/asio/reference/async_read_until/overload11.html new file mode 100644 index 0000000..da21517 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload11.html @@ -0,0 +1,218 @@ + + + +async_read_until (11 of 12 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_v2,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    const boost::regex & expr,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ 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. It is an initiating function for + an asynchronous operation, + and 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 completion handler is called. +

+
expr
+

+ The regular expression. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload12.html b/3party/asio/doc/asio/reference/async_read_until/overload12.html new file mode 100644 index 0000000..9a8000e --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload12.html @@ -0,0 +1,264 @@ + + + +async_read_until (12 of 12 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_v2,
+    typename MatchCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    MatchCondition match_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::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. It is an initiating function for an asynchronous + operation, and 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 completion 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_v2::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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using 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. +

+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Remarks +
+

+ 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);
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload2.html b/3party/asio/doc/asio/reference/async_read_until/overload2.html new file mode 100644 index 0000000..93d8772 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload2.html @@ -0,0 +1,215 @@ + + + +async_read_until (2 of 12 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_v1,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    string_view delim,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ 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. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
delim
+

+ The delimiter string. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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.
+  std::size_t bytes_transferred
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload3.html b/3party/asio/doc/asio/reference/async_read_until/overload3.html new file mode 100644 index 0000000..f8849df --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload3.html @@ -0,0 +1,219 @@ + + + +async_read_until (3 of 12 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_v1,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    const boost::regex & expr,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ 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. It is an initiating function for + an asynchronous operation, + and 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 completion handler is called. +

+
expr
+

+ The regular expression. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload4.html b/3party/asio/doc/asio/reference/async_read_until/overload4.html new file mode 100644 index 0000000..072b930 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload4.html @@ -0,0 +1,265 @@ + + + +async_read_until (4 of 12 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_v1,
+    typename MatchCondition,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    MatchCondition match_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::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. It is an initiating function for an asynchronous + operation, and 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 completion 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_v1::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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using 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. +

+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Remarks +
+

+ 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);
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload5.html b/3party/asio/doc/asio/reference/async_read_until/overload5.html new file mode 100644 index 0000000..5406d7a --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload5.html @@ -0,0 +1,210 @@ + + + +async_read_until (5 of 12 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 ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    asio::basic_streambuf< Allocator > & b,
+    char delim,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read data into the specified streambuf + until the streambuf's get area contains the specified delimiter. It is + an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
delim
+

+ The delimiter character. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload6.html b/3party/asio/doc/asio/reference/async_read_until/overload6.html new file mode 100644 index 0000000..959b3d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload6.html @@ -0,0 +1,210 @@ + + + +async_read_until (6 of 12 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 ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    asio::basic_streambuf< Allocator > & b,
+    string_view delim,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read data into the specified streambuf + until the streambuf's get area contains the specified delimiter. It is + an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
delim
+

+ The delimiter string. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload7.html b/3party/asio/doc/asio/reference/async_read_until/overload7.html new file mode 100644 index 0000000..789fd08 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload7.html @@ -0,0 +1,213 @@ + + + +async_read_until (7 of 12 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 ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    asio::basic_streambuf< Allocator > & b,
+    const boost::regex & expr,
+    ReadToken && token = DEFAULT);
+
+

+ 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. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
expr
+

+ The regular expression. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload8.html b/3party/asio/doc/asio/reference/async_read_until/overload8.html new file mode 100644 index 0000000..0b0234a --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload8.html @@ -0,0 +1,259 @@ + + + +async_read_until (8 of 12 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 ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    asio::basic_streambuf< Allocator > & b,
+    MatchCondition match_condition,
+    ReadToken && token = DEFAULT,
+    typename constraint< 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. It is an + initiating function for an asynchronous + operation, and 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using 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. +

+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Remarks +
+

+ 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);
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_read_until/overload9.html b/3party/asio/doc/asio/reference/async_read_until/overload9.html new file mode 100644 index 0000000..6f1a9be --- /dev/null +++ b/3party/asio/doc/asio/reference/async_read_until/overload9.html @@ -0,0 +1,215 @@ + + + +async_read_until (9 of 12 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_v2,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_until(
+    AsyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    char delim,
+    ReadToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ 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. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
delim
+

+ The delimiter character. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncReadStream + type's async_read_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_result.html b/3party/asio/doc/asio/reference/async_result.html new file mode 100644 index 0000000..c104330 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result.html @@ -0,0 +1,189 @@ + + + +async_result + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ An interface for customising the behaviour of an initiating function. +

+
template<
+    typename CompletionToken,
+    typename... Signatures>
+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 [constructor] +

+
+

+ Construct an async result from a given handler. +

+
+

+ get +

+
+

+ Obtain the value to be returned from the initiating function. +

+
+

+ initiate [static] +

+
+

+ Initiate the asynchronous operation that will produce the result, + and 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/3party/asio/doc/asio/reference/async_result/async_result.html b/3party/asio/doc/asio/reference/async_result/async_result.html new file mode 100644 index 0000000..4903fb2 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result/async_result.html @@ -0,0 +1,47 @@ + + + +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/3party/asio/doc/asio/reference/async_result/completion_handler_type.html b/3party/asio/doc/asio/reference/async_result/completion_handler_type.html new file mode 100644 index 0000000..06e119b --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result/completion_handler_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/async_result/get.html b/3party/asio/doc/asio/reference/async_result/get.html new file mode 100644 index 0000000..6139bf0 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result/get.html @@ -0,0 +1,41 @@ + + + +async_result::get + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain the value to be returned + from the initiating function. +

+
return_type get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_result/initiate.html b/3party/asio/doc/asio/reference/async_result/initiate.html new file mode 100644 index 0000000..b7a3c02 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result/initiate.html @@ -0,0 +1,49 @@ + + + +async_result::initiate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Initiate the asynchronous + operation that will produce the result, and obtain the value to be returned + from the initiating function. +

+
template<
+    typename Initiation,
+    typename RawCompletionToken,
+    typename... Args>
+static return_type initiate(
+    Initiation && initiation,
+    RawCompletionToken && token,
+    Args &&... args);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_result/return_type.html b/3party/asio/doc/asio/reference/async_result/return_type.html new file mode 100644 index 0000000..b0d7d07 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result/return_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_.html b/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_.html new file mode 100644 index 0000000..6c9aeee --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_.html @@ -0,0 +1,127 @@ + + + +async_result< basic_yield_context< Executor >, Signature > + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename Executor,
+    typename Signature>
+class async_result< basic_yield_context< Executor >, Signature >
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ handler_type +

+
+
+

+ return_type +

+
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ initiate [static] +

+
+
+
+ + Requirements +
+

+ Header: asio/impl/spawn.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/handler_type.html b/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/handler_type.html new file mode 100644 index 0000000..5e10f94 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/handler_type.html @@ -0,0 +1,50 @@ + + + +async_result< basic_yield_context< Executor >, Signature >::handler_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
typedef detail::spawn_handler< Executor, Signature > handler_type;
+
+
+ + Requirements +
+

+ Header: asio/impl/spawn.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/initiate.html b/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/initiate.html new file mode 100644 index 0000000..c9ac262 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/initiate.html @@ -0,0 +1,44 @@ + + + +async_result< basic_yield_context< Executor >, Signature >::initiate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename Initiation>
+static return_type initiate(
+    Initiation init,
+    const basic_yield_context< Executor > & yield);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/return_type.html b/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/return_type.html new file mode 100644 index 0000000..e1e8698 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/return_type.html @@ -0,0 +1,50 @@ + + + +async_result< basic_yield_context< Executor >, Signature >::return_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
typedef handler_type::return_type return_type;
+
+
+ + Requirements +
+

+ Header: asio/impl/spawn.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html b/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html new file mode 100644 index 0000000..04c8f4d --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html @@ -0,0 +1,156 @@ + + + +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/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html b/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html new file mode 100644 index 0000000..069c371 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html @@ -0,0 +1,43 @@ + + + +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/3party/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/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html new file mode 100644 index 0000000..5f3f584 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html b/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html new file mode 100644 index 0000000..1d7c4ce --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html b/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html new file mode 100644 index 0000000..5a5446a --- /dev/null +++ b/3party/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/async_write.html b/3party/asio/doc/asio/reference/async_write.html new file mode 100644 index 0000000..14b9446 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write.html @@ -0,0 +1,172 @@ + + + +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 WriteToken = DEFAULT>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT,
+    typename constraint< 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 WriteToken>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    const ConstBufferSequence & buffers,
+    CompletionCondition completion_condition,
+    WriteToken && token,
+    typename constraint< 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_v1,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    WriteToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+

+ Start an asynchronous operation to write a certain amount of data to a stream. +

+
template<
+    typename AsyncWriteStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition,
+    typename WriteToken>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    WriteToken && token,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::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 WriteToken = DEFAULT>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    basic_streambuf< Allocator > & b,
+    WriteToken && token = DEFAULT);
+  » more...
+
+

+ Start an asynchronous operation to write a certain amount of data to a stream. +

+
template<
+    typename AsyncWriteStream,
+    typename Allocator,
+    typename CompletionCondition,
+    typename WriteToken>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    basic_streambuf< Allocator > & b,
+    CompletionCondition completion_condition,
+    WriteToken && token);
+  » more...
+
+

+ Start an asynchronous operation to write all of the supplied data to a stream. +

+
template<
+    typename AsyncWriteStream,
+    typename DynamicBuffer_v2,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    WriteToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+

+ Start an asynchronous operation to write a certain amount of data to a stream. +

+
template<
+    typename AsyncWriteStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition,
+    typename WriteToken>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    WriteToken && token,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/write.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write/overload1.html b/3party/asio/doc/asio/reference/async_write/overload1.html new file mode 100644 index 0000000..a8b84b6 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write/overload1.html @@ -0,0 +1,163 @@ + + + +async_write (1 of 8 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 WriteToken = DEFAULT>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT,
+    typename constraint< 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. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncWriteStream + type's async_write_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write/overload2.html b/3party/asio/doc/asio/reference/async_write/overload2.html new file mode 100644 index 0000000..433b1da --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write/overload2.html @@ -0,0 +1,188 @@ + + + +async_write (2 of 8 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 WriteToken>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    const ConstBufferSequence & buffers,
+    CompletionCondition completion_condition,
+    WriteToken && token,
+    typename constraint< 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. It is an initiating function for an asynchronous + operation, and 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 completion 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncWriteStream + type's async_write_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write/overload3.html b/3party/asio/doc/asio/reference/async_write/overload3.html new file mode 100644 index 0000000..277748f --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write/overload3.html @@ -0,0 +1,150 @@ + + + +async_write (3 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous operation to write all of the supplied data to a + stream. +

+
template<
+    typename AsyncWriteStream,
+    typename DynamicBuffer_v1,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    WriteToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ This function is used to asynchronously write a certain number of bytes + of data to a stream. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. Successfully + written data is automatically consumed from the buffers. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncWriteStream + type's async_write_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write/overload4.html b/3party/asio/doc/asio/reference/async_write/overload4.html new file mode 100644 index 0000000..ed77982 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write/overload4.html @@ -0,0 +1,172 @@ + + + +async_write (4 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous operation to write a certain amount of data to a + stream. +

+
template<
+    typename AsyncWriteStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition,
+    typename WriteToken>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    WriteToken && token,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ This function is used to asynchronously write a certain number of bytes + of data to a stream. It is an initiating function for an asynchronous + operation, and 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 completion 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncWriteStream + type's async_write_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write/overload5.html b/3party/asio/doc/asio/reference/async_write/overload5.html new file mode 100644 index 0000000..c534194 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write/overload5.html @@ -0,0 +1,147 @@ + + + +async_write (5 of 8 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 WriteToken = DEFAULT>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    basic_streambuf< Allocator > & b,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write a certain number of bytes + of data to a stream. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncWriteStream + type's async_write_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write/overload6.html b/3party/asio/doc/asio/reference/async_write/overload6.html new file mode 100644 index 0000000..7314e0d --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write/overload6.html @@ -0,0 +1,169 @@ + + + +async_write (6 of 8 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 WriteToken>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    basic_streambuf< Allocator > & b,
+    CompletionCondition completion_condition,
+    WriteToken && token);
+
+

+ This function is used to asynchronously write a certain number of bytes + of data to a stream. It is an initiating function for an asynchronous + operation, and 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 completion 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncWriteStream + type's async_write_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write/overload7.html b/3party/asio/doc/asio/reference/async_write/overload7.html new file mode 100644 index 0000000..b9f891c --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write/overload7.html @@ -0,0 +1,149 @@ + + + +async_write (7 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous operation to write all of the supplied data to a + stream. +

+
template<
+    typename AsyncWriteStream,
+    typename DynamicBuffer_v2,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    WriteToken && token = DEFAULT,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ This function is used to asynchronously write a certain number of bytes + of data to a stream. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. Successfully + written data is automatically consumed from the buffers. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncWriteStream + type's async_write_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write/overload8.html b/3party/asio/doc/asio/reference/async_write/overload8.html new file mode 100644 index 0000000..bb5e090 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write/overload8.html @@ -0,0 +1,171 @@ + + + +async_write (8 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous operation to write a certain amount of data to a + stream. +

+
template<
+    typename AsyncWriteStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition,
+    typename WriteToken>
+DEDUCED async_write(
+    AsyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    WriteToken && token,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ This function is used to asynchronously write a certain number of bytes + of data to a stream. It is an initiating function for an asynchronous + operation, and 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 completion 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncWriteStream + type's async_write_some + operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write_at.html b/3party/asio/doc/asio/reference/async_write_at.html new file mode 100644 index 0000000..8061d93 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write_at.html @@ -0,0 +1,116 @@ + + + +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 WriteToken = DEFAULT>
+DEDUCED async_write_at(
+    AsyncRandomAccessWriteDevice & d,
+    uint64_t offset,
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+  » more...
+
+

+ Start an asynchronous operation to write a certain amount of data at the + specified offset. +

+
template<
+    typename AsyncRandomAccessWriteDevice,
+    typename ConstBufferSequence,
+    typename CompletionCondition,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_at(
+    AsyncRandomAccessWriteDevice & d,
+    uint64_t offset,
+    const ConstBufferSequence & buffers,
+    CompletionCondition completion_condition,
+    WriteToken && token = DEFAULT);
+  » more...
+
+

+ Start an asynchronous operation to write all of the supplied data at the + specified offset. +

+
template<
+    typename AsyncRandomAccessWriteDevice,
+    typename Allocator,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_at(
+    AsyncRandomAccessWriteDevice & d,
+    uint64_t offset,
+    basic_streambuf< Allocator > & b,
+    WriteToken && token = DEFAULT);
+  » more...
+
+

+ Start an asynchronous operation to write a certain amount of data at the + specified offset. +

+
template<
+    typename AsyncRandomAccessWriteDevice,
+    typename Allocator,
+    typename CompletionCondition,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_at(
+    AsyncRandomAccessWriteDevice & d,
+    uint64_t offset,
+    basic_streambuf< Allocator > & b,
+    CompletionCondition completion_condition,
+    WriteToken && token = DEFAULT);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/write_at.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write_at/overload1.html b/3party/asio/doc/asio/reference/async_write_at/overload1.html new file mode 100644 index 0000000..cd49b81 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write_at/overload1.html @@ -0,0 +1,169 @@ + + + +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 WriteToken = DEFAULT>
+DEDUCED async_write_at(
+    AsyncRandomAccessWriteDevice & d,
+    uint64_t offset,
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write a certain number of bytes + of data to a random access device at a specified offset. It is an initiating + function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncRandomAccessWriteDevice + type's async_write_some_at operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write_at/overload2.html b/3party/asio/doc/asio/reference/async_write_at/overload2.html new file mode 100644 index 0000000..03ec01f --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write_at/overload2.html @@ -0,0 +1,194 @@ + + + +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 WriteToken = DEFAULT>
+DEDUCED async_write_at(
+    AsyncRandomAccessWriteDevice & d,
+    uint64_t offset,
+    const ConstBufferSequence & buffers,
+    CompletionCondition completion_condition,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write a certain number of bytes + of data to a random access device at a specified offset. It is an initiating + function for an asynchronous + operation, and 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 completion 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncRandomAccessWriteDevice + type's async_write_some_at operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write_at/overload3.html b/3party/asio/doc/asio/reference/async_write_at/overload3.html new file mode 100644 index 0000000..54e6379 --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write_at/overload3.html @@ -0,0 +1,154 @@ + + + +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 WriteToken = DEFAULT>
+DEDUCED async_write_at(
+    AsyncRandomAccessWriteDevice & d,
+    uint64_t offset,
+    basic_streambuf< Allocator > & b,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write a certain number of bytes + of data to a random access device at a specified offset. It is an initiating + function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncRandomAccessWriteDevice + type's async_write_some_at operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/async_write_at/overload4.html b/3party/asio/doc/asio/reference/async_write_at/overload4.html new file mode 100644 index 0000000..c23ee3e --- /dev/null +++ b/3party/asio/doc/asio/reference/async_write_at/overload4.html @@ -0,0 +1,176 @@ + + + +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 WriteToken = DEFAULT>
+DEDUCED async_write_at(
+    AsyncRandomAccessWriteDevice & d,
+    uint64_t offset,
+    basic_streambuf< Allocator > & b,
+    CompletionCondition completion_condition,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write a certain number of bytes + of data to a random access device at a specified offset. It is an initiating + function for an asynchronous + operation, and 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 completion 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. +

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the AsyncRandomAccessWriteDevice + type's async_write_some_at operation. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/asynchronous_operations.html b/3party/asio/doc/asio/reference/asynchronous_operations.html new file mode 100644 index 0000000..25d7e00 --- /dev/null +++ b/3party/asio/doc/asio/reference/asynchronous_operations.html @@ -0,0 +1,601 @@ + + + +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, Signatures, + token, initiation, + Initiation, Ti, + ti, 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 one or more completion signatures, referred + to below as a variadic pack of call signatures (C++Std [func.def]) Signatures, that determine the possible + argument sets to the completion handler. +

+

+ In this library, initiating functions specify a Completion signature + element that defines the call signatures Signatures. + The Completion signature elements in this library may + have named parameters, and the results of an asynchronous operation may be + specified in terms of these names. +

+

+ Completion token behaviour is determined through specialisation of the async_result trait. These specialisations + must have the form: +

+
template <class CompletionToken, class... Signatures>
+struct async_result
+{
+  template<
+      class Initiation,
+      class RawCompletionToken,
+      class... Args
+    >
+  static initiating-fn-return-type initiate(
+      Initiation&& initiation,
+      RawCompletionToken&& token,
+      Args&&... args
+    );
+};
+
+

+ An async_result specialisation’s + implementation of the initiate() static member function must: +

+
    +
  • + Transform the completion token into an object completion_handler + of type CompletionHandler. + The type CompletionHandler + must satisfy the requirements of Destructible + (C++Std [destructible]) and MoveConstructible + (C++Std [moveconstructible]), and be callable with the specified call + signatures. +
  • +
  • +

    + Cause the invocation of the function object initiation + as if by calling: +

    +
    std::forward<Initiation>(initiation)(
    +    std::move(completion_handler),
    +    std::forward<Args>(args)...);
    +
    +
  • +
+

+ This invocation of initiation + may be immediate, or it may be deferred (e.g. to support lazy evaluation). + If initiation is deferred, + the initiation and args... + objects must be decay-copied and moved as required. +

+

+ The async_result trait must + be specialised for the decayed type of a CompletionToken. + A helper function template async_initiate + is provided to simplify correct invocation of async_result<>::initiate + for the appropriate specialisation: +

+
template<
+    class CompletionToken,
+    completion_signature... Signatures,
+    class Initiation,
+    class... Args
+  >
+DEDUCED async_initiate(
+    Initiation&& initiation,
+    CompletionToken& token,
+    Args&&... args
+  );
+
+

+ [Note: No other requirements are placed on the type + CompletionToken. —end + note] +

+
+ + Automatic + deduction of initiating function return type +
+

+ An initiating function returns async_initiate<CompletionToken, + Signatures...>(initiation, token, unspecified-args...), + where initiation is a function + object of unspecified type Initiation, + which is defined as: +

+
class Initiation
+{
+public:
+  using executor_type = Executor; // optional
+  executor_type get_executor() const noexcept; // optional
+
+  template <class CompletionHandler, unspecified-args...>
+    void operator()(CompletionHandler&& completion_handler, unspecified-args...) const;
+};
+
+

+ 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 an automatically deduced return type, having + the type of the expression async_initiate<CompletionToken, Signatures...>(initiation, + token, unspecified-args...). +

+

+ [Example: Given an asynchronous operation with a single + 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)
+{
+  return async_initiate<CompletionToken, void(R1, R2)>(
+      [](auto completion_handler, T1 t1, T2 t2)
+      {
+        // initiate the operation and cause completion_handler to be invoked
+        // with the result
+      }, token, std::move(t1), std::move(t2));
+}
+
+

+ The concepts completion_token_for + and completion_handler_for + may also be used to improve compile-time diagnostics: +

+
template<completion_token_for<void(R1, R2)> CompletionToken>
+auto async_xyz(T1 t1, T2 t2, CompletionToken&& token)
+{
+  return async_initiate<CompletionToken, void(R1, R2)>(
+      [](completion_handler_for<void(R1, R2)> auto completion_handler, T1 t1, T2 t2)
+      {
+        // initiate the operation and cause completion_handler to be invoked
+        // with the result
+      }, token, std::move(t1), std::move(t2));
+}
+
+

+ Initiation functions may also be implemented using the async_result + trait directly: +

+
template<class CompletionToken>
+auto async_xyz(T1 t1, T2 t2, CompletionToken&& token)
+{
+  return async_result<decay_t<CompletionToken>, void(R1, R2)>::initiate(
+      [](auto completion_handler, T1 t1, T2 t2)
+      {
+        // initiate the operation and cause completion_handler to be invoked
+        // with the result
+      }, forward<CompletionToken>(token), std::move(t1), std::move(t2));
+}
+
+

+ Note the use of decay_t and + forward applied to the CompletionToken type. However, the first + form is preferred as it preserves compatibility with legacy completion token + requirements. +

+

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

+

+ [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. —end note] +

+
+ + 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 I/O 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. +

+

+ The operation's associated I/O executor may be exposed via the Initiation function object's executor_type type alias and get_executor() + member 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). +

+
+ + Associated + immediate completion executor +
+

+ A completion handler object of type CompletionHandler + has an associated immediate executor of type Executor3 + satisfying the Executor requirements. + The type Executor3 is associated_immediate_executor_t<CompletionHandler, + Executor1>. + Let ex3 be a value of type + Executor3 obtained by performing + get_associated_immediate_executor(completion_handler, ex1). +

+
+ + Outstanding + work +
+

+ If the operation does not complete immediately (that is, the operation does + not complete within the thread of execution calling the initiating function, + before the initiating function returns) then, 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. +

+

+ [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]). —end note] +

+
+ + Execution + of completion handler on completion of asynchronous operation +
+

+ Let Args... + be the argument types of a completion signature in Signatures... and let N + be sizeof...(Args). + Let i be in the range [0,N). + Let Ti be the ith + type in Args... + and let ti be the ith + completion handler argument associated with Ti. +

+

+ Let f be a function object + that: +

+

+ — is callable as f(), + and when so called invokes completion_handler + as if by std::move(completion_handler)(forward<T0>(t0), + ..., forward<TN-1>(tN-1)); +

+

+ — has an associated executor such that get_associated_executor(f, + ex1) + returns an executor that is equal to ex2; + and +

+

+ — has an associated allocator such that get_associated_allocator(f, + alloc1) + returns an allocator that is equal to alloc2. +

+

+ [Note: These associated executor and allocator requirements + on f are typically implemented + by specialising the associator traits for f + so that they forward to the associator traits for completion_handler. + —end note] +

+

+ If an asynchonous operation completes immediately (that is, the operation + completes 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 post(ex1, + std::move(f)). +

+

+ Otherwise, when the operation completes, the completion handler shall be + submitted for execution as if by performing dispatch(ex2, + std::move(f)). +

+
+ + Optimisation + of immediate completion +
+

+ If an asynchronous operation completes immediately then, as an optimisation, + the operation may either: +

+

+ — obtain the associated immediate completion executor ex3 + by performing get_associated_immediate_executor(completion_handler, ex1), + and then submit the completion handler for execution as if by performing + dispatch(ex3, std::move(f)); + or +

+

+ — submit the completion handler for execution by performing the expression + post(ex2, std::move(f)), + if that expression is well-formed. +

+

+ [Note: If completion_handler + does not customise the associated immediate executor, the behaviour of the + first optimisation is equivalent to post(ex1, + std::move(f)). —end note] +

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

+
+ + Default + completion tokens +
+

+ Every I/O executor type has an associated default completion token type. + This is specified via the default_completion_token + trait. This trait may be used in asynchronous operation declarations as follows: +

+
template <
+    typename IoObject,
+    typename CompletionToken =
+      typename default_completion_token<
+        typename IoObject::executor_type
+      >::type
+  >
+auto async_xyz(
+    IoObject& io_object,
+    CompletionToken&& token =
+      typename default_completion_token<
+        typename IoObject::executor_type
+      >::type{}
+  );
+
+

+ If not specialised, this trait type is void, + meaning no default completion token type is available for the given I/O executor. +

+

+ [Example: The default_completion_token + trait is specialised for the use_awaitable + completion token so that it may be used as shown in the following example: +

+
auto socket = use_awaitable.as_default_on(tcp::socket(my_context));
+// ...
+co_await socket.async_connect(my_endpoint); // Defaults to use_awaitable.
+
+

+ In this example, the type of the socket + object is transformed from tcp::socket + to have an I/O executor with the default completion token set to use_awaitable. +

+

+ Alternatively, the socket type may be computed directly: +

+
using tcp_socket = use_awaitable_t<>::as_default_on_t<tcp::socket>;
+tcp_socket socket(my_context);
+// ...
+co_await socket.async_connect(my_endpoint); // Defaults to use_awaitable.
+
+

+ —end example] +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/asynchronous_socket_operations.html b/3party/asio/doc/asio/reference/asynchronous_socket_operations.html new file mode 100644 index 0000000..242b3ce --- /dev/null +++ b/3party/asio/doc/asio/reference/asynchronous_socket_operations.html @@ -0,0 +1,78 @@ + + + +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/3party/asio/doc/asio/reference/awaitable.html b/3party/asio/doc/asio/reference/awaitable.html new file mode 100644 index 0000000..dafb6e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/awaitable.html @@ -0,0 +1,178 @@ + + + +awaitable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The return type of a coroutine or asynchronous operation. +

+
template<
+    typename T,
+    typename Executor = any_io_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 + [constructor] +

+
+

+ Default constructor.

Move constructor. +

+
+

+ operator= +

+
+

+ Move assignment. +

+
+

+ valid +

+
+

+ Checks if the awaitable refers to a future result. +

+
+

+ ~awaitable + [destructor] +

+
+

+ Destructor. +

+
+
+ + Requirements +
+

+ Header: asio/awaitable.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/awaitable/_awaitable.html b/3party/asio/doc/asio/reference/awaitable/_awaitable.html new file mode 100644 index 0000000..5abd3cc --- /dev/null +++ b/3party/asio/doc/asio/reference/awaitable/_awaitable.html @@ -0,0 +1,40 @@ + + + +awaitable::~awaitable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~awaitable();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/awaitable/awaitable.html b/3party/asio/doc/asio/reference/awaitable/awaitable.html new file mode 100644 index 0000000..6e75eaf --- /dev/null +++ b/3party/asio/doc/asio/reference/awaitable/awaitable.html @@ -0,0 +1,48 @@ + + + +awaitable::awaitable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default constructor. +

+
constexpr awaitable();
+  » more...
+
+

+ Move constructor. +

+
awaitable(
+    awaitable && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/awaitable/awaitable/overload1.html b/3party/asio/doc/asio/reference/awaitable/awaitable/overload1.html new file mode 100644 index 0000000..bc2d599 --- /dev/null +++ b/3party/asio/doc/asio/reference/awaitable/awaitable/overload1.html @@ -0,0 +1,40 @@ + + + +awaitable::awaitable (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr awaitable();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/awaitable/awaitable/overload2.html b/3party/asio/doc/asio/reference/awaitable/awaitable/overload2.html new file mode 100644 index 0000000..77366d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/awaitable/awaitable/overload2.html @@ -0,0 +1,41 @@ + + + +awaitable::awaitable (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
awaitable(
+    awaitable && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/awaitable/executor_type.html b/3party/asio/doc/asio/reference/awaitable/executor_type.html new file mode 100644 index 0000000..b363797 --- /dev/null +++ b/3party/asio/doc/asio/reference/awaitable/executor_type.html @@ -0,0 +1,51 @@ + + + +awaitable::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The executor + type that will be used for the coroutine. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/awaitable.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/awaitable/operator_eq_.html b/3party/asio/doc/asio/reference/awaitable/operator_eq_.html new file mode 100644 index 0000000..5f5ed00 --- /dev/null +++ b/3party/asio/doc/asio/reference/awaitable/operator_eq_.html @@ -0,0 +1,41 @@ + + + +awaitable::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move assignment. +

+
awaitable & operator=(
+    awaitable && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/awaitable/valid.html b/3party/asio/doc/asio/reference/awaitable/valid.html new file mode 100644 index 0000000..363b0c1 --- /dev/null +++ b/3party/asio/doc/asio/reference/awaitable/valid.html @@ -0,0 +1,41 @@ + + + +awaitable::valid + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Checks if the awaitable refers + to a future result. +

+
bool valid() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/awaitable/value_type.html b/3party/asio/doc/asio/reference/awaitable/value_type.html new file mode 100644 index 0000000..7320c40 --- /dev/null +++ b/3party/asio/doc/asio/reference/awaitable/value_type.html @@ -0,0 +1,51 @@ + + + +awaitable::value_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The type of the awaited + value. +

+
typedef T value_type;
+
+
+ + Requirements +
+

+ Header: asio/awaitable.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/bad_executor.html b/3party/asio/doc/asio/reference/bad_executor.html new file mode 100644 index 0000000..c319762 --- /dev/null +++ b/3party/asio/doc/asio/reference/bad_executor.html @@ -0,0 +1,102 @@ + + + +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] +

+
+

+ Constructor. +

+
+

+ what +

+
+

+ Obtain message associated with exception. +

+
+
+ + Requirements +
+

+ Header: asio/executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/bad_executor/bad_executor.html b/3party/asio/doc/asio/reference/bad_executor/bad_executor.html new file mode 100644 index 0000000..32690c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/bad_executor/bad_executor.html @@ -0,0 +1,40 @@ + + + +bad_executor::bad_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
bad_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/bad_executor/what.html b/3party/asio/doc/asio/reference/bad_executor/what.html new file mode 100644 index 0000000..4159dab --- /dev/null +++ b/3party/asio/doc/asio/reference/bad_executor/what.html @@ -0,0 +1,41 @@ + + + +bad_executor::what + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain message associated + with exception. +

+
virtual const char * what() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket.html b/3party/asio/doc/asio/reference/basic_datagram_socket.html new file mode 100644 index 0000000..f4cca07 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket.html @@ -0,0 +1,928 @@ + + + +basic_datagram_socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides datagram-oriented socket functionality. +

+
template<
+    typename Protocol,
+    typename Executor>
+class basic_datagram_socket :
+  public basic_socket< Protocol, Executor >
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length of + the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, send_to, receive, + receive_from, connect, and shutdown + operations are thread safe with respect to each other, if the underlying + operating system calls are also thread safe. This means that it is permitted + to perform concurrent calls to these synchronous operations on a single socket + object. Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/basic_datagram_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/_basic_datagram_socket.html b/3party/asio/doc/asio/reference/basic_datagram_socket/_basic_datagram_socket.html new file mode 100644 index 0000000..475cde5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/_basic_datagram_socket.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/assign.html b/3party/asio/doc/asio/reference/basic_datagram_socket/assign.html new file mode 100644 index 0000000..6546064 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/assign.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/assign/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/assign/overload1.html new file mode 100644 index 0000000..e70628d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/assign/overload1.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/assign/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/assign/overload2.html new file mode 100644 index 0000000..6f6cc5d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/assign/overload2.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/async_connect.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_connect.html new file mode 100644 index 0000000..28f33b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_connect.html @@ -0,0 +1,141 @@ + + + +basic_datagram_socket::async_connect + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_socket. +

+

+ +Start + an asynchronous connect. +

+
template<
+    typename ConnectToken = DEFAULT>
+DEDUCED async_connect(
+    const endpoint_type & peer_endpoint,
+    ConnectToken && token = DEFAULT);
+
+

+ This function is used to asynchronously connect a socket to the specified + remote endpoint. It is an initiating function for an asynchronous + operation, and 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. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the connect completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void connect_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Connect succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::socket socket(my_context);
+asio::ip::tcp::endpoint endpoint(
+    asio::ip::address::from_string("1.2.3.4"), 12345);
+socket.async_connect(endpoint, connect_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive.html new file mode 100644 index 0000000..9dbfbde --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive.html @@ -0,0 +1,56 @@ + + + +basic_datagram_socket::async_receive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous receive on a connected socket. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    socket_base::message_flags flags,
+    ReadToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload1.html new file mode 100644 index 0000000..b66ebc0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload1.html @@ -0,0 +1,139 @@ + + + +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 ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive data from the datagram + socket. It is an initiating function for an asynchronous + operation, and 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 completion handler is + called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload2.html new file mode 100644 index 0000000..0de446b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload2.html @@ -0,0 +1,130 @@ + + + +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 ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    socket_base::message_flags flags,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive data from the datagram + socket. It is an initiating function for an asynchronous + operation, and 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 completion handler is + called. +

+
flags
+

+ Flags specifying how the receive call is to be made. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from.html new file mode 100644 index 0000000..86f5c86 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from.html @@ -0,0 +1,58 @@ + + + +basic_datagram_socket::async_receive_from + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive_from(
+    const MutableBufferSequence & buffers,
+    endpoint_type & sender_endpoint,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive_from(
+    const MutableBufferSequence & buffers,
+    endpoint_type & sender_endpoint,
+    socket_base::message_flags flags,
+    ReadToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload1.html new file mode 100644 index 0000000..52302ee --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload1.html @@ -0,0 +1,139 @@ + + + +basic_datagram_socket::async_receive_from (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive_from(
+    const MutableBufferSequence & buffers,
+    endpoint_type & sender_endpoint,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive a datagram. It is an + initiating function for an asynchronous + operation, and 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 completion 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 + completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload2.html new file mode 100644 index 0000000..e46dfd5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload2.html @@ -0,0 +1,129 @@ + + + +basic_datagram_socket::async_receive_from (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive_from(
+    const MutableBufferSequence & buffers,
+    endpoint_type & sender_endpoint,
+    socket_base::message_flags flags,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive a datagram. It is an + initiating function for an asynchronous + operation, and 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 completion 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 + completion handler is called. +

+
flags
+

+ Flags specifying how the receive call is to be made. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_send.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send.html new file mode 100644 index 0000000..613013a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send.html @@ -0,0 +1,56 @@ + + + +basic_datagram_socket::async_send + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous send on a connected socket. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+  » more...
+
+template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    socket_base::message_flags flags,
+    WriteToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_send/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send/overload1.html new file mode 100644 index 0000000..a339319 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send/overload1.html @@ -0,0 +1,137 @@ + + + +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 WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously send data on the datagram socket. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the send completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_send/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send/overload2.html new file mode 100644 index 0000000..2cdb1fb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send/overload2.html @@ -0,0 +1,128 @@ + + + +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 WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    socket_base::message_flags flags,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously send data on the datagram socket. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
flags
+

+ Flags specifying how the send call is to be made. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the send completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to.html new file mode 100644 index 0000000..9270e8c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to.html @@ -0,0 +1,58 @@ + + + +basic_datagram_socket::async_send_to + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous send. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send_to(
+    const ConstBufferSequence & buffers,
+    const endpoint_type & destination,
+    WriteToken && token = DEFAULT);
+  » more...
+
+template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send_to(
+    const ConstBufferSequence & buffers,
+    const endpoint_type & destination,
+    socket_base::message_flags flags,
+    WriteToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload1.html new file mode 100644 index 0000000..8e5179a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload1.html @@ -0,0 +1,139 @@ + + + +basic_datagram_socket::async_send_to (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous send. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send_to(
+    const ConstBufferSequence & buffers,
+    const endpoint_type & destination,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously send a datagram to the specified + remote endpoint. It is an initiating function for an asynchronous + operation, and 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 completion handler is + called. +

+
destination
+

+ The remote endpoint to which the data will be sent. Copies will + be made of the endpoint as required. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the send completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload2.html new file mode 100644 index 0000000..efbd318 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload2.html @@ -0,0 +1,127 @@ + + + +basic_datagram_socket::async_send_to (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous send. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send_to(
+    const ConstBufferSequence & buffers,
+    const endpoint_type & destination,
+    socket_base::message_flags flags,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously send a datagram to the specified + remote endpoint. It is an initiating function for an asynchronous + operation, and 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 completion 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. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the send completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/async_wait.html b/3party/asio/doc/asio/reference/basic_datagram_socket/async_wait.html new file mode 100644 index 0000000..7031065 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/async_wait.html @@ -0,0 +1,136 @@ + + + +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 WaitToken = DEFAULT>
+DEDUCED async_wait(
+    wait_type w,
+    WaitToken && token = DEFAULT);
+
+

+ This function is used to perform an asynchronous wait for a socket to enter + a ready to read, write or error condition state. It is an initiating function + for an asynchronous operation, + and always returns immediately. +

+
+ + Parameters +
+
+

+
+
w
+

+ Specifies the desired socket state. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the wait completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void wait_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Wait succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::socket socket(my_context);
+...
+socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/at_mark.html b/3party/asio/doc/asio/reference/basic_datagram_socket/at_mark.html new file mode 100644 index 0000000..71a2378 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/at_mark.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload1.html new file mode 100644 index 0000000..f0f3059 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload1.html @@ -0,0 +1,68 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload2.html new file mode 100644 index 0000000..440148c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload2.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/available.html b/3party/asio/doc/asio/reference/basic_datagram_socket/available.html new file mode 100644 index 0000000..4a9581c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/available.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/available/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/available/overload1.html new file mode 100644 index 0000000..190f445 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/available/overload1.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/available/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/available/overload2.html new file mode 100644 index 0000000..a1aad28 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/available/overload2.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket.html b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket.html new file mode 100644 index 0000000..181d317 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket.html @@ -0,0 +1,122 @@ + + + +basic_datagram_socket::basic_datagram_socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a basic_datagram_socket + without opening it. +

+
explicit basic_datagram_socket(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_datagram_socket(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct and open a basic_datagram_socket. +

+
basic_datagram_socket(
+    const executor_type & ex,
+    const protocol_type & protocol);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_datagram_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a basic_datagram_socket, opening + it and binding it to the given local endpoint. +

+
basic_datagram_socket(
+    const executor_type & ex,
+    const endpoint_type & endpoint);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_datagram_socket(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct a basic_datagram_socket on an existing + native socket. +

+
basic_datagram_socket(
+    const executor_type & ex,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_datagram_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » 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,
+    typename Executor1>
+basic_datagram_socket(
+    basic_datagram_socket< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html new file mode 100644 index 0000000..8594414 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html @@ -0,0 +1,60 @@ + + + +basic_datagram_socket::basic_datagram_socket (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_datagram_socket without + opening it. +

+
basic_datagram_socket(
+    const executor_type & ex);
+
+

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

+
+
ex
+

+ The I/O executor that the socket will use, by default, to dispatch + handlers for any asynchronous operations performed on the socket. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload10.html b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload10.html new file mode 100644 index 0000000..6927756 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload10.html @@ -0,0 +1,72 @@ + + + +basic_datagram_socket::basic_datagram_socket (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_datagram_socket from a + socket of another protocol type. +

+
template<
+    typename Protocol1,
+    typename Executor1>
+basic_datagram_socket(
+    basic_datagram_socket< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html new file mode 100644 index 0000000..42f8a54 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html @@ -0,0 +1,64 @@ + + + +basic_datagram_socket::basic_datagram_socket (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_datagram_socket without + opening it. +

+
template<
+    typename ExecutionContext>
+basic_datagram_socket(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, to dispatch handlers for any asynchronous + operations performed on the socket. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html new file mode 100644 index 0000000..f7d0193 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html @@ -0,0 +1,76 @@ + + + +basic_datagram_socket::basic_datagram_socket (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_datagram_socket. +

+
basic_datagram_socket(
+    const executor_type & ex,
+    const protocol_type & protocol);
+
+

+ This constructor creates and opens a datagram socket. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html new file mode 100644 index 0000000..7e08447 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html @@ -0,0 +1,80 @@ + + + +basic_datagram_socket::basic_datagram_socket (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_datagram_socket. +

+
template<
+    typename ExecutionContext>
+basic_datagram_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates and opens a datagram socket. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html new file mode 100644 index 0000000..1d84fe1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html @@ -0,0 +1,80 @@ + + + +basic_datagram_socket::basic_datagram_socket (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_datagram_socket, opening + it and binding it to the given local endpoint. +

+
basic_datagram_socket(
+    const executor_type & ex,
+    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 +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html new file mode 100644 index 0000000..d0f08c7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html @@ -0,0 +1,84 @@ + + + +basic_datagram_socket::basic_datagram_socket (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_datagram_socket, opening + it and binding it to the given local endpoint. +

+
template<
+    typename ExecutionContext>
+basic_datagram_socket(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload7.html b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload7.html new file mode 100644 index 0000000..0e1e23c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload7.html @@ -0,0 +1,83 @@ + + + +basic_datagram_socket::basic_datagram_socket (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_datagram_socket on an + existing native socket. +

+
basic_datagram_socket(
+    const executor_type & ex,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket);
+
+

+ This constructor creates a datagram socket object to hold an existing + native socket. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload8.html b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload8.html new file mode 100644 index 0000000..5a5164b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload8.html @@ -0,0 +1,87 @@ + + + +basic_datagram_socket::basic_datagram_socket (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_datagram_socket on an + existing native socket. +

+
template<
+    typename ExecutionContext>
+basic_datagram_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a datagram socket object to hold an existing + native socket. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload9.html b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload9.html new file mode 100644 index 0000000..0cc50ca --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload9.html @@ -0,0 +1,67 @@ + + + +basic_datagram_socket::basic_datagram_socket (9 of 10 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/bind.html b/3party/asio/doc/asio/reference/basic_datagram_socket/bind.html new file mode 100644 index 0000000..7bac50c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/bind.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/bind/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/bind/overload1.html new file mode 100644 index 0000000..7aa7e4c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/bind/overload1.html @@ -0,0 +1,83 @@ + + + +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(my_context);
+socket.open(asio::ip::tcp::v4());
+socket.bind(asio::ip::tcp::endpoint(
+      asio::ip::tcp::v4(), 12345));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/bind/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/bind/overload2.html new file mode 100644 index 0000000..c213824 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/bind/overload2.html @@ -0,0 +1,80 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/broadcast.html b/3party/asio/doc/asio/reference/basic_datagram_socket/broadcast.html new file mode 100644 index 0000000..e290c87 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/broadcast.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::broadcast option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/bytes_readable.html b/3party/asio/doc/asio/reference/basic_datagram_socket/bytes_readable.html new file mode 100644 index 0000000..046d878 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/bytes_readable.html @@ -0,0 +1,67 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/cancel.html b/3party/asio/doc/asio/reference/basic_datagram_socket/cancel.html new file mode 100644 index 0000000..efc6cb8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/cancel.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/cancel/overload1.html new file mode 100644 index 0000000..2909145 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/cancel/overload1.html @@ -0,0 +1,104 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/cancel/overload2.html new file mode 100644 index 0000000..fa62f4c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/cancel/overload2.html @@ -0,0 +1,105 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/close.html b/3party/asio/doc/asio/reference/basic_datagram_socket/close.html new file mode 100644 index 0000000..b39cdc2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/close.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/close/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/close/overload1.html new file mode 100644 index 0000000..4dbe846 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/close/overload1.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/close/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/close/overload2.html new file mode 100644 index 0000000..d26e76f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/close/overload2.html @@ -0,0 +1,84 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/connect.html b/3party/asio/doc/asio/reference/basic_datagram_socket/connect.html new file mode 100644 index 0000000..c589abf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/connect.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/connect/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/connect/overload1.html new file mode 100644 index 0000000..bedf0f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/connect/overload1.html @@ -0,0 +1,89 @@ + + + +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(my_context);
+asio::ip::tcp::endpoint endpoint(
+    asio::ip::address::from_string("1.2.3.4"), 12345);
+socket.connect(endpoint);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/connect/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/connect/overload2.html new file mode 100644 index 0000000..6c4b19e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/connect/overload2.html @@ -0,0 +1,86 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/debug.html b/3party/asio/doc/asio/reference/basic_datagram_socket/debug.html new file mode 100644 index 0000000..cfc85db --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/debug.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::debug option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/do_not_route.html b/3party/asio/doc/asio/reference/basic_datagram_socket/do_not_route.html new file mode 100644 index 0000000..bff9402 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/do_not_route.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::do_not_route option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/enable_connection_aborted.html b/3party/asio/doc/asio/reference/basic_datagram_socket/enable_connection_aborted.html new file mode 100644 index 0000000..4c6d7cf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/enable_connection_aborted.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+...
+asio::socket_base::enable_connection_aborted option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/endpoint_type.html b/3party/asio/doc/asio/reference/basic_datagram_socket/endpoint_type.html new file mode 100644 index 0000000..76f0686 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/endpoint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/executor_type.html b/3party/asio/doc/asio/reference/basic_datagram_socket/executor_type.html new file mode 100644 index 0000000..43f47c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_datagram_socket::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_datagram_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/get_executor.html b/3party/asio/doc/asio/reference/basic_datagram_socket/get_executor.html new file mode 100644 index 0000000..77f1dcf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/get_executor.html @@ -0,0 +1,44 @@ + + + +basic_datagram_socket::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_socket. +

+

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/get_option.html b/3party/asio/doc/asio/reference/basic_datagram_socket/get_option.html new file mode 100644 index 0000000..c2977a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/get_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/get_option/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/get_option/overload1.html new file mode 100644 index 0000000..e561fdd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/get_option/overload1.html @@ -0,0 +1,88 @@ + + + +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(my_context);
+...
+asio::ip::tcp::socket::keep_alive option;
+socket.get_option(option);
+bool is_set = option.value();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/get_option/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/get_option/overload2.html new file mode 100644 index 0000000..98294d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/get_option/overload2.html @@ -0,0 +1,85 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/io_control.html b/3party/asio/doc/asio/reference/basic_datagram_socket/io_control.html new file mode 100644 index 0000000..10b6d3f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/io_control.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/io_control/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/io_control/overload1.html new file mode 100644 index 0000000..68e9a31 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/io_control/overload1.html @@ -0,0 +1,88 @@ + + + +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(my_context);
+...
+asio::ip::tcp::socket::bytes_readable command;
+socket.io_control(command);
+std::size_t bytes_readable = command.get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/io_control/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/io_control/overload2.html new file mode 100644 index 0000000..b122480 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/io_control/overload2.html @@ -0,0 +1,85 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/is_open.html b/3party/asio/doc/asio/reference/basic_datagram_socket/is_open.html new file mode 100644 index 0000000..3abb3e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/is_open.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/keep_alive.html b/3party/asio/doc/asio/reference/basic_datagram_socket/keep_alive.html new file mode 100644 index 0000000..a9c7dfc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/keep_alive.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::keep_alive option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/linger.html b/3party/asio/doc/asio/reference/basic_datagram_socket/linger.html new file mode 100644 index 0000000..4e4947b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/linger.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+...
+asio::socket_base::linger option(true, 30);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint.html b/3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint.html new file mode 100644 index 0000000..f9afc63 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload1.html new file mode 100644 index 0000000..df62eab --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload1.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload2.html new file mode 100644 index 0000000..6b0ebc9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer.html b/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer.html new file mode 100644 index 0000000..2a1efe8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload1.html new file mode 100644 index 0000000..4a67beb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload1.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload2.html new file mode 100644 index 0000000..95bdf9e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload2.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer_type.html b/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer_type.html new file mode 100644 index 0000000..f3e3d5d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/lowest_layer_type.html @@ -0,0 +1,846 @@ + + + +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, Executor > lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_datagram_socket/max_connections.html b/3party/asio/doc/asio/reference/basic_datagram_socket/max_connections.html new file mode 100644 index 0000000..b738e84 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/max_connections.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/max_listen_connections.html b/3party/asio/doc/asio/reference/basic_datagram_socket/max_listen_connections.html new file mode 100644 index 0000000..1946f9e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/max_listen_connections.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/message_do_not_route.html b/3party/asio/doc/asio/reference/basic_datagram_socket/message_do_not_route.html new file mode 100644 index 0000000..a773586 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/message_do_not_route.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/message_end_of_record.html b/3party/asio/doc/asio/reference/basic_datagram_socket/message_end_of_record.html new file mode 100644 index 0000000..e439a39 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/message_end_of_record.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/message_flags.html b/3party/asio/doc/asio/reference/basic_datagram_socket/message_flags.html new file mode 100644 index 0000000..efd5d59 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/message_flags.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/message_out_of_band.html b/3party/asio/doc/asio/reference/basic_datagram_socket/message_out_of_band.html new file mode 100644 index 0000000..f1c8ff0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/message_out_of_band.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/message_peek.html b/3party/asio/doc/asio/reference/basic_datagram_socket/message_peek.html new file mode 100644 index 0000000..0826185 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/message_peek.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/native_handle.html b/3party/asio/doc/asio/reference/basic_datagram_socket/native_handle.html new file mode 100644 index 0000000..6411e34 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/native_handle.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/native_handle_type.html b/3party/asio/doc/asio/reference/basic_datagram_socket/native_handle_type.html new file mode 100644 index 0000000..16e739d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/native_handle_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking.html b/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking.html new file mode 100644 index 0000000..b2ea851 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload1.html new file mode 100644 index 0000000..8d3b683 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload1.html @@ -0,0 +1,143 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload2.html new file mode 100644 index 0000000..16b3f48 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload2.html @@ -0,0 +1,158 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload3.html new file mode 100644 index 0000000..f043c35 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload3.html @@ -0,0 +1,149 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking.html b/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking.html new file mode 100644 index 0000000..ed9db16 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload1.html new file mode 100644 index 0000000..05701e4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload1.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload2.html new file mode 100644 index 0000000..f815039 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload2.html @@ -0,0 +1,82 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload3.html new file mode 100644 index 0000000..3b57c1b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload3.html @@ -0,0 +1,74 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/open.html b/3party/asio/doc/asio/reference/basic_datagram_socket/open.html new file mode 100644 index 0000000..d41b762 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/open.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/open/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/open/overload1.html new file mode 100644 index 0000000..a5e1df2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/open/overload1.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+socket.open(asio::ip::tcp::v4());
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/open/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/open/overload2.html new file mode 100644 index 0000000..0b546a6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/open/overload2.html @@ -0,0 +1,77 @@ + + + +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(my_context);
+asio::error_code ec;
+socket.open(asio::ip::tcp::v4(), ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_.html b/3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_.html new file mode 100644 index 0000000..447633b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_.html @@ -0,0 +1,55 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_datagram_socket & >::type operator=(
+    basic_datagram_socket< Protocol1, Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload1.html new file mode 100644 index 0000000..cd1f839 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload1.html @@ -0,0 +1,67 @@ + + + +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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload2.html new file mode 100644 index 0000000..48276b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload2.html @@ -0,0 +1,71 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_datagram_socket & >::type operator=(
+    basic_datagram_socket< Protocol1, Executor1 > && 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/out_of_band_inline.html b/3party/asio/doc/asio/reference/basic_datagram_socket/out_of_band_inline.html new file mode 100644 index 0000000..04465ca --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/out_of_band_inline.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::out_of_band_inline option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/protocol_type.html b/3party/asio/doc/asio/reference/basic_datagram_socket/protocol_type.html new file mode 100644 index 0000000..a91e179 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/receive.html b/3party/asio/doc/asio/reference/basic_datagram_socket/receive.html new file mode 100644 index 0000000..6601acc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/receive.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload1.html new file mode 100644 index 0000000..db28a82 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload1.html @@ -0,0 +1,104 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload2.html new file mode 100644 index 0000000..7bbee23 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload2.html @@ -0,0 +1,95 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload3.html b/3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload3.html new file mode 100644 index 0000000..b270245 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/receive/overload3.html @@ -0,0 +1,87 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/receive_buffer_size.html b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_buffer_size.html new file mode 100644 index 0000000..81b4253 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from.html b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from.html new file mode 100644 index 0000000..747fb8b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload1.html new file mode 100644 index 0000000..364ab6a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload1.html @@ -0,0 +1,103 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload2.html new file mode 100644 index 0000000..2afbbca --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload2.html @@ -0,0 +1,92 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload3.html b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload3.html new file mode 100644 index 0000000..3252484 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload3.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/receive_low_watermark.html b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_low_watermark.html new file mode 100644 index 0000000..0a4133b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/receive_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/release.html b/3party/asio/doc/asio/reference/basic_datagram_socket/release.html new file mode 100644 index 0000000..2063ec9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/release.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/release/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/release/overload1.html new file mode 100644 index 0000000..1671c89 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/release/overload1.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/release/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/release/overload2.html new file mode 100644 index 0000000..7b22eaa --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/release/overload2.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint.html b/3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint.html new file mode 100644 index 0000000..9911268 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload1.html new file mode 100644 index 0000000..77ec45c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload1.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload2.html new file mode 100644 index 0000000..1e23290 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/reuse_address.html b/3party/asio/doc/asio/reference/basic_datagram_socket/reuse_address.html new file mode 100644 index 0000000..aedf1c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/reuse_address.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::socket_base::reuse_address option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/send.html b/3party/asio/doc/asio/reference/basic_datagram_socket/send.html new file mode 100644 index 0000000..d62b65e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/send.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/send/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/send/overload1.html new file mode 100644 index 0000000..65216e1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/send/overload1.html @@ -0,0 +1,104 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/send/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/send/overload2.html new file mode 100644 index 0000000..3f09261 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/send/overload2.html @@ -0,0 +1,95 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/send/overload3.html b/3party/asio/doc/asio/reference/basic_datagram_socket/send/overload3.html new file mode 100644 index 0000000..3cbe426 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/send/overload3.html @@ -0,0 +1,87 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/send_buffer_size.html b/3party/asio/doc/asio/reference/basic_datagram_socket/send_buffer_size.html new file mode 100644 index 0000000..7b8c355 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/send_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/send_low_watermark.html b/3party/asio/doc/asio/reference/basic_datagram_socket/send_low_watermark.html new file mode 100644 index 0000000..a6fc4bb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/send_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/send_to.html b/3party/asio/doc/asio/reference/basic_datagram_socket/send_to.html new file mode 100644 index 0000000..03642a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/send_to.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload1.html new file mode 100644 index 0000000..2732d3a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload1.html @@ -0,0 +1,103 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload2.html new file mode 100644 index 0000000..cb7b041 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload2.html @@ -0,0 +1,92 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload3.html b/3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload3.html new file mode 100644 index 0000000..dc17550 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/send_to/overload3.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/set_option.html b/3party/asio/doc/asio/reference/basic_datagram_socket/set_option.html new file mode 100644 index 0000000..c2fd89f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/set_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/set_option/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/set_option/overload1.html new file mode 100644 index 0000000..2abb8ac --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/set_option/overload1.html @@ -0,0 +1,87 @@ + + + +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(my_context);
+...
+asio::ip::tcp::no_delay option(true);
+socket.set_option(option);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/set_option/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/set_option/overload2.html new file mode 100644 index 0000000..4293666 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/set_option/overload2.html @@ -0,0 +1,84 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown.html b/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown.html new file mode 100644 index 0000000..57be533 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload1.html new file mode 100644 index 0000000..b16e6f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload1.html @@ -0,0 +1,85 @@ + + + +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(my_context);
+...
+socket.shutdown(asio::ip::tcp::socket::shutdown_send);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload2.html new file mode 100644 index 0000000..03f36a7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown_type.html b/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown_type.html new file mode 100644 index 0000000..7468ca1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/shutdown_type.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/wait.html b/3party/asio/doc/asio/reference/basic_datagram_socket/wait.html new file mode 100644 index 0000000..ecca3d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/wait.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket/wait/overload1.html b/3party/asio/doc/asio/reference/basic_datagram_socket/wait/overload1.html new file mode 100644 index 0000000..59c9131 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/wait/overload1.html @@ -0,0 +1,73 @@ + + + +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(my_context);
+...
+socket.wait(asio::ip::tcp::socket::wait_read);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/wait/overload2.html b/3party/asio/doc/asio/reference/basic_datagram_socket/wait/overload2.html new file mode 100644 index 0000000..4c1f4c1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/wait/overload2.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+socket.wait(asio::ip::tcp::socket::wait_read, ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket/wait_type.html b/3party/asio/doc/asio/reference/basic_datagram_socket/wait_type.html new file mode 100644 index 0000000..e80dfa5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket/wait_type.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/basic_datagram_socket__rebind_executor.html b/3party/asio/doc/asio/reference/basic_datagram_socket__rebind_executor.html new file mode 100644 index 0000000..40b0699 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_datagram_socket::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the socket type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The socket type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_datagram_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_datagram_socket__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_datagram_socket__rebind_executor/other.html new file mode 100644 index 0000000..55a4b43 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_datagram_socket__rebind_executor/other.html @@ -0,0 +1,925 @@ + + + +basic_datagram_socket::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + socket type when rebound to the specified executor. +

+
typedef basic_datagram_socket< Protocol, Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, send_to, receive, + receive_from, connect, and shutdown + operations are thread safe with respect to each other, if the underlying + operating system calls are also thread safe. This means that it is permitted + to perform concurrent calls to these synchronous operations on a single + socket object. Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/basic_datagram_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_deadline_timer.html b/3party/asio/doc/asio/reference/basic_deadline_timer.html new file mode 100644 index 0000000..dc22476 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer.html @@ -0,0 +1,394 @@ + + + +basic_deadline_timer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides waitable timer functionality. +

+
template<
+    typename Time,
+    typename TimeTraits = asio::time_traits<Time>,
+    typename Executor = any_io_executor>
+class basic_deadline_timer
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the timer type to another executor. +

+
+

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

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

+
+

+ operator= +

+
+

+ Move-assign a basic_deadline_timer from another. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the timer. +

+
+

+ ~basic_deadline_timer [destructor] +

+
+

+ 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(my_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(my_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/3party/asio/doc/asio/reference/basic_deadline_timer/_basic_deadline_timer.html b/3party/asio/doc/asio/reference/basic_deadline_timer/_basic_deadline_timer.html new file mode 100644 index 0000000..6b00ede --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/_basic_deadline_timer.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/async_wait.html b/3party/asio/doc/asio/reference/basic_deadline_timer/async_wait.html new file mode 100644 index 0000000..9a781a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/async_wait.html @@ -0,0 +1,121 @@ + + + +basic_deadline_timer::async_wait + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous wait on the timer. +

+
template<
+    typename WaitToken = DEFAULT>
+DEDUCED async_wait(
+    WaitToken && token = DEFAULT);
+
+

+ This function may be used to initiate an asynchronous wait against the + timer. It is an initiating function for an asynchronous + operation, and always returns immediately. +

+

+ For each call to async_wait(), the completion handler will be called + exactly once. The completion 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 +
+
+

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the timer expires. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer.html b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer.html new file mode 100644 index 0000000..e77cbea --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer.html @@ -0,0 +1,88 @@ + + + +basic_deadline_timer::basic_deadline_timer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
explicit basic_deadline_timer(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_deadline_timer(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Constructor to set a particular expiry time as an absolute time. +

+
basic_deadline_timer(
+    const executor_type & ex,
+    const time_type & expiry_time);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_deadline_timer(
+    ExecutionContext & context,
+    const time_type & expiry_time,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Constructor to set a particular expiry time relative to now. +

+
basic_deadline_timer(
+    const executor_type & ex,
+    const duration_type & expiry_time);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_deadline_timer(
+    ExecutionContext & context,
+    const duration_type & expiry_time,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct a basic_deadline_timer from another. +

+
basic_deadline_timer(
+    basic_deadline_timer && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html new file mode 100644 index 0000000..650191d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html @@ -0,0 +1,62 @@ + + + +basic_deadline_timer::basic_deadline_timer (1 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor. +

+
basic_deadline_timer(
+    const executor_type & ex);
+
+

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

+
+
ex
+

+ The I/O executor that the timer will use, by default, to dispatch + handlers for any asynchronous operations performed on the timer. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html new file mode 100644 index 0000000..3abc45b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html @@ -0,0 +1,66 @@ + + + +basic_deadline_timer::basic_deadline_timer (2 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor. +

+
template<
+    typename ExecutionContext>
+basic_deadline_timer(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the timer + will use, by default, to dispatch handlers for any asynchronous + operations performed on the timer. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html new file mode 100644 index 0000000..23455d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html @@ -0,0 +1,64 @@ + + + +basic_deadline_timer::basic_deadline_timer (3 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor to set a particular expiry time as an absolute time. +

+
basic_deadline_timer(
+    const executor_type & ex,
+    const time_type & expiry_time);
+
+

+ This constructor creates a timer and sets the expiry time. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the timer will use, by default, 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/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html new file mode 100644 index 0000000..2b1db48 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html @@ -0,0 +1,68 @@ + + + +basic_deadline_timer::basic_deadline_timer (4 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor to set a particular expiry time as an absolute time. +

+
template<
+    typename ExecutionContext>
+basic_deadline_timer(
+    ExecutionContext & context,
+    const time_type & expiry_time,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a timer and sets the expiry time. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the timer + will use, by default, 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/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload5.html b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload5.html new file mode 100644 index 0000000..47cc1a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload5.html @@ -0,0 +1,63 @@ + + + +basic_deadline_timer::basic_deadline_timer (5 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor to set a particular expiry time relative to now. +

+
basic_deadline_timer(
+    const executor_type & ex,
+    const duration_type & expiry_time);
+
+

+ This constructor creates a timer and sets the expiry time. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the timer will use, by default, 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/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload6.html b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload6.html new file mode 100644 index 0000000..f2c2c87 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload6.html @@ -0,0 +1,67 @@ + + + +basic_deadline_timer::basic_deadline_timer (6 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor to set a particular expiry time relative to now. +

+
template<
+    typename ExecutionContext>
+basic_deadline_timer(
+    ExecutionContext & context,
+    const duration_type & expiry_time,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a timer and sets the expiry time. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the timer + will use, by default, 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/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload7.html b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload7.html new file mode 100644 index 0000000..cd28b50 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload7.html @@ -0,0 +1,67 @@ + + + +basic_deadline_timer::basic_deadline_timer (7 of 7 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_deadline_timer/cancel.html b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel.html new file mode 100644 index 0000000..c26f4cc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel/overload1.html new file mode 100644 index 0000000..db096ad --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel/overload1.html @@ -0,0 +1,90 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel/overload2.html new file mode 100644 index 0000000..3d4be6b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel/overload2.html @@ -0,0 +1,91 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one.html b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one.html new file mode 100644 index 0000000..06d4e62 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload1.html b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload1.html new file mode 100644 index 0000000..6b9b631 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload1.html @@ -0,0 +1,90 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload2.html b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload2.html new file mode 100644 index 0000000..771e949 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload2.html @@ -0,0 +1,91 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/duration_type.html b/3party/asio/doc/asio/reference/basic_deadline_timer/duration_type.html new file mode 100644 index 0000000..a16dcac --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/duration_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/executor_type.html b/3party/asio/doc/asio/reference/basic_deadline_timer/executor_type.html new file mode 100644 index 0000000..257dbba --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_deadline_timer::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_deadline_timer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at.html b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at.html new file mode 100644 index 0000000..1acb60c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload1.html b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload1.html new file mode 100644 index 0000000..27660cc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload2.html b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload2.html new file mode 100644 index 0000000..2009509 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload2.html @@ -0,0 +1,100 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload3.html b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload3.html new file mode 100644 index 0000000..46aa056 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload3.html @@ -0,0 +1,92 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now.html b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now.html new file mode 100644 index 0000000..6f67eba --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload1.html b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload1.html new file mode 100644 index 0000000..b564e0e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload2.html b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload2.html new file mode 100644 index 0000000..7e5835f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload2.html @@ -0,0 +1,100 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload3.html b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload3.html new file mode 100644 index 0000000..89b203e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload3.html @@ -0,0 +1,92 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/get_executor.html b/3party/asio/doc/asio/reference/basic_deadline_timer/get_executor.html new file mode 100644 index 0000000..9181978 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/get_executor.html @@ -0,0 +1,41 @@ + + + +basic_deadline_timer::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_deadline_timer/operator_eq_.html b/3party/asio/doc/asio/reference/basic_deadline_timer/operator_eq_.html new file mode 100644 index 0000000..20dc6e9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/operator_eq_.html @@ -0,0 +1,70 @@ + + + +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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_deadline_timer/time_type.html b/3party/asio/doc/asio/reference/basic_deadline_timer/time_type.html new file mode 100644 index 0000000..f6534c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/time_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/traits_type.html b/3party/asio/doc/asio/reference/basic_deadline_timer/traits_type.html new file mode 100644 index 0000000..ccd7b46 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/traits_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/wait.html b/3party/asio/doc/asio/reference/basic_deadline_timer/wait.html new file mode 100644 index 0000000..0cab1a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/wait.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/wait/overload1.html b/3party/asio/doc/asio/reference/basic_deadline_timer/wait/overload1.html new file mode 100644 index 0000000..4d9a64e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/wait/overload1.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer/wait/overload2.html b/3party/asio/doc/asio/reference/basic_deadline_timer/wait/overload2.html new file mode 100644 index 0000000..d3feb27 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer/wait/overload2.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/basic_deadline_timer__rebind_executor.html b/3party/asio/doc/asio/reference/basic_deadline_timer__rebind_executor.html new file mode 100644 index 0000000..3bda56f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_deadline_timer::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the timer type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The timer type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_deadline_timer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_deadline_timer__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_deadline_timer__rebind_executor/other.html new file mode 100644 index 0000000..a6f7841 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_deadline_timer__rebind_executor/other.html @@ -0,0 +1,391 @@ + + + +basic_deadline_timer::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + timer type when rebound to the specified executor. +

+
typedef basic_deadline_timer< Time, TimeTraits, Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the timer type to another executor. +

+
+

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

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

+
+

+ operator= +

+
+

+ Move-assign a basic_deadline_timer from another. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the timer. +

+
+

+ ~basic_deadline_timer [destructor] +

+
+

+ 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(my_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(my_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/3party/asio/doc/asio/reference/basic_file.html b/3party/asio/doc/asio/reference/basic_file.html new file mode 100644 index 0000000..a513b5f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file.html @@ -0,0 +1,516 @@ + + + +basic_file + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides file functionality. +

+
template<
+    typename Executor>
+class basic_file :
+  public file_base
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the file type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ flags +

+
+

+ A bitmask type (C++ Std [lib.bitmask.types]). +

+
+

+ native_handle_type +

+
+

+ The native representation of a file. +

+
+

+ seek_basis +

+
+

+ Basis for seeking in a file. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native file to the file. +

+
+

+ basic_file [constructor] +

+
+

+ Construct a basic_file without opening it.

Construct + and open a basic_file.

Construct a basic_file on + an existing native file handle.

Construct a basic_file + on an existing native file.

Move-construct a basic_file + from another.

Move-construct a basic_file from a + file of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the file. +

+
+

+ close +

+
+

+ Close the file. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the file is open. +

+
+

+ native_handle +

+
+

+ Get the native file representation. +

+
+

+ open +

+
+

+ Open the file using the specified path. +

+
+

+ operator= +

+
+

+ Move-assign a basic_file from another.

Move-assign + a basic_file from a file of another executor type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native file. +

+
+

+ resize +

+
+

+ Alter the size of the file. +

+
+

+ size +

+
+

+ Get the size of the file. +

+
+

+ sync_all +

+
+

+ Synchronise the file to disk. +

+
+

+ sync_data +

+
+

+ Synchronise the file data to disk. +

+
+
+ + Protected + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ ~basic_file [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ append + [static] +

+
+

+ Open the file in append mode. +

+
+

+ create + [static] +

+
+

+ Create the file if it does not exist. +

+
+

+ exclusive + [static] +

+
+

+ Ensure a new file is created. Must be combined with create. +

+
+

+ read_only + [static] +

+
+

+ Open the file for reading. +

+
+

+ read_write [static] +

+
+

+ Open the file for reading and writing. +

+
+

+ sync_all_on_write [static] +

+
+

+ Open the file so that write operations automatically synchronise + the file data and metadata to disk. +

+
+

+ truncate + [static] +

+
+

+ Open the file with any existing contents truncated. +

+
+

+ write_only [static] +

+
+

+ Open the file for writing. +

+
+

+ The basic_file + class template provides functionality that is common to both stream-oriented + and random-access files. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/_basic_file.html b/3party/asio/doc/asio/reference/basic_file/_basic_file.html new file mode 100644 index 0000000..89f760a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/_basic_file.html @@ -0,0 +1,45 @@ + + + +basic_file::~basic_file + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Protected destructor + to prevent deletion through this type. +

+
~basic_file();
+
+

+ This function destroys the file, cancelling any outstanding asynchronous + operations associated with the file as if by calling cancel. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/append.html b/3party/asio/doc/asio/reference/basic_file/append.html new file mode 100644 index 0000000..58c07d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/append.html @@ -0,0 +1,44 @@ + + + +basic_file::append + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open the file in append + mode. +

+
static const flags append = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/assign.html b/3party/asio/doc/asio/reference/basic_file/assign.html new file mode 100644 index 0000000..5814b26 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/assign.html @@ -0,0 +1,48 @@ + + + +basic_file::assign + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign an existing native + file to the file. +

+
void assign(
+    const native_handle_type & native_file);
+  » more...
+
+void assign(
+    const native_handle_type & native_file,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/assign/overload1.html b/3party/asio/doc/asio/reference/basic_file/assign/overload1.html new file mode 100644 index 0000000..b91b480 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/assign/overload1.html @@ -0,0 +1,41 @@ + + + +basic_file::assign (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assign an existing native file to the file. +

+
void assign(
+    const native_handle_type & native_file);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/assign/overload2.html b/3party/asio/doc/asio/reference/basic_file/assign/overload2.html new file mode 100644 index 0000000..7528342 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/assign/overload2.html @@ -0,0 +1,42 @@ + + + +basic_file::assign (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assign an existing native file to the file. +

+
void assign(
+    const native_handle_type & native_file,
+    asio::error_code & ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/basic_file.html b/3party/asio/doc/asio/reference/basic_file/basic_file.html new file mode 100644 index 0000000..08722da --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/basic_file.html @@ -0,0 +1,122 @@ + + + +basic_file::basic_file + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct a basic_file + without opening it. +

+
explicit basic_file(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_file(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct and open a basic_file. +

+
explicit basic_file(
+    const executor_type & ex,
+    const char * path,
+    file_base::flags open_flags);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_file(
+    ExecutionContext & context,
+    const char * path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+explicit basic_file(
+    const executor_type & ex,
+    const std::string & path,
+    file_base::flags open_flags);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_file(
+    ExecutionContext & context,
+    const std::string & path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a basic_file + on an existing native file handle. +

+
basic_file(
+    const executor_type & ex,
+    const native_handle_type & native_file);
+  » more...
+
+

+ Construct a basic_file + on an existing native file. +

+
template<
+    typename ExecutionContext>
+basic_file(
+    ExecutionContext & context,
+    const native_handle_type & native_file,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Move-construct a basic_file from another. +

+
basic_file(
+    basic_file && other);
+  » more...
+
+

+ Move-construct a basic_file from a file of another + executor type. +

+
template<
+    typename Executor1>
+basic_file(
+    basic_file< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/basic_file/overload1.html b/3party/asio/doc/asio/reference/basic_file/basic_file/overload1.html new file mode 100644 index 0000000..24a75b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/basic_file/overload1.html @@ -0,0 +1,59 @@ + + + +basic_file::basic_file (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_file + without opening it. +

+
basic_file(
+    const executor_type & ex);
+
+

+ This constructor initialises a file without opening it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/basic_file/overload10.html b/3party/asio/doc/asio/reference/basic_file/basic_file/overload10.html new file mode 100644 index 0000000..ceddf35 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/basic_file/overload10.html @@ -0,0 +1,71 @@ + + + +basic_file::basic_file (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_file from a file of another + executor type. +

+
template<
+    typename Executor1>
+basic_file(
+    basic_file< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves a file from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_file 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_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/basic_file/overload2.html b/3party/asio/doc/asio/reference/basic_file/basic_file/overload2.html new file mode 100644 index 0000000..eb430d9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/basic_file/overload2.html @@ -0,0 +1,63 @@ + + + +basic_file::basic_file (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_file + without opening it. +

+
template<
+    typename ExecutionContext>
+basic_file(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises a file without opening it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/basic_file/overload3.html b/3party/asio/doc/asio/reference/basic_file/basic_file/overload3.html new file mode 100644 index 0000000..9d185bb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/basic_file/overload3.html @@ -0,0 +1,68 @@ + + + +basic_file::basic_file (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_file. +

+
basic_file(
+    const executor_type & ex,
+    const char * path,
+    file_base::flags open_flags);
+
+

+ This constructor initialises a file and opens it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/basic_file/overload4.html b/3party/asio/doc/asio/reference/basic_file/basic_file/overload4.html new file mode 100644 index 0000000..4707410 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/basic_file/overload4.html @@ -0,0 +1,73 @@ + + + +basic_file::basic_file (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_file + without opening it. +

+
template<
+    typename ExecutionContext>
+basic_file(
+    ExecutionContext & context,
+    const char * path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises a file and opens it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/basic_file/overload5.html b/3party/asio/doc/asio/reference/basic_file/basic_file/overload5.html new file mode 100644 index 0000000..95772e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/basic_file/overload5.html @@ -0,0 +1,68 @@ + + + +basic_file::basic_file (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_file. +

+
basic_file(
+    const executor_type & ex,
+    const std::string & path,
+    file_base::flags open_flags);
+
+

+ This constructor initialises a file and opens it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/basic_file/overload6.html b/3party/asio/doc/asio/reference/basic_file/basic_file/overload6.html new file mode 100644 index 0000000..027ac13 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/basic_file/overload6.html @@ -0,0 +1,73 @@ + + + +basic_file::basic_file (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_file + without opening it. +

+
template<
+    typename ExecutionContext>
+basic_file(
+    ExecutionContext & context,
+    const std::string & path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises a file and opens it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/basic_file/overload7.html b/3party/asio/doc/asio/reference/basic_file/basic_file/overload7.html new file mode 100644 index 0000000..214586a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/basic_file/overload7.html @@ -0,0 +1,78 @@ + + + +basic_file::basic_file (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_file + on an existing native file handle. +

+
basic_file(
+    const executor_type & ex,
+    const native_handle_type & native_file);
+
+

+ This constructor initialises a file object to hold an existing native + file. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
native_file
+

+ A native file handle. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/basic_file/overload8.html b/3party/asio/doc/asio/reference/basic_file/basic_file/overload8.html new file mode 100644 index 0000000..c429de8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/basic_file/overload8.html @@ -0,0 +1,82 @@ + + + +basic_file::basic_file (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_file + on an existing native file. +

+
template<
+    typename ExecutionContext>
+basic_file(
+    ExecutionContext & context,
+    const native_handle_type & native_file,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises a file object to hold an existing native + file. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
native_file
+

+ A native file. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/basic_file/overload9.html b/3party/asio/doc/asio/reference/basic_file/basic_file/overload9.html new file mode 100644 index 0000000..9dc12ad --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/basic_file/overload9.html @@ -0,0 +1,67 @@ + + + +basic_file::basic_file (9 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_file from another. +

+
basic_file(
+    basic_file && other);
+
+

+ This constructor moves a file from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_file 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_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/cancel.html b/3party/asio/doc/asio/reference/basic_file/cancel.html new file mode 100644 index 0000000..cce3ad6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/cancel.html @@ -0,0 +1,46 @@ + + + +basic_file::cancel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Cancel all asynchronous + operations associated with the file. +

+
void cancel();
+  » more...
+
+void cancel(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_file/cancel/overload1.html new file mode 100644 index 0000000..f23346f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/cancel/overload1.html @@ -0,0 +1,91 @@ + + + +basic_file::cancel (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Cancel all asynchronous operations associated with the file. +

+
void cancel();
+
+

+ This function causes all outstanding asynchronous read and 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. +

+
+
+
+ + 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 the close() function to simultaneously cancel the + outstanding operations and close the file. +

+

+ 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/3party/asio/doc/asio/reference/basic_file/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_file/cancel/overload2.html new file mode 100644 index 0000000..98bb8f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/cancel/overload2.html @@ -0,0 +1,92 @@ + + + +basic_file::cancel (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Cancel all asynchronous operations associated with the file. +

+
void cancel(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous read and 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. +

+
+
+
+ + 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 the close() function to simultaneously cancel the + outstanding operations and close the file. +

+

+ 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/3party/asio/doc/asio/reference/basic_file/close.html b/3party/asio/doc/asio/reference/basic_file/close.html new file mode 100644 index 0000000..eb5f7a6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/close.html @@ -0,0 +1,45 @@ + + + +basic_file::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close the file. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/close/overload1.html b/3party/asio/doc/asio/reference/basic_file/close/overload1.html new file mode 100644 index 0000000..622577c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/close/overload1.html @@ -0,0 +1,59 @@ + + + +basic_file::close (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Close the file. +

+
void close();
+
+

+ This function is used to close the file. 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/3party/asio/doc/asio/reference/basic_file/close/overload2.html b/3party/asio/doc/asio/reference/basic_file/close/overload2.html new file mode 100644 index 0000000..66f09ff --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/close/overload2.html @@ -0,0 +1,73 @@ + + + +basic_file::close (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Close the file. +

+
void close(
+    asio::error_code & ec);
+
+

+ This function is used to close the file. 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. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+...
+asio::error_code ec;
+file.close(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/create.html b/3party/asio/doc/asio/reference/basic_file/create.html new file mode 100644 index 0000000..1e8c771 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/create.html @@ -0,0 +1,44 @@ + + + +basic_file::create + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Create the file if it does + not exist. +

+
static const flags create = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/exclusive.html b/3party/asio/doc/asio/reference/basic_file/exclusive.html new file mode 100644 index 0000000..500e8c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/exclusive.html @@ -0,0 +1,44 @@ + + + +basic_file::exclusive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Ensure a new file + is created. Must be combined with create. +

+
static const flags exclusive = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/executor_type.html b/3party/asio/doc/asio/reference/basic_file/executor_type.html new file mode 100644 index 0000000..c867c0b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_file::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The type + of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/flags.html b/3party/asio/doc/asio/reference/basic_file/flags.html new file mode 100644 index 0000000..77cb0ce --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/flags.html @@ -0,0 +1,53 @@ + + + +basic_file::flags + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +A bitmask type (C++ Std [lib.bitmask.types]). +

+
typedef unspecified flags;
+
+
+ + Requirements +
+

+ Header: asio/basic_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/get_executor.html b/3party/asio/doc/asio/reference/basic_file/get_executor.html new file mode 100644 index 0000000..cbec8e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/get_executor.html @@ -0,0 +1,41 @@ + + + +basic_file::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the executor + associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/is_open.html b/3party/asio/doc/asio/reference/basic_file/is_open.html new file mode 100644 index 0000000..90120cf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/is_open.html @@ -0,0 +1,41 @@ + + + +basic_file::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine whether the + file is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/native_handle.html b/3party/asio/doc/asio/reference/basic_file/native_handle.html new file mode 100644 index 0000000..5de58ae --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/native_handle.html @@ -0,0 +1,46 @@ + + + +basic_file::native_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the native + file representation. +

+
native_handle_type native_handle();
+
+

+ This function may be used to obtain the underlying representation of the + file. This is intended to allow access to native file functionality that + is not otherwise provided. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/native_handle_type.html b/3party/asio/doc/asio/reference/basic_file/native_handle_type.html new file mode 100644 index 0000000..2aa8389 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/native_handle_type.html @@ -0,0 +1,51 @@ + + + +basic_file::native_handle_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + native representation of a file. +

+
typedef implementation_defined native_handle_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/open.html b/3party/asio/doc/asio/reference/basic_file/open.html new file mode 100644 index 0000000..190f862 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/open.html @@ -0,0 +1,61 @@ + + + +basic_file::open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Open the file using the specified + path. +

+
void open(
+    const char * path,
+    file_base::flags open_flags);
+  » more...
+
+void open(
+    const char * path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+  » more...
+
+void open(
+    const std::string & path,
+    file_base::flags open_flags);
+  » more...
+
+void open(
+    const std::string & path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/open/overload1.html b/3party/asio/doc/asio/reference/basic_file/open/overload1.html new file mode 100644 index 0000000..c1cf340 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/open/overload1.html @@ -0,0 +1,82 @@ + + + +basic_file::open (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Open the file using the specified path. +

+
void open(
+    const char * path,
+    file_base::flags open_flags);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+file.open("/path/to/my/file", asio::stream_file::read_only);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/open/overload2.html b/3party/asio/doc/asio/reference/basic_file/open/overload2.html new file mode 100644 index 0000000..3d6163e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/open/overload2.html @@ -0,0 +1,79 @@ + + + +basic_file::open (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Open the file using the specified path. +

+
void open(
+    const char * path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+asio::error_code ec;
+file.open("/path/to/my/file", asio::stream_file::read_only, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/open/overload3.html b/3party/asio/doc/asio/reference/basic_file/open/overload3.html new file mode 100644 index 0000000..5653b4f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/open/overload3.html @@ -0,0 +1,82 @@ + + + +basic_file::open (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Open the file using the specified path. +

+
void open(
+    const std::string & path,
+    file_base::flags open_flags);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+file.open("/path/to/my/file", asio::stream_file::read_only);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/open/overload4.html b/3party/asio/doc/asio/reference/basic_file/open/overload4.html new file mode 100644 index 0000000..8da870d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/open/overload4.html @@ -0,0 +1,79 @@ + + + +basic_file::open (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Open the file using the specified path. +

+
void open(
+    const std::string & path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+asio::error_code ec;
+file.open("/path/to/my/file", asio::stream_file::read_only, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/operator_eq_.html b/3party/asio/doc/asio/reference/basic_file/operator_eq_.html new file mode 100644 index 0000000..6757554 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/operator_eq_.html @@ -0,0 +1,54 @@ + + + +basic_file::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign a + basic_file + from another. +

+
basic_file & operator=(
+    basic_file && other);
+  » more...
+
+

+ Move-assign a basic_file + from a file of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_file & >::type operator=(
+    basic_file< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_file/operator_eq_/overload1.html new file mode 100644 index 0000000..e965d3c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/operator_eq_/overload1.html @@ -0,0 +1,67 @@ + + + +basic_file::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_file from another. +

+
basic_file & operator=(
+    basic_file && other);
+
+

+ This assignment operator moves a file from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_file 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_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_file/operator_eq_/overload2.html new file mode 100644 index 0000000..55ce0c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/operator_eq_/overload2.html @@ -0,0 +1,70 @@ + + + +basic_file::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_file from a file of another + executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_file & >::type operator=(
+    basic_file< Executor1 > && other);
+
+

+ This assignment operator moves a file from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_file 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_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/read_only.html b/3party/asio/doc/asio/reference/basic_file/read_only.html new file mode 100644 index 0000000..8368b2f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/read_only.html @@ -0,0 +1,44 @@ + + + +basic_file::read_only + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open the file for + reading. +

+
static const flags read_only = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/read_write.html b/3party/asio/doc/asio/reference/basic_file/read_write.html new file mode 100644 index 0000000..c3a4d3c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/read_write.html @@ -0,0 +1,44 @@ + + + +basic_file::read_write + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open the file for + reading and writing. +

+
static const flags read_write = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/release.html b/3party/asio/doc/asio/reference/basic_file/release.html new file mode 100644 index 0000000..566664a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/release.html @@ -0,0 +1,46 @@ + + + +basic_file::release + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Release ownership of + the underlying native file. +

+
native_handle_type release();
+  » more...
+
+native_handle_type release(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/release/overload1.html b/3party/asio/doc/asio/reference/basic_file/release/overload1.html new file mode 100644 index 0000000..a027d19 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/release/overload1.html @@ -0,0 +1,68 @@ + + + +basic_file::release (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Release ownership of the underlying native file. +

+
native_handle_type release();
+
+

+ This function causes all outstanding asynchronous read and write operations + to finish immediately, and the handlers for cancelled operations will + be passed the asio::error::operation_aborted error. Ownership + of the native file 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/3party/asio/doc/asio/reference/basic_file/release/overload2.html b/3party/asio/doc/asio/reference/basic_file/release/overload2.html new file mode 100644 index 0000000..17e1d5a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/release/overload2.html @@ -0,0 +1,69 @@ + + + +basic_file::release (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Release ownership of the underlying native file. +

+
native_handle_type release(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous read and write operations + to finish immediately, and the handlers for cancelled operations will + be passed the asio::error::operation_aborted error. Ownership + of the native file 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/3party/asio/doc/asio/reference/basic_file/resize.html b/3party/asio/doc/asio/reference/basic_file/resize.html new file mode 100644 index 0000000..73337e9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/resize.html @@ -0,0 +1,47 @@ + + + +basic_file::resize + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Alter the size of the file. +

+
void resize(
+    uint64_t n);
+  » more...
+
+void resize(
+    uint64_t n,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/resize/overload1.html b/3party/asio/doc/asio/reference/basic_file/resize/overload1.html new file mode 100644 index 0000000..e0e92e0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/resize/overload1.html @@ -0,0 +1,73 @@ + + + +basic_file::resize (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Alter the size of the file. +

+
void resize(
+    uint64_t n);
+
+

+ This function resizes the file to the specified size, in bytes. If the + current file size exceeds n + then any extra data is discarded. If the current size is less than n then the file is extended and filled + with zeroes. +

+
+ + Parameters +
+
+

+
+
n
+

+ The new size for the file. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/resize/overload2.html b/3party/asio/doc/asio/reference/basic_file/resize/overload2.html new file mode 100644 index 0000000..343916d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/resize/overload2.html @@ -0,0 +1,65 @@ + + + +basic_file::resize (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Alter the size of the file. +

+
void resize(
+    uint64_t n,
+    asio::error_code & ec);
+
+

+ This function resizes the file to the specified size, in bytes. If the + current file size exceeds n + then any extra data is discarded. If the current size is less than n then the file is extended and filled + with zeroes. +

+
+ + Parameters +
+
+

+
+
n
+

+ The new size for the file. +

+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/seek_basis.html b/3party/asio/doc/asio/reference/basic_file/seek_basis.html new file mode 100644 index 0000000..591259c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/seek_basis.html @@ -0,0 +1,70 @@ + + + +basic_file::seek_basis + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Basis for seeking + in a file. +

+
enum seek_basis
+
+

+ + + +

+
+ + Values +
+
+

+
+
seek_set
+

+ Seek to an absolute position. +

+
seek_cur
+

+ Seek to an offset relative to the current file position. +

+
seek_end
+

+ Seek to an offset relative to the end of the file. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/size.html b/3party/asio/doc/asio/reference/basic_file/size.html new file mode 100644 index 0000000..3198ff0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/size.html @@ -0,0 +1,45 @@ + + + +basic_file::size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the size of the file. +

+
uint64_t size() const;
+  » more...
+
+uint64_t size(
+    asio::error_code & ec) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/size/overload1.html b/3party/asio/doc/asio/reference/basic_file/size/overload1.html new file mode 100644 index 0000000..709a6e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/size/overload1.html @@ -0,0 +1,56 @@ + + + +basic_file::size (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get the size of the file. +

+
uint64_t size() const;
+
+

+ This function determines the size of the file, in bytes. +

+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/size/overload2.html b/3party/asio/doc/asio/reference/basic_file/size/overload2.html new file mode 100644 index 0000000..81e9771 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/size/overload2.html @@ -0,0 +1,57 @@ + + + +basic_file::size (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get the size of the file. +

+
uint64_t size(
+    asio::error_code & ec) const;
+
+

+ This function determines the size of the file, in bytes. +

+
+ + Parameters +
+
+

+
+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/sync_all.html b/3party/asio/doc/asio/reference/basic_file/sync_all.html new file mode 100644 index 0000000..363b7e1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/sync_all.html @@ -0,0 +1,46 @@ + + + +basic_file::sync_all + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Synchronise the file + to disk. +

+
void sync_all();
+  » more...
+
+void sync_all(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/sync_all/overload1.html b/3party/asio/doc/asio/reference/basic_file/sync_all/overload1.html new file mode 100644 index 0000000..bb948e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/sync_all/overload1.html @@ -0,0 +1,57 @@ + + + +basic_file::sync_all (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Synchronise the file to disk. +

+
void sync_all();
+
+

+ This function synchronises the file data and metadata to disk. Note that + the semantics of this synchronisation vary between operation systems. +

+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/sync_all/overload2.html b/3party/asio/doc/asio/reference/basic_file/sync_all/overload2.html new file mode 100644 index 0000000..23a519d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/sync_all/overload2.html @@ -0,0 +1,58 @@ + + + +basic_file::sync_all (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Synchronise the file to disk. +

+
void sync_all(
+    asio::error_code & ec);
+
+

+ This function synchronises the file data and metadata to disk. Note that + the semantics of this synchronisation vary between operation systems. +

+
+ + Parameters +
+
+

+
+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/sync_all_on_write.html b/3party/asio/doc/asio/reference/basic_file/sync_all_on_write.html new file mode 100644 index 0000000..3a75169 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/sync_all_on_write.html @@ -0,0 +1,45 @@ + + + +basic_file::sync_all_on_write + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file so that write operations automatically synchronise the file data + and metadata to disk. +

+
static const flags sync_all_on_write = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/sync_data.html b/3party/asio/doc/asio/reference/basic_file/sync_data.html new file mode 100644 index 0000000..e569b15 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/sync_data.html @@ -0,0 +1,46 @@ + + + +basic_file::sync_data + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Synchronise the file + data to disk. +

+
void sync_data();
+  » more...
+
+void sync_data(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/sync_data/overload1.html b/3party/asio/doc/asio/reference/basic_file/sync_data/overload1.html new file mode 100644 index 0000000..79acade --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/sync_data/overload1.html @@ -0,0 +1,57 @@ + + + +basic_file::sync_data (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Synchronise the file data to disk. +

+
void sync_data();
+
+

+ This function synchronises the file data to disk. Note that the semantics + of this synchronisation vary between operation systems. +

+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/sync_data/overload2.html b/3party/asio/doc/asio/reference/basic_file/sync_data/overload2.html new file mode 100644 index 0000000..233bca4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/sync_data/overload2.html @@ -0,0 +1,58 @@ + + + +basic_file::sync_data (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Synchronise the file data to disk. +

+
void sync_data(
+    asio::error_code & ec);
+
+

+ This function synchronises the file data to disk. Note that the semantics + of this synchronisation vary between operation systems. +

+
+ + Parameters +
+
+

+
+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/truncate.html b/3party/asio/doc/asio/reference/basic_file/truncate.html new file mode 100644 index 0000000..eb82e0f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/truncate.html @@ -0,0 +1,44 @@ + + + +basic_file::truncate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open the file with + any existing contents truncated. +

+
static const flags truncate = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file/write_only.html b/3party/asio/doc/asio/reference/basic_file/write_only.html new file mode 100644 index 0000000..5076cbe --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file/write_only.html @@ -0,0 +1,44 @@ + + + +basic_file::write_only + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open the file for + writing. +

+
static const flags write_only = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file__rebind_executor.html b/3party/asio/doc/asio/reference/basic_file__rebind_executor.html new file mode 100644 index 0000000..8820965 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_file::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the file type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The file type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_file__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_file__rebind_executor/other.html new file mode 100644 index 0000000..bb86001 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_file__rebind_executor/other.html @@ -0,0 +1,509 @@ + + + +basic_file::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + file type when rebound to the specified executor. +

+
typedef basic_file< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the file type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ flags +

+
+

+ A bitmask type (C++ Std [lib.bitmask.types]). +

+
+

+ native_handle_type +

+
+

+ The native representation of a file. +

+
+

+ seek_basis +

+
+

+ Basis for seeking in a file. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native file to the file. +

+
+

+ basic_file [constructor] +

+
+

+ Construct a basic_file without opening it.

Construct + and open a basic_file.

Construct a basic_file on + an existing native file handle.

Construct a basic_file + on an existing native file.

Move-construct a basic_file + from another.

Move-construct a basic_file from + a file of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the file. +

+
+

+ close +

+
+

+ Close the file. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the file is open. +

+
+

+ native_handle +

+
+

+ Get the native file representation. +

+
+

+ open +

+
+

+ Open the file using the specified path. +

+
+

+ operator= +

+
+

+ Move-assign a basic_file from another.

Move-assign + a basic_file from a file of another executor type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native file. +

+
+

+ resize +

+
+

+ Alter the size of the file. +

+
+

+ size +

+
+

+ Get the size of the file. +

+
+

+ sync_all +

+
+

+ Synchronise the file to disk. +

+
+

+ sync_data +

+
+

+ Synchronise the file data to disk. +

+
+
+ + Protected + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ ~basic_file [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ append + [static] +

+
+

+ Open the file in append mode. +

+
+

+ create + [static] +

+
+

+ Create the file if it does not exist. +

+
+

+ exclusive [static] +

+
+

+ Ensure a new file is created. Must be combined with create. +

+
+

+ read_only [static] +

+
+

+ Open the file for reading. +

+
+

+ read_write [static] +

+
+

+ Open the file for reading and writing. +

+
+

+ sync_all_on_write [static] +

+
+

+ Open the file so that write operations automatically synchronise + the file data and metadata to disk. +

+
+

+ truncate [static] +

+
+

+ Open the file with any existing contents truncated. +

+
+

+ write_only [static] +

+
+

+ Open the file for writing. +

+
+

+ The basic_file + class template provides functionality that is common to both stream-oriented + and random-access files. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_io_object.html b/3party/asio/doc/asio/reference/basic_io_object.html new file mode 100644 index 0000000..260cd98 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object.html @@ -0,0 +1,271 @@ + + + +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 [constructor] +

+
+

+ 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 [destructor] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_io_object/_basic_io_object.html b/3party/asio/doc/asio/reference/basic_io_object/_basic_io_object.html new file mode 100644 index 0000000..89ce310 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/_basic_io_object.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/basic_io_object.html b/3party/asio/doc/asio/reference/basic_io_object/basic_io_object.html new file mode 100644 index 0000000..cbdaf8e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/basic_io_object.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload1.html b/3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload1.html new file mode 100644 index 0000000..3bdfb36 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload1.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload2.html b/3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload2.html new file mode 100644 index 0000000..e154088 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload2.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload3.html b/3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload3.html new file mode 100644 index 0000000..0e51dd2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/basic_io_object/overload3.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/executor_type.html b/3party/asio/doc/asio/reference/basic_io_object/executor_type.html new file mode 100644 index 0000000..ddb7fec --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/executor_type.html @@ -0,0 +1,51 @@ + + + +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;
+
+
+ + Requirements +
+

+ Header: asio/basic_io_object.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_io_object/get_executor.html b/3party/asio/doc/asio/reference/basic_io_object/get_executor.html new file mode 100644 index 0000000..ca0eba5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/get_executor.html @@ -0,0 +1,41 @@ + + + +basic_io_object::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
executor_type get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_io_object/get_implementation.html b/3party/asio/doc/asio/reference/basic_io_object/get_implementation.html new file mode 100644 index 0000000..706dea9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/get_implementation.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/get_implementation/overload1.html b/3party/asio/doc/asio/reference/basic_io_object/get_implementation/overload1.html new file mode 100644 index 0000000..cfc30cd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/get_implementation/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/get_implementation/overload2.html b/3party/asio/doc/asio/reference/basic_io_object/get_implementation/overload2.html new file mode 100644 index 0000000..1a6c2ea --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/get_implementation/overload2.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/get_io_context.html b/3party/asio/doc/asio/reference/basic_io_object/get_io_context.html new file mode 100644 index 0000000..1f918a1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/get_io_context.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/get_io_service.html b/3party/asio/doc/asio/reference/basic_io_object/get_io_service.html new file mode 100644 index 0000000..dc66192 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/get_io_service.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/get_service.html b/3party/asio/doc/asio/reference/basic_io_object/get_service.html new file mode 100644 index 0000000..6695282 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/get_service.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/get_service/overload1.html b/3party/asio/doc/asio/reference/basic_io_object/get_service/overload1.html new file mode 100644 index 0000000..ee069b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/get_service/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/get_service/overload2.html b/3party/asio/doc/asio/reference/basic_io_object/get_service/overload2.html new file mode 100644 index 0000000..bcef532 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/get_service/overload2.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/implementation_type.html b/3party/asio/doc/asio/reference/basic_io_object/implementation_type.html new file mode 100644 index 0000000..45b239f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/implementation_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/operator_eq_.html b/3party/asio/doc/asio/reference/basic_io_object/operator_eq_.html new file mode 100644 index 0000000..c4703dd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/operator_eq_.html @@ -0,0 +1,55 @@ + + + +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/3party/asio/doc/asio/reference/basic_io_object/service_type.html b/3party/asio/doc/asio/reference/basic_io_object/service_type.html new file mode 100644 index 0000000..9939e44 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_io_object/service_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_random_access_file.html b/3party/asio/doc/asio/reference/basic_random_access_file.html new file mode 100644 index 0000000..06b7a33 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file.html @@ -0,0 +1,544 @@ + + + +basic_random_access_file + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides random-access file functionality. +

+
template<
+    typename Executor>
+class basic_random_access_file :
+  public basic_file< Executor >
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the file type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ flags +

+
+

+ A bitmask type (C++ Std [lib.bitmask.types]). +

+
+

+ native_handle_type +

+
+

+ The native representation of a file. +

+
+

+ seek_basis +

+
+

+ Basis for seeking in a file. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native file to the file. +

+
+

+ async_read_some_at +

+
+

+ Start an asynchronous read at the specified offset. +

+
+

+ async_write_some_at +

+
+

+ Start an asynchronous write at the specified offset. +

+
+

+ basic_random_access_file [constructor] +

+
+

+ Construct a basic_random_access_file without opening it.
+
Construct and open a basic_random_access_file.

+ Construct a basic_random_access_file on an existing native file. +

Move-construct a basic_random_access_file from another. +

Move-construct a basic_random_access_file from a + file of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the file. +

+
+

+ close +

+
+

+ Close the file. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the file is open. +

+
+

+ native_handle +

+
+

+ Get the native file representation. +

+
+

+ open +

+
+

+ Open the file using the specified path. +

+
+

+ operator= +

+
+

+ Move-assign a basic_random_access_file from another.

+ Move-assign a basic_random_access_file from a file of another executor + type. +

+
+

+ read_some_at +

+
+

+ Read some data from the handle at the specified offset. +

+
+

+ release +

+
+

+ Release ownership of the underlying native file. +

+
+

+ resize +

+
+

+ Alter the size of the file. +

+
+

+ size +

+
+

+ Get the size of the file. +

+
+

+ sync_all +

+
+

+ Synchronise the file to disk. +

+
+

+ sync_data +

+
+

+ Synchronise the file data to disk. +

+
+

+ write_some_at +

+
+

+ Write some data to the handle at the specified offset. +

+
+

+ ~basic_random_access_file [destructor] +

+
+

+ Destroys the file. +

+
+
+ + Data Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ append [static] +

+
+

+ Open the file in append mode. +

+
+

+ create [static] +

+
+

+ Create the file if it does not exist. +

+
+

+ exclusive [static] +

+
+

+ Ensure a new file is created. Must be combined with create. +

+
+

+ read_only [static] +

+
+

+ Open the file for reading. +

+
+

+ read_write [static] +

+
+

+ Open the file for reading and writing. +

+
+

+ sync_all_on_write [static] +

+
+

+ Open the file so that write operations automatically synchronise + the file data and metadata to disk. +

+
+

+ truncate [static] +

+
+

+ Open the file with any existing contents truncated. +

+
+

+ write_only [static] +

+
+

+ Open the file for writing. +

+
+

+ The basic_random_access_file class template + provides asynchronous and blocking random-access file functionality. +

+
+ + Thread Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+

+ Synchronous read_some_at + and write_some_at operations + are thread safe with respect to each other, if the underlying operating system + calls are also thread safe. This means that it is permitted to perform concurrent + calls to these synchronous operations on a single file object. Other synchronous + operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/basic_random_access_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/_basic_random_access_file.html b/3party/asio/doc/asio/reference/basic_random_access_file/_basic_random_access_file.html new file mode 100644 index 0000000..bd8ad6a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/_basic_random_access_file.html @@ -0,0 +1,45 @@ + + + +basic_random_access_file::~basic_random_access_file + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destroys + the file. +

+
~basic_random_access_file();
+
+

+ This function destroys the file, cancelling any outstanding asynchronous + operations associated with the file as if by calling cancel. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/append.html b/3party/asio/doc/asio/reference/basic_random_access_file/append.html new file mode 100644 index 0000000..ae538d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/append.html @@ -0,0 +1,44 @@ + + + +basic_random_access_file::append + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file in append mode. +

+
static const flags append = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/assign.html b/3party/asio/doc/asio/reference/basic_random_access_file/assign.html new file mode 100644 index 0000000..454c0fb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/assign.html @@ -0,0 +1,48 @@ + + + +basic_random_access_file::assign + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign + an existing native file to the file. +

+
void assign(
+    const native_handle_type & native_file);
+  » more...
+
+void assign(
+    const native_handle_type & native_file,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/assign/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/assign/overload1.html new file mode 100644 index 0000000..eb5cc5b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/assign/overload1.html @@ -0,0 +1,44 @@ + + + +basic_random_access_file::assign (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Assign an existing native file to the file. +

+
void assign(
+    const native_handle_type & native_file);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/assign/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/assign/overload2.html new file mode 100644 index 0000000..fa05f37 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/assign/overload2.html @@ -0,0 +1,45 @@ + + + +basic_random_access_file::assign (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Assign an existing native file to the file. +

+
void assign(
+    const native_handle_type & native_file,
+    asio::error_code & ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/async_read_some_at.html b/3party/asio/doc/asio/reference/basic_random_access_file/async_read_some_at.html new file mode 100644 index 0000000..b3ad5da --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/async_read_some_at.html @@ -0,0 +1,147 @@ + + + +basic_random_access_file::async_read_some_at + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous read at the specified offset. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_some_at(
+    uint64_t offset,
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read data from the random-access + handle. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/async_write_some_at.html b/3party/asio/doc/asio/reference/basic_random_access_file/async_write_some_at.html new file mode 100644 index 0000000..b3e3bb6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/async_write_some_at.html @@ -0,0 +1,147 @@ + + + +basic_random_access_file::async_write_some_at + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous write at the specified offset. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_some_at(
+    uint64_t offset,
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write data to the random-access + handle. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Remarks +
+

+ The write operation may not write all of the data to the file. 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file.html b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file.html new file mode 100644 index 0000000..114fc8c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file.html @@ -0,0 +1,120 @@ + + + +basic_random_access_file::basic_random_access_file + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a basic_random_access_file without + opening it. +

+
explicit basic_random_access_file(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_random_access_file(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct and open a basic_random_access_file. +

+
basic_random_access_file(
+    const executor_type & ex,
+    const char * path,
+    file_base::flags open_flags);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_random_access_file(
+    ExecutionContext & context,
+    const char * path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+basic_random_access_file(
+    const executor_type & ex,
+    const std::string & path,
+    file_base::flags open_flags);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_random_access_file(
+    ExecutionContext & context,
+    const std::string & path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a basic_random_access_file on an + existing native file. +

+
basic_random_access_file(
+    const executor_type & ex,
+    const native_handle_type & native_file);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_random_access_file(
+    ExecutionContext & context,
+    const native_handle_type & native_file,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Move-construct a basic_random_access_file from + another. +

+
basic_random_access_file(
+    basic_random_access_file && other);
+  » more...
+
+

+ Move-construct a basic_random_access_file from + a file of another executor type. +

+
template<
+    typename Executor1>
+basic_random_access_file(
+    basic_random_access_file< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload1.html new file mode 100644 index 0000000..bf8ecba --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload1.html @@ -0,0 +1,60 @@ + + + +basic_random_access_file::basic_random_access_file (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_random_access_file without + opening it. +

+
basic_random_access_file(
+    const executor_type & ex);
+
+

+ This constructor initialises a file without opening it. The file needs + to be opened before data can be read from or or written to it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload10.html b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload10.html new file mode 100644 index 0000000..0e5890a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload10.html @@ -0,0 +1,71 @@ + + + +basic_random_access_file::basic_random_access_file (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_random_access_file from + a file of another executor type. +

+
template<
+    typename Executor1>
+basic_random_access_file(
+    basic_random_access_file< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves a random-access file from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_random_access_file + 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_random_access_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload2.html new file mode 100644 index 0000000..06f4ee0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload2.html @@ -0,0 +1,64 @@ + + + +basic_random_access_file::basic_random_access_file (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_random_access_file without + opening it. +

+
template<
+    typename ExecutionContext>
+basic_random_access_file(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises a file without opening it. The file needs + to be opened before data can be read from or or written to it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload3.html b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload3.html new file mode 100644 index 0000000..dbd256b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload3.html @@ -0,0 +1,81 @@ + + + +basic_random_access_file::basic_random_access_file (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_random_access_file. +

+
basic_random_access_file(
+    const executor_type & ex,
+    const char * path,
+    file_base::flags open_flags);
+
+

+ This constructor initialises and opens a file. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload4.html b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload4.html new file mode 100644 index 0000000..03f8e84 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload4.html @@ -0,0 +1,85 @@ + + + +basic_random_access_file::basic_random_access_file (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_random_access_file. +

+
template<
+    typename ExecutionContext>
+basic_random_access_file(
+    ExecutionContext & context,
+    const char * path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises and opens a file. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload5.html b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload5.html new file mode 100644 index 0000000..0196abd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload5.html @@ -0,0 +1,81 @@ + + + +basic_random_access_file::basic_random_access_file (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_random_access_file. +

+
basic_random_access_file(
+    const executor_type & ex,
+    const std::string & path,
+    file_base::flags open_flags);
+
+

+ This constructor initialises and opens a file. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload6.html b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload6.html new file mode 100644 index 0000000..5805f35 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload6.html @@ -0,0 +1,85 @@ + + + +basic_random_access_file::basic_random_access_file (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_random_access_file. +

+
template<
+    typename ExecutionContext>
+basic_random_access_file(
+    ExecutionContext & context,
+    const std::string & path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises and opens a file. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload7.html b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload7.html new file mode 100644 index 0000000..316bab5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload7.html @@ -0,0 +1,78 @@ + + + +basic_random_access_file::basic_random_access_file (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_random_access_file on + an existing native file. +

+
basic_random_access_file(
+    const executor_type & ex,
+    const native_handle_type & native_file);
+
+

+ This constructor initialises a random-access file object to hold an existing + native file. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
native_file
+

+ The new underlying file implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload8.html b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload8.html new file mode 100644 index 0000000..9632a64 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload8.html @@ -0,0 +1,82 @@ + + + +basic_random_access_file::basic_random_access_file (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_random_access_file on + an existing native file. +

+
template<
+    typename ExecutionContext>
+basic_random_access_file(
+    ExecutionContext & context,
+    const native_handle_type & native_file,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises a random-access file object to hold an existing + native file. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
native_file
+

+ The new underlying file implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload9.html b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload9.html new file mode 100644 index 0000000..d9a1f11 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload9.html @@ -0,0 +1,68 @@ + + + +basic_random_access_file::basic_random_access_file (9 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_random_access_file from + another. +

+
basic_random_access_file(
+    basic_random_access_file && other);
+
+

+ This constructor moves a random-access file from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_random_access_file + 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_random_access_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/cancel.html b/3party/asio/doc/asio/reference/basic_random_access_file/cancel.html new file mode 100644 index 0000000..e96517f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/cancel.html @@ -0,0 +1,46 @@ + + + +basic_random_access_file::cancel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Cancel + all asynchronous operations associated with the file. +

+
void cancel();
+  » more...
+
+void cancel(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/cancel/overload1.html new file mode 100644 index 0000000..f0d5fae --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/cancel/overload1.html @@ -0,0 +1,94 @@ + + + +basic_random_access_file::cancel (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Cancel all asynchronous operations associated with the file. +

+
void cancel();
+
+

+ This function causes all outstanding asynchronous read and 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. +

+
+
+
+ + 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 the close() function to simultaneously cancel the + outstanding operations and close the file. +

+

+ 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/3party/asio/doc/asio/reference/basic_random_access_file/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/cancel/overload2.html new file mode 100644 index 0000000..8128d10 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/cancel/overload2.html @@ -0,0 +1,95 @@ + + + +basic_random_access_file::cancel (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Cancel all asynchronous operations associated with the file. +

+
void cancel(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous read and 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. +

+
+
+
+ + 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 the close() function to simultaneously cancel the + outstanding operations and close the file. +

+

+ 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/3party/asio/doc/asio/reference/basic_random_access_file/close.html b/3party/asio/doc/asio/reference/basic_random_access_file/close.html new file mode 100644 index 0000000..0b47109 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/close.html @@ -0,0 +1,46 @@ + + + +basic_random_access_file::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close + the file. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/close/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/close/overload1.html new file mode 100644 index 0000000..1238932 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/close/overload1.html @@ -0,0 +1,62 @@ + + + +basic_random_access_file::close (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Close the file. +

+
void close();
+
+

+ This function is used to close the file. 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/3party/asio/doc/asio/reference/basic_random_access_file/close/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/close/overload2.html new file mode 100644 index 0000000..1b458ad --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/close/overload2.html @@ -0,0 +1,76 @@ + + + +basic_random_access_file::close (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Close the file. +

+
void close(
+    asio::error_code & ec);
+
+

+ This function is used to close the file. 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. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+...
+asio::error_code ec;
+file.close(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/create.html b/3party/asio/doc/asio/reference/basic_random_access_file/create.html new file mode 100644 index 0000000..4c954b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/create.html @@ -0,0 +1,44 @@ + + + +basic_random_access_file::create + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Create + the file if it does not exist. +

+
static const flags create = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/exclusive.html b/3party/asio/doc/asio/reference/basic_random_access_file/exclusive.html new file mode 100644 index 0000000..db5f3b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/exclusive.html @@ -0,0 +1,44 @@ + + + +basic_random_access_file::exclusive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Ensure + a new file is created. Must be combined with create. +

+
static const flags exclusive = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/executor_type.html b/3party/asio/doc/asio/reference/basic_random_access_file/executor_type.html new file mode 100644 index 0000000..630c1c4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_random_access_file::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_random_access_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/flags.html b/3party/asio/doc/asio/reference/basic_random_access_file/flags.html new file mode 100644 index 0000000..f1b5140 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/flags.html @@ -0,0 +1,54 @@ + + + +basic_random_access_file::flags + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +A + bitmask type (C++ Std [lib.bitmask.types]). +

+
typedef unspecified flags;
+
+
+ + Requirements +
+

+ Header: asio/basic_random_access_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/get_executor.html b/3party/asio/doc/asio/reference/basic_random_access_file/get_executor.html new file mode 100644 index 0000000..82672e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/get_executor.html @@ -0,0 +1,44 @@ + + + +basic_random_access_file::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/is_open.html b/3party/asio/doc/asio/reference/basic_random_access_file/is_open.html new file mode 100644 index 0000000..9789492 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/is_open.html @@ -0,0 +1,44 @@ + + + +basic_random_access_file::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ +Determine + whether the file is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/native_handle.html b/3party/asio/doc/asio/reference/basic_random_access_file/native_handle.html new file mode 100644 index 0000000..f9a3875 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/native_handle.html @@ -0,0 +1,49 @@ + + + +basic_random_access_file::native_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ +Get + the native file representation. +

+
native_handle_type native_handle();
+
+

+ This function may be used to obtain the underlying representation of the + file. This is intended to allow access to native file functionality that + is not otherwise provided. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/native_handle_type.html b/3party/asio/doc/asio/reference/basic_random_access_file/native_handle_type.html new file mode 100644 index 0000000..73eb485 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/native_handle_type.html @@ -0,0 +1,51 @@ + + + +basic_random_access_file::native_handle_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + native representation of a file. +

+
typedef implementation_defined native_handle_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_random_access_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/open.html b/3party/asio/doc/asio/reference/basic_random_access_file/open.html new file mode 100644 index 0000000..e360296 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/open.html @@ -0,0 +1,61 @@ + + + +basic_random_access_file::open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Open + the file using the specified path. +

+
void open(
+    const char * path,
+    file_base::flags open_flags);
+  » more...
+
+void open(
+    const char * path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+  » more...
+
+void open(
+    const std::string & path,
+    file_base::flags open_flags);
+  » more...
+
+void open(
+    const std::string & path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/open/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/open/overload1.html new file mode 100644 index 0000000..eca4038 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/open/overload1.html @@ -0,0 +1,85 @@ + + + +basic_random_access_file::open (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Open the file using the specified path. +

+
void open(
+    const char * path,
+    file_base::flags open_flags);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+file.open("/path/to/my/file", asio::stream_file::read_only);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/open/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/open/overload2.html new file mode 100644 index 0000000..e2c7205 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/open/overload2.html @@ -0,0 +1,82 @@ + + + +basic_random_access_file::open (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Open the file using the specified path. +

+
void open(
+    const char * path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+asio::error_code ec;
+file.open("/path/to/my/file", asio::stream_file::read_only, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/open/overload3.html b/3party/asio/doc/asio/reference/basic_random_access_file/open/overload3.html new file mode 100644 index 0000000..cbd6093 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/open/overload3.html @@ -0,0 +1,85 @@ + + + +basic_random_access_file::open (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Open the file using the specified path. +

+
void open(
+    const std::string & path,
+    file_base::flags open_flags);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+file.open("/path/to/my/file", asio::stream_file::read_only);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/open/overload4.html b/3party/asio/doc/asio/reference/basic_random_access_file/open/overload4.html new file mode 100644 index 0000000..bc20b62 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/open/overload4.html @@ -0,0 +1,82 @@ + + + +basic_random_access_file::open (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Open the file using the specified path. +

+
void open(
+    const std::string & path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+asio::error_code ec;
+file.open("/path/to/my/file", asio::stream_file::read_only, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_.html b/3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_.html new file mode 100644 index 0000000..f816b25 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_.html @@ -0,0 +1,54 @@ + + + +basic_random_access_file::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a basic_random_access_file from + another. +

+
basic_random_access_file & operator=(
+    basic_random_access_file && other);
+  » more...
+
+

+ Move-assign a basic_random_access_file from + a file of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_random_access_file & >::type operator=(
+    basic_random_access_file< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_/overload1.html new file mode 100644 index 0000000..f80de1d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_/overload1.html @@ -0,0 +1,69 @@ + + + +basic_random_access_file::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_random_access_file from + another. +

+
basic_random_access_file & operator=(
+    basic_random_access_file && other);
+
+

+ This assignment operator moves a random-access file from one object to + another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_random_access_file + 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_random_access_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_/overload2.html new file mode 100644 index 0000000..7ddd4c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/operator_eq_/overload2.html @@ -0,0 +1,71 @@ + + + +basic_random_access_file::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_random_access_file from + a file of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_random_access_file & >::type operator=(
+    basic_random_access_file< Executor1 > && other);
+
+

+ This assignment operator moves a random-access file from one object to + another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_random_access_file + 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_random_access_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/read_only.html b/3party/asio/doc/asio/reference/basic_random_access_file/read_only.html new file mode 100644 index 0000000..f82996f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/read_only.html @@ -0,0 +1,44 @@ + + + +basic_random_access_file::read_only + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file for reading. +

+
static const flags read_only = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/read_some_at.html b/3party/asio/doc/asio/reference/basic_random_access_file/read_some_at.html new file mode 100644 index 0000000..fac408c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/read_some_at.html @@ -0,0 +1,54 @@ + + + +basic_random_access_file::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/3party/asio/doc/asio/reference/basic_random_access_file/read_some_at/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/read_some_at/overload1.html new file mode 100644 index 0000000..96b66ff --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/read_some_at/overload1.html @@ -0,0 +1,112 @@ + + + +basic_random_access_file::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 end of the file was reached. +

+
+
+
+ + 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/3party/asio/doc/asio/reference/basic_random_access_file/read_some_at/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/read_some_at/overload2.html new file mode 100644 index 0000000..38cb73d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/read_some_at/overload2.html @@ -0,0 +1,89 @@ + + + +basic_random_access_file::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/3party/asio/doc/asio/reference/basic_random_access_file/read_write.html b/3party/asio/doc/asio/reference/basic_random_access_file/read_write.html new file mode 100644 index 0000000..7b66d9d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/read_write.html @@ -0,0 +1,44 @@ + + + +basic_random_access_file::read_write + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file for reading and writing. +

+
static const flags read_write = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/release.html b/3party/asio/doc/asio/reference/basic_random_access_file/release.html new file mode 100644 index 0000000..6671819 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/release.html @@ -0,0 +1,46 @@ + + + +basic_random_access_file::release + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Release + ownership of the underlying native file. +

+
native_handle_type release();
+  » more...
+
+native_handle_type release(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/release/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/release/overload1.html new file mode 100644 index 0000000..a5d0592 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/release/overload1.html @@ -0,0 +1,71 @@ + + + +basic_random_access_file::release (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Release ownership of the underlying native file. +

+
native_handle_type release();
+
+

+ This function causes all outstanding asynchronous read and write operations + to finish immediately, and the handlers for cancelled operations will + be passed the asio::error::operation_aborted error. Ownership + of the native file 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/3party/asio/doc/asio/reference/basic_random_access_file/release/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/release/overload2.html new file mode 100644 index 0000000..3b384b6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/release/overload2.html @@ -0,0 +1,72 @@ + + + +basic_random_access_file::release (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Release ownership of the underlying native file. +

+
native_handle_type release(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous read and write operations + to finish immediately, and the handlers for cancelled operations will + be passed the asio::error::operation_aborted error. Ownership + of the native file 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/3party/asio/doc/asio/reference/basic_random_access_file/resize.html b/3party/asio/doc/asio/reference/basic_random_access_file/resize.html new file mode 100644 index 0000000..8561459 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/resize.html @@ -0,0 +1,48 @@ + + + +basic_random_access_file::resize + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Alter + the size of the file. +

+
void resize(
+    uint64_t n);
+  » more...
+
+void resize(
+    uint64_t n,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/resize/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/resize/overload1.html new file mode 100644 index 0000000..c410901 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/resize/overload1.html @@ -0,0 +1,76 @@ + + + +basic_random_access_file::resize (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Alter the size of the file. +

+
void resize(
+    uint64_t n);
+
+

+ This function resizes the file to the specified size, in bytes. If the + current file size exceeds n + then any extra data is discarded. If the current size is less than n then the file is extended and filled + with zeroes. +

+
+ + Parameters +
+
+

+
+
n
+

+ The new size for the file. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/resize/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/resize/overload2.html new file mode 100644 index 0000000..a8cab73 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/resize/overload2.html @@ -0,0 +1,68 @@ + + + +basic_random_access_file::resize (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Alter the size of the file. +

+
void resize(
+    uint64_t n,
+    asio::error_code & ec);
+
+

+ This function resizes the file to the specified size, in bytes. If the + current file size exceeds n + then any extra data is discarded. If the current size is less than n then the file is extended and filled + with zeroes. +

+
+ + Parameters +
+
+

+
+
n
+

+ The new size for the file. +

+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/seek_basis.html b/3party/asio/doc/asio/reference/basic_random_access_file/seek_basis.html new file mode 100644 index 0000000..6dcfb40 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/seek_basis.html @@ -0,0 +1,70 @@ + + + +basic_random_access_file::seek_basis + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Basis + for seeking in a file. +

+
enum seek_basis
+
+

+ + + +

+
+ + Values +
+
+

+
+
seek_set
+

+ Seek to an absolute position. +

+
seek_cur
+

+ Seek to an offset relative to the current file position. +

+
seek_end
+

+ Seek to an offset relative to the end of the file. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/size.html b/3party/asio/doc/asio/reference/basic_random_access_file/size.html new file mode 100644 index 0000000..28431c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/size.html @@ -0,0 +1,46 @@ + + + +basic_random_access_file::size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the size of the file. +

+
uint64_t size() const;
+  » more...
+
+uint64_t size(
+    asio::error_code & ec) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/size/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/size/overload1.html new file mode 100644 index 0000000..861773f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/size/overload1.html @@ -0,0 +1,59 @@ + + + +basic_random_access_file::size (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Get the size of the file. +

+
uint64_t size() const;
+
+

+ This function determines the size of the file, in bytes. +

+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/size/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/size/overload2.html new file mode 100644 index 0000000..b421635 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/size/overload2.html @@ -0,0 +1,60 @@ + + + +basic_random_access_file::size (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Get the size of the file. +

+
uint64_t size(
+    asio::error_code & ec) const;
+
+

+ This function determines the size of the file, in bytes. +

+
+ + Parameters +
+
+

+
+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/sync_all.html b/3party/asio/doc/asio/reference/basic_random_access_file/sync_all.html new file mode 100644 index 0000000..c68b886 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/sync_all.html @@ -0,0 +1,46 @@ + + + +basic_random_access_file::sync_all + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Synchronise + the file to disk. +

+
void sync_all();
+  » more...
+
+void sync_all(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/sync_all/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/sync_all/overload1.html new file mode 100644 index 0000000..784fff8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/sync_all/overload1.html @@ -0,0 +1,60 @@ + + + +basic_random_access_file::sync_all (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Synchronise the file to disk. +

+
void sync_all();
+
+

+ This function synchronises the file data and metadata to disk. Note that + the semantics of this synchronisation vary between operation systems. +

+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/sync_all/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/sync_all/overload2.html new file mode 100644 index 0000000..647f0b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/sync_all/overload2.html @@ -0,0 +1,61 @@ + + + +basic_random_access_file::sync_all (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Synchronise the file to disk. +

+
void sync_all(
+    asio::error_code & ec);
+
+

+ This function synchronises the file data and metadata to disk. Note that + the semantics of this synchronisation vary between operation systems. +

+
+ + Parameters +
+
+

+
+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/sync_all_on_write.html b/3party/asio/doc/asio/reference/basic_random_access_file/sync_all_on_write.html new file mode 100644 index 0000000..c3a6c5e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/sync_all_on_write.html @@ -0,0 +1,45 @@ + + + +basic_random_access_file::sync_all_on_write + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file so that write operations automatically synchronise the file data + and metadata to disk. +

+
static const flags sync_all_on_write = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/sync_data.html b/3party/asio/doc/asio/reference/basic_random_access_file/sync_data.html new file mode 100644 index 0000000..892fc66 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/sync_data.html @@ -0,0 +1,46 @@ + + + +basic_random_access_file::sync_data + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Synchronise + the file data to disk. +

+
void sync_data();
+  » more...
+
+void sync_data(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/sync_data/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/sync_data/overload1.html new file mode 100644 index 0000000..27e0caf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/sync_data/overload1.html @@ -0,0 +1,60 @@ + + + +basic_random_access_file::sync_data (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Synchronise the file data to disk. +

+
void sync_data();
+
+

+ This function synchronises the file data to disk. Note that the semantics + of this synchronisation vary between operation systems. +

+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/sync_data/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/sync_data/overload2.html new file mode 100644 index 0000000..755504c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/sync_data/overload2.html @@ -0,0 +1,61 @@ + + + +basic_random_access_file::sync_data (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Synchronise the file data to disk. +

+
void sync_data(
+    asio::error_code & ec);
+
+

+ This function synchronises the file data to disk. Note that the semantics + of this synchronisation vary between operation systems. +

+
+ + Parameters +
+
+

+
+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/truncate.html b/3party/asio/doc/asio/reference/basic_random_access_file/truncate.html new file mode 100644 index 0000000..edc68cd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/truncate.html @@ -0,0 +1,44 @@ + + + +basic_random_access_file::truncate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file with any existing contents truncated. +

+
static const flags truncate = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/write_only.html b/3party/asio/doc/asio/reference/basic_random_access_file/write_only.html new file mode 100644 index 0000000..2e8168e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/write_only.html @@ -0,0 +1,44 @@ + + + +basic_random_access_file::write_only + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file for writing. +

+
static const flags write_only = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file/write_some_at.html b/3party/asio/doc/asio/reference/basic_random_access_file/write_some_at.html new file mode 100644 index 0000000..5ad216f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/write_some_at.html @@ -0,0 +1,54 @@ + + + +basic_random_access_file::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/3party/asio/doc/asio/reference/basic_random_access_file/write_some_at/overload1.html b/3party/asio/doc/asio/reference/basic_random_access_file/write_some_at/overload1.html new file mode 100644 index 0000000..8aef356 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/write_some_at/overload1.html @@ -0,0 +1,112 @@ + + + +basic_random_access_file::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 end of the file was reached. +

+
+
+
+ + 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/3party/asio/doc/asio/reference/basic_random_access_file/write_some_at/overload2.html b/3party/asio/doc/asio/reference/basic_random_access_file/write_some_at/overload2.html new file mode 100644 index 0000000..f6f22dd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file/write_some_at/overload2.html @@ -0,0 +1,89 @@ + + + +basic_random_access_file::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 write all of the data to the file. 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/3party/asio/doc/asio/reference/basic_random_access_file__rebind_executor.html b/3party/asio/doc/asio/reference/basic_random_access_file__rebind_executor.html new file mode 100644 index 0000000..112a92c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_random_access_file::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the file type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The file type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_random_access_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_random_access_file__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_random_access_file__rebind_executor/other.html new file mode 100644 index 0000000..cc90443 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_random_access_file__rebind_executor/other.html @@ -0,0 +1,542 @@ + + + +basic_random_access_file::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + file type when rebound to the specified executor. +

+
typedef basic_random_access_file< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the file type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ flags +

+
+

+ A bitmask type (C++ Std [lib.bitmask.types]). +

+
+

+ native_handle_type +

+
+

+ The native representation of a file. +

+
+

+ seek_basis +

+
+

+ Basis for seeking in a file. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native file to the file. +

+
+

+ async_read_some_at +

+
+

+ Start an asynchronous read at the specified offset. +

+
+

+ async_write_some_at +

+
+

+ Start an asynchronous write at the specified offset. +

+
+

+ basic_random_access_file [constructor] +

+
+

+ Construct a basic_random_access_file without opening it.
+
Construct and open a basic_random_access_file.
+
Construct a basic_random_access_file on an existing native + file.

Move-construct a basic_random_access_file + from another.

Move-construct a basic_random_access_file + from a file of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the file. +

+
+

+ close +

+
+

+ Close the file. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the file is open. +

+
+

+ native_handle +

+
+

+ Get the native file representation. +

+
+

+ open +

+
+

+ Open the file using the specified path. +

+
+

+ operator= +

+
+

+ Move-assign a basic_random_access_file from another.
+
Move-assign a basic_random_access_file from a file of + another executor type. +

+
+

+ read_some_at +

+
+

+ Read some data from the handle at the specified offset. +

+
+

+ release +

+
+

+ Release ownership of the underlying native file. +

+
+

+ resize +

+
+

+ Alter the size of the file. +

+
+

+ size +

+
+

+ Get the size of the file. +

+
+

+ sync_all +

+
+

+ Synchronise the file to disk. +

+
+

+ sync_data +

+
+

+ Synchronise the file data to disk. +

+
+

+ write_some_at +

+
+

+ Write some data to the handle at the specified offset. +

+
+

+ ~basic_random_access_file [destructor] +

+
+

+ Destroys the file. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ append [static] +

+
+

+ Open the file in append mode. +

+
+

+ create [static] +

+
+

+ Create the file if it does not exist. +

+
+

+ exclusive [static] +

+
+

+ Ensure a new file is created. Must be combined with create. +

+
+

+ read_only [static] +

+
+

+ Open the file for reading. +

+
+

+ read_write [static] +

+
+

+ Open the file for reading and writing. +

+
+

+ sync_all_on_write [static] +

+
+

+ Open the file so that write operations automatically synchronise + the file data and metadata to disk. +

+
+

+ truncate [static] +

+
+

+ Open the file with any existing contents truncated. +

+
+

+ write_only [static] +

+
+

+ Open the file for writing. +

+
+

+ The basic_random_access_file class + template provides asynchronous and blocking random-access file functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+

+ Synchronous read_some_at + and write_some_at operations + are thread safe with respect to each other, if the underlying operating + system calls are also thread safe. This means that it is permitted to perform + concurrent calls to these synchronous operations on a single file object. + Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/basic_random_access_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket.html b/3party/asio/doc/asio/reference/basic_raw_socket.html new file mode 100644 index 0000000..0863890 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket.html @@ -0,0 +1,927 @@ + + + +basic_raw_socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides raw-oriented socket functionality. +

+
template<
+    typename Protocol,
+    typename Executor>
+class basic_raw_socket :
+  public basic_socket< Protocol, Executor >
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length of + the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, send_to, receive, + receive_from, connect, and shutdown + operations are thread safe with respect to each other, if the underlying + operating system calls are also thread safe. This means that it is permitted + to perform concurrent calls to these synchronous operations on a single socket + object. Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/basic_raw_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/_basic_raw_socket.html b/3party/asio/doc/asio/reference/basic_raw_socket/_basic_raw_socket.html new file mode 100644 index 0000000..a163d71 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/_basic_raw_socket.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/assign.html b/3party/asio/doc/asio/reference/basic_raw_socket/assign.html new file mode 100644 index 0000000..969bbaa --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/assign.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/assign/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/assign/overload1.html new file mode 100644 index 0000000..3336246 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/assign/overload1.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/assign/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/assign/overload2.html new file mode 100644 index 0000000..80e5770 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/assign/overload2.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/async_connect.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_connect.html new file mode 100644 index 0000000..5f7ded3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_connect.html @@ -0,0 +1,141 @@ + + + +basic_raw_socket::async_connect + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_socket. +

+

+ +Start + an asynchronous connect. +

+
template<
+    typename ConnectToken = DEFAULT>
+DEDUCED async_connect(
+    const endpoint_type & peer_endpoint,
+    ConnectToken && token = DEFAULT);
+
+

+ This function is used to asynchronously connect a socket to the specified + remote endpoint. It is an initiating function for an asynchronous + operation, and 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. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the connect completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void connect_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Connect succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::socket socket(my_context);
+asio::ip::tcp::endpoint endpoint(
+    asio::ip::address::from_string("1.2.3.4"), 12345);
+socket.async_connect(endpoint, connect_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_receive.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive.html new file mode 100644 index 0000000..d7510a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive.html @@ -0,0 +1,56 @@ + + + +basic_raw_socket::async_receive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous receive on a connected socket. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    socket_base::message_flags flags,
+    ReadToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_receive/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive/overload1.html new file mode 100644 index 0000000..7487bb9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive/overload1.html @@ -0,0 +1,139 @@ + + + +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 ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive data from the raw socket. + It is an initiating function for an asynchronous + operation, and 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 completion handler is + called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_receive/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive/overload2.html new file mode 100644 index 0000000..1a838d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive/overload2.html @@ -0,0 +1,130 @@ + + + +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 ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    socket_base::message_flags flags,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive data from the raw socket. + It is an initiating function for an asynchronous + operation, and 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 completion handler is + called. +

+
flags
+

+ Flags specifying how the receive call is to be made. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from.html new file mode 100644 index 0000000..4b2afbe --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from.html @@ -0,0 +1,58 @@ + + + +basic_raw_socket::async_receive_from + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive_from(
+    const MutableBufferSequence & buffers,
+    endpoint_type & sender_endpoint,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive_from(
+    const MutableBufferSequence & buffers,
+    endpoint_type & sender_endpoint,
+    socket_base::message_flags flags,
+    ReadToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload1.html new file mode 100644 index 0000000..6ebbd07 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload1.html @@ -0,0 +1,139 @@ + + + +basic_raw_socket::async_receive_from (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive_from(
+    const MutableBufferSequence & buffers,
+    endpoint_type & sender_endpoint,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive raw data. It is an initiating + function for an asynchronous + operation, and 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 completion 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 + completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload2.html new file mode 100644 index 0000000..17cd273 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload2.html @@ -0,0 +1,129 @@ + + + +basic_raw_socket::async_receive_from (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive_from(
+    const MutableBufferSequence & buffers,
+    endpoint_type & sender_endpoint,
+    socket_base::message_flags flags,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive raw data. It is an initiating + function for an asynchronous + operation, and 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 completion 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 + completion handler is called. +

+
flags
+

+ Flags specifying how the receive call is to be made. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_send.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_send.html new file mode 100644 index 0000000..504397e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_send.html @@ -0,0 +1,56 @@ + + + +basic_raw_socket::async_send + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous send on a connected socket. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+  » more...
+
+template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    socket_base::message_flags flags,
+    WriteToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_send/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_send/overload1.html new file mode 100644 index 0000000..0024607 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_send/overload1.html @@ -0,0 +1,137 @@ + + + +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 WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously send data on the raw socket. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the send completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_send/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_send/overload2.html new file mode 100644 index 0000000..fcaa707 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_send/overload2.html @@ -0,0 +1,128 @@ + + + +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 WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    socket_base::message_flags flags,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously send data on the raw socket. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
flags
+

+ Flags specifying how the send call is to be made. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the send completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_send_to.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_send_to.html new file mode 100644 index 0000000..0f04b93 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_send_to.html @@ -0,0 +1,58 @@ + + + +basic_raw_socket::async_send_to + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous send. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send_to(
+    const ConstBufferSequence & buffers,
+    const endpoint_type & destination,
+    WriteToken && token = DEFAULT);
+  » more...
+
+template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send_to(
+    const ConstBufferSequence & buffers,
+    const endpoint_type & destination,
+    socket_base::message_flags flags,
+    WriteToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload1.html new file mode 100644 index 0000000..5c08e0d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload1.html @@ -0,0 +1,139 @@ + + + +basic_raw_socket::async_send_to (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous send. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send_to(
+    const ConstBufferSequence & buffers,
+    const endpoint_type & destination,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously send raw data to the specified + remote endpoint. It is an initiating function for an asynchronous + operation, and 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 completion handler is + called. +

+
destination
+

+ The remote endpoint to which the data will be sent. Copies will + be made of the endpoint as required. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the send completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload2.html new file mode 100644 index 0000000..782e8c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload2.html @@ -0,0 +1,127 @@ + + + +basic_raw_socket::async_send_to (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous send. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send_to(
+    const ConstBufferSequence & buffers,
+    const endpoint_type & destination,
+    socket_base::message_flags flags,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously send raw data to the specified + remote endpoint. It is an initiating function for an asynchronous + operation, and 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 completion 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. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the send completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/async_wait.html b/3party/asio/doc/asio/reference/basic_raw_socket/async_wait.html new file mode 100644 index 0000000..0ade168 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/async_wait.html @@ -0,0 +1,136 @@ + + + +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 WaitToken = DEFAULT>
+DEDUCED async_wait(
+    wait_type w,
+    WaitToken && token = DEFAULT);
+
+

+ This function is used to perform an asynchronous wait for a socket to enter + a ready to read, write or error condition state. It is an initiating function + for an asynchronous operation, + and always returns immediately. +

+
+ + Parameters +
+
+

+
+
w
+

+ Specifies the desired socket state. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the wait completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void wait_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Wait succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::socket socket(my_context);
+...
+socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/at_mark.html b/3party/asio/doc/asio/reference/basic_raw_socket/at_mark.html new file mode 100644 index 0000000..e72d47b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/at_mark.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/at_mark/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/at_mark/overload1.html new file mode 100644 index 0000000..72a0150 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/at_mark/overload1.html @@ -0,0 +1,68 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/at_mark/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/at_mark/overload2.html new file mode 100644 index 0000000..2034953 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/at_mark/overload2.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/available.html b/3party/asio/doc/asio/reference/basic_raw_socket/available.html new file mode 100644 index 0000000..272c7f6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/available.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/available/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/available/overload1.html new file mode 100644 index 0000000..99a69ce --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/available/overload1.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/available/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/available/overload2.html new file mode 100644 index 0000000..786cb85 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/available/overload2.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket.html b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket.html new file mode 100644 index 0000000..9e5db44 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket.html @@ -0,0 +1,122 @@ + + + +basic_raw_socket::basic_raw_socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a basic_raw_socket + without opening it. +

+
explicit basic_raw_socket(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_raw_socket(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct and open a basic_raw_socket. +

+
basic_raw_socket(
+    const executor_type & ex,
+    const protocol_type & protocol);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_raw_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a basic_raw_socket, opening it and + binding it to the given local endpoint. +

+
basic_raw_socket(
+    const executor_type & ex,
+    const endpoint_type & endpoint);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_raw_socket(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct a basic_raw_socket on an existing + native socket. +

+
basic_raw_socket(
+    const executor_type & ex,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_raw_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » 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,
+    typename Executor1>
+basic_raw_socket(
+    basic_raw_socket< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload1.html new file mode 100644 index 0000000..2196bf7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload1.html @@ -0,0 +1,60 @@ + + + +basic_raw_socket::basic_raw_socket (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_raw_socket without opening + it. +

+
basic_raw_socket(
+    const executor_type & ex);
+
+

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

+
+
ex
+

+ The I/O executor that the socket will use, by default, to dispatch + handlers for any asynchronous operations performed on the socket. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload10.html b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload10.html new file mode 100644 index 0000000..d5f4e58 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload10.html @@ -0,0 +1,72 @@ + + + +basic_raw_socket::basic_raw_socket (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_raw_socket from a socket + of another protocol type. +

+
template<
+    typename Protocol1,
+    typename Executor1>
+basic_raw_socket(
+    basic_raw_socket< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload2.html new file mode 100644 index 0000000..bd58f76 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload2.html @@ -0,0 +1,64 @@ + + + +basic_raw_socket::basic_raw_socket (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_raw_socket without opening + it. +

+
template<
+    typename ExecutionContext>
+basic_raw_socket(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, to dispatch handlers for any asynchronous + operations performed on the socket. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload3.html b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload3.html new file mode 100644 index 0000000..f8a4f9b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload3.html @@ -0,0 +1,76 @@ + + + +basic_raw_socket::basic_raw_socket (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_raw_socket. +

+
basic_raw_socket(
+    const executor_type & ex,
+    const protocol_type & protocol);
+
+

+ This constructor creates and opens a raw socket. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload4.html b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload4.html new file mode 100644 index 0000000..71d8399 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload4.html @@ -0,0 +1,80 @@ + + + +basic_raw_socket::basic_raw_socket (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_raw_socket. +

+
template<
+    typename ExecutionContext>
+basic_raw_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates and opens a raw socket. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload5.html b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload5.html new file mode 100644 index 0000000..d2a796a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload5.html @@ -0,0 +1,80 @@ + + + +basic_raw_socket::basic_raw_socket (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_raw_socket, opening it + and binding it to the given local endpoint. +

+
basic_raw_socket(
+    const executor_type & ex,
+    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 +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload6.html b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload6.html new file mode 100644 index 0000000..57ec3b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload6.html @@ -0,0 +1,84 @@ + + + +basic_raw_socket::basic_raw_socket (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_raw_socket, opening it + and binding it to the given local endpoint. +

+
template<
+    typename ExecutionContext>
+basic_raw_socket(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload7.html b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload7.html new file mode 100644 index 0000000..0758c38 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload7.html @@ -0,0 +1,83 @@ + + + +basic_raw_socket::basic_raw_socket (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_raw_socket on an existing + native socket. +

+
basic_raw_socket(
+    const executor_type & ex,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket);
+
+

+ This constructor creates a raw socket object to hold an existing native + socket. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload8.html b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload8.html new file mode 100644 index 0000000..7dd099e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload8.html @@ -0,0 +1,87 @@ + + + +basic_raw_socket::basic_raw_socket (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_raw_socket on an existing + native socket. +

+
template<
+    typename ExecutionContext>
+basic_raw_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a raw socket object to hold an existing native + socket. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload9.html b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload9.html new file mode 100644 index 0000000..39cafa4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload9.html @@ -0,0 +1,67 @@ + + + +basic_raw_socket::basic_raw_socket (9 of 10 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/bind.html b/3party/asio/doc/asio/reference/basic_raw_socket/bind.html new file mode 100644 index 0000000..b91640d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/bind.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/bind/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/bind/overload1.html new file mode 100644 index 0000000..ec9ffec --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/bind/overload1.html @@ -0,0 +1,83 @@ + + + +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(my_context);
+socket.open(asio::ip::tcp::v4());
+socket.bind(asio::ip::tcp::endpoint(
+      asio::ip::tcp::v4(), 12345));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/bind/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/bind/overload2.html new file mode 100644 index 0000000..1dca443 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/bind/overload2.html @@ -0,0 +1,80 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_raw_socket/broadcast.html b/3party/asio/doc/asio/reference/basic_raw_socket/broadcast.html new file mode 100644 index 0000000..339e882 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/broadcast.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::broadcast option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_raw_socket/bytes_readable.html b/3party/asio/doc/asio/reference/basic_raw_socket/bytes_readable.html new file mode 100644 index 0000000..61571b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/bytes_readable.html @@ -0,0 +1,67 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_raw_socket/cancel.html b/3party/asio/doc/asio/reference/basic_raw_socket/cancel.html new file mode 100644 index 0000000..bf5ef71 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/cancel.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/cancel/overload1.html new file mode 100644 index 0000000..c166b89 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/cancel/overload1.html @@ -0,0 +1,104 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/cancel/overload2.html new file mode 100644 index 0000000..81d1c93 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/cancel/overload2.html @@ -0,0 +1,105 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/close.html b/3party/asio/doc/asio/reference/basic_raw_socket/close.html new file mode 100644 index 0000000..1a46a57 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/close.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/close/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/close/overload1.html new file mode 100644 index 0000000..ff09867 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/close/overload1.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/close/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/close/overload2.html new file mode 100644 index 0000000..64a0fa4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/close/overload2.html @@ -0,0 +1,84 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_raw_socket/connect.html b/3party/asio/doc/asio/reference/basic_raw_socket/connect.html new file mode 100644 index 0000000..c3fdf5c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/connect.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/connect/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/connect/overload1.html new file mode 100644 index 0000000..5af896a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/connect/overload1.html @@ -0,0 +1,89 @@ + + + +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(my_context);
+asio::ip::tcp::endpoint endpoint(
+    asio::ip::address::from_string("1.2.3.4"), 12345);
+socket.connect(endpoint);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/connect/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/connect/overload2.html new file mode 100644 index 0000000..39a4b8e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/connect/overload2.html @@ -0,0 +1,86 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_raw_socket/debug.html b/3party/asio/doc/asio/reference/basic_raw_socket/debug.html new file mode 100644 index 0000000..2263c84 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/debug.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::debug option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_raw_socket/do_not_route.html b/3party/asio/doc/asio/reference/basic_raw_socket/do_not_route.html new file mode 100644 index 0000000..42964f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/do_not_route.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::do_not_route option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_raw_socket/enable_connection_aborted.html b/3party/asio/doc/asio/reference/basic_raw_socket/enable_connection_aborted.html new file mode 100644 index 0000000..f517064 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/enable_connection_aborted.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+...
+asio::socket_base::enable_connection_aborted option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_raw_socket/endpoint_type.html b/3party/asio/doc/asio/reference/basic_raw_socket/endpoint_type.html new file mode 100644 index 0000000..0e2c8df --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/endpoint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/executor_type.html b/3party/asio/doc/asio/reference/basic_raw_socket/executor_type.html new file mode 100644 index 0000000..9a0eb1f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_raw_socket::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_raw_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/get_executor.html b/3party/asio/doc/asio/reference/basic_raw_socket/get_executor.html new file mode 100644 index 0000000..7aafa14 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/get_executor.html @@ -0,0 +1,44 @@ + + + +basic_raw_socket::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_socket. +

+

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/get_option.html b/3party/asio/doc/asio/reference/basic_raw_socket/get_option.html new file mode 100644 index 0000000..24dc0a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/get_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/get_option/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/get_option/overload1.html new file mode 100644 index 0000000..d1a021e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/get_option/overload1.html @@ -0,0 +1,88 @@ + + + +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(my_context);
+...
+asio::ip::tcp::socket::keep_alive option;
+socket.get_option(option);
+bool is_set = option.value();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/get_option/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/get_option/overload2.html new file mode 100644 index 0000000..33c49a9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/get_option/overload2.html @@ -0,0 +1,85 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_raw_socket/io_control.html b/3party/asio/doc/asio/reference/basic_raw_socket/io_control.html new file mode 100644 index 0000000..df7dbbe --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/io_control.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/io_control/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/io_control/overload1.html new file mode 100644 index 0000000..0501e29 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/io_control/overload1.html @@ -0,0 +1,88 @@ + + + +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(my_context);
+...
+asio::ip::tcp::socket::bytes_readable command;
+socket.io_control(command);
+std::size_t bytes_readable = command.get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/io_control/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/io_control/overload2.html new file mode 100644 index 0000000..3c952e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/io_control/overload2.html @@ -0,0 +1,85 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_raw_socket/is_open.html b/3party/asio/doc/asio/reference/basic_raw_socket/is_open.html new file mode 100644 index 0000000..a218a5f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/is_open.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/keep_alive.html b/3party/asio/doc/asio/reference/basic_raw_socket/keep_alive.html new file mode 100644 index 0000000..eb12d49 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/keep_alive.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::keep_alive option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_raw_socket/linger.html b/3party/asio/doc/asio/reference/basic_raw_socket/linger.html new file mode 100644 index 0000000..dbc3571 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/linger.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::socket_base::linger option(true, 30);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint.html b/3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint.html new file mode 100644 index 0000000..51b5008 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload1.html new file mode 100644 index 0000000..6ae0d2e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload1.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload2.html new file mode 100644 index 0000000..16dd47f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer.html b/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer.html new file mode 100644 index 0000000..b340508 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload1.html new file mode 100644 index 0000000..a66413e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload1.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload2.html new file mode 100644 index 0000000..8997eda --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload2.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer_type.html b/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer_type.html new file mode 100644 index 0000000..fd0ec95 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/lowest_layer_type.html @@ -0,0 +1,846 @@ + + + +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, Executor > lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_raw_socket/max_connections.html b/3party/asio/doc/asio/reference/basic_raw_socket/max_connections.html new file mode 100644 index 0000000..4281d73 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/max_connections.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/max_listen_connections.html b/3party/asio/doc/asio/reference/basic_raw_socket/max_listen_connections.html new file mode 100644 index 0000000..90b953b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/max_listen_connections.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/message_do_not_route.html b/3party/asio/doc/asio/reference/basic_raw_socket/message_do_not_route.html new file mode 100644 index 0000000..4adaad2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/message_do_not_route.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/message_end_of_record.html b/3party/asio/doc/asio/reference/basic_raw_socket/message_end_of_record.html new file mode 100644 index 0000000..18091f0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/message_end_of_record.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/message_flags.html b/3party/asio/doc/asio/reference/basic_raw_socket/message_flags.html new file mode 100644 index 0000000..23ce3a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/message_flags.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/message_out_of_band.html b/3party/asio/doc/asio/reference/basic_raw_socket/message_out_of_band.html new file mode 100644 index 0000000..9670d2f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/message_out_of_band.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/message_peek.html b/3party/asio/doc/asio/reference/basic_raw_socket/message_peek.html new file mode 100644 index 0000000..d25de87 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/message_peek.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/native_handle.html b/3party/asio/doc/asio/reference/basic_raw_socket/native_handle.html new file mode 100644 index 0000000..ddbe6fb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/native_handle.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/native_handle_type.html b/3party/asio/doc/asio/reference/basic_raw_socket/native_handle_type.html new file mode 100644 index 0000000..5db6195 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/native_handle_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking.html b/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking.html new file mode 100644 index 0000000..00e1473 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload1.html new file mode 100644 index 0000000..bcb15e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload1.html @@ -0,0 +1,143 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload2.html new file mode 100644 index 0000000..aab8aa0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload2.html @@ -0,0 +1,158 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload3.html new file mode 100644 index 0000000..006dfe3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload3.html @@ -0,0 +1,149 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking.html b/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking.html new file mode 100644 index 0000000..6ef9e86 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload1.html new file mode 100644 index 0000000..8d5b6f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload1.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload2.html new file mode 100644 index 0000000..b29dcef --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload2.html @@ -0,0 +1,82 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload3.html new file mode 100644 index 0000000..0b86378 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload3.html @@ -0,0 +1,74 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/open.html b/3party/asio/doc/asio/reference/basic_raw_socket/open.html new file mode 100644 index 0000000..ab11dd8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/open.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/open/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/open/overload1.html new file mode 100644 index 0000000..470b0da --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/open/overload1.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+socket.open(asio::ip::tcp::v4());
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/open/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/open/overload2.html new file mode 100644 index 0000000..1c6d144 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/open/overload2.html @@ -0,0 +1,77 @@ + + + +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(my_context);
+asio::error_code ec;
+socket.open(asio::ip::tcp::v4(), ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_.html b/3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_.html new file mode 100644 index 0000000..f5e39e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_.html @@ -0,0 +1,55 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_raw_socket & >::type operator=(
+    basic_raw_socket< Protocol1, Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload1.html new file mode 100644 index 0000000..97b0ec0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload1.html @@ -0,0 +1,67 @@ + + + +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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload2.html new file mode 100644 index 0000000..626b7d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload2.html @@ -0,0 +1,71 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_raw_socket & >::type operator=(
+    basic_raw_socket< Protocol1, Executor1 > && 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/out_of_band_inline.html b/3party/asio/doc/asio/reference/basic_raw_socket/out_of_band_inline.html new file mode 100644 index 0000000..2fb4250 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/out_of_band_inline.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::out_of_band_inline option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_raw_socket/protocol_type.html b/3party/asio/doc/asio/reference/basic_raw_socket/protocol_type.html new file mode 100644 index 0000000..0d70272 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/receive.html b/3party/asio/doc/asio/reference/basic_raw_socket/receive.html new file mode 100644 index 0000000..22ca7d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/receive.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/receive/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/receive/overload1.html new file mode 100644 index 0000000..570d01a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/receive/overload1.html @@ -0,0 +1,104 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/receive/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/receive/overload2.html new file mode 100644 index 0000000..48e06a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/receive/overload2.html @@ -0,0 +1,95 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/receive/overload3.html b/3party/asio/doc/asio/reference/basic_raw_socket/receive/overload3.html new file mode 100644 index 0000000..d7c4801 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/receive/overload3.html @@ -0,0 +1,87 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/receive_buffer_size.html b/3party/asio/doc/asio/reference/basic_raw_socket/receive_buffer_size.html new file mode 100644 index 0000000..c2cb066 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/receive_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_raw_socket/receive_from.html b/3party/asio/doc/asio/reference/basic_raw_socket/receive_from.html new file mode 100644 index 0000000..5563f82 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/receive_from.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload1.html new file mode 100644 index 0000000..b8fa674 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload1.html @@ -0,0 +1,103 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload2.html new file mode 100644 index 0000000..2beac0f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload2.html @@ -0,0 +1,92 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload3.html b/3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload3.html new file mode 100644 index 0000000..cf1ae55 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/receive_from/overload3.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/receive_low_watermark.html b/3party/asio/doc/asio/reference/basic_raw_socket/receive_low_watermark.html new file mode 100644 index 0000000..21c2159 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/receive_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_raw_socket/release.html b/3party/asio/doc/asio/reference/basic_raw_socket/release.html new file mode 100644 index 0000000..66ccf91 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/release.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/release/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/release/overload1.html new file mode 100644 index 0000000..632b9cc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/release/overload1.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/release/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/release/overload2.html new file mode 100644 index 0000000..1919f75 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/release/overload2.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint.html b/3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint.html new file mode 100644 index 0000000..dfb00bf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload1.html new file mode 100644 index 0000000..f69bcb1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload1.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload2.html new file mode 100644 index 0000000..744cd01 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/reuse_address.html b/3party/asio/doc/asio/reference/basic_raw_socket/reuse_address.html new file mode 100644 index 0000000..ad70f61 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/reuse_address.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::socket_base::reuse_address option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_raw_socket/send.html b/3party/asio/doc/asio/reference/basic_raw_socket/send.html new file mode 100644 index 0000000..ba86ac9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/send.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/send/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/send/overload1.html new file mode 100644 index 0000000..1be9af4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/send/overload1.html @@ -0,0 +1,103 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/send/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/send/overload2.html new file mode 100644 index 0000000..ab07083 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/send/overload2.html @@ -0,0 +1,94 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/send/overload3.html b/3party/asio/doc/asio/reference/basic_raw_socket/send/overload3.html new file mode 100644 index 0000000..80e149c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/send/overload3.html @@ -0,0 +1,86 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/send_buffer_size.html b/3party/asio/doc/asio/reference/basic_raw_socket/send_buffer_size.html new file mode 100644 index 0000000..92792f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/send_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_raw_socket/send_low_watermark.html b/3party/asio/doc/asio/reference/basic_raw_socket/send_low_watermark.html new file mode 100644 index 0000000..2d1e2ef --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/send_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_raw_socket/send_to.html b/3party/asio/doc/asio/reference/basic_raw_socket/send_to.html new file mode 100644 index 0000000..193b236 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/send_to.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload1.html new file mode 100644 index 0000000..1ff5fa8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload1.html @@ -0,0 +1,103 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload2.html new file mode 100644 index 0000000..679f9dd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload2.html @@ -0,0 +1,92 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload3.html b/3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload3.html new file mode 100644 index 0000000..0fd4ba5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/send_to/overload3.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/set_option.html b/3party/asio/doc/asio/reference/basic_raw_socket/set_option.html new file mode 100644 index 0000000..89d7a1b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/set_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/set_option/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/set_option/overload1.html new file mode 100644 index 0000000..bb48b25 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/set_option/overload1.html @@ -0,0 +1,87 @@ + + + +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(my_context);
+...
+asio::ip::tcp::no_delay option(true);
+socket.set_option(option);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/set_option/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/set_option/overload2.html new file mode 100644 index 0000000..1cafaab --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/set_option/overload2.html @@ -0,0 +1,84 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_raw_socket/shutdown.html b/3party/asio/doc/asio/reference/basic_raw_socket/shutdown.html new file mode 100644 index 0000000..a83d032 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/shutdown.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/shutdown/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/shutdown/overload1.html new file mode 100644 index 0000000..aa4b0e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/shutdown/overload1.html @@ -0,0 +1,85 @@ + + + +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(my_context);
+...
+socket.shutdown(asio::ip::tcp::socket::shutdown_send);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/shutdown/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/shutdown/overload2.html new file mode 100644 index 0000000..3c3caba --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/shutdown/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/shutdown_type.html b/3party/asio/doc/asio/reference/basic_raw_socket/shutdown_type.html new file mode 100644 index 0000000..d36ec2d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/shutdown_type.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/wait.html b/3party/asio/doc/asio/reference/basic_raw_socket/wait.html new file mode 100644 index 0000000..f9e2c4e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/wait.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket/wait/overload1.html b/3party/asio/doc/asio/reference/basic_raw_socket/wait/overload1.html new file mode 100644 index 0000000..a6bc2d1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/wait/overload1.html @@ -0,0 +1,73 @@ + + + +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(my_context);
+...
+socket.wait(asio::ip::tcp::socket::wait_read);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/wait/overload2.html b/3party/asio/doc/asio/reference/basic_raw_socket/wait/overload2.html new file mode 100644 index 0000000..d390584 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/wait/overload2.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+socket.wait(asio::ip::tcp::socket::wait_read, ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket/wait_type.html b/3party/asio/doc/asio/reference/basic_raw_socket/wait_type.html new file mode 100644 index 0000000..40c9a45 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket/wait_type.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/basic_raw_socket__rebind_executor.html b/3party/asio/doc/asio/reference/basic_raw_socket__rebind_executor.html new file mode 100644 index 0000000..54bedb6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_raw_socket::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the socket type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The socket type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_raw_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_raw_socket__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_raw_socket__rebind_executor/other.html new file mode 100644 index 0000000..144d5f2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_raw_socket__rebind_executor/other.html @@ -0,0 +1,924 @@ + + + +basic_raw_socket::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + socket type when rebound to the specified executor. +

+
typedef basic_raw_socket< Protocol, Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, send_to, receive, + receive_from, connect, and shutdown + operations are thread safe with respect to each other, if the underlying + operating system calls are also thread safe. This means that it is permitted + to perform concurrent calls to these synchronous operations on a single + socket object. Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/basic_raw_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe.html b/3party/asio/doc/asio/reference/basic_readable_pipe.html new file mode 100644 index 0000000..e96f89d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe.html @@ -0,0 +1,328 @@ + + + +basic_readable_pipe + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides pipe functionality. +

+
template<
+    typename Executor = any_io_executor>
+class basic_readable_pipe
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the pipe type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_readable_pipe is always the lowest layer. +

+
+

+ native_handle_type +

+
+

+ The native representation of a pipe. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native pipe to the pipe. +

+
+

+ async_read_some +

+
+

+ Start an asynchronous read. +

+
+

+ basic_readable_pipe [constructor] +

+
+

+ Construct a basic_readable_pipe without opening it.

+ Construct a basic_readable_pipe on an existing native pipe.
+
Move-construct a basic_readable_pipe from another.
+
Move-construct a basic_readable_pipe from a pipe of another + executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the pipe. +

+
+

+ close +

+
+

+ Close the pipe. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the pipe is open. +

+
+

+ lowest_layer +

+
+

+ Get a reference to the lowest layer.

Get a const + reference to the lowest layer. +

+
+

+ native_handle +

+
+

+ Get the native pipe representation. +

+
+

+ operator= +

+
+

+ Move-assign a basic_readable_pipe from another.

Move-assign + a basic_readable_pipe from a pipe of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the pipe. +

+
+

+ release +

+
+

+ Release ownership of the underlying native pipe. +

+
+

+ ~basic_readable_pipe [destructor] +

+
+

+ Destroys the pipe. +

+
+

+ The basic_readable_pipe + class provides a wrapper over pipe functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_readable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/_basic_readable_pipe.html b/3party/asio/doc/asio/reference/basic_readable_pipe/_basic_readable_pipe.html new file mode 100644 index 0000000..1b96414 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/_basic_readable_pipe.html @@ -0,0 +1,45 @@ + + + +basic_readable_pipe::~basic_readable_pipe + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destroys + the pipe. +

+
~basic_readable_pipe();
+
+

+ This function destroys the pipe, cancelling any outstanding asynchronous + wait operations associated with the pipe as if by calling cancel. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/assign.html b/3party/asio/doc/asio/reference/basic_readable_pipe/assign.html new file mode 100644 index 0000000..2796fb4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/assign.html @@ -0,0 +1,48 @@ + + + +basic_readable_pipe::assign + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign + an existing native pipe to the pipe. +

+
void assign(
+    const native_handle_type & native_pipe);
+  » more...
+
+void assign(
+    const native_handle_type & native_pipe,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/assign/overload1.html b/3party/asio/doc/asio/reference/basic_readable_pipe/assign/overload1.html new file mode 100644 index 0000000..6705b33 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/assign/overload1.html @@ -0,0 +1,41 @@ + + + +basic_readable_pipe::assign (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assign an existing native pipe to the pipe. +

+
void assign(
+    const native_handle_type & native_pipe);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/assign/overload2.html b/3party/asio/doc/asio/reference/basic_readable_pipe/assign/overload2.html new file mode 100644 index 0000000..0ad7979 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/assign/overload2.html @@ -0,0 +1,42 @@ + + + +basic_readable_pipe::assign (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assign an existing native pipe to the pipe. +

+
void assign(
+    const native_handle_type & native_pipe,
+    asio::error_code & ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/async_read_some.html b/3party/asio/doc/asio/reference/basic_readable_pipe/async_read_some.html new file mode 100644 index 0000000..bfdc368 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/async_read_some.html @@ -0,0 +1,123 @@ + + + +basic_readable_pipe::async_read_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous read. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_some(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read data from the pipe. It is + an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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: +

+
basic_readable_pipe.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/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe.html b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe.html new file mode 100644 index 0000000..df4d2f6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe.html @@ -0,0 +1,86 @@ + + + +basic_readable_pipe::basic_readable_pipe + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a basic_readable_pipe + without opening it. +

+
explicit basic_readable_pipe(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_readable_pipe(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a basic_readable_pipe on an existing + native pipe. +

+
basic_readable_pipe(
+    const executor_type & ex,
+    const native_handle_type & native_pipe);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_readable_pipe(
+    ExecutionContext & context,
+    const native_handle_type & native_pipe,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct a basic_readable_pipe from another. +

+
basic_readable_pipe(
+    basic_readable_pipe && other);
+  » more...
+
+

+ Move-construct a basic_readable_pipe from a pipe + of another executor type. +

+
template<
+    typename Executor1>
+basic_readable_pipe(
+    basic_readable_pipe< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload1.html b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload1.html new file mode 100644 index 0000000..095a1c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload1.html @@ -0,0 +1,59 @@ + + + +basic_readable_pipe::basic_readable_pipe (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_readable_pipe without + opening it. +

+
basic_readable_pipe(
+    const executor_type & ex);
+
+

+ This constructor creates a pipe without opening it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the pipe will use, by default, to dispatch + handlers for any asynchronous operations performed on the pipe. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload2.html b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload2.html new file mode 100644 index 0000000..efb531a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload2.html @@ -0,0 +1,63 @@ + + + +basic_readable_pipe::basic_readable_pipe (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_readable_pipe without + opening it. +

+
template<
+    typename ExecutionContext>
+basic_readable_pipe(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates a pipe without opening it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the pipe + will use, by default, to dispatch handlers for any asynchronous + operations performed on the pipe. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload3.html b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload3.html new file mode 100644 index 0000000..12f4c65 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload3.html @@ -0,0 +1,77 @@ + + + +basic_readable_pipe::basic_readable_pipe (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_readable_pipe on an existing + native pipe. +

+
basic_readable_pipe(
+    const executor_type & ex,
+    const native_handle_type & native_pipe);
+
+

+ This constructor creates a pipe object to hold an existing native pipe. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the pipe will use, by default, to dispatch + handlers for any asynchronous operations performed on the pipe. +

+
native_pipe
+

+ A native pipe. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload4.html b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload4.html new file mode 100644 index 0000000..dae8823 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload4.html @@ -0,0 +1,81 @@ + + + +basic_readable_pipe::basic_readable_pipe (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_readable_pipe on an existing + native pipe. +

+
template<
+    typename ExecutionContext>
+basic_readable_pipe(
+    ExecutionContext & context,
+    const native_handle_type & native_pipe,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a pipe object to hold an existing native pipe. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the pipe + will use, by default, to dispatch handlers for any asynchronous + operations performed on the pipe. +

+
native_pipe
+

+ A native pipe. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload5.html b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload5.html new file mode 100644 index 0000000..cb21d10 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload5.html @@ -0,0 +1,67 @@ + + + +basic_readable_pipe::basic_readable_pipe (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_readable_pipe from another. +

+
basic_readable_pipe(
+    basic_readable_pipe && other);
+
+

+ This constructor moves a pipe from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_readable_pipe 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_readable_pipe(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload6.html b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload6.html new file mode 100644 index 0000000..58fdb05 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload6.html @@ -0,0 +1,71 @@ + + + +basic_readable_pipe::basic_readable_pipe (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_readable_pipe from a pipe + of another executor type. +

+
template<
+    typename Executor1>
+basic_readable_pipe(
+    basic_readable_pipe< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves a pipe from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_readable_pipe 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_readable_pipe(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/cancel.html b/3party/asio/doc/asio/reference/basic_readable_pipe/cancel.html new file mode 100644 index 0000000..c8ec46c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/cancel.html @@ -0,0 +1,46 @@ + + + +basic_readable_pipe::cancel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Cancel + all asynchronous operations associated with the pipe. +

+
void cancel();
+  » more...
+
+void cancel(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_readable_pipe/cancel/overload1.html new file mode 100644 index 0000000..7b34373 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/cancel/overload1.html @@ -0,0 +1,58 @@ + + + +basic_readable_pipe::cancel (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Cancel all asynchronous operations associated with the pipe. +

+
void cancel();
+
+

+ This function causes all outstanding asynchronous read 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/3party/asio/doc/asio/reference/basic_readable_pipe/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_readable_pipe/cancel/overload2.html new file mode 100644 index 0000000..85053de --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/cancel/overload2.html @@ -0,0 +1,59 @@ + + + +basic_readable_pipe::cancel (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Cancel all asynchronous operations associated with the pipe. +

+
void cancel(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous read 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/3party/asio/doc/asio/reference/basic_readable_pipe/close.html b/3party/asio/doc/asio/reference/basic_readable_pipe/close.html new file mode 100644 index 0000000..bda78a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/close.html @@ -0,0 +1,46 @@ + + + +basic_readable_pipe::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close the + pipe. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/close/overload1.html b/3party/asio/doc/asio/reference/basic_readable_pipe/close/overload1.html new file mode 100644 index 0000000..9958276 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/close/overload1.html @@ -0,0 +1,57 @@ + + + +basic_readable_pipe::close (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Close the pipe. +

+
void close();
+
+

+ This function is used to close the pipe. Any asynchronous read 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/3party/asio/doc/asio/reference/basic_readable_pipe/close/overload2.html b/3party/asio/doc/asio/reference/basic_readable_pipe/close/overload2.html new file mode 100644 index 0000000..89aa0a3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/close/overload2.html @@ -0,0 +1,58 @@ + + + +basic_readable_pipe::close (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Close the pipe. +

+
void close(
+    asio::error_code & ec);
+
+

+ This function is used to close the pipe. Any asynchronous read 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/3party/asio/doc/asio/reference/basic_readable_pipe/executor_type.html b/3party/asio/doc/asio/reference/basic_readable_pipe/executor_type.html new file mode 100644 index 0000000..c346cd1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_readable_pipe::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_readable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/get_executor.html b/3party/asio/doc/asio/reference/basic_readable_pipe/get_executor.html new file mode 100644 index 0000000..3ab72aa --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/get_executor.html @@ -0,0 +1,41 @@ + + + +basic_readable_pipe::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/is_open.html b/3party/asio/doc/asio/reference/basic_readable_pipe/is_open.html new file mode 100644 index 0000000..cb4077a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/is_open.html @@ -0,0 +1,41 @@ + + + +basic_readable_pipe::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the pipe is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer.html b/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer.html new file mode 100644 index 0000000..1116c9c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer.html @@ -0,0 +1,48 @@ + + + +basic_readable_pipe::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/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer/overload1.html new file mode 100644 index 0000000..c1b0b9c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer/overload1.html @@ -0,0 +1,54 @@ + + + +basic_readable_pipe::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_readable_pipe 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/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer/overload2.html new file mode 100644 index 0000000..dfc6953 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer/overload2.html @@ -0,0 +1,54 @@ + + + +basic_readable_pipe::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_readable_pipe 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/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer_type.html b/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer_type.html new file mode 100644 index 0000000..41e8baf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/lowest_layer_type.html @@ -0,0 +1,327 @@ + + + +basic_readable_pipe::lowest_layer_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + basic_readable_pipe + is always the lowest layer. +

+
typedef basic_readable_pipe lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the pipe type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_readable_pipe is always the lowest layer. +

+
+

+ native_handle_type +

+
+

+ The native representation of a pipe. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native pipe to the pipe. +

+
+

+ async_read_some +

+
+

+ Start an asynchronous read. +

+
+

+ basic_readable_pipe [constructor] +

+
+

+ Construct a basic_readable_pipe without opening it.

+ Construct a basic_readable_pipe on an existing native pipe. +

Move-construct a basic_readable_pipe from another. +

Move-construct a basic_readable_pipe from a pipe + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the pipe. +

+
+

+ close +

+
+

+ Close the pipe. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the pipe is open. +

+
+

+ lowest_layer +

+
+

+ Get a reference to the lowest layer.

Get a const + reference to the lowest layer. +

+
+

+ native_handle +

+
+

+ Get the native pipe representation. +

+
+

+ operator= +

+
+

+ Move-assign a basic_readable_pipe from another.

+ Move-assign a basic_readable_pipe from a pipe of another executor + type. +

+
+

+ read_some +

+
+

+ Read some data from the pipe. +

+
+

+ release +

+
+

+ Release ownership of the underlying native pipe. +

+
+

+ ~basic_readable_pipe [destructor] +

+
+

+ Destroys the pipe. +

+
+

+ The basic_readable_pipe + class provides a wrapper over pipe functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_readable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/native_handle.html b/3party/asio/doc/asio/reference/basic_readable_pipe/native_handle.html new file mode 100644 index 0000000..d2d1735 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/native_handle.html @@ -0,0 +1,46 @@ + + + +basic_readable_pipe::native_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the native pipe representation. +

+
native_handle_type native_handle();
+
+

+ This function may be used to obtain the underlying representation of the + pipe. This is intended to allow access to native pipe functionality that + is not otherwise provided. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/native_handle_type.html b/3party/asio/doc/asio/reference/basic_readable_pipe/native_handle_type.html new file mode 100644 index 0000000..1c15aba --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/native_handle_type.html @@ -0,0 +1,51 @@ + + + +basic_readable_pipe::native_handle_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + native representation of a pipe. +

+
typedef implementation_defined native_handle_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_readable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_.html b/3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_.html new file mode 100644 index 0000000..f93518b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_.html @@ -0,0 +1,54 @@ + + + +basic_readable_pipe::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a basic_readable_pipe + from another. +

+
basic_readable_pipe & operator=(
+    basic_readable_pipe && other);
+  » more...
+
+

+ Move-assign a basic_readable_pipe from a pipe + of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_readable_pipe & >::type operator=(
+    basic_readable_pipe< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_/overload1.html new file mode 100644 index 0000000..779d010 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_/overload1.html @@ -0,0 +1,67 @@ + + + +basic_readable_pipe::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_readable_pipe from another. +

+
basic_readable_pipe & operator=(
+    basic_readable_pipe && other);
+
+

+ This assignment operator moves a pipe from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_readable_pipe 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_readable_pipe(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_/overload2.html new file mode 100644 index 0000000..bd81161 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/operator_eq_/overload2.html @@ -0,0 +1,70 @@ + + + +basic_readable_pipe::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_readable_pipe from a pipe + of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_readable_pipe & >::type operator=(
+    basic_readable_pipe< Executor1 > && other);
+
+

+ This assignment operator moves a pipe from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_readable_pipe 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_readable_pipe(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/read_some.html b/3party/asio/doc/asio/reference/basic_readable_pipe/read_some.html new file mode 100644 index 0000000..98e64ff --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/read_some.html @@ -0,0 +1,52 @@ + + + +basic_readable_pipe::read_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Read + some data from the pipe. +

+
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/3party/asio/doc/asio/reference/basic_readable_pipe/read_some/overload1.html b/3party/asio/doc/asio/reference/basic_readable_pipe/read_some/overload1.html new file mode 100644 index 0000000..77fc476 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/read_some/overload1.html @@ -0,0 +1,107 @@ + + + +basic_readable_pipe::read_some (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read some data from the pipe. +

+
template<
+    typename MutableBufferSequence>
+std::size_t read_some(
+    const MutableBufferSequence & buffers);
+
+

+ This function is used to read data from the pipe. 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: +

+
basic_readable_pipe.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/3party/asio/doc/asio/reference/basic_readable_pipe/read_some/overload2.html b/3party/asio/doc/asio/reference/basic_readable_pipe/read_some/overload2.html new file mode 100644 index 0000000..4aabaca --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/read_some/overload2.html @@ -0,0 +1,84 @@ + + + +basic_readable_pipe::read_some (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read some data from the pipe. +

+
template<
+    typename MutableBufferSequence>
+std::size_t read_some(
+    const MutableBufferSequence & buffers,
+    asio::error_code & ec);
+
+

+ This function is used to read data from the pipe. 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/3party/asio/doc/asio/reference/basic_readable_pipe/release.html b/3party/asio/doc/asio/reference/basic_readable_pipe/release.html new file mode 100644 index 0000000..2a76ee1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/release.html @@ -0,0 +1,46 @@ + + + +basic_readable_pipe::release + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Release + ownership of the underlying native pipe. +

+
native_handle_type release();
+  » more...
+
+native_handle_type release(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe/release/overload1.html b/3party/asio/doc/asio/reference/basic_readable_pipe/release/overload1.html new file mode 100644 index 0000000..94e89b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/release/overload1.html @@ -0,0 +1,68 @@ + + + +basic_readable_pipe::release (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Release ownership of the underlying native pipe. +

+
native_handle_type release();
+
+

+ This function causes all outstanding asynchronous read operations to + finish immediately, and the handlers for cancelled operations will be + passed the asio::error::operation_aborted error. Ownership + of the native pipe 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/3party/asio/doc/asio/reference/basic_readable_pipe/release/overload2.html b/3party/asio/doc/asio/reference/basic_readable_pipe/release/overload2.html new file mode 100644 index 0000000..e2bd0b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe/release/overload2.html @@ -0,0 +1,69 @@ + + + +basic_readable_pipe::release (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Release ownership of the underlying native pipe. +

+
native_handle_type release(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous read operations to + finish immediately, and the handlers for cancelled operations will be + passed the asio::error::operation_aborted error. Ownership + of the native pipe 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/3party/asio/doc/asio/reference/basic_readable_pipe__rebind_executor.html b/3party/asio/doc/asio/reference/basic_readable_pipe__rebind_executor.html new file mode 100644 index 0000000..6436745 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_readable_pipe::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the pipe type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The pipe type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_readable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_readable_pipe__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_readable_pipe__rebind_executor/other.html new file mode 100644 index 0000000..c99e463 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_readable_pipe__rebind_executor/other.html @@ -0,0 +1,326 @@ + + + +basic_readable_pipe::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + pipe type when rebound to the specified executor. +

+
typedef basic_readable_pipe< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the pipe type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_readable_pipe is always the lowest layer. +

+
+

+ native_handle_type +

+
+

+ The native representation of a pipe. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native pipe to the pipe. +

+
+

+ async_read_some +

+
+

+ Start an asynchronous read. +

+
+

+ basic_readable_pipe [constructor] +

+
+

+ Construct a basic_readable_pipe without opening it.

+ Construct a basic_readable_pipe on an existing native pipe. +

Move-construct a basic_readable_pipe from another. +

Move-construct a basic_readable_pipe from a pipe + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the pipe. +

+
+

+ close +

+
+

+ Close the pipe. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the pipe is open. +

+
+

+ lowest_layer +

+
+

+ Get a reference to the lowest layer.

Get a const + reference to the lowest layer. +

+
+

+ native_handle +

+
+

+ Get the native pipe representation. +

+
+

+ operator= +

+
+

+ Move-assign a basic_readable_pipe from another.

+ Move-assign a basic_readable_pipe from a pipe of another executor + type. +

+
+

+ read_some +

+
+

+ Read some data from the pipe. +

+
+

+ release +

+
+

+ Release ownership of the underlying native pipe. +

+
+

+ ~basic_readable_pipe [destructor] +

+
+

+ Destroys the pipe. +

+
+

+ The basic_readable_pipe + class provides a wrapper over pipe functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_readable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket.html new file mode 100644 index 0000000..749cd07 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket.html @@ -0,0 +1,880 @@ + + + +basic_seq_packet_socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides sequenced packet socket functionality. +

+
template<
+    typename Protocol,
+    typename Executor>
+class basic_seq_packet_socket :
+  public basic_socket< Protocol, Executor >
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length of + the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, receive, connect, + and shutdown operations are + thread safe with respect to each other, if the underlying operating system + calls are also thread safe. This means that it is permitted to perform concurrent + calls to these synchronous operations on a single socket object. Other synchronous + operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/basic_seq_packet_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html new file mode 100644 index 0000000..d8d0028 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/assign.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/assign.html new file mode 100644 index 0000000..860e526 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/assign.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload1.html new file mode 100644 index 0000000..77644cc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload1.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload2.html new file mode 100644 index 0000000..7ca3401 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload2.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_connect.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_connect.html new file mode 100644 index 0000000..948d6e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_connect.html @@ -0,0 +1,141 @@ + + + +basic_seq_packet_socket::async_connect + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_socket. +

+

+ +Start + an asynchronous connect. +

+
template<
+    typename ConnectToken = DEFAULT>
+DEDUCED async_connect(
+    const endpoint_type & peer_endpoint,
+    ConnectToken && token = DEFAULT);
+
+

+ This function is used to asynchronously connect a socket to the specified + remote endpoint. It is an initiating function for an asynchronous + operation, and 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. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the connect completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void connect_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Connect succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::socket socket(my_context);
+asio::ip::tcp::endpoint endpoint(
+    asio::ip::address::from_string("1.2.3.4"), 12345);
+socket.async_connect(endpoint, connect_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive.html new file mode 100644 index 0000000..10d687d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive.html @@ -0,0 +1,58 @@ + + + +basic_seq_packet_socket::async_receive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    socket_base::message_flags & out_flags,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    socket_base::message_flags in_flags,
+    socket_base::message_flags & out_flags,
+    ReadToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload1.html new file mode 100644 index 0000000..2550d37 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload1.html @@ -0,0 +1,139 @@ + + + +basic_seq_packet_socket::async_receive (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    socket_base::message_flags & out_flags,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive data from the sequenced + packet socket. It is an initiating function for an asynchronous + operation, and 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 completion 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload2.html new file mode 100644 index 0000000..2988b6e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload2.html @@ -0,0 +1,146 @@ + + + +basic_seq_packet_socket::async_receive (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    socket_base::message_flags in_flags,
+    socket_base::message_flags & out_flags,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive data from the sequenced + data socket. It is an initiating function for an asynchronous + operation, and 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 completion 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_send.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_send.html new file mode 100644 index 0000000..68423d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_send.html @@ -0,0 +1,137 @@ + + + +basic_seq_packet_socket::async_send + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous send. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    socket_base::message_flags flags,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously send data on the sequenced packet + socket. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
flags
+

+ Flags specifying how the send call is to be made. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the send completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_wait.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_wait.html new file mode 100644 index 0000000..8a9ea28 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/async_wait.html @@ -0,0 +1,136 @@ + + + +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 WaitToken = DEFAULT>
+DEDUCED async_wait(
+    wait_type w,
+    WaitToken && token = DEFAULT);
+
+

+ This function is used to perform an asynchronous wait for a socket to enter + a ready to read, write or error condition state. It is an initiating function + for an asynchronous operation, + and always returns immediately. +

+
+ + Parameters +
+
+

+
+
w
+

+ Specifies the desired socket state. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the wait completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void wait_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Wait succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::socket socket(my_context);
+...
+socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark.html new file mode 100644 index 0000000..ac2b4d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload1.html new file mode 100644 index 0000000..c8cd3af --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload1.html @@ -0,0 +1,68 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload2.html new file mode 100644 index 0000000..b77307a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload2.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/available.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/available.html new file mode 100644 index 0000000..79dcbc1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/available.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/available/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/available/overload1.html new file mode 100644 index 0000000..e6caacd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/available/overload1.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/available/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/available/overload2.html new file mode 100644 index 0000000..f86ee4a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/available/overload2.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html new file mode 100644 index 0000000..36f0b76 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html @@ -0,0 +1,122 @@ + + + +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(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_seq_packet_socket(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct and open a basic_seq_packet_socket. +

+
basic_seq_packet_socket(
+    const executor_type & ex,
+    const protocol_type & protocol);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_seq_packet_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a basic_seq_packet_socket, opening + it and binding it to the given local endpoint. +

+
basic_seq_packet_socket(
+    const executor_type & ex,
+    const endpoint_type & endpoint);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_seq_packet_socket(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct a basic_seq_packet_socket on an + existing native socket. +

+
basic_seq_packet_socket(
+    const executor_type & ex,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_seq_packet_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » 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,
+    typename Executor1>
+basic_seq_packet_socket(
+    basic_seq_packet_socket< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html new file mode 100644 index 0000000..ac166a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html @@ -0,0 +1,61 @@ + + + +basic_seq_packet_socket::basic_seq_packet_socket (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_seq_packet_socket without + opening it. +

+
basic_seq_packet_socket(
+    const executor_type & ex);
+
+

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

+
+
ex
+

+ The I/O executor that the socket will use, by default, to dispatch + handlers for any asynchronous operations performed on the socket. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload10.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload10.html new file mode 100644 index 0000000..ce57047 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload10.html @@ -0,0 +1,72 @@ + + + +basic_seq_packet_socket::basic_seq_packet_socket (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_seq_packet_socket from + a socket of another protocol type. +

+
template<
+    typename Protocol1,
+    typename Executor1>
+basic_seq_packet_socket(
+    basic_seq_packet_socket< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html new file mode 100644 index 0000000..2031c6d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html @@ -0,0 +1,65 @@ + + + +basic_seq_packet_socket::basic_seq_packet_socket (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_seq_packet_socket without + opening it. +

+
template<
+    typename ExecutionContext>
+basic_seq_packet_socket(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, to dispatch handlers for any asynchronous + operations performed on the socket. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html new file mode 100644 index 0000000..4eaa37f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html @@ -0,0 +1,78 @@ + + + +basic_seq_packet_socket::basic_seq_packet_socket (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_seq_packet_socket. +

+
basic_seq_packet_socket(
+    const executor_type & ex,
+    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 +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html new file mode 100644 index 0000000..126abf9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html @@ -0,0 +1,82 @@ + + + +basic_seq_packet_socket::basic_seq_packet_socket (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_seq_packet_socket. +

+
template<
+    typename ExecutionContext>
+basic_seq_packet_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html new file mode 100644 index 0000000..b6a40fd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html @@ -0,0 +1,80 @@ + + + +basic_seq_packet_socket::basic_seq_packet_socket (5 of 10 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(
+    const executor_type & ex,
+    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 +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html new file mode 100644 index 0000000..a089134 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html @@ -0,0 +1,84 @@ + + + +basic_seq_packet_socket::basic_seq_packet_socket (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_seq_packet_socket, opening + it and binding it to the given local endpoint. +

+
template<
+    typename ExecutionContext>
+basic_seq_packet_socket(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload7.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload7.html new file mode 100644 index 0000000..391d367 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload7.html @@ -0,0 +1,83 @@ + + + +basic_seq_packet_socket::basic_seq_packet_socket (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_seq_packet_socket on an + existing native socket. +

+
basic_seq_packet_socket(
+    const executor_type & ex,
+    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 +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload8.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload8.html new file mode 100644 index 0000000..22c6c77 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload8.html @@ -0,0 +1,87 @@ + + + +basic_seq_packet_socket::basic_seq_packet_socket (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_seq_packet_socket on an + existing native socket. +

+
template<
+    typename ExecutionContext>
+basic_seq_packet_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a sequenced packet socket object to hold an + existing native socket. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload9.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload9.html new file mode 100644 index 0000000..af63686 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload9.html @@ -0,0 +1,68 @@ + + + +basic_seq_packet_socket::basic_seq_packet_socket (9 of 10 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/bind.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/bind.html new file mode 100644 index 0000000..899e5bd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/bind.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload1.html new file mode 100644 index 0000000..9faa7d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload1.html @@ -0,0 +1,83 @@ + + + +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(my_context);
+socket.open(asio::ip::tcp::v4());
+socket.bind(asio::ip::tcp::endpoint(
+      asio::ip::tcp::v4(), 12345));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload2.html new file mode 100644 index 0000000..a6c902d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload2.html @@ -0,0 +1,80 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/broadcast.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/broadcast.html new file mode 100644 index 0000000..5ab7182 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/broadcast.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::broadcast option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/bytes_readable.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/bytes_readable.html new file mode 100644 index 0000000..1e4b0d0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/bytes_readable.html @@ -0,0 +1,67 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel.html new file mode 100644 index 0000000..11c3c6f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload1.html new file mode 100644 index 0000000..6df2231 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload1.html @@ -0,0 +1,104 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload2.html new file mode 100644 index 0000000..547ceab --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload2.html @@ -0,0 +1,105 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/close.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/close.html new file mode 100644 index 0000000..a368c50 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/close.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/close/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/close/overload1.html new file mode 100644 index 0000000..7d5d5fb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/close/overload1.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/close/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/close/overload2.html new file mode 100644 index 0000000..4184cda --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/close/overload2.html @@ -0,0 +1,84 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/connect.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/connect.html new file mode 100644 index 0000000..ce7af04 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/connect.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload1.html new file mode 100644 index 0000000..690270a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload1.html @@ -0,0 +1,89 @@ + + + +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(my_context);
+asio::ip::tcp::endpoint endpoint(
+    asio::ip::address::from_string("1.2.3.4"), 12345);
+socket.connect(endpoint);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload2.html new file mode 100644 index 0000000..d764a68 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload2.html @@ -0,0 +1,86 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/debug.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/debug.html new file mode 100644 index 0000000..87c332a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/debug.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::debug option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/do_not_route.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/do_not_route.html new file mode 100644 index 0000000..0d7ea72 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/do_not_route.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::do_not_route option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/enable_connection_aborted.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/enable_connection_aborted.html new file mode 100644 index 0000000..34303b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/enable_connection_aborted.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+...
+asio::socket_base::enable_connection_aborted option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/endpoint_type.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/endpoint_type.html new file mode 100644 index 0000000..cd9d1dc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/endpoint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/executor_type.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/executor_type.html new file mode 100644 index 0000000..7214a0a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_seq_packet_socket::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_seq_packet_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_executor.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_executor.html new file mode 100644 index 0000000..25642ce --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_executor.html @@ -0,0 +1,44 @@ + + + +basic_seq_packet_socket::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_socket. +

+

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option.html new file mode 100644 index 0000000..31a9839 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html new file mode 100644 index 0000000..8918bd8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html @@ -0,0 +1,88 @@ + + + +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(my_context);
+...
+asio::ip::tcp::socket::keep_alive option;
+socket.get_option(option);
+bool is_set = option.value();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html new file mode 100644 index 0000000..2e7de5e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html @@ -0,0 +1,85 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control.html new file mode 100644 index 0000000..948ad9b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html new file mode 100644 index 0000000..a6b7ca2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html @@ -0,0 +1,88 @@ + + + +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(my_context);
+...
+asio::ip::tcp::socket::bytes_readable command;
+socket.io_control(command);
+std::size_t bytes_readable = command.get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload2.html new file mode 100644 index 0000000..54d24b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload2.html @@ -0,0 +1,85 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/is_open.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/is_open.html new file mode 100644 index 0000000..8b00758 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/is_open.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/keep_alive.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/keep_alive.html new file mode 100644 index 0000000..e3318bb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/keep_alive.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::keep_alive option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/linger.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/linger.html new file mode 100644 index 0000000..09f0855 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/linger.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+...
+asio::socket_base::linger option(true, 30);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint.html new file mode 100644 index 0000000..219bd49 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html new file mode 100644 index 0000000..03c6267 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html new file mode 100644 index 0000000..3f96e97 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer.html new file mode 100644 index 0000000..48616f1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html new file mode 100644 index 0000000..3e49d8c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html new file mode 100644 index 0000000..7e060d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer_type.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer_type.html new file mode 100644 index 0000000..1b1a0be --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer_type.html @@ -0,0 +1,846 @@ + + + +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, Executor > lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_seq_packet_socket/max_connections.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/max_connections.html new file mode 100644 index 0000000..ee3c9dd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/max_connections.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/max_listen_connections.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/max_listen_connections.html new file mode 100644 index 0000000..b225375 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/max_listen_connections.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_do_not_route.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_do_not_route.html new file mode 100644 index 0000000..1fc4734 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_do_not_route.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_end_of_record.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_end_of_record.html new file mode 100644 index 0000000..b4cbde7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_end_of_record.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_flags.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_flags.html new file mode 100644 index 0000000..a4183a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_flags.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_out_of_band.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_out_of_band.html new file mode 100644 index 0000000..5542a48 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_out_of_band.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_peek.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_peek.html new file mode 100644 index 0000000..a8b10e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/message_peek.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_handle.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_handle.html new file mode 100644 index 0000000..0abf35e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_handle.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_handle_type.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_handle_type.html new file mode 100644 index 0000000..e8aafc9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_handle_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking.html new file mode 100644 index 0000000..e4bb214 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html new file mode 100644 index 0000000..b344979 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html @@ -0,0 +1,143 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html new file mode 100644 index 0000000..80dd7fd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html @@ -0,0 +1,158 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html new file mode 100644 index 0000000..d431999 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html @@ -0,0 +1,149 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking.html new file mode 100644 index 0000000..f518376 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload1.html new file mode 100644 index 0000000..1f666d9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload1.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload2.html new file mode 100644 index 0000000..c52b702 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload2.html @@ -0,0 +1,82 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload3.html new file mode 100644 index 0000000..dfcaa6e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload3.html @@ -0,0 +1,74 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/open.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/open.html new file mode 100644 index 0000000..ad16e37 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/open.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/open/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/open/overload1.html new file mode 100644 index 0000000..9e55236 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/open/overload1.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+socket.open(asio::ip::tcp::v4());
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/open/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/open/overload2.html new file mode 100644 index 0000000..aae1775 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/open/overload2.html @@ -0,0 +1,77 @@ + + + +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(my_context);
+asio::error_code ec;
+socket.open(asio::ip::tcp::v4(), ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_.html new file mode 100644 index 0000000..5df46ef --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_.html @@ -0,0 +1,54 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_seq_packet_socket & >::type operator=(
+    basic_seq_packet_socket< Protocol1, Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html new file mode 100644 index 0000000..91ea76c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html @@ -0,0 +1,69 @@ + + + +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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html new file mode 100644 index 0000000..670afbb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html @@ -0,0 +1,72 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_seq_packet_socket & >::type operator=(
+    basic_seq_packet_socket< Protocol1, Executor1 > && 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/out_of_band_inline.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/out_of_band_inline.html new file mode 100644 index 0000000..c8be5a6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/out_of_band_inline.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::out_of_band_inline option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/protocol_type.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/protocol_type.html new file mode 100644 index 0000000..05be54b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive.html new file mode 100644 index 0000000..df388d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive.html @@ -0,0 +1,66 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload1.html new file mode 100644 index 0000000..f8522d1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload1.html @@ -0,0 +1,104 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload2.html new file mode 100644 index 0000000..27ee55d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload2.html @@ -0,0 +1,119 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload3.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload3.html new file mode 100644 index 0000000..214208c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload3.html @@ -0,0 +1,96 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive_buffer_size.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive_buffer_size.html new file mode 100644 index 0000000..2c72cbe --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive_low_watermark.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive_low_watermark.html new file mode 100644 index 0000000..7ad53e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/receive_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/release.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/release.html new file mode 100644 index 0000000..6f4645e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/release.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/release/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/release/overload1.html new file mode 100644 index 0000000..4dbb78b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/release/overload1.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/release/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/release/overload2.html new file mode 100644 index 0000000..32524c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/release/overload2.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint.html new file mode 100644 index 0000000..0b2720b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html new file mode 100644 index 0000000..2270b24 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html new file mode 100644 index 0000000..70d15a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/reuse_address.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/reuse_address.html new file mode 100644 index 0000000..43cf91f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/reuse_address.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::socket_base::reuse_address option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/send.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/send.html new file mode 100644 index 0000000..72b9fdd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/send.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/send/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/send/overload1.html new file mode 100644 index 0000000..0c5715d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/send/overload1.html @@ -0,0 +1,101 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/send/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/send/overload2.html new file mode 100644 index 0000000..ab51897 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/send/overload2.html @@ -0,0 +1,89 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/send_buffer_size.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/send_buffer_size.html new file mode 100644 index 0000000..27cb667 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/send_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/send_low_watermark.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/send_low_watermark.html new file mode 100644 index 0000000..d583e77 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/send_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option.html new file mode 100644 index 0000000..e7cd92d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload1.html new file mode 100644 index 0000000..d508499 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload1.html @@ -0,0 +1,87 @@ + + + +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(my_context);
+...
+asio::ip::tcp::no_delay option(true);
+socket.set_option(option);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload2.html new file mode 100644 index 0000000..b712ad4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload2.html @@ -0,0 +1,84 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown.html new file mode 100644 index 0000000..6a03705 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload1.html new file mode 100644 index 0000000..a218246 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload1.html @@ -0,0 +1,85 @@ + + + +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(my_context);
+...
+socket.shutdown(asio::ip::tcp::socket::shutdown_send);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload2.html new file mode 100644 index 0000000..c5d35e9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown_type.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown_type.html new file mode 100644 index 0000000..abc07a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/shutdown_type.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait.html new file mode 100644 index 0000000..a94e39d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload1.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload1.html new file mode 100644 index 0000000..9484f81 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload1.html @@ -0,0 +1,73 @@ + + + +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(my_context);
+...
+socket.wait(asio::ip::tcp::socket::wait_read);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload2.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload2.html new file mode 100644 index 0000000..0b6b5dd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload2.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+socket.wait(asio::ip::tcp::socket::wait_read, ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait_type.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait_type.html new file mode 100644 index 0000000..3fa0259 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket/wait_type.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/basic_seq_packet_socket__rebind_executor.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket__rebind_executor.html new file mode 100644 index 0000000..5fcf49b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_seq_packet_socket::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the socket type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The socket type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_seq_packet_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_seq_packet_socket__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_seq_packet_socket__rebind_executor/other.html new file mode 100644 index 0000000..e4c1402 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_seq_packet_socket__rebind_executor/other.html @@ -0,0 +1,878 @@ + + + +basic_seq_packet_socket::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + socket type when rebound to the specified executor. +

+
typedef basic_seq_packet_socket< Protocol, Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, receive, connect, + and shutdown operations + are thread safe with respect to each other, if the underlying operating + system calls are also thread safe. This means that it is permitted to perform + concurrent calls to these synchronous operations on a single socket object. + Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/basic_seq_packet_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port.html b/3party/asio/doc/asio/reference/basic_serial_port.html new file mode 100644 index 0000000..35d8e5a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port.html @@ -0,0 +1,390 @@ + + + +basic_serial_port + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides serial port functionality. +

+
template<
+    typename Executor = any_io_executor>
+class basic_serial_port :
+  public serial_port_base
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the serial port type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_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. +

+
+

+ basic_serial_port [constructor] +

+
+

+ Construct a basic_serial_port without opening it.

+ Construct and open a basic_serial_port.

Construct + a basic_serial_port on an existing native serial port.
+
Move-construct a basic_serial_port from another.
+
Move-construct a basic_serial_port from a serial port of + another executor type. +

+
+

+ 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_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 basic_serial_port from another.

Move-assign + a basic_serial_port from a serial port of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the serial port. +

+
+

+ send_break +

+
+

+ Send a break sequence to the serial port. +

+
+

+ set_option +

+
+

+ Set an option on the serial port. +

+
+

+ write_some +

+
+

+ Write some data to the serial port. +

+
+

+ ~basic_serial_port [destructor] +

+
+

+ Destroys the serial port. +

+
+

+ The basic_serial_port + class provides a wrapper over serial port functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_serial_port.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/_basic_serial_port.html b/3party/asio/doc/asio/reference/basic_serial_port/_basic_serial_port.html new file mode 100644 index 0000000..66552d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/_basic_serial_port.html @@ -0,0 +1,45 @@ + + + +basic_serial_port::~basic_serial_port + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destroys + the serial port. +

+
~basic_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/3party/asio/doc/asio/reference/basic_serial_port/assign.html b/3party/asio/doc/asio/reference/basic_serial_port/assign.html new file mode 100644 index 0000000..920b093 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/assign.html @@ -0,0 +1,48 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/assign/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/assign/overload1.html new file mode 100644 index 0000000..c7fc487 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/assign/overload1.html @@ -0,0 +1,41 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/assign/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/assign/overload2.html new file mode 100644 index 0000000..54a76b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/assign/overload2.html @@ -0,0 +1,42 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/async_read_some.html b/3party/asio/doc/asio/reference/basic_serial_port/async_read_some.html new file mode 100644 index 0000000..06edd68 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/async_read_some.html @@ -0,0 +1,143 @@ + + + +basic_serial_port::async_read_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous read. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_some(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read data from the serial port. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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: +

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

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/async_write_some.html b/3party/asio/doc/asio/reference/basic_serial_port/async_write_some.html new file mode 100644 index 0000000..e372b83 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/async_write_some.html @@ -0,0 +1,143 @@ + + + +basic_serial_port::async_write_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous write. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_some(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write data to the serial port. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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: +

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

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port.html b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port.html new file mode 100644 index 0000000..4ea8342 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port.html @@ -0,0 +1,115 @@ + + + +basic_serial_port::basic_serial_port + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a basic_serial_port + without opening it. +

+
explicit basic_serial_port(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_serial_port(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct and open a basic_serial_port. +

+
basic_serial_port(
+    const executor_type & ex,
+    const char * device);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_serial_port(
+    ExecutionContext & context,
+    const char * device,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+basic_serial_port(
+    const executor_type & ex,
+    const std::string & device);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_serial_port(
+    ExecutionContext & context,
+    const std::string & device,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct a basic_serial_port on an existing + native serial port. +

+
basic_serial_port(
+    const executor_type & ex,
+    const native_handle_type & native_serial_port);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_serial_port(
+    ExecutionContext & context,
+    const native_handle_type & native_serial_port,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct a basic_serial_port from another. +

+
basic_serial_port(
+    basic_serial_port && other);
+  » more...
+
+

+ Move-construct a basic_serial_port from a serial + port of another executor type. +

+
template<
+    typename Executor1>
+basic_serial_port(
+    basic_serial_port< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload1.html new file mode 100644 index 0000000..6645d07 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload1.html @@ -0,0 +1,60 @@ + + + +basic_serial_port::basic_serial_port (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_serial_port without opening + it. +

+
basic_serial_port(
+    const executor_type & ex);
+
+

+ This constructor creates a serial port without opening it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the serial port will use, by default, to + dispatch handlers for any asynchronous operations performed on + the serial port. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload10.html b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload10.html new file mode 100644 index 0000000..969ed27 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload10.html @@ -0,0 +1,71 @@ + + + +basic_serial_port::basic_serial_port (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_serial_port from a serial + port of another executor type. +

+
template<
+    typename Executor1>
+basic_serial_port(
+    basic_serial_port< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves a serial port from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_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 basic_serial_port(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload2.html new file mode 100644 index 0000000..4ab993f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload2.html @@ -0,0 +1,63 @@ + + + +basic_serial_port::basic_serial_port (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_serial_port without opening + it. +

+
template<
+    typename ExecutionContext>
+basic_serial_port(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates a serial port without opening it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the serial + port will use, by default, to dispatch handlers for any asynchronous + operations performed on the serial port. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload3.html b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload3.html new file mode 100644 index 0000000..dee45b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload3.html @@ -0,0 +1,65 @@ + + + +basic_serial_port::basic_serial_port (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_serial_port. +

+
basic_serial_port(
+    const executor_type & ex,
+    const char * device);
+
+

+ This constructor creates and opens a serial port for the specified device + name. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the serial port will use, by default, to + dispatch handlers for any asynchronous operations performed on + the serial port. +

+
device
+

+ The platform-specific device name for this serial port. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload4.html b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload4.html new file mode 100644 index 0000000..9afc40e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload4.html @@ -0,0 +1,68 @@ + + + +basic_serial_port::basic_serial_port (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_serial_port. +

+
template<
+    typename ExecutionContext>
+basic_serial_port(
+    ExecutionContext & context,
+    const char * device,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates and opens a serial port for the specified device + name. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the serial + port will use, by default, to dispatch handlers for any asynchronous + operations performed on the serial port. +

+
device
+

+ The platform-specific device name for this serial port. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload5.html b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload5.html new file mode 100644 index 0000000..4a962bc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload5.html @@ -0,0 +1,65 @@ + + + +basic_serial_port::basic_serial_port (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_serial_port. +

+
basic_serial_port(
+    const executor_type & ex,
+    const std::string & device);
+
+

+ This constructor creates and opens a serial port for the specified device + name. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the serial port will use, by default, to + dispatch handlers for any asynchronous operations performed on + the serial port. +

+
device
+

+ The platform-specific device name for this serial port. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload6.html b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload6.html new file mode 100644 index 0000000..35fb829 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload6.html @@ -0,0 +1,68 @@ + + + +basic_serial_port::basic_serial_port (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_serial_port. +

+
template<
+    typename ExecutionContext>
+basic_serial_port(
+    ExecutionContext & context,
+    const std::string & device,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates and opens a serial port for the specified device + name. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the serial + port will use, by default, to dispatch handlers for any asynchronous + operations performed on the serial port. +

+
device
+

+ The platform-specific device name for this serial port. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload7.html b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload7.html new file mode 100644 index 0000000..8590639 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload7.html @@ -0,0 +1,79 @@ + + + +basic_serial_port::basic_serial_port (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_serial_port on an existing + native serial port. +

+
basic_serial_port(
+    const executor_type & ex,
+    const native_handle_type & native_serial_port);
+
+

+ This constructor creates a serial port object to hold an existing native + serial port. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the serial port will use, by default, to + dispatch handlers for any asynchronous operations performed on + the serial port. +

+
native_serial_port
+

+ A native serial port. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload8.html b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload8.html new file mode 100644 index 0000000..4d55144 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload8.html @@ -0,0 +1,82 @@ + + + +basic_serial_port::basic_serial_port (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_serial_port on an existing + native serial port. +

+
template<
+    typename ExecutionContext>
+basic_serial_port(
+    ExecutionContext & context,
+    const native_handle_type & native_serial_port,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a serial port object to hold an existing native + serial port. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the serial + port will use, by default, to dispatch handlers for any asynchronous + operations performed on the serial port. +

+
native_serial_port
+

+ A native serial port. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload9.html b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload9.html new file mode 100644 index 0000000..1dc5909 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/basic_serial_port/overload9.html @@ -0,0 +1,67 @@ + + + +basic_serial_port::basic_serial_port (9 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_serial_port from another. +

+
basic_serial_port(
+    basic_serial_port && other);
+
+

+ This constructor moves a serial port from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_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 basic_serial_port(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/cancel.html b/3party/asio/doc/asio/reference/basic_serial_port/cancel.html new file mode 100644 index 0000000..80b43d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/cancel.html @@ -0,0 +1,46 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/cancel/overload1.html new file mode 100644 index 0000000..85de20a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/cancel/overload1.html @@ -0,0 +1,58 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/cancel/overload2.html new file mode 100644 index 0000000..82f24ea --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/cancel/overload2.html @@ -0,0 +1,59 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/close.html b/3party/asio/doc/asio/reference/basic_serial_port/close.html new file mode 100644 index 0000000..7b2cd1c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/close.html @@ -0,0 +1,46 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/close/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/close/overload1.html new file mode 100644 index 0000000..eb1f446 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/close/overload1.html @@ -0,0 +1,58 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/close/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/close/overload2.html new file mode 100644 index 0000000..d6008d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/close/overload2.html @@ -0,0 +1,59 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/executor_type.html b/3party/asio/doc/asio/reference/basic_serial_port/executor_type.html new file mode 100644 index 0000000..e201b21 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_serial_port::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_serial_port.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/get_executor.html b/3party/asio/doc/asio/reference/basic_serial_port/get_executor.html new file mode 100644 index 0000000..21135bb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/get_executor.html @@ -0,0 +1,41 @@ + + + +basic_serial_port::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/get_option.html b/3party/asio/doc/asio/reference/basic_serial_port/get_option.html new file mode 100644 index 0000000..e21cfd0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/get_option.html @@ -0,0 +1,52 @@ + + + +basic_serial_port::get_option + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + an option from the serial port. +

+
template<
+    typename GettableSerialPortOption>
+void get_option(
+    GettableSerialPortOption & option) const;
+  » more...
+
+template<
+    typename GettableSerialPortOption>
+void get_option(
+    GettableSerialPortOption & option,
+    asio::error_code & ec) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/get_option/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/get_option/overload1.html new file mode 100644 index 0000000..2437074 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/get_option/overload1.html @@ -0,0 +1,73 @@ + + + +basic_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) const;
+
+

+ 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/3party/asio/doc/asio/reference/basic_serial_port/get_option/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/get_option/overload2.html new file mode 100644 index 0000000..a91774d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/get_option/overload2.html @@ -0,0 +1,65 @@ + + + +basic_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) const;
+
+

+ 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/3party/asio/doc/asio/reference/basic_serial_port/is_open.html b/3party/asio/doc/asio/reference/basic_serial_port/is_open.html new file mode 100644 index 0000000..a5d10d9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/is_open.html @@ -0,0 +1,41 @@ + + + +basic_serial_port::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the serial port is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer.html b/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer.html new file mode 100644 index 0000000..d39f741 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer.html @@ -0,0 +1,48 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer/overload1.html new file mode 100644 index 0000000..9e54f1b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer/overload1.html @@ -0,0 +1,54 @@ + + + +basic_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 basic_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/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer/overload2.html new file mode 100644 index 0000000..076b76a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer/overload2.html @@ -0,0 +1,54 @@ + + + +basic_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 basic_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/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer_type.html b/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer_type.html new file mode 100644 index 0000000..3a51810 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/lowest_layer_type.html @@ -0,0 +1,387 @@ + + + +basic_serial_port::lowest_layer_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + basic_basic_serial_port is always the lowest layer. +

+
typedef basic_serial_port lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the serial port type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_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. +

+
+

+ basic_serial_port [constructor] +

+
+

+ Construct a basic_serial_port without opening it.

+ Construct and open a basic_serial_port.

Construct + a basic_serial_port on an existing native serial port.
+
Move-construct a basic_serial_port from another.
+
Move-construct a basic_serial_port from a serial port + of another executor type. +

+
+

+ 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_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 basic_serial_port from another.

Move-assign + a basic_serial_port from a serial port of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the serial port. +

+
+

+ send_break +

+
+

+ Send a break sequence to the serial port. +

+
+

+ set_option +

+
+

+ Set an option on the serial port. +

+
+

+ write_some +

+
+

+ Write some data to the serial port. +

+
+

+ ~basic_serial_port [destructor] +

+
+

+ Destroys the serial port. +

+
+

+ The basic_serial_port + class provides a wrapper over serial port functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_serial_port.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/native_handle.html b/3party/asio/doc/asio/reference/basic_serial_port/native_handle.html new file mode 100644 index 0000000..6055eb3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/native_handle.html @@ -0,0 +1,46 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/native_handle_type.html b/3party/asio/doc/asio/reference/basic_serial_port/native_handle_type.html new file mode 100644 index 0000000..bbe0390 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/native_handle_type.html @@ -0,0 +1,51 @@ + + + +basic_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/basic_serial_port.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/open.html b/3party/asio/doc/asio/reference/basic_serial_port/open.html new file mode 100644 index 0000000..d8590b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/open.html @@ -0,0 +1,48 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/open/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/open/overload1.html new file mode 100644 index 0000000..179e708 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/open/overload1.html @@ -0,0 +1,70 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/open/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/open/overload2.html new file mode 100644 index 0000000..a1b6b5b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/open/overload2.html @@ -0,0 +1,63 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/operator_eq_.html b/3party/asio/doc/asio/reference/basic_serial_port/operator_eq_.html new file mode 100644 index 0000000..46e8407 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/operator_eq_.html @@ -0,0 +1,54 @@ + + + +basic_serial_port::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a basic_serial_port + from another. +

+
basic_serial_port & operator=(
+    basic_serial_port && other);
+  » more...
+
+

+ Move-assign a basic_serial_port from a serial + port of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_serial_port & >::type operator=(
+    basic_serial_port< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/operator_eq_/overload1.html new file mode 100644 index 0000000..857df86 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/operator_eq_/overload1.html @@ -0,0 +1,67 @@ + + + +basic_serial_port::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_serial_port from another. +

+
basic_serial_port & operator=(
+    basic_serial_port && other);
+
+

+ This assignment operator moves a serial port from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_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 basic_serial_port(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/operator_eq_/overload2.html new file mode 100644 index 0000000..dae83af --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/operator_eq_/overload2.html @@ -0,0 +1,70 @@ + + + +basic_serial_port::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_serial_port from a serial + port of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_serial_port & >::type operator=(
+    basic_serial_port< Executor1 > && other);
+
+

+ This assignment operator moves a serial port from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_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 basic_serial_port(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port/read_some.html b/3party/asio/doc/asio/reference/basic_serial_port/read_some.html new file mode 100644 index 0000000..2635fd9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/read_some.html @@ -0,0 +1,52 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/read_some/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/read_some/overload1.html new file mode 100644 index 0000000..79bebdd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/read_some/overload1.html @@ -0,0 +1,107 @@ + + + +basic_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: +

+
basic_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/3party/asio/doc/asio/reference/basic_serial_port/read_some/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/read_some/overload2.html new file mode 100644 index 0000000..4292ba7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/read_some/overload2.html @@ -0,0 +1,84 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/send_break.html b/3party/asio/doc/asio/reference/basic_serial_port/send_break.html new file mode 100644 index 0000000..f227f6b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/send_break.html @@ -0,0 +1,46 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/send_break/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/send_break/overload1.html new file mode 100644 index 0000000..8c7d5aa --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/send_break/overload1.html @@ -0,0 +1,57 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/send_break/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/send_break/overload2.html new file mode 100644 index 0000000..79182c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/send_break/overload2.html @@ -0,0 +1,58 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/set_option.html b/3party/asio/doc/asio/reference/basic_serial_port/set_option.html new file mode 100644 index 0000000..3e93661 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/set_option.html @@ -0,0 +1,52 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/set_option/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/set_option/overload1.html new file mode 100644 index 0000000..ef936ba --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/set_option/overload1.html @@ -0,0 +1,72 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/set_option/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/set_option/overload2.html new file mode 100644 index 0000000..c36c660 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/set_option/overload2.html @@ -0,0 +1,64 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/write_some.html b/3party/asio/doc/asio/reference/basic_serial_port/write_some.html new file mode 100644 index 0000000..88c4520 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/write_some.html @@ -0,0 +1,52 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port/write_some/overload1.html b/3party/asio/doc/asio/reference/basic_serial_port/write_some/overload1.html new file mode 100644 index 0000000..4a8203a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/write_some/overload1.html @@ -0,0 +1,106 @@ + + + +basic_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: +

+
basic_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/3party/asio/doc/asio/reference/basic_serial_port/write_some/overload2.html b/3party/asio/doc/asio/reference/basic_serial_port/write_some/overload2.html new file mode 100644 index 0000000..44a7f5b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port/write_some/overload2.html @@ -0,0 +1,83 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_serial_port__rebind_executor.html b/3party/asio/doc/asio/reference/basic_serial_port__rebind_executor.html new file mode 100644 index 0000000..19cd3e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_serial_port::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the serial port type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The serial port type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_serial_port.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_serial_port__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_serial_port__rebind_executor/other.html new file mode 100644 index 0000000..5efc05c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_serial_port__rebind_executor/other.html @@ -0,0 +1,387 @@ + + + +basic_serial_port::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + serial port type when rebound to the specified executor. +

+
typedef basic_serial_port< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the serial port type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_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. +

+
+

+ basic_serial_port [constructor] +

+
+

+ Construct a basic_serial_port without opening it.

+ Construct and open a basic_serial_port.

Construct + a basic_serial_port on an existing native serial port.
+
Move-construct a basic_serial_port from another.
+
Move-construct a basic_serial_port from a serial port + of another executor type. +

+
+

+ 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_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 basic_serial_port from another.

Move-assign + a basic_serial_port from a serial port of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the serial port. +

+
+

+ send_break +

+
+

+ Send a break sequence to the serial port. +

+
+

+ set_option +

+
+

+ Set an option on the serial port. +

+
+

+ write_some +

+
+

+ Write some data to the serial port. +

+
+

+ ~basic_serial_port [destructor] +

+
+

+ Destroys the serial port. +

+
+

+ The basic_serial_port + class provides a wrapper over serial port functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_serial_port.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set.html b/3party/asio/doc/asio/reference/basic_signal_set.html new file mode 100644 index 0000000..07e6cba --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set.html @@ -0,0 +1,336 @@ + + + +basic_signal_set + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides signal functionality. +

+
template<
+    typename Executor = any_io_executor>
+class basic_signal_set :
+  public signal_set_base
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the signal set type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ flags +

+
+

+ Enumeration representing the different types of flags that may + specified when adding a signal to a set. +

+
+

+ flags_t +

+
+

+ Portability typedef. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ add +

+
+

+ Add a signal to a signal_set.

Add a signal to a signal_set + with the specified flags. +

+
+

+ async_wait +

+
+

+ Start an asynchronous operation to wait for a signal to be delivered. +

+
+

+ basic_signal_set [constructor] +

+
+

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

+
+

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

+
+

+ remove +

+
+

+ Remove a signal from a signal_set. +

+
+

+ ~basic_signal_set [destructor] +

+
+

+ Destroys the signal set. +

+
+

+ The basic_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(my_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/basic_signal_set.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/_basic_signal_set.html b/3party/asio/doc/asio/reference/basic_signal_set/_basic_signal_set.html new file mode 100644 index 0000000..9e60d91 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/_basic_signal_set.html @@ -0,0 +1,45 @@ + + + +basic_signal_set::~basic_signal_set + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destroys + the signal set. +

+
~basic_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/3party/asio/doc/asio/reference/basic_signal_set/add.html b/3party/asio/doc/asio/reference/basic_signal_set/add.html new file mode 100644 index 0000000..63a98a6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/add.html @@ -0,0 +1,62 @@ + + + +basic_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...
+
+

+ Add a signal to a signal_set with the specified flags. +

+
void add(
+    int signal_number,
+    flags_t f);
+  » more...
+
+void add(
+    int signal_number,
+    flags_t f,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/add/overload1.html b/3party/asio/doc/asio/reference/basic_signal_set/add/overload1.html new file mode 100644 index 0000000..e4082c9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/add/overload1.html @@ -0,0 +1,71 @@ + + + +basic_signal_set::add (1 of 4 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/3party/asio/doc/asio/reference/basic_signal_set/add/overload2.html b/3party/asio/doc/asio/reference/basic_signal_set/add/overload2.html new file mode 100644 index 0000000..51fc226 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/add/overload2.html @@ -0,0 +1,63 @@ + + + +basic_signal_set::add (2 of 4 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/3party/asio/doc/asio/reference/basic_signal_set/add/overload3.html b/3party/asio/doc/asio/reference/basic_signal_set/add/overload3.html new file mode 100644 index 0000000..7ad542c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/add/overload3.html @@ -0,0 +1,87 @@ + + + +basic_signal_set::add (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Add a signal to a signal_set with the specified flags. +

+
void add(
+    int signal_number,
+    flags_t f);
+
+

+ This function adds the specified signal to the set. It has no effect + if the signal is already in the set. +

+

+ Flags other than flags::dont_care require OS support for the sigaction call, and this function will + fail with error::operation_not_supported if this is + unavailable. +

+

+ The specified flags will conflict with a prior, active registration of + the same signal, if either specified a flags value other than flags::dont_care. + In this case, the add + will fail with error::invalid_argument. +

+
+ + Parameters +
+
+

+
+
signal_number
+

+ The signal to be added to the set. +

+
f
+

+ Flags to modify the behaviour of the specified signal. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/add/overload4.html b/3party/asio/doc/asio/reference/basic_signal_set/add/overload4.html new file mode 100644 index 0000000..330c156 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/add/overload4.html @@ -0,0 +1,79 @@ + + + +basic_signal_set::add (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Add a signal to a signal_set with the specified flags. +

+
void add(
+    int signal_number,
+    flags_t f,
+    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. +

+

+ Flags other than flags::dont_care require OS support for the sigaction call, and this function will + fail with error::operation_not_supported if this is + unavailable. +

+

+ The specified flags will conflict with a prior, active registration of + the same signal, if either specified a flags value other than flags::dont_care. + In this case, the add + will fail with error::invalid_argument. +

+
+ + Parameters +
+
+

+
+
signal_number
+

+ The signal to be added to the set. +

+
f
+

+ Flags to modify the behaviour of the specified signal. +

+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/async_wait.html b/3party/asio/doc/asio/reference/basic_signal_set/async_wait.html new file mode 100644 index 0000000..e1a4a13 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/async_wait.html @@ -0,0 +1,122 @@ + + + +basic_signal_set::async_wait + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous operation to wait for a signal to be delivered. +

+
template<
+    typename SignalToken = DEFAULT>
+DEDUCED async_wait(
+    SignalToken && token = DEFAULT);
+
+

+ This function may be used to initiate an asynchronous wait against the + signal set. It is an initiating function for an asynchronous + operation, and always returns immediately. +

+

+ For each call to async_wait(), the completion handler will be called + exactly once. The completion 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 +
+
+

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the wait completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, int)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set.html b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set.html new file mode 100644 index 0000000..e98be81 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set.html @@ -0,0 +1,104 @@ + + + +basic_signal_set::basic_signal_set + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a signal set without adding any signals. +

+
explicit basic_signal_set(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_signal_set(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a signal set and add one signal. +

+
basic_signal_set(
+    const executor_type & ex,
+    int signal_number_1);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_signal_set(
+    ExecutionContext & context,
+    int signal_number_1,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a signal set and add two signals. +

+
basic_signal_set(
+    const executor_type & ex,
+    int signal_number_1,
+    int signal_number_2);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_signal_set(
+    ExecutionContext & context,
+    int signal_number_1,
+    int signal_number_2,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a signal set and add three signals. +

+
basic_signal_set(
+    const executor_type & ex,
+    int signal_number_1,
+    int signal_number_2,
+    int signal_number_3);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_signal_set(
+    ExecutionContext & context,
+    int signal_number_1,
+    int signal_number_2,
+    int signal_number_3,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload1.html b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload1.html new file mode 100644 index 0000000..2bc97bf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload1.html @@ -0,0 +1,59 @@ + + + +basic_signal_set::basic_signal_set (1 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a signal set without adding any signals. +

+
basic_signal_set(
+    const executor_type & ex);
+
+

+ This constructor creates a signal set without registering for any signals. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the signal set will use, by default, to dispatch + handlers for any asynchronous operations performed on the signal + set. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload2.html b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload2.html new file mode 100644 index 0000000..6b992f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload2.html @@ -0,0 +1,62 @@ + + + +basic_signal_set::basic_signal_set (2 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a signal set without adding any signals. +

+
template<
+    typename ExecutionContext>
+basic_signal_set(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates a signal set without registering for any signals. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the signal + set will use, by default, to dispatch handlers for any asynchronous + operations performed on the signal set. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload3.html b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload3.html new file mode 100644 index 0000000..4fd08a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload3.html @@ -0,0 +1,74 @@ + + + +basic_signal_set::basic_signal_set (3 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a signal set and add one signal. +

+
basic_signal_set(
+    const executor_type & ex,
+    int signal_number_1);
+
+

+ This constructor creates a signal set and registers for one signal. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the signal set will use, by default, to dispatch + handlers for any asynchronous operations performed on the signal + set. +

+
signal_number_1
+

+ The signal number to be added. +

+
+
+
+ + Remarks +
+

+ This constructor is equivalent to performing: +

+
asio::signal_set signals(ex);
+signals.add(signal_number_1);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload4.html b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload4.html new file mode 100644 index 0000000..d8bda82 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload4.html @@ -0,0 +1,77 @@ + + + +basic_signal_set::basic_signal_set (4 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a signal set and add one signal. +

+
template<
+    typename ExecutionContext>
+basic_signal_set(
+    ExecutionContext & context,
+    int signal_number_1,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates a signal set and registers for one signal. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the signal + set will use, by default, to dispatch handlers for any asynchronous + operations performed on the signal set. +

+
signal_number_1
+

+ The signal number to be added. +

+
+
+
+ + Remarks +
+

+ This constructor is equivalent to performing: +

+
asio::signal_set signals(context);
+signals.add(signal_number_1);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload5.html b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload5.html new file mode 100644 index 0000000..88b3ec6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload5.html @@ -0,0 +1,80 @@ + + + +basic_signal_set::basic_signal_set (5 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a signal set and add two signals. +

+
basic_signal_set(
+    const executor_type & ex,
+    int signal_number_1,
+    int signal_number_2);
+
+

+ This constructor creates a signal set and registers for two signals. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the signal set will use, by default, to dispatch + handlers for any asynchronous operations performed on the signal + 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(ex);
+signals.add(signal_number_1);
+signals.add(signal_number_2);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload6.html b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload6.html new file mode 100644 index 0000000..5f8166d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload6.html @@ -0,0 +1,83 @@ + + + +basic_signal_set::basic_signal_set (6 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a signal set and add two signals. +

+
template<
+    typename ExecutionContext>
+basic_signal_set(
+    ExecutionContext & context,
+    int signal_number_1,
+    int signal_number_2,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates a signal set and registers for two signals. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the signal + set will use, by default, to dispatch handlers for any asynchronous + operations performed on the signal 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(context);
+signals.add(signal_number_1);
+signals.add(signal_number_2);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload7.html b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload7.html new file mode 100644 index 0000000..8ba79e0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload7.html @@ -0,0 +1,86 @@ + + + +basic_signal_set::basic_signal_set (7 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a signal set and add three signals. +

+
basic_signal_set(
+    const executor_type & ex,
+    int signal_number_1,
+    int signal_number_2,
+    int signal_number_3);
+
+

+ This constructor creates a signal set and registers for three signals. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the signal set will use, by default, to dispatch + handlers for any asynchronous operations performed on the signal + 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(ex);
+signals.add(signal_number_1);
+signals.add(signal_number_2);
+signals.add(signal_number_3);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload8.html b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload8.html new file mode 100644 index 0000000..a0e0a2b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/basic_signal_set/overload8.html @@ -0,0 +1,89 @@ + + + +basic_signal_set::basic_signal_set (8 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a signal set and add three signals. +

+
template<
+    typename ExecutionContext>
+basic_signal_set(
+    ExecutionContext & context,
+    int signal_number_1,
+    int signal_number_2,
+    int signal_number_3,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates a signal set and registers for three signals. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the signal + set will use, by default, to dispatch handlers for any asynchronous + operations performed on the signal 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(context);
+signals.add(signal_number_1);
+signals.add(signal_number_2);
+signals.add(signal_number_3);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/cancel.html b/3party/asio/doc/asio/reference/basic_signal_set/cancel.html new file mode 100644 index 0000000..6cb899b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/cancel.html @@ -0,0 +1,46 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_signal_set/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_signal_set/cancel/overload1.html new file mode 100644 index 0000000..5bae700 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/cancel/overload1.html @@ -0,0 +1,82 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_signal_set/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_signal_set/cancel/overload2.html new file mode 100644 index 0000000..44aa7f2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/cancel/overload2.html @@ -0,0 +1,83 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_signal_set/clear.html b/3party/asio/doc/asio/reference/basic_signal_set/clear.html new file mode 100644 index 0000000..907609c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/clear.html @@ -0,0 +1,46 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_signal_set/clear/overload1.html b/3party/asio/doc/asio/reference/basic_signal_set/clear/overload1.html new file mode 100644 index 0000000..80784c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/clear/overload1.html @@ -0,0 +1,64 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_signal_set/clear/overload2.html b/3party/asio/doc/asio/reference/basic_signal_set/clear/overload2.html new file mode 100644 index 0000000..5574b46 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/clear/overload2.html @@ -0,0 +1,65 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_signal_set/executor_type.html b/3party/asio/doc/asio/reference/basic_signal_set/executor_type.html new file mode 100644 index 0000000..3978299 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_signal_set::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_signal_set.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/flags.html b/3party/asio/doc/asio/reference/basic_signal_set/flags.html new file mode 100644 index 0000000..c0d7afe --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/flags.html @@ -0,0 +1,87 @@ + + + +basic_signal_set::flags + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from signal_set_base. +

+

+ +Enumeration representing + the different types of flags that may specified when adding a signal to + a set. +

+
enum flags
+
+

+ + + + + +

+
+ + Values +
+
+

+
+
none
+

+ Bitmask representing no flags. +

+
restart
+

+ Affects the behaviour of interruptible functions such that, if the + function would have failed with error::interrupted when interrupted + by the specified signal, the function shall instead be restarted + and not fail with error::interrupted. +

+
no_child_stop
+

+ Do not generate SIGCHLD when child processes stop or stopped child + processes continue. +

+
no_child_wait
+

+ Do not transform child processes into zombies when they terminate. +

+
dont_care
+

+ Special value to indicate that the signal registration does not care + which flags are set, and so will not conflict with any prior registrations + of the same signal. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/flags_t.html b/3party/asio/doc/asio/reference/basic_signal_set/flags_t.html new file mode 100644 index 0000000..9cc6046 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/flags_t.html @@ -0,0 +1,54 @@ + + + +basic_signal_set::flags_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from signal_set_base. +

+

+ +Portability + typedef. +

+
typedef flags flags_t;
+
+
+ + Requirements +
+

+ Header: asio/basic_signal_set.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/get_executor.html b/3party/asio/doc/asio/reference/basic_signal_set/get_executor.html new file mode 100644 index 0000000..4d8c550 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/get_executor.html @@ -0,0 +1,41 @@ + + + +basic_signal_set::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set/remove.html b/3party/asio/doc/asio/reference/basic_signal_set/remove.html new file mode 100644 index 0000000..aaecaec --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/remove.html @@ -0,0 +1,48 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_signal_set/remove/overload1.html b/3party/asio/doc/asio/reference/basic_signal_set/remove/overload1.html new file mode 100644 index 0000000..ba61b36 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/remove/overload1.html @@ -0,0 +1,79 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_signal_set/remove/overload2.html b/3party/asio/doc/asio/reference/basic_signal_set/remove/overload2.html new file mode 100644 index 0000000..28f03d7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set/remove/overload2.html @@ -0,0 +1,71 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_signal_set__rebind_executor.html b/3party/asio/doc/asio/reference/basic_signal_set__rebind_executor.html new file mode 100644 index 0000000..36ba61c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_signal_set::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the signal set type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The signal set type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_signal_set.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_signal_set__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_signal_set__rebind_executor/other.html new file mode 100644 index 0000000..aabe2d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_signal_set__rebind_executor/other.html @@ -0,0 +1,332 @@ + + + +basic_signal_set::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + signal set type when rebound to the specified executor. +

+
typedef basic_signal_set< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the signal set type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ flags +

+
+

+ Enumeration representing the different types of flags that may + specified when adding a signal to a set. +

+
+

+ flags_t +

+
+

+ Portability typedef. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ add +

+
+

+ Add a signal to a signal_set.

Add a signal to a + signal_set with the specified flags. +

+
+

+ async_wait +

+
+

+ Start an asynchronous operation to wait for a signal to be delivered. +

+
+

+ basic_signal_set [constructor] +

+
+

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

+
+

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

+
+

+ remove +

+
+

+ Remove a signal from a signal_set. +

+
+

+ ~basic_signal_set [destructor] +

+
+

+ Destroys the signal set. +

+
+

+ The basic_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(my_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/basic_signal_set.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket.html b/3party/asio/doc/asio/reference/basic_socket.html new file mode 100644 index 0000000..768ea31 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket.html @@ -0,0 +1,845 @@ + + + +basic_socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides socket functionality. +

+
template<
+    typename Protocol,
+    typename Executor>
+class basic_socket :
+  public socket_base
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length of + the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_socket/_basic_socket.html b/3party/asio/doc/asio/reference/basic_socket/_basic_socket.html new file mode 100644 index 0000000..e3b980e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/_basic_socket.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/assign.html b/3party/asio/doc/asio/reference/basic_socket/assign.html new file mode 100644 index 0000000..8751d50 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/assign.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/assign/overload1.html b/3party/asio/doc/asio/reference/basic_socket/assign/overload1.html new file mode 100644 index 0000000..c960303 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/assign/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/assign/overload2.html b/3party/asio/doc/asio/reference/basic_socket/assign/overload2.html new file mode 100644 index 0000000..fb988e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/assign/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/async_connect.html b/3party/asio/doc/asio/reference/basic_socket/async_connect.html new file mode 100644 index 0000000..9e482a8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/async_connect.html @@ -0,0 +1,138 @@ + + + +basic_socket::async_connect + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous connect. +

+
template<
+    typename ConnectToken = DEFAULT>
+DEDUCED async_connect(
+    const endpoint_type & peer_endpoint,
+    ConnectToken && token = DEFAULT);
+
+

+ This function is used to asynchronously connect a socket to the specified + remote endpoint. It is an initiating function for an asynchronous + operation, and 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. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the connect completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void connect_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Connect succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::socket socket(my_context);
+asio::ip::tcp::endpoint endpoint(
+    asio::ip::address::from_string("1.2.3.4"), 12345);
+socket.async_connect(endpoint, connect_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/async_wait.html b/3party/asio/doc/asio/reference/basic_socket/async_wait.html new file mode 100644 index 0000000..2425b58 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/async_wait.html @@ -0,0 +1,133 @@ + + + +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 WaitToken = DEFAULT>
+DEDUCED async_wait(
+    wait_type w,
+    WaitToken && token = DEFAULT);
+
+

+ This function is used to perform an asynchronous wait for a socket to enter + a ready to read, write or error condition state. It is an initiating function + for an asynchronous operation, + and always returns immediately. +

+
+ + Parameters +
+
+

+
+
w
+

+ Specifies the desired socket state. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the wait completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void wait_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Wait succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::socket socket(my_context);
+...
+socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/at_mark.html b/3party/asio/doc/asio/reference/basic_socket/at_mark.html new file mode 100644 index 0000000..1d1a413 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/at_mark.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/at_mark/overload1.html b/3party/asio/doc/asio/reference/basic_socket/at_mark/overload1.html new file mode 100644 index 0000000..cd327e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/at_mark/overload1.html @@ -0,0 +1,65 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/at_mark/overload2.html b/3party/asio/doc/asio/reference/basic_socket/at_mark/overload2.html new file mode 100644 index 0000000..c2d2590 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/at_mark/overload2.html @@ -0,0 +1,66 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/available.html b/3party/asio/doc/asio/reference/basic_socket/available.html new file mode 100644 index 0000000..3142f72 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/available.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/available/overload1.html b/3party/asio/doc/asio/reference/basic_socket/available/overload1.html new file mode 100644 index 0000000..c93333f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/available/overload1.html @@ -0,0 +1,66 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/available/overload2.html b/3party/asio/doc/asio/reference/basic_socket/available/overload2.html new file mode 100644 index 0000000..1c9d6e4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/available/overload2.html @@ -0,0 +1,67 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/basic_socket.html b/3party/asio/doc/asio/reference/basic_socket/basic_socket.html new file mode 100644 index 0000000..ecc0ce2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/basic_socket.html @@ -0,0 +1,122 @@ + + + +basic_socket::basic_socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a basic_socket + without opening it. +

+
explicit basic_socket(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_socket(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct and open a basic_socket. +

+
basic_socket(
+    const executor_type & ex,
+    const protocol_type & protocol);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a basic_socket, + opening it and binding it to the given local endpoint. +

+
basic_socket(
+    const executor_type & ex,
+    const endpoint_type & endpoint);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_socket(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct a basic_socket + on an existing native socket. +

+
basic_socket(
+    const executor_type & ex,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » 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,
+    typename Executor1>
+basic_socket(
+    basic_socket< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload1.html b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload1.html new file mode 100644 index 0000000..932bda7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload1.html @@ -0,0 +1,59 @@ + + + +basic_socket::basic_socket (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_socket without opening + it. +

+
basic_socket(
+    const executor_type & ex);
+
+

+ This constructor creates a socket without opening it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, to dispatch + handlers for any asynchronous operations performed on the socket. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload10.html b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload10.html new file mode 100644 index 0000000..e33b7ae --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload10.html @@ -0,0 +1,72 @@ + + + +basic_socket::basic_socket (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_socket from a socket of + another protocol type. +

+
template<
+    typename Protocol1,
+    typename Executor1>
+basic_socket(
+    basic_socket< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload2.html b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload2.html new file mode 100644 index 0000000..d265f69 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload2.html @@ -0,0 +1,63 @@ + + + +basic_socket::basic_socket (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_socket without opening + it. +

+
template<
+    typename ExecutionContext>
+basic_socket(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a socket without opening it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, to dispatch handlers for any asynchronous + operations performed on the socket. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload3.html b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload3.html new file mode 100644 index 0000000..913afc4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload3.html @@ -0,0 +1,76 @@ + + + +basic_socket::basic_socket (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_socket. +

+
basic_socket(
+    const executor_type & ex,
+    const protocol_type & protocol);
+
+

+ This constructor creates and opens a socket. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload4.html b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload4.html new file mode 100644 index 0000000..5c13d63 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload4.html @@ -0,0 +1,80 @@ + + + +basic_socket::basic_socket (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_socket. +

+
template<
+    typename ExecutionContext>
+basic_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates and opens a socket. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload5.html b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload5.html new file mode 100644 index 0000000..52b10bd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload5.html @@ -0,0 +1,79 @@ + + + +basic_socket::basic_socket (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_socket, opening it and + binding it to the given local endpoint. +

+
basic_socket(
+    const executor_type & ex,
+    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 +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload6.html b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload6.html new file mode 100644 index 0000000..5888e83 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload6.html @@ -0,0 +1,83 @@ + + + +basic_socket::basic_socket (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_socket, opening it and + binding it to the given local endpoint. +

+
template<
+    typename ExecutionContext>
+basic_socket(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload7.html b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload7.html new file mode 100644 index 0000000..3dd1365 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload7.html @@ -0,0 +1,82 @@ + + + +basic_socket::basic_socket (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_socket on an existing + native socket. +

+
basic_socket(
+    const executor_type & ex,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket);
+
+

+ This constructor creates a socket object to hold an existing native socket. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload8.html b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload8.html new file mode 100644 index 0000000..ab474b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload8.html @@ -0,0 +1,86 @@ + + + +basic_socket::basic_socket (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_socket on an existing + native socket. +

+
template<
+    typename ExecutionContext>
+basic_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a socket object to hold an existing native socket. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload9.html b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload9.html new file mode 100644 index 0000000..41f31b2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/basic_socket/overload9.html @@ -0,0 +1,67 @@ + + + +basic_socket::basic_socket (9 of 10 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/bind.html b/3party/asio/doc/asio/reference/basic_socket/bind.html new file mode 100644 index 0000000..55dfc10 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/bind.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/bind/overload1.html b/3party/asio/doc/asio/reference/basic_socket/bind/overload1.html new file mode 100644 index 0000000..77e7a79 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/bind/overload1.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+socket.open(asio::ip::tcp::v4());
+socket.bind(asio::ip::tcp::endpoint(
+      asio::ip::tcp::v4(), 12345));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/bind/overload2.html b/3party/asio/doc/asio/reference/basic_socket/bind/overload2.html new file mode 100644 index 0000000..3e64872 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/bind/overload2.html @@ -0,0 +1,77 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket/broadcast.html b/3party/asio/doc/asio/reference/basic_socket/broadcast.html new file mode 100644 index 0000000..03c9078 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/broadcast.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::broadcast option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket/bytes_readable.html b/3party/asio/doc/asio/reference/basic_socket/bytes_readable.html new file mode 100644 index 0000000..ca153eb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/bytes_readable.html @@ -0,0 +1,67 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket/cancel.html b/3party/asio/doc/asio/reference/basic_socket/cancel.html new file mode 100644 index 0000000..162ecb6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/cancel.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_socket/cancel/overload1.html new file mode 100644 index 0000000..6296b47 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/cancel/overload1.html @@ -0,0 +1,101 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_socket/cancel/overload2.html new file mode 100644 index 0000000..b1f1df1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/cancel/overload2.html @@ -0,0 +1,102 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/close.html b/3party/asio/doc/asio/reference/basic_socket/close.html new file mode 100644 index 0000000..5e5e2dd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/close.html @@ -0,0 +1,45 @@ + + + +basic_socket::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close the socket. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/close/overload1.html b/3party/asio/doc/asio/reference/basic_socket/close/overload1.html new file mode 100644 index 0000000..0e4d4f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/close/overload1.html @@ -0,0 +1,67 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/close/overload2.html b/3party/asio/doc/asio/reference/basic_socket/close/overload2.html new file mode 100644 index 0000000..9b9c196 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/close/overload2.html @@ -0,0 +1,81 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket/connect.html b/3party/asio/doc/asio/reference/basic_socket/connect.html new file mode 100644 index 0000000..8a34897 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/connect.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/connect/overload1.html b/3party/asio/doc/asio/reference/basic_socket/connect/overload1.html new file mode 100644 index 0000000..8e21ac4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/connect/overload1.html @@ -0,0 +1,86 @@ + + + +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(my_context);
+asio::ip::tcp::endpoint endpoint(
+    asio::ip::address::from_string("1.2.3.4"), 12345);
+socket.connect(endpoint);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/connect/overload2.html b/3party/asio/doc/asio/reference/basic_socket/connect/overload2.html new file mode 100644 index 0000000..6dfd9b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/connect/overload2.html @@ -0,0 +1,83 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket/debug.html b/3party/asio/doc/asio/reference/basic_socket/debug.html new file mode 100644 index 0000000..4bb4c17 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/debug.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::debug option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket/do_not_route.html b/3party/asio/doc/asio/reference/basic_socket/do_not_route.html new file mode 100644 index 0000000..86a404f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/do_not_route.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::do_not_route option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket/enable_connection_aborted.html b/3party/asio/doc/asio/reference/basic_socket/enable_connection_aborted.html new file mode 100644 index 0000000..41f0672 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/enable_connection_aborted.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+...
+asio::socket_base::enable_connection_aborted option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_socket/endpoint_type.html b/3party/asio/doc/asio/reference/basic_socket/endpoint_type.html new file mode 100644 index 0000000..e30c91b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/endpoint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/executor_type.html b/3party/asio/doc/asio/reference/basic_socket/executor_type.html new file mode 100644 index 0000000..174b1af --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_socket::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The type + of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/get_executor.html b/3party/asio/doc/asio/reference/basic_socket/get_executor.html new file mode 100644 index 0000000..7f0b5ac --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/get_executor.html @@ -0,0 +1,41 @@ + + + +basic_socket::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the + executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/get_option.html b/3party/asio/doc/asio/reference/basic_socket/get_option.html new file mode 100644 index 0000000..75fafa5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/get_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/get_option/overload1.html b/3party/asio/doc/asio/reference/basic_socket/get_option/overload1.html new file mode 100644 index 0000000..ea39b0a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/get_option/overload1.html @@ -0,0 +1,85 @@ + + + +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(my_context);
+...
+asio::ip::tcp::socket::keep_alive option;
+socket.get_option(option);
+bool is_set = option.value();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/get_option/overload2.html b/3party/asio/doc/asio/reference/basic_socket/get_option/overload2.html new file mode 100644 index 0000000..e66d8d4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/get_option/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket/io_control.html b/3party/asio/doc/asio/reference/basic_socket/io_control.html new file mode 100644 index 0000000..7f2f3a8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/io_control.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/io_control/overload1.html b/3party/asio/doc/asio/reference/basic_socket/io_control/overload1.html new file mode 100644 index 0000000..a92469b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/io_control/overload1.html @@ -0,0 +1,85 @@ + + + +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(my_context);
+...
+asio::ip::tcp::socket::bytes_readable command;
+socket.io_control(command);
+std::size_t bytes_readable = command.get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/io_control/overload2.html b/3party/asio/doc/asio/reference/basic_socket/io_control/overload2.html new file mode 100644 index 0000000..88a3b30 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/io_control/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket/is_open.html b/3party/asio/doc/asio/reference/basic_socket/is_open.html new file mode 100644 index 0000000..abd74a7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/is_open.html @@ -0,0 +1,41 @@ + + + +basic_socket::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine whether + the socket is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/keep_alive.html b/3party/asio/doc/asio/reference/basic_socket/keep_alive.html new file mode 100644 index 0000000..a0878ed --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/keep_alive.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::keep_alive option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket/linger.html b/3party/asio/doc/asio/reference/basic_socket/linger.html new file mode 100644 index 0000000..4e3b499 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/linger.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::socket_base::linger option(true, 30);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket/local_endpoint.html b/3party/asio/doc/asio/reference/basic_socket/local_endpoint.html new file mode 100644 index 0000000..f3054ee --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/local_endpoint.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/local_endpoint/overload1.html b/3party/asio/doc/asio/reference/basic_socket/local_endpoint/overload1.html new file mode 100644 index 0000000..60680f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/local_endpoint/overload1.html @@ -0,0 +1,72 @@ + + + +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(my_context);
+...
+asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/local_endpoint/overload2.html b/3party/asio/doc/asio/reference/basic_socket/local_endpoint/overload2.html new file mode 100644 index 0000000..ef229c8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/local_endpoint/overload2.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/lowest_layer.html b/3party/asio/doc/asio/reference/basic_socket/lowest_layer.html new file mode 100644 index 0000000..566007b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/lowest_layer.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/basic_socket/lowest_layer/overload1.html new file mode 100644 index 0000000..1f774cc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/lowest_layer/overload1.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/basic_socket/lowest_layer/overload2.html new file mode 100644 index 0000000..7c9cb8e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/lowest_layer/overload2.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/lowest_layer_type.html b/3party/asio/doc/asio/reference/basic_socket/lowest_layer_type.html new file mode 100644 index 0000000..39600c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/lowest_layer_type.html @@ -0,0 +1,843 @@ + + + +basic_socket::lowest_layer_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + basic_socket + is always the lowest layer. +

+
typedef basic_socket< Protocol, Executor > lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_socket/max_connections.html b/3party/asio/doc/asio/reference/basic_socket/max_connections.html new file mode 100644 index 0000000..a598319 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/max_connections.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/max_listen_connections.html b/3party/asio/doc/asio/reference/basic_socket/max_listen_connections.html new file mode 100644 index 0000000..b5945ed --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/max_listen_connections.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/message_do_not_route.html b/3party/asio/doc/asio/reference/basic_socket/message_do_not_route.html new file mode 100644 index 0000000..6594b79 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/message_do_not_route.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/message_end_of_record.html b/3party/asio/doc/asio/reference/basic_socket/message_end_of_record.html new file mode 100644 index 0000000..6b5e414 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/message_end_of_record.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/message_flags.html b/3party/asio/doc/asio/reference/basic_socket/message_flags.html new file mode 100644 index 0000000..d0d5a73 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/message_flags.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/message_out_of_band.html b/3party/asio/doc/asio/reference/basic_socket/message_out_of_band.html new file mode 100644 index 0000000..6af3538 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/message_out_of_band.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/message_peek.html b/3party/asio/doc/asio/reference/basic_socket/message_peek.html new file mode 100644 index 0000000..4a55094 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/message_peek.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/native_handle.html b/3party/asio/doc/asio/reference/basic_socket/native_handle.html new file mode 100644 index 0000000..4029cf5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/native_handle.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/native_handle_type.html b/3party/asio/doc/asio/reference/basic_socket/native_handle_type.html new file mode 100644 index 0000000..85fca0f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/native_handle_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/native_non_blocking.html b/3party/asio/doc/asio/reference/basic_socket/native_non_blocking.html new file mode 100644 index 0000000..5e9e871 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/native_non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload1.html new file mode 100644 index 0000000..c7c8683 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload1.html @@ -0,0 +1,140 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload2.html new file mode 100644 index 0000000..76d170d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload2.html @@ -0,0 +1,155 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload3.html new file mode 100644 index 0000000..27b778c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/native_non_blocking/overload3.html @@ -0,0 +1,146 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/non_blocking.html b/3party/asio/doc/asio/reference/basic_socket/non_blocking.html new file mode 100644 index 0000000..2a336c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_socket/non_blocking/overload1.html new file mode 100644 index 0000000..552541d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/non_blocking/overload1.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_socket/non_blocking/overload2.html new file mode 100644 index 0000000..a196997 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/non_blocking/overload2.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_socket/non_blocking/overload3.html new file mode 100644 index 0000000..ed015bc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/non_blocking/overload3.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/open.html b/3party/asio/doc/asio/reference/basic_socket/open.html new file mode 100644 index 0000000..0d103c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/open.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/open/overload1.html b/3party/asio/doc/asio/reference/basic_socket/open/overload1.html new file mode 100644 index 0000000..48ed971 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/open/overload1.html @@ -0,0 +1,77 @@ + + + +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(my_context);
+socket.open(asio::ip::tcp::v4());
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/open/overload2.html b/3party/asio/doc/asio/reference/basic_socket/open/overload2.html new file mode 100644 index 0000000..63e4a4c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/open/overload2.html @@ -0,0 +1,74 @@ + + + +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(my_context);
+asio::error_code ec;
+socket.open(asio::ip::tcp::v4(), ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/operator_eq_.html b/3party/asio/doc/asio/reference/basic_socket/operator_eq_.html new file mode 100644 index 0000000..6a2e630 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/operator_eq_.html @@ -0,0 +1,55 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_socket & >::type operator=(
+    basic_socket< Protocol1, Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_socket/operator_eq_/overload1.html new file mode 100644 index 0000000..5901172 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/operator_eq_/overload1.html @@ -0,0 +1,67 @@ + + + +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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_socket/operator_eq_/overload2.html new file mode 100644 index 0000000..2648043 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/operator_eq_/overload2.html @@ -0,0 +1,71 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_socket & >::type operator=(
+    basic_socket< Protocol1, Executor1 > && 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/out_of_band_inline.html b/3party/asio/doc/asio/reference/basic_socket/out_of_band_inline.html new file mode 100644 index 0000000..38a018e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/out_of_band_inline.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::out_of_band_inline option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket/protocol_type.html b/3party/asio/doc/asio/reference/basic_socket/protocol_type.html new file mode 100644 index 0000000..d1ba2e4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/receive_buffer_size.html b/3party/asio/doc/asio/reference/basic_socket/receive_buffer_size.html new file mode 100644 index 0000000..3a59027 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/receive_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket/receive_low_watermark.html b/3party/asio/doc/asio/reference/basic_socket/receive_low_watermark.html new file mode 100644 index 0000000..ec86466 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/receive_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket/release.html b/3party/asio/doc/asio/reference/basic_socket/release.html new file mode 100644 index 0000000..dd7aeaf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/release.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/release/overload1.html b/3party/asio/doc/asio/reference/basic_socket/release/overload1.html new file mode 100644 index 0000000..0de9795 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/release/overload1.html @@ -0,0 +1,68 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/release/overload2.html b/3party/asio/doc/asio/reference/basic_socket/release/overload2.html new file mode 100644 index 0000000..7ccced2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/release/overload2.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/remote_endpoint.html b/3party/asio/doc/asio/reference/basic_socket/remote_endpoint.html new file mode 100644 index 0000000..9794e0f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/remote_endpoint.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/remote_endpoint/overload1.html b/3party/asio/doc/asio/reference/basic_socket/remote_endpoint/overload1.html new file mode 100644 index 0000000..e08f907 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/remote_endpoint/overload1.html @@ -0,0 +1,72 @@ + + + +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(my_context);
+...
+asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/remote_endpoint/overload2.html b/3party/asio/doc/asio/reference/basic_socket/remote_endpoint/overload2.html new file mode 100644 index 0000000..fce75c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/remote_endpoint/overload2.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/reuse_address.html b/3party/asio/doc/asio/reference/basic_socket/reuse_address.html new file mode 100644 index 0000000..cac0082 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/reuse_address.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::socket_base::reuse_address option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_socket/send_buffer_size.html b/3party/asio/doc/asio/reference/basic_socket/send_buffer_size.html new file mode 100644 index 0000000..c96c662 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/send_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket/send_low_watermark.html b/3party/asio/doc/asio/reference/basic_socket/send_low_watermark.html new file mode 100644 index 0000000..d564c68 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/send_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket/set_option.html b/3party/asio/doc/asio/reference/basic_socket/set_option.html new file mode 100644 index 0000000..7a8e1e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/set_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/set_option/overload1.html b/3party/asio/doc/asio/reference/basic_socket/set_option/overload1.html new file mode 100644 index 0000000..aac2a66 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/set_option/overload1.html @@ -0,0 +1,84 @@ + + + +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(my_context);
+...
+asio::ip::tcp::no_delay option(true);
+socket.set_option(option);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/set_option/overload2.html b/3party/asio/doc/asio/reference/basic_socket/set_option/overload2.html new file mode 100644 index 0000000..0d27268 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/set_option/overload2.html @@ -0,0 +1,81 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket/shutdown.html b/3party/asio/doc/asio/reference/basic_socket/shutdown.html new file mode 100644 index 0000000..a1a8d4d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/shutdown.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/shutdown/overload1.html b/3party/asio/doc/asio/reference/basic_socket/shutdown/overload1.html new file mode 100644 index 0000000..20a8297 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/shutdown/overload1.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+socket.shutdown(asio::ip::tcp::socket::shutdown_send);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/shutdown/overload2.html b/3party/asio/doc/asio/reference/basic_socket/shutdown/overload2.html new file mode 100644 index 0000000..61dc19d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/shutdown/overload2.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/shutdown_type.html b/3party/asio/doc/asio/reference/basic_socket/shutdown_type.html new file mode 100644 index 0000000..8d49dec --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/shutdown_type.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/wait.html b/3party/asio/doc/asio/reference/basic_socket/wait.html new file mode 100644 index 0000000..1848d2f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/wait.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket/wait/overload1.html b/3party/asio/doc/asio/reference/basic_socket/wait/overload1.html new file mode 100644 index 0000000..65cc892 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/wait/overload1.html @@ -0,0 +1,70 @@ + + + +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(my_context);
+...
+socket.wait(asio::ip::tcp::socket::wait_read);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/wait/overload2.html b/3party/asio/doc/asio/reference/basic_socket/wait/overload2.html new file mode 100644 index 0000000..85c4389 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/wait/overload2.html @@ -0,0 +1,76 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+socket.wait(asio::ip::tcp::socket::wait_read, ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket/wait_type.html b/3party/asio/doc/asio/reference/basic_socket/wait_type.html new file mode 100644 index 0000000..1820778 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket/wait_type.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket__rebind_executor.html b/3party/asio/doc/asio/reference/basic_socket__rebind_executor.html new file mode 100644 index 0000000..65fa179 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_socket::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the socket type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The socket type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_socket__rebind_executor/other.html new file mode 100644 index 0000000..600dedc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket__rebind_executor/other.html @@ -0,0 +1,842 @@ + + + +basic_socket::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + socket type when rebound to the specified executor. +

+
typedef basic_socket< Protocol, Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_socket_acceptor.html b/3party/asio/doc/asio/reference/basic_socket_acceptor.html new file mode 100644 index 0000000..c0a6a7a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor.html @@ -0,0 +1,785 @@ + + + +basic_socket_acceptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides the ability to accept new connections. +

+
template<
+    typename Protocol,
+    typename Executor>
+class basic_socket_acceptor :
+  public socket_base
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the acceptor type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the acceptor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length of + the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous accept operations + are thread safe, if the underlying operating system calls are also thread + safe. This means that it is permitted to perform concurrent calls to synchronous + accept operations on a single + socket object. Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Example +
+

+ Opening a socket acceptor with the SO_REUSEADDR option enabled: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html new file mode 100644 index 0000000..4f571e1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/accept.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept.html new file mode 100644 index 0000000..a7fc5c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept.html @@ -0,0 +1,154 @@ + + + +basic_socket_acceptor::accept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Accept + a new connection. +

+
template<
+    typename Protocol1,
+    typename Executor1>
+void accept(
+    basic_socket< Protocol1, Executor1 > & peer,
+    typename constraint< is_convertible< Protocol, Protocol1 >::value >::type  = 0);
+  » more...
+
+template<
+    typename Protocol1,
+    typename Executor1>
+void accept(
+    basic_socket< Protocol1, Executor1 > & peer,
+    asio::error_code & ec,
+    typename constraint< is_convertible< Protocol, Protocol1 >::value >::type  = 0);
+  » more...
+
+

+ Accept a new connection and obtain the endpoint of the peer. +

+
template<
+    typename Executor1>
+void accept(
+    basic_socket< protocol_type, Executor1 > & peer,
+    endpoint_type & peer_endpoint);
+  » more...
+
+template<
+    typename Executor1>
+void accept(
+    basic_socket< protocol_type, Executor1 > & peer,
+    endpoint_type & peer_endpoint,
+    asio::error_code & ec);
+  » more...
+
+Protocol::socket::template rebind_executor< executor_type >::other accept();
+  » more...
+
+Protocol::socket::template rebind_executor< executor_type >::other accept(
+    asio::error_code & ec);
+  » more...
+
+template<
+    typename Executor1>
+Protocol::socket::template rebind_executor< Executor1 >::other accept(
+    const Executor1 & ex,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext>
+Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type >::other accept(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+template<
+    typename Executor1>
+Protocol::socket::template rebind_executor< Executor1 >::other accept(
+    const Executor1 & ex,
+    asio::error_code & ec,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext>
+Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type >::other accept(
+    ExecutionContext & context,
+    asio::error_code & ec,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+Protocol::socket::template rebind_executor< executor_type >::other accept(
+    endpoint_type & peer_endpoint);
+  » more...
+
+Protocol::socket::template rebind_executor< executor_type >::other accept(
+    endpoint_type & peer_endpoint,
+    asio::error_code & ec);
+  » more...
+
+template<
+    typename Executor1>
+Protocol::socket::template rebind_executor< Executor1 >::other accept(
+    const Executor1 & ex,
+    endpoint_type & peer_endpoint,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext>
+Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type >::other accept(
+    ExecutionContext & context,
+    endpoint_type & peer_endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+template<
+    typename Executor1>
+Protocol::socket::template rebind_executor< Executor1 >::other accept(
+    const executor_type & ex,
+    endpoint_type & peer_endpoint,
+    asio::error_code & ec,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext>
+Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type >::other accept(
+    ExecutionContext & context,
+    endpoint_type & peer_endpoint,
+    asio::error_code & ec,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload1.html new file mode 100644 index 0000000..5135ac8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload1.html @@ -0,0 +1,85 @@ + + + +basic_socket_acceptor::accept (1 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
template<
+    typename Protocol1,
+    typename Executor1>
+void accept(
+    basic_socket< Protocol1, Executor1 > & peer,
+    typename constraint< 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(my_context);
+...
+asio::ip::tcp::socket socket(my_context);
+acceptor.accept(socket);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload10.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload10.html new file mode 100644 index 0000000..8aaf8a3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload10.html @@ -0,0 +1,93 @@ + + + +basic_socket_acceptor::accept (10 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
template<
+    typename ExecutionContext>
+Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type >::other accept(
+    ExecutionContext & context,
+    asio::error_code & ec,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ The I/O execution 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(my_context);
+...
+asio::ip::tcp::socket socket(acceptor.accept(my_context2, ec));
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload11.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload11.html new file mode 100644 index 0000000..b648775 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload11.html @@ -0,0 +1,94 @@ + + + +basic_socket_acceptor::accept (11 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
Protocol::socket::template rebind_executor< executor_type >::other 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(my_context);
+...
+asio::ip::tcp::endpoint endpoint;
+asio::ip::tcp::socket socket(acceptor.accept(endpoint));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload12.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload12.html new file mode 100644 index 0000000..a2d9b0b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload12.html @@ -0,0 +1,91 @@ + + + +basic_socket_acceptor::accept (12 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
Protocol::socket::template rebind_executor< executor_type >::other 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(my_context);
+...
+asio::ip::tcp::endpoint endpoint;
+asio::ip::tcp::socket socket(acceptor.accept(endpoint, ec));
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload13.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload13.html new file mode 100644 index 0000000..3572957 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload13.html @@ -0,0 +1,103 @@ + + + +basic_socket_acceptor::accept (13 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
template<
+    typename Executor1>
+Protocol::socket::template rebind_executor< Executor1 >::other accept(
+    const Executor1 & ex,
+    endpoint_type & peer_endpoint,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+
+

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

+
+
ex
+

+ The I/O executor 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(my_context);
+...
+asio::ip::tcp::endpoint endpoint;
+asio::ip::tcp::socket socket(
+    acceptor.accept(my_context2, endpoint));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload14.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload14.html new file mode 100644 index 0000000..0d9eaf6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload14.html @@ -0,0 +1,104 @@ + + + +basic_socket_acceptor::accept (14 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
template<
+    typename ExecutionContext>
+Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type >::other accept(
+    ExecutionContext & context,
+    endpoint_type & peer_endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ The I/O execution 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(my_context);
+...
+asio::ip::tcp::endpoint endpoint;
+asio::ip::tcp::socket socket(
+    acceptor.accept(my_context2, endpoint));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload15.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload15.html new file mode 100644 index 0000000..b1a93f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload15.html @@ -0,0 +1,100 @@ + + + +basic_socket_acceptor::accept (15 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
template<
+    typename Executor1>
+Protocol::socket::template rebind_executor< Executor1 >::other accept(
+    const executor_type & ex,
+    endpoint_type & peer_endpoint,
+    asio::error_code & ec,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+
+

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

+
+
ex
+

+ The I/O executor 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(my_context);
+...
+asio::ip::tcp::endpoint endpoint;
+asio::ip::tcp::socket socket(
+    acceptor.accept(my_context2, endpoint, ec));
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload16.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload16.html new file mode 100644 index 0000000..b0b1131 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload16.html @@ -0,0 +1,101 @@ + + + +basic_socket_acceptor::accept (16 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
template<
+    typename ExecutionContext>
+Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type >::other accept(
+    ExecutionContext & context,
+    endpoint_type & peer_endpoint,
+    asio::error_code & ec,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ The I/O execution 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(my_context);
+...
+asio::ip::tcp::endpoint endpoint;
+asio::ip::tcp::socket socket(
+    acceptor.accept(my_context2, endpoint, ec));
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload2.html new file mode 100644 index 0000000..9fc6735 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload2.html @@ -0,0 +1,82 @@ + + + +basic_socket_acceptor::accept (2 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
template<
+    typename Protocol1,
+    typename Executor1>
+void accept(
+    basic_socket< Protocol1, Executor1 > & peer,
+    asio::error_code & ec,
+    typename constraint< 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(my_context);
+...
+asio::ip::tcp::socket socket(my_context);
+asio::error_code ec;
+acceptor.accept(socket, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload3.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload3.html new file mode 100644 index 0000000..9ad85f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload3.html @@ -0,0 +1,91 @@ + + + +basic_socket_acceptor::accept (3 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection and obtain the endpoint of the peer. +

+
template<
+    typename Executor1>
+void accept(
+    basic_socket< protocol_type, Executor1 > & 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(my_context);
+...
+asio::ip::tcp::socket socket(my_context);
+asio::ip::tcp::endpoint endpoint;
+acceptor.accept(socket, endpoint);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload4.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload4.html new file mode 100644 index 0000000..f6d9fbd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload4.html @@ -0,0 +1,88 @@ + + + +basic_socket_acceptor::accept (4 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection and obtain the endpoint of the peer. +

+
template<
+    typename Executor1>
+void accept(
+    basic_socket< protocol_type, Executor1 > & 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(my_context);
+...
+asio::ip::tcp::socket socket(my_context);
+asio::ip::tcp::endpoint endpoint;
+asio::error_code ec;
+acceptor.accept(socket, endpoint, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload5.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload5.html new file mode 100644 index 0000000..0bd200e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload5.html @@ -0,0 +1,78 @@ + + + +basic_socket_acceptor::accept (5 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
Protocol::socket::template rebind_executor< executor_type >::other 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(my_context);
+...
+asio::ip::tcp::socket socket(acceptor.accept());
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload6.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload6.html new file mode 100644 index 0000000..fdf4c72 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload6.html @@ -0,0 +1,84 @@ + + + +basic_socket_acceptor::accept (6 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
Protocol::socket::template rebind_executor< executor_type >::other 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(my_context);
+...
+asio::ip::tcp::socket socket(acceptor.accept(ec));
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload7.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload7.html new file mode 100644 index 0000000..9df864a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload7.html @@ -0,0 +1,95 @@ + + + +basic_socket_acceptor::accept (7 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
template<
+    typename Executor1>
+Protocol::socket::template rebind_executor< Executor1 >::other accept(
+    const Executor1 & ex,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+
+

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

+
+
ex
+

+ The I/O executor 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(my_context);
+...
+asio::ip::tcp::socket socket(acceptor.accept());
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload8.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload8.html new file mode 100644 index 0000000..d61b981 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload8.html @@ -0,0 +1,96 @@ + + + +basic_socket_acceptor::accept (8 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
template<
+    typename ExecutionContext>
+Protocol::socket::template rebind_executor< typename ExecutionContext::executor_type >::other accept(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ The I/O execution 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(my_context);
+...
+asio::ip::tcp::socket socket(acceptor.accept());
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload9.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload9.html new file mode 100644 index 0000000..48c567c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/accept/overload9.html @@ -0,0 +1,92 @@ + + + +basic_socket_acceptor::accept (9 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Accept a new connection. +

+
template<
+    typename Executor1>
+Protocol::socket::template rebind_executor< Executor1 >::other accept(
+    const Executor1 & ex,
+    asio::error_code & ec,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+
+

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

+
+
ex
+

+ The I/O executor 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(my_context);
+...
+asio::ip::tcp::socket socket(acceptor.accept(my_context2, ec));
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/assign.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/assign.html new file mode 100644 index 0000000..28a0952 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/assign.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/assign/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/assign/overload1.html new file mode 100644 index 0000000..376cd36 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/assign/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/assign/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/assign/overload2.html new file mode 100644 index 0000000..8402fc3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/assign/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept.html new file mode 100644 index 0000000..f39c076 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept.html @@ -0,0 +1,109 @@ + + + +basic_socket_acceptor::async_accept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous accept. +

+
template<
+    typename Protocol1,
+    typename Executor1,
+    typename AcceptToken = DEFAULT>
+DEDUCED async_accept(
+    basic_socket< Protocol1, Executor1 > & peer,
+    AcceptToken && token = DEFAULT,
+    typename constraint< is_convertible< Protocol, Protocol1 >::value >::type  = 0);
+  » more...
+
+template<
+    typename Executor1,
+    typename AcceptToken = DEFAULT>
+DEDUCED async_accept(
+    basic_socket< protocol_type, Executor1 > & peer,
+    endpoint_type & peer_endpoint,
+    AcceptToken && token = DEFAULT);
+  » more...
+
+template<
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    MoveAcceptToken && token = DEFAULT);
+  » more...
+
+template<
+    typename Executor1,
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    const Executor1 & ex,
+    MoveAcceptToken && token = DEFAULT,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext,
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    ExecutionContext & context,
+    MoveAcceptToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+template<
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    endpoint_type & peer_endpoint,
+    MoveAcceptToken && token = DEFAULT);
+  » more...
+
+template<
+    typename Executor1,
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    const Executor1 & ex,
+    endpoint_type & peer_endpoint,
+    MoveAcceptToken && token = DEFAULT,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext,
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    ExecutionContext & context,
+    endpoint_type & peer_endpoint,
+    MoveAcceptToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload1.html new file mode 100644 index 0000000..7fafcc3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload1.html @@ -0,0 +1,135 @@ + + + +basic_socket_acceptor::async_accept (1 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous accept. +

+
template<
+    typename Protocol1,
+    typename Executor1,
+    typename AcceptToken = DEFAULT>
+DEDUCED async_accept(
+    basic_socket< Protocol1, Executor1 > & peer,
+    AcceptToken && token = DEFAULT,
+    typename constraint< is_convertible< Protocol, Protocol1 >::value >::type  = 0);
+
+

+ This function is used to asynchronously accept a new connection into + a socket, and additionally obtain the endpoint of the remote peer. It + is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the accept completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void accept_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Accept succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::acceptor acceptor(my_context);
+...
+asio::ip::tcp::socket socket(my_context);
+acceptor.async_accept(socket, accept_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload2.html new file mode 100644 index 0000000..5453c51 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload2.html @@ -0,0 +1,122 @@ + + + +basic_socket_acceptor::async_accept (2 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous accept. +

+
template<
+    typename Executor1,
+    typename AcceptToken = DEFAULT>
+DEDUCED async_accept(
+    basic_socket< protocol_type, Executor1 > & peer,
+    endpoint_type & peer_endpoint,
+    AcceptToken && token = DEFAULT);
+
+

+ This function is used to asynchronously accept a new connection into + a socket, and additionally obtain the endpoint of the remote peer. It + is an initiating function for an asynchronous + operation, and 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 completion 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. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the accept completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload3.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload3.html new file mode 100644 index 0000000..8b9fb80 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload3.html @@ -0,0 +1,135 @@ + + + +basic_socket_acceptor::async_accept (3 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous accept. +

+
template<
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    MoveAcceptToken && token = DEFAULT);
+
+

+ This function is used to asynchronously accept a new connection. It is + an initiating function for an asynchronous + operation, and always returns immediately. +

+

+ This overload requires that the Protocol template parameter satisfy the + AcceptableProtocol type requirements. +

+
+ + Parameters +
+
+

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the accept completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion handler must be: +

+
void handler(
+  // Result of operation.
+  const asio::error_code& error,
+
+  // On success, the newly accepted socket.
+  typename Protocol::socket::template
+    rebind_executor<executor_type>::other peer
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code,
+   typename Protocol::socket::template
+     rebind_executor<executor_type>::other))
+
+
+ + Example +
+
void accept_handler(const asio::error_code& error,
+    asio::ip::tcp::socket peer)
+{
+  if (!error)
+  {
+    // Accept succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::acceptor acceptor(my_context);
+...
+acceptor.async_accept(accept_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload4.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload4.html new file mode 100644 index 0000000..22e0c3d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload4.html @@ -0,0 +1,142 @@ + + + +basic_socket_acceptor::async_accept (4 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous accept. +

+
template<
+    typename Executor1,
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    const Executor1 & ex,
+    MoveAcceptToken && token = DEFAULT,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+
+

+ This function is used to asynchronously accept a new connection. It is + an initiating function for an asynchronous + operation, and always returns immediately. +

+

+ This overload requires that the Protocol template parameter satisfy the + AcceptableProtocol type requirements. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor object to be used for the newly accepted socket. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the accept completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion handler must be: +

+
void handler(
+  // Result of operation.
+  const asio::error_code& error,
+
+  // On success, the newly accepted socket.
+  typename Protocol::socket::template rebind_executor<
+    Executor1>::other peer
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code,
+   typename Protocol::socket::template rebind_executor<
+     Executor1>::other))
+
+
+ + Example +
+
void accept_handler(const asio::error_code& error,
+    asio::ip::tcp::socket peer)
+{
+  if (!error)
+  {
+    // Accept succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::acceptor acceptor(my_context);
+...
+acceptor.async_accept(my_context2, accept_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload5.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload5.html new file mode 100644 index 0000000..bcf68e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload5.html @@ -0,0 +1,143 @@ + + + +basic_socket_acceptor::async_accept (5 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous accept. +

+
template<
+    typename ExecutionContext,
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    ExecutionContext & context,
+    MoveAcceptToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This function is used to asynchronously accept a new connection. It is + an initiating function for an asynchronous + operation, and always returns immediately. +

+

+ This overload requires that the Protocol template parameter satisfy the + AcceptableProtocol type requirements. +

+
+ + Parameters +
+
+

+
+
context
+

+ The I/O execution context object to be used for the newly accepted + socket. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the accept completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion handler must be: +

+
void handler(
+  // Result of operation.
+  const asio::error_code& error,
+
+  // On success, the newly accepted socket.
+  typename Protocol::socket::template rebind_executor<
+    typename ExecutionContext::executor_type>::other peer
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code,
+   typename Protocol::socket::template rebind_executor<
+     typename ExecutionContext::executor_type>::other))
+
+
+ + Example +
+
void accept_handler(const asio::error_code& error,
+    asio::ip::tcp::socket peer)
+{
+  if (!error)
+  {
+    // Accept succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::acceptor acceptor(my_context);
+...
+acceptor.async_accept(my_context2, accept_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload6.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload6.html new file mode 100644 index 0000000..f6f392f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload6.html @@ -0,0 +1,144 @@ + + + +basic_socket_acceptor::async_accept (6 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous accept. +

+
template<
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    endpoint_type & peer_endpoint,
+    MoveAcceptToken && token = DEFAULT);
+
+

+ This function is used to asynchronously accept a new connection. It is + an initiating function for an asynchronous + operation, and 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 completion + handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the accept completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion handler must be: +

+
void handler(
+  // Result of operation.
+  const asio::error_code& error,
+
+  // On success, the newly accepted socket.
+  typename Protocol::socket::template
+    rebind_executor<executor_type>::other peer
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code,
+   typename Protocol::socket::template
+     rebind_executor<executor_type>::other))
+
+
+ + Example +
+
void accept_handler(const asio::error_code& error,
+    asio::ip::tcp::socket peer)
+{
+  if (!error)
+  {
+    // Accept succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::acceptor acceptor(my_context);
+...
+asio::ip::tcp::endpoint endpoint;
+acceptor.async_accept(endpoint, accept_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload7.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload7.html new file mode 100644 index 0000000..6f35a55 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload7.html @@ -0,0 +1,151 @@ + + + +basic_socket_acceptor::async_accept (7 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous accept. +

+
template<
+    typename Executor1,
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    const Executor1 & ex,
+    endpoint_type & peer_endpoint,
+    MoveAcceptToken && token = DEFAULT,
+    typename constraint< is_executor< Executor1 >::value||execution::is_executor< Executor1 >::value >::type  = 0);
+
+

+ This function is used to asynchronously accept a new connection. It is + an initiating function for an asynchronous + operation, and always returns immediately. +

+

+ This overload requires that the Protocol template parameter satisfy the + AcceptableProtocol type requirements. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor 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 completion + handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the accept completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion handler must be: +

+
void handler(
+  // Result of operation.
+  const asio::error_code& error,
+
+  // On success, the newly accepted socket.
+  typename Protocol::socket::template rebind_executor<
+    Executor1>::other peer
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code,
+   typename Protocol::socket::template rebind_executor<
+     Executor1>::other))
+
+
+ + Example +
+
void accept_handler(const asio::error_code& error,
+    asio::ip::tcp::socket peer)
+{
+  if (!error)
+  {
+    // Accept succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::acceptor acceptor(my_context);
+...
+asio::ip::tcp::endpoint endpoint;
+acceptor.async_accept(my_context2, endpoint, accept_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload8.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload8.html new file mode 100644 index 0000000..4857fac --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload8.html @@ -0,0 +1,152 @@ + + + +basic_socket_acceptor::async_accept (8 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous accept. +

+
template<
+    typename ExecutionContext,
+    typename MoveAcceptToken = DEFAULT>
+DEDUCED async_accept(
+    ExecutionContext & context,
+    endpoint_type & peer_endpoint,
+    MoveAcceptToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This function is used to asynchronously accept a new connection. It is + an initiating function for an asynchronous + operation, and always returns immediately. +

+

+ This overload requires that the Protocol template parameter satisfy the + AcceptableProtocol type requirements. +

+
+ + Parameters +
+
+

+
+
context
+

+ The I/O execution 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 completion + handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the accept completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion handler must be: +

+
void handler(
+  // Result of operation.
+  const asio::error_code& error,
+
+  // On success, the newly accepted socket.
+  typename Protocol::socket::template rebind_executor<
+    typename ExecutionContext::executor_type>::other peer
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code,
+   typename Protocol::socket::template rebind_executor<
+     typename ExecutionContext::executor_type>::other))
+
+
+ + Example +
+
void accept_handler(const asio::error_code& error,
+    asio::ip::tcp::socket peer)
+{
+  if (!error)
+  {
+    // Accept succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::acceptor acceptor(my_context);
+...
+asio::ip::tcp::endpoint endpoint;
+acceptor.async_accept(my_context2, endpoint, accept_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/async_wait.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_wait.html new file mode 100644 index 0000000..a9075fd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/async_wait.html @@ -0,0 +1,135 @@ + + + +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 WaitToken = DEFAULT>
+DEDUCED async_wait(
+    wait_type w,
+    WaitToken && token = DEFAULT);
+
+

+ This function is used to perform an asynchronous wait for an acceptor to + enter a ready to read, write or error condition state. It is an initiating + function for an asynchronous + operation, and always returns immediately. +

+
+ + Parameters +
+
+

+
+
w
+

+ Specifies the desired acceptor state. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the wait completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void wait_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Wait succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::acceptor acceptor(my_context);
+...
+acceptor.async_wait(
+    asio::ip::tcp::acceptor::wait_read,
+    wait_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor.html new file mode 100644 index 0000000..7dde2bf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor.html @@ -0,0 +1,122 @@ + + + +basic_socket_acceptor::basic_socket_acceptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + an acceptor without opening it. +

+
explicit basic_socket_acceptor(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_socket_acceptor(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct an open acceptor. +

+
basic_socket_acceptor(
+    const executor_type & ex,
+    const protocol_type & protocol);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_socket_acceptor(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct an acceptor opened on the given endpoint. +

+
basic_socket_acceptor(
+    const executor_type & ex,
+    const endpoint_type & endpoint,
+    bool reuse_addr = true);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_socket_acceptor(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    bool reuse_addr = true,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct a basic_socket_acceptor on an existing + native acceptor. +

+
basic_socket_acceptor(
+    const executor_type & ex,
+    const protocol_type & protocol,
+    const native_handle_type & native_acceptor);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_socket_acceptor(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_acceptor,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » 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,
+    typename Executor1>
+basic_socket_acceptor(
+    basic_socket_acceptor< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html new file mode 100644 index 0000000..072a04c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html @@ -0,0 +1,60 @@ + + + +basic_socket_acceptor::basic_socket_acceptor (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an acceptor without opening it. +

+
basic_socket_acceptor(
+    const executor_type & ex);
+
+

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

+
+
ex
+

+ The I/O executor that the acceptor will use, by default, to dispatch + handlers for any asynchronous operations performed on the acceptor. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload10.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload10.html new file mode 100644 index 0000000..733a889 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload10.html @@ -0,0 +1,72 @@ + + + +basic_socket_acceptor::basic_socket_acceptor (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_socket_acceptor from an + acceptor of another protocol type. +

+
template<
+    typename Protocol1,
+    typename Executor1>
+basic_socket_acceptor(
+    basic_socket_acceptor< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::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_acceptor(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html new file mode 100644 index 0000000..4f1cc87 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html @@ -0,0 +1,64 @@ + + + +basic_socket_acceptor::basic_socket_acceptor (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an acceptor without opening it. +

+
template<
+    typename ExecutionContext>
+basic_socket_acceptor(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the acceptor + will use, by default, to dispatch handlers for any asynchronous + operations performed on the acceptor. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html new file mode 100644 index 0000000..22e8cbe --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html @@ -0,0 +1,76 @@ + + + +basic_socket_acceptor::basic_socket_acceptor (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an open acceptor. +

+
basic_socket_acceptor(
+    const executor_type & ex,
+    const protocol_type & protocol);
+
+

+ This constructor creates an acceptor and automatically opens it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the acceptor will use, by default, 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/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html new file mode 100644 index 0000000..b9ed7fc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html @@ -0,0 +1,80 @@ + + + +basic_socket_acceptor::basic_socket_acceptor (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an open acceptor. +

+
template<
+    typename ExecutionContext>
+basic_socket_acceptor(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates an acceptor and automatically opens it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the acceptor + will use, by default, 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/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html new file mode 100644 index 0000000..f62d1c9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html @@ -0,0 +1,97 @@ + + + +basic_socket_acceptor::basic_socket_acceptor (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an acceptor opened on the given endpoint. +

+
basic_socket_acceptor(
+    const executor_type & ex,
+    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 +
+
+

+
+
ex
+

+ The I/O executor that the acceptor will use, by default, 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(my_context);
+acceptor.open(endpoint.protocol());
+if (reuse_addr)
+  acceptor.set_option(socket_base::reuse_address(true));
+acceptor.bind(endpoint);
+acceptor.listen();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html new file mode 100644 index 0000000..628e2c7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html @@ -0,0 +1,101 @@ + + + +basic_socket_acceptor::basic_socket_acceptor (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an acceptor opened on the given endpoint. +

+
template<
+    typename ExecutionContext>
+basic_socket_acceptor(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    bool reuse_addr = true,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates an acceptor and automatically opens it to listen + for new connections on the specified endpoint. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the acceptor + will use, by default, 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(my_context);
+acceptor.open(endpoint.protocol());
+if (reuse_addr)
+  acceptor.set_option(socket_base::reuse_address(true));
+acceptor.bind(endpoint);
+acceptor.listen();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload7.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload7.html new file mode 100644 index 0000000..178ac6c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload7.html @@ -0,0 +1,83 @@ + + + +basic_socket_acceptor::basic_socket_acceptor (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_socket_acceptor on an + existing native acceptor. +

+
basic_socket_acceptor(
+    const executor_type & ex,
+    const protocol_type & protocol,
+    const native_handle_type & native_acceptor);
+
+

+ This constructor creates an acceptor object to hold an existing native + acceptor. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the acceptor will use, by default, 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/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload8.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload8.html new file mode 100644 index 0000000..63edc7f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload8.html @@ -0,0 +1,87 @@ + + + +basic_socket_acceptor::basic_socket_acceptor (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_socket_acceptor on an + existing native acceptor. +

+
template<
+    typename ExecutionContext>
+basic_socket_acceptor(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_acceptor,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates an acceptor object to hold an existing native + acceptor. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the acceptor + will use, by default, 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/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload9.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload9.html new file mode 100644 index 0000000..e5cc3d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload9.html @@ -0,0 +1,67 @@ + + + +basic_socket_acceptor::basic_socket_acceptor (9 of 10 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/bind.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/bind.html new file mode 100644 index 0000000..1891be2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/bind.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/bind/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/bind/overload1.html new file mode 100644 index 0000000..9c22f69 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/bind/overload1.html @@ -0,0 +1,81 @@ + + + +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(my_context);
+asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), 12345);
+acceptor.open(endpoint.protocol());
+acceptor.bind(endpoint);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/bind/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/bind/overload2.html new file mode 100644 index 0000000..fab0e07 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/bind/overload2.html @@ -0,0 +1,78 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/broadcast.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/broadcast.html new file mode 100644 index 0000000..4b7fc8d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/broadcast.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::broadcast option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/bytes_readable.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/bytes_readable.html new file mode 100644 index 0000000..4c09951 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/bytes_readable.html @@ -0,0 +1,67 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/cancel.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/cancel.html new file mode 100644 index 0000000..397bd51 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/cancel.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload1.html new file mode 100644 index 0000000..f448a84 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload1.html @@ -0,0 +1,59 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload2.html new file mode 100644 index 0000000..9220cf5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload2.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/close.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/close.html new file mode 100644 index 0000000..67eaeb1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/close.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/close/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/close/overload1.html new file mode 100644 index 0000000..9369d34 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/close/overload1.html @@ -0,0 +1,61 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/close/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/close/overload2.html new file mode 100644 index 0000000..a7d298e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/close/overload2.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+acceptor.close(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/debug.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/debug.html new file mode 100644 index 0000000..cca9d3b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/debug.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::debug option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/do_not_route.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/do_not_route.html new file mode 100644 index 0000000..2f1e60b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/do_not_route.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::do_not_route option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/enable_connection_aborted.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/enable_connection_aborted.html new file mode 100644 index 0000000..6315153 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/enable_connection_aborted.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+...
+asio::socket_base::enable_connection_aborted option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/endpoint_type.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/endpoint_type.html new file mode 100644 index 0000000..178c7ad --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/endpoint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/executor_type.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/executor_type.html new file mode 100644 index 0000000..ae09580 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_socket_acceptor::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_socket_acceptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/get_executor.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/get_executor.html new file mode 100644 index 0000000..5330423 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/get_executor.html @@ -0,0 +1,41 @@ + + + +basic_socket_acceptor::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/get_option.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/get_option.html new file mode 100644 index 0000000..cc81801 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/get_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload1.html new file mode 100644 index 0000000..0c2ac69 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload1.html @@ -0,0 +1,85 @@ + + + +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(my_context);
+...
+asio::ip::tcp::acceptor::reuse_address option;
+acceptor.get_option(option);
+bool is_set = option.get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload2.html new file mode 100644 index 0000000..b8d47ef --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/io_control.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/io_control.html new file mode 100644 index 0000000..eb090cc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/io_control.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload1.html new file mode 100644 index 0000000..779d8eb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload1.html @@ -0,0 +1,84 @@ + + + +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(my_context);
+...
+asio::ip::tcp::acceptor::non_blocking_io command(true);
+socket.io_control(command);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload2.html new file mode 100644 index 0000000..8aaa9b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload2.html @@ -0,0 +1,81 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/is_open.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/is_open.html new file mode 100644 index 0000000..8941144 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/is_open.html @@ -0,0 +1,41 @@ + + + +basic_socket_acceptor::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the acceptor is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/keep_alive.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/keep_alive.html new file mode 100644 index 0000000..7f417f4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/keep_alive.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::keep_alive option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/linger.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/linger.html new file mode 100644 index 0000000..81b72d4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/linger.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+...
+asio::socket_base::linger option(true, 30);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/listen.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/listen.html new file mode 100644 index 0000000..1dfce2f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/listen.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/listen/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/listen/overload1.html new file mode 100644 index 0000000..da8236a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/listen/overload1.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/listen/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/listen/overload2.html new file mode 100644 index 0000000..6086d5a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/listen/overload2.html @@ -0,0 +1,76 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+acceptor.listen(asio::socket_base::max_listen_connections, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint.html new file mode 100644 index 0000000..f031a6d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload1.html new file mode 100644 index 0000000..5004675 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload1.html @@ -0,0 +1,72 @@ + + + +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(my_context);
+...
+asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload2.html new file mode 100644 index 0000000..fdff486 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload2.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/max_connections.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/max_connections.html new file mode 100644 index 0000000..5c17cd7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/max_connections.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/max_listen_connections.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/max_listen_connections.html new file mode 100644 index 0000000..45f6a5f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/max_listen_connections.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/message_do_not_route.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/message_do_not_route.html new file mode 100644 index 0000000..fa7535a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/message_do_not_route.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/message_end_of_record.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/message_end_of_record.html new file mode 100644 index 0000000..73ae642 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/message_end_of_record.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/message_flags.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/message_flags.html new file mode 100644 index 0000000..7b4b3f0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/message_flags.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/message_out_of_band.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/message_out_of_band.html new file mode 100644 index 0000000..8ca134b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/message_out_of_band.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/message_peek.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/message_peek.html new file mode 100644 index 0000000..91f02a2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/message_peek.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/native_handle.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_handle.html new file mode 100644 index 0000000..af17039 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_handle.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/native_handle_type.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_handle_type.html new file mode 100644 index 0000000..b036b79 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_handle_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking.html new file mode 100644 index 0000000..eca7c00 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html new file mode 100644 index 0000000..bcc46ad --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html @@ -0,0 +1,64 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html new file mode 100644 index 0000000..183b3c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html new file mode 100644 index 0000000..a2ab86c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking.html new file mode 100644 index 0000000..4f4e5ce --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload1.html new file mode 100644 index 0000000..08b72ef --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload1.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload2.html new file mode 100644 index 0000000..e40b2c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload2.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload3.html new file mode 100644 index 0000000..bae553a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload3.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/open.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/open.html new file mode 100644 index 0000000..eb13a2e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/open.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/open/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/open/overload1.html new file mode 100644 index 0000000..cee4ea5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/open/overload1.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+acceptor.open(asio::ip::tcp::v4());
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/open/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/open/overload2.html new file mode 100644 index 0000000..5541b3b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/open/overload2.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+asio::error_code ec;
+acceptor.open(asio::ip::tcp::v4(), ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_.html new file mode 100644 index 0000000..7eb5c67 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_.html @@ -0,0 +1,55 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_socket_acceptor & >::type operator=(
+    basic_socket_acceptor< Protocol1, Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload1.html new file mode 100644 index 0000000..6c982dd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload1.html @@ -0,0 +1,67 @@ + + + +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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload2.html new file mode 100644 index 0000000..01a260d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload2.html @@ -0,0 +1,71 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_socket_acceptor & >::type operator=(
+    basic_socket_acceptor< Protocol1, Executor1 > && 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/out_of_band_inline.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/out_of_band_inline.html new file mode 100644 index 0000000..afc2b73 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/out_of_band_inline.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::out_of_band_inline option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/protocol_type.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/protocol_type.html new file mode 100644 index 0000000..d5e4ff4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/receive_buffer_size.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/receive_buffer_size.html new file mode 100644 index 0000000..b7063d9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/receive_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/receive_low_watermark.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/receive_low_watermark.html new file mode 100644 index 0000000..d7fc7bb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/receive_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/release.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/release.html new file mode 100644 index 0000000..7b0aef7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/release.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/release/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/release/overload1.html new file mode 100644 index 0000000..2d97a44 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/release/overload1.html @@ -0,0 +1,68 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/release/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/release/overload2.html new file mode 100644 index 0000000..e8b0293 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/release/overload2.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/reuse_address.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/reuse_address.html new file mode 100644 index 0000000..8f788f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/reuse_address.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::socket_base::reuse_address option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/send_buffer_size.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/send_buffer_size.html new file mode 100644 index 0000000..f523484 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/send_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/send_low_watermark.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/send_low_watermark.html new file mode 100644 index 0000000..a4cd9cf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/send_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/set_option.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/set_option.html new file mode 100644 index 0000000..97e2520 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/set_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload1.html new file mode 100644 index 0000000..40861c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload1.html @@ -0,0 +1,84 @@ + + + +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(my_context);
+...
+asio::ip::tcp::acceptor::reuse_address option(true);
+acceptor.set_option(option);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload2.html new file mode 100644 index 0000000..e2dcf87 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload2.html @@ -0,0 +1,81 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_socket_acceptor/shutdown_type.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/shutdown_type.html new file mode 100644 index 0000000..0ecba9d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/shutdown_type.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/wait.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/wait.html new file mode 100644 index 0000000..274bc97 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/wait.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor/wait/overload1.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/wait/overload1.html new file mode 100644 index 0000000..be439ba --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/wait/overload1.html @@ -0,0 +1,70 @@ + + + +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(my_context);
+...
+acceptor.wait(asio::ip::tcp::acceptor::wait_read);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/wait/overload2.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/wait/overload2.html new file mode 100644 index 0000000..421625a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/wait/overload2.html @@ -0,0 +1,76 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+acceptor.wait(asio::ip::tcp::acceptor::wait_read, ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor/wait_type.html b/3party/asio/doc/asio/reference/basic_socket_acceptor/wait_type.html new file mode 100644 index 0000000..40c985d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor/wait_type.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_acceptor__rebind_executor.html b/3party/asio/doc/asio/reference/basic_socket_acceptor__rebind_executor.html new file mode 100644 index 0000000..e015e40 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_socket_acceptor::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the acceptor type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The socket type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_socket_acceptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_acceptor__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_socket_acceptor__rebind_executor/other.html new file mode 100644 index 0000000..57903f2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_acceptor__rebind_executor/other.html @@ -0,0 +1,782 @@ + + + +basic_socket_acceptor::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + socket type when rebound to the specified executor. +

+
typedef basic_socket_acceptor< Protocol, Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the acceptor type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the acceptor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous accept operations + are thread safe, if the underlying operating system calls are also thread + safe. This means that it is permitted to perform concurrent calls to synchronous + accept operations on a + single socket object. Other synchronous operations, such as open or close, + are not thread safe. +

+
+ + Example +
+

+ Opening a socket acceptor with the SO_REUSEADDR option enabled: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_socket_iostream.html b/3party/asio/doc/asio/reference/basic_socket_iostream.html new file mode 100644 index 0000000..44fdc2f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream.html @@ -0,0 +1,329 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream.html b/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream.html new file mode 100644 index 0000000..9186022 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html b/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html new file mode 100644 index 0000000..9d17120 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html b/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html new file mode 100644 index 0000000..cca6445 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html b/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html new file mode 100644 index 0000000..63510fb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html b/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html new file mode 100644 index 0000000..07cef9b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/clock_type.html b/3party/asio/doc/asio/reference/basic_socket_iostream/clock_type.html new file mode 100644 index 0000000..23c5961 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/clock_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/close.html b/3party/asio/doc/asio/reference/basic_socket_iostream/close.html new file mode 100644 index 0000000..711781b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/close.html @@ -0,0 +1,41 @@ + + + +basic_socket_iostream::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close + the connection. +

+
void close();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_iostream/connect.html b/3party/asio/doc/asio/reference/basic_socket_iostream/connect.html new file mode 100644 index 0000000..4cf39af --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/connect.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/duration.html b/3party/asio/doc/asio/reference/basic_socket_iostream/duration.html new file mode 100644 index 0000000..6ea1c18 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/duration.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/duration_type.html b/3party/asio/doc/asio/reference/basic_socket_iostream/duration_type.html new file mode 100644 index 0000000..f563476 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/duration_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/endpoint_type.html b/3party/asio/doc/asio/reference/basic_socket_iostream/endpoint_type.html new file mode 100644 index 0000000..4a4a4d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/endpoint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/error.html b/3party/asio/doc/asio/reference/basic_socket_iostream/error.html new file mode 100644 index 0000000..b58ef9c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/error.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/expires_after.html b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_after.html new file mode 100644 index 0000000..9a25b83 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_after.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/expires_at.html b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_at.html new file mode 100644 index 0000000..725f27d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_at.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload1.html b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload1.html new file mode 100644 index 0000000..83a57cc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload1.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload2.html b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload2.html new file mode 100644 index 0000000..13f255d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload2.html @@ -0,0 +1,59 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now.html b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now.html new file mode 100644 index 0000000..5b334a2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload1.html b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload1.html new file mode 100644 index 0000000..254273a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload1.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload2.html b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload2.html new file mode 100644 index 0000000..b9076d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload2.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/expiry.html b/3party/asio/doc/asio/reference/basic_socket_iostream/expiry.html new file mode 100644 index 0000000..3c58aab --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/expiry.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/operator_eq_.html b/3party/asio/doc/asio/reference/basic_socket_iostream/operator_eq_.html new file mode 100644 index 0000000..3aea5e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/operator_eq_.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/protocol_type.html b/3party/asio/doc/asio/reference/basic_socket_iostream/protocol_type.html new file mode 100644 index 0000000..9ca19ac --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/rdbuf.html b/3party/asio/doc/asio/reference/basic_socket_iostream/rdbuf.html new file mode 100644 index 0000000..d59e45a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/rdbuf.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/socket.html b/3party/asio/doc/asio/reference/basic_socket_iostream/socket.html new file mode 100644 index 0000000..7a40e15 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/socket.html @@ -0,0 +1,41 @@ + + + +basic_socket_iostream::socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + a reference to the underlying socket. +

+
basic_socket< Protocol > & socket();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_iostream/time_point.html b/3party/asio/doc/asio/reference/basic_socket_iostream/time_point.html new file mode 100644 index 0000000..88170b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/time_point.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_iostream/time_type.html b/3party/asio/doc/asio/reference/basic_socket_iostream/time_type.html new file mode 100644 index 0000000..1eda0df --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_iostream/time_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf.html b/3party/asio/doc/asio/reference/basic_socket_streambuf.html new file mode 100644 index 0000000..d894df2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf.html @@ -0,0 +1,402 @@ + + + +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 [constructor] +

+
+

+ 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] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html new file mode 100644 index 0000000..b1a7148 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html @@ -0,0 +1,41 @@ + + + +basic_socket_streambuf::~basic_socket_streambuf + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor + flushes buffered data. +

+
virtual ~basic_socket_streambuf();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf.html new file mode 100644 index 0000000..673174d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html new file mode 100644 index 0000000..5ad1fe0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html new file mode 100644 index 0000000..5351e22 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html new file mode 100644 index 0000000..c697326 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/clock_type.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/clock_type.html new file mode 100644 index 0000000..815d32e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/clock_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/close.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/close.html new file mode 100644 index 0000000..aa80de3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/close.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/connect.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/connect.html new file mode 100644 index 0000000..9ac9a9e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/connect.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/connect/overload1.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/connect/overload1.html new file mode 100644 index 0000000..65cf87b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/connect/overload1.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/connect/overload2.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/connect/overload2.html new file mode 100644 index 0000000..f218847 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/connect/overload2.html @@ -0,0 +1,61 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/duration.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/duration.html new file mode 100644 index 0000000..21681e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/duration.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/duration_type.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/duration_type.html new file mode 100644 index 0000000..e3b8b98 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/duration_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/endpoint_type.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/endpoint_type.html new file mode 100644 index 0000000..04319ef --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/endpoint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/error.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/error.html new file mode 100644 index 0000000..b8dd273 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/error.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_after.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_after.html new file mode 100644 index 0000000..75c9108 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_after.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at.html new file mode 100644 index 0000000..d7f1545 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload1.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload1.html new file mode 100644 index 0000000..f11667c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload1.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload2.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload2.html new file mode 100644 index 0000000..da909ce --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload2.html @@ -0,0 +1,59 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now.html new file mode 100644 index 0000000..4f79927 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload1.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload1.html new file mode 100644 index 0000000..393a319 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload1.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload2.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload2.html new file mode 100644 index 0000000..effccb5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload2.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/expiry.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/expiry.html new file mode 100644 index 0000000..d2ae89f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/expiry.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/operator_eq_.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/operator_eq_.html new file mode 100644 index 0000000..79449f1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/operator_eq_.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/overflow.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/overflow.html new file mode 100644 index 0000000..58aa9aa --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/overflow.html @@ -0,0 +1,40 @@ + + + +basic_socket_streambuf::overflow + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
int_type overflow(
+    int_type c);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_streambuf/protocol_type.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/protocol_type.html new file mode 100644 index 0000000..648f1dc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/puberror.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/puberror.html new file mode 100644 index 0000000..740b74c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/puberror.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/setbuf.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/setbuf.html new file mode 100644 index 0000000..f642567 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/setbuf.html @@ -0,0 +1,41 @@ + + + +basic_socket_streambuf::setbuf + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
std::streambuf * setbuf(
+    char_type * s,
+    std::streamsize n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_streambuf/socket.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/socket.html new file mode 100644 index 0000000..ca8aed3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/socket.html @@ -0,0 +1,41 @@ + + + +basic_socket_streambuf::socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + a reference to the underlying socket. +

+
basic_socket< Protocol > & socket();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_streambuf/sync.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/sync.html new file mode 100644 index 0000000..d8ab474 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/sync.html @@ -0,0 +1,39 @@ + + + +basic_socket_streambuf::sync + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
int sync();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_socket_streambuf/time_point.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/time_point.html new file mode 100644 index 0000000..18cb184 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/time_point.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/time_type.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/time_type.html new file mode 100644 index 0000000..c7f8a2e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/time_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_socket_streambuf/underflow.html b/3party/asio/doc/asio/reference/basic_socket_streambuf/underflow.html new file mode 100644 index 0000000..6e19173 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_socket_streambuf/underflow.html @@ -0,0 +1,39 @@ + + + +basic_socket_streambuf::underflow + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
int_type underflow();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file.html b/3party/asio/doc/asio/reference/basic_stream_file.html new file mode 100644 index 0000000..118fd5e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file.html @@ -0,0 +1,546 @@ + + + +basic_stream_file + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides stream-oriented file functionality. +

+
template<
+    typename Executor>
+class basic_stream_file :
+  public basic_file< Executor >
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the file type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ flags +

+
+

+ A bitmask type (C++ Std [lib.bitmask.types]). +

+
+

+ native_handle_type +

+
+

+ The native representation of a file. +

+
+

+ seek_basis +

+
+

+ Basis for seeking in a file. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native file to the file. +

+
+

+ async_read_some +

+
+

+ Start an asynchronous read. +

+
+

+ async_write_some +

+
+

+ Start an asynchronous write. +

+
+

+ basic_stream_file [constructor] +

+
+

+ Construct a basic_stream_file without opening it.

+ Construct and open a basic_stream_file.

Construct + a basic_stream_file on an existing native file.

Move-construct + a basic_stream_file from another.

Move-construct + a basic_stream_file from a file of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the file. +

+
+

+ close +

+
+

+ Close the file. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the file is open. +

+
+

+ native_handle +

+
+

+ Get the native file representation. +

+
+

+ open +

+
+

+ Open the file using the specified path. +

+
+

+ operator= +

+
+

+ Move-assign a basic_stream_file from another.

Move-assign + a basic_stream_file from a file of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the file. +

+
+

+ release +

+
+

+ Release ownership of the underlying native file. +

+
+

+ resize +

+
+

+ Alter the size of the file. +

+
+

+ seek +

+
+

+ Seek to a position in the file. +

+
+

+ size +

+
+

+ Get the size of the file. +

+
+

+ sync_all +

+
+

+ Synchronise the file to disk. +

+
+

+ sync_data +

+
+

+ Synchronise the file data to disk. +

+
+

+ write_some +

+
+

+ Write some data to the file. +

+
+

+ ~basic_stream_file [destructor] +

+
+

+ Destroys the file. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ append [static] +

+
+

+ Open the file in append mode. +

+
+

+ create [static] +

+
+

+ Create the file if it does not exist. +

+
+

+ exclusive [static] +

+
+

+ Ensure a new file is created. Must be combined with create. +

+
+

+ read_only [static] +

+
+

+ Open the file for reading. +

+
+

+ read_write [static] +

+
+

+ Open the file for reading and writing. +

+
+

+ sync_all_on_write [static] +

+
+

+ Open the file so that write operations automatically synchronise + the file data and metadata to disk. +

+
+

+ truncate [static] +

+
+

+ Open the file with any existing contents truncated. +

+
+

+ write_only [static] +

+
+

+ Open the file for writing. +

+
+

+ The basic_stream_file + class template provides asynchronous and blocking stream-oriented file functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_stream_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/_basic_stream_file.html b/3party/asio/doc/asio/reference/basic_stream_file/_basic_stream_file.html new file mode 100644 index 0000000..0505c7f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/_basic_stream_file.html @@ -0,0 +1,45 @@ + + + +basic_stream_file::~basic_stream_file + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destroys + the file. +

+
~basic_stream_file();
+
+

+ This function destroys the file, cancelling any outstanding asynchronous + operations associated with the file as if by calling cancel. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/append.html b/3party/asio/doc/asio/reference/basic_stream_file/append.html new file mode 100644 index 0000000..c13bff1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/append.html @@ -0,0 +1,44 @@ + + + +basic_stream_file::append + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open the + file in append mode. +

+
static const flags append = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/assign.html b/3party/asio/doc/asio/reference/basic_stream_file/assign.html new file mode 100644 index 0000000..b8663d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/assign.html @@ -0,0 +1,48 @@ + + + +basic_stream_file::assign + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign an + existing native file to the file. +

+
void assign(
+    const native_handle_type & native_file);
+  » more...
+
+void assign(
+    const native_handle_type & native_file,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/assign/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/assign/overload1.html new file mode 100644 index 0000000..1fde259 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/assign/overload1.html @@ -0,0 +1,44 @@ + + + +basic_stream_file::assign (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Assign an existing native file to the file. +

+
void assign(
+    const native_handle_type & native_file);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/assign/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/assign/overload2.html new file mode 100644 index 0000000..8642312 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/assign/overload2.html @@ -0,0 +1,45 @@ + + + +basic_stream_file::assign (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Assign an existing native file to the file. +

+
void assign(
+    const native_handle_type & native_file,
+    asio::error_code & ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/async_read_some.html b/3party/asio/doc/asio/reference/basic_stream_file/async_read_some.html new file mode 100644 index 0000000..a0f0978 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/async_read_some.html @@ -0,0 +1,142 @@ + + + +basic_stream_file::async_read_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous read. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_some(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read data from the stream file. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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: +

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

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/async_write_some.html b/3party/asio/doc/asio/reference/basic_stream_file/async_write_some.html new file mode 100644 index 0000000..2236f79 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/async_write_some.html @@ -0,0 +1,142 @@ + + + +basic_stream_file::async_write_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous write. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_some(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write data to the stream file. + It is an initiating function for an asynchronous + operation, and always returns immediately. +

+
+ + Parameters +
+
+

+
+
buffers
+

+ One or more data buffers to be written to the file. 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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: +

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

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file.html b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file.html new file mode 100644 index 0000000..930a2da --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file.html @@ -0,0 +1,119 @@ + + + +basic_stream_file::basic_stream_file + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a basic_stream_file + without opening it. +

+
explicit basic_stream_file(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_stream_file(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct and open a basic_stream_file. +

+
basic_stream_file(
+    const executor_type & ex,
+    const char * path,
+    file_base::flags open_flags);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_stream_file(
+    ExecutionContext & context,
+    const char * path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+basic_stream_file(
+    const executor_type & ex,
+    const std::string & path,
+    file_base::flags open_flags);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_stream_file(
+    ExecutionContext & context,
+    const std::string & path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a basic_stream_file on an existing + native file. +

+
basic_stream_file(
+    const executor_type & ex,
+    const native_handle_type & native_file);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_stream_file(
+    ExecutionContext & context,
+    const native_handle_type & native_file,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Move-construct a basic_stream_file from another. +

+
basic_stream_file(
+    basic_stream_file && other);
+  » more...
+
+

+ Move-construct a basic_stream_file from a file + of another executor type. +

+
template<
+    typename Executor1>
+basic_stream_file(
+    basic_stream_file< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload1.html new file mode 100644 index 0000000..c1ea276 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload1.html @@ -0,0 +1,60 @@ + + + +basic_stream_file::basic_stream_file (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_stream_file without opening + it. +

+
basic_stream_file(
+    const executor_type & ex);
+
+

+ This constructor initialises a file without opening it. The file needs + to be opened before data can be read from or or written to it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload10.html b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload10.html new file mode 100644 index 0000000..a8ce378 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload10.html @@ -0,0 +1,71 @@ + + + +basic_stream_file::basic_stream_file (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_stream_file from a file + of another executor type. +

+
template<
+    typename Executor1>
+basic_stream_file(
+    basic_stream_file< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves a stream file from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_stream_file 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_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload2.html new file mode 100644 index 0000000..aa06157 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload2.html @@ -0,0 +1,64 @@ + + + +basic_stream_file::basic_stream_file (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_stream_file without opening + it. +

+
template<
+    typename ExecutionContext>
+basic_stream_file(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises a file without opening it. The file needs + to be opened before data can be read from or or written to it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload3.html b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload3.html new file mode 100644 index 0000000..7e107f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload3.html @@ -0,0 +1,81 @@ + + + +basic_stream_file::basic_stream_file (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_stream_file. +

+
basic_stream_file(
+    const executor_type & ex,
+    const char * path,
+    file_base::flags open_flags);
+
+

+ This constructor initialises and opens a file. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload4.html b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload4.html new file mode 100644 index 0000000..50ae1dd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload4.html @@ -0,0 +1,85 @@ + + + +basic_stream_file::basic_stream_file (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_stream_file. +

+
template<
+    typename ExecutionContext>
+basic_stream_file(
+    ExecutionContext & context,
+    const char * path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises and opens a file. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload5.html b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload5.html new file mode 100644 index 0000000..57cbf0e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload5.html @@ -0,0 +1,81 @@ + + + +basic_stream_file::basic_stream_file (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_stream_file. +

+
basic_stream_file(
+    const executor_type & ex,
+    const std::string & path,
+    file_base::flags open_flags);
+
+

+ This constructor initialises and opens a file. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload6.html b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload6.html new file mode 100644 index 0000000..0552354 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload6.html @@ -0,0 +1,85 @@ + + + +basic_stream_file::basic_stream_file (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_stream_file. +

+
template<
+    typename ExecutionContext>
+basic_stream_file(
+    ExecutionContext & context,
+    const std::string & path,
+    file_base::flags open_flags,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises and opens a file. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload7.html b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload7.html new file mode 100644 index 0000000..c35f70b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload7.html @@ -0,0 +1,78 @@ + + + +basic_stream_file::basic_stream_file (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_stream_file on an existing + native file. +

+
basic_stream_file(
+    const executor_type & ex,
+    const native_handle_type & native_file);
+
+

+ This constructor initialises a stream file object to hold an existing + native file. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the file will use, by default, to dispatch + handlers for any asynchronous operations performed on the file. +

+
native_file
+

+ The new underlying file implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload8.html b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload8.html new file mode 100644 index 0000000..e5751b3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload8.html @@ -0,0 +1,82 @@ + + + +basic_stream_file::basic_stream_file (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_stream_file on an existing + native file. +

+
template<
+    typename ExecutionContext>
+basic_stream_file(
+    ExecutionContext & context,
+    const native_handle_type & native_file,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor initialises a stream file object to hold an existing + native file. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the file + will use, by default, to dispatch handlers for any asynchronous + operations performed on the file. +

+
native_file
+

+ The new underlying file implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload9.html b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload9.html new file mode 100644 index 0000000..cc4f52b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/basic_stream_file/overload9.html @@ -0,0 +1,67 @@ + + + +basic_stream_file::basic_stream_file (9 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_stream_file from another. +

+
basic_stream_file(
+    basic_stream_file && other);
+
+

+ This constructor moves a stream file from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_stream_file 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_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/cancel.html b/3party/asio/doc/asio/reference/basic_stream_file/cancel.html new file mode 100644 index 0000000..8c02019 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/cancel.html @@ -0,0 +1,46 @@ + + + +basic_stream_file::cancel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Cancel all + asynchronous operations associated with the file. +

+
void cancel();
+  » more...
+
+void cancel(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/cancel/overload1.html new file mode 100644 index 0000000..eb671c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/cancel/overload1.html @@ -0,0 +1,94 @@ + + + +basic_stream_file::cancel (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Cancel all asynchronous operations associated with the file. +

+
void cancel();
+
+

+ This function causes all outstanding asynchronous read and 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. +

+
+
+
+ + 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 the close() function to simultaneously cancel the + outstanding operations and close the file. +

+

+ 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/3party/asio/doc/asio/reference/basic_stream_file/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/cancel/overload2.html new file mode 100644 index 0000000..37cfa22 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/cancel/overload2.html @@ -0,0 +1,95 @@ + + + +basic_stream_file::cancel (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Cancel all asynchronous operations associated with the file. +

+
void cancel(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous read and 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. +

+
+
+
+ + 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 the close() function to simultaneously cancel the + outstanding operations and close the file. +

+

+ 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/3party/asio/doc/asio/reference/basic_stream_file/close.html b/3party/asio/doc/asio/reference/basic_stream_file/close.html new file mode 100644 index 0000000..a0862aa --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/close.html @@ -0,0 +1,45 @@ + + + +basic_stream_file::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close the file. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/close/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/close/overload1.html new file mode 100644 index 0000000..780459d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/close/overload1.html @@ -0,0 +1,62 @@ + + + +basic_stream_file::close (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Close the file. +

+
void close();
+
+

+ This function is used to close the file. 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/3party/asio/doc/asio/reference/basic_stream_file/close/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/close/overload2.html new file mode 100644 index 0000000..9d09ec8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/close/overload2.html @@ -0,0 +1,76 @@ + + + +basic_stream_file::close (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Close the file. +

+
void close(
+    asio::error_code & ec);
+
+

+ This function is used to close the file. 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. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+...
+asio::error_code ec;
+file.close(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/create.html b/3party/asio/doc/asio/reference/basic_stream_file/create.html new file mode 100644 index 0000000..88a1e00 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/create.html @@ -0,0 +1,44 @@ + + + +basic_stream_file::create + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Create the + file if it does not exist. +

+
static const flags create = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/exclusive.html b/3party/asio/doc/asio/reference/basic_stream_file/exclusive.html new file mode 100644 index 0000000..f3cf5cf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/exclusive.html @@ -0,0 +1,44 @@ + + + +basic_stream_file::exclusive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Ensure + a new file is created. Must be combined with create. +

+
static const flags exclusive = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/executor_type.html b/3party/asio/doc/asio/reference/basic_stream_file/executor_type.html new file mode 100644 index 0000000..20dc194 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_stream_file::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_stream_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/flags.html b/3party/asio/doc/asio/reference/basic_stream_file/flags.html new file mode 100644 index 0000000..37afb23 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/flags.html @@ -0,0 +1,54 @@ + + + +basic_stream_file::flags + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +A bitmask type + (C++ Std [lib.bitmask.types]). +

+
typedef unspecified flags;
+
+
+ + Requirements +
+

+ Header: asio/basic_stream_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/get_executor.html b/3party/asio/doc/asio/reference/basic_stream_file/get_executor.html new file mode 100644 index 0000000..de34a82 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/get_executor.html @@ -0,0 +1,44 @@ + + + +basic_stream_file::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/is_open.html b/3party/asio/doc/asio/reference/basic_stream_file/is_open.html new file mode 100644 index 0000000..14b12ff --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/is_open.html @@ -0,0 +1,44 @@ + + + +basic_stream_file::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ +Determine + whether the file is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/native_handle.html b/3party/asio/doc/asio/reference/basic_stream_file/native_handle.html new file mode 100644 index 0000000..50a7f84 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/native_handle.html @@ -0,0 +1,49 @@ + + + +basic_stream_file::native_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ +Get + the native file representation. +

+
native_handle_type native_handle();
+
+

+ This function may be used to obtain the underlying representation of the + file. This is intended to allow access to native file functionality that + is not otherwise provided. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/native_handle_type.html b/3party/asio/doc/asio/reference/basic_stream_file/native_handle_type.html new file mode 100644 index 0000000..0264366 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/native_handle_type.html @@ -0,0 +1,51 @@ + + + +basic_stream_file::native_handle_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + native representation of a file. +

+
typedef implementation_defined native_handle_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_stream_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/open.html b/3party/asio/doc/asio/reference/basic_stream_file/open.html new file mode 100644 index 0000000..4880c6c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/open.html @@ -0,0 +1,61 @@ + + + +basic_stream_file::open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Open the file + using the specified path. +

+
void open(
+    const char * path,
+    file_base::flags open_flags);
+  » more...
+
+void open(
+    const char * path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+  » more...
+
+void open(
+    const std::string & path,
+    file_base::flags open_flags);
+  » more...
+
+void open(
+    const std::string & path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/open/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/open/overload1.html new file mode 100644 index 0000000..3f8562b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/open/overload1.html @@ -0,0 +1,85 @@ + + + +basic_stream_file::open (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Open the file using the specified path. +

+
void open(
+    const char * path,
+    file_base::flags open_flags);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+file.open("/path/to/my/file", asio::stream_file::read_only);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/open/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/open/overload2.html new file mode 100644 index 0000000..c23c63f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/open/overload2.html @@ -0,0 +1,82 @@ + + + +basic_stream_file::open (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Open the file using the specified path. +

+
void open(
+    const char * path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+asio::error_code ec;
+file.open("/path/to/my/file", asio::stream_file::read_only, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/open/overload3.html b/3party/asio/doc/asio/reference/basic_stream_file/open/overload3.html new file mode 100644 index 0000000..49188b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/open/overload3.html @@ -0,0 +1,85 @@ + + + +basic_stream_file::open (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Open the file using the specified path. +

+
void open(
+    const std::string & path,
+    file_base::flags open_flags);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+file.open("/path/to/my/file", asio::stream_file::read_only);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/open/overload4.html b/3party/asio/doc/asio/reference/basic_stream_file/open/overload4.html new file mode 100644 index 0000000..443f233 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/open/overload4.html @@ -0,0 +1,82 @@ + + + +basic_stream_file::open (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Open the file using the specified path. +

+
void open(
+    const std::string & path,
+    file_base::flags open_flags,
+    asio::error_code & ec);
+
+

+ This function opens the file so that it will use the specified path. +

+
+ + Parameters +
+
+

+
+
path
+

+ The path name identifying the file to be opened. +

+
open_flags
+

+ A set of flags that determine how the file should be opened. +

+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ + Example +
+
asio::stream_file file(my_context);
+asio::error_code ec;
+file.open("/path/to/my/file", asio::stream_file::read_only, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/operator_eq_.html b/3party/asio/doc/asio/reference/basic_stream_file/operator_eq_.html new file mode 100644 index 0000000..9d7af79 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/operator_eq_.html @@ -0,0 +1,54 @@ + + + +basic_stream_file::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a basic_stream_file + from another. +

+
basic_stream_file & operator=(
+    basic_stream_file && other);
+  » more...
+
+

+ Move-assign a basic_stream_file from a file + of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_stream_file & >::type operator=(
+    basic_stream_file< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/operator_eq_/overload1.html new file mode 100644 index 0000000..be5818e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/operator_eq_/overload1.html @@ -0,0 +1,67 @@ + + + +basic_stream_file::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_stream_file from another. +

+
basic_stream_file & operator=(
+    basic_stream_file && other);
+
+

+ This assignment operator moves a stream file from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_stream_file 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_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/operator_eq_/overload2.html new file mode 100644 index 0000000..b104bd1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/operator_eq_/overload2.html @@ -0,0 +1,70 @@ + + + +basic_stream_file::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_stream_file from a file + of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_stream_file & >::type operator=(
+    basic_stream_file< Executor1 > && other);
+
+

+ This assignment operator moves a stream file from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_stream_file 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_file(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/read_only.html b/3party/asio/doc/asio/reference/basic_stream_file/read_only.html new file mode 100644 index 0000000..37271a9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/read_only.html @@ -0,0 +1,44 @@ + + + +basic_stream_file::read_only + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file for reading. +

+
static const flags read_only = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/read_some.html b/3party/asio/doc/asio/reference/basic_stream_file/read_some.html new file mode 100644 index 0000000..d174058 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/read_some.html @@ -0,0 +1,52 @@ + + + +basic_stream_file::read_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Read + some data from the file. +

+
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/3party/asio/doc/asio/reference/basic_stream_file/read_some/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/read_some/overload1.html new file mode 100644 index 0000000..c8aeb38 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/read_some/overload1.html @@ -0,0 +1,107 @@ + + + +basic_stream_file::read_some (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read some data from the file. +

+
template<
+    typename MutableBufferSequence>
+std::size_t read_some(
+    const MutableBufferSequence & buffers);
+
+

+ This function is used to read data from the stream file. 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 end of the file was reached. +

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

+
file.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/3party/asio/doc/asio/reference/basic_stream_file/read_some/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/read_some/overload2.html new file mode 100644 index 0000000..99b75df --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/read_some/overload2.html @@ -0,0 +1,84 @@ + + + +basic_stream_file::read_some (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read some data from the file. +

+
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 file. 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/3party/asio/doc/asio/reference/basic_stream_file/read_write.html b/3party/asio/doc/asio/reference/basic_stream_file/read_write.html new file mode 100644 index 0000000..745b676 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/read_write.html @@ -0,0 +1,44 @@ + + + +basic_stream_file::read_write + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file for reading and writing. +

+
static const flags read_write = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/release.html b/3party/asio/doc/asio/reference/basic_stream_file/release.html new file mode 100644 index 0000000..67b502d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/release.html @@ -0,0 +1,46 @@ + + + +basic_stream_file::release + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Release + ownership of the underlying native file. +

+
native_handle_type release();
+  » more...
+
+native_handle_type release(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/release/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/release/overload1.html new file mode 100644 index 0000000..40936b6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/release/overload1.html @@ -0,0 +1,71 @@ + + + +basic_stream_file::release (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Release ownership of the underlying native file. +

+
native_handle_type release();
+
+

+ This function causes all outstanding asynchronous read and write operations + to finish immediately, and the handlers for cancelled operations will + be passed the asio::error::operation_aborted error. Ownership + of the native file 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/3party/asio/doc/asio/reference/basic_stream_file/release/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/release/overload2.html new file mode 100644 index 0000000..07e7d32 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/release/overload2.html @@ -0,0 +1,72 @@ + + + +basic_stream_file::release (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Release ownership of the underlying native file. +

+
native_handle_type release(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous read and write operations + to finish immediately, and the handlers for cancelled operations will + be passed the asio::error::operation_aborted error. Ownership + of the native file 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/3party/asio/doc/asio/reference/basic_stream_file/resize.html b/3party/asio/doc/asio/reference/basic_stream_file/resize.html new file mode 100644 index 0000000..0910f40 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/resize.html @@ -0,0 +1,48 @@ + + + +basic_stream_file::resize + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Alter the + size of the file. +

+
void resize(
+    uint64_t n);
+  » more...
+
+void resize(
+    uint64_t n,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/resize/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/resize/overload1.html new file mode 100644 index 0000000..60b4809 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/resize/overload1.html @@ -0,0 +1,76 @@ + + + +basic_stream_file::resize (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Alter the size of the file. +

+
void resize(
+    uint64_t n);
+
+

+ This function resizes the file to the specified size, in bytes. If the + current file size exceeds n + then any extra data is discarded. If the current size is less than n then the file is extended and filled + with zeroes. +

+
+ + Parameters +
+
+

+
+
n
+

+ The new size for the file. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/resize/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/resize/overload2.html new file mode 100644 index 0000000..3f63929 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/resize/overload2.html @@ -0,0 +1,68 @@ + + + +basic_stream_file::resize (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Alter the size of the file. +

+
void resize(
+    uint64_t n,
+    asio::error_code & ec);
+
+

+ This function resizes the file to the specified size, in bytes. If the + current file size exceeds n + then any extra data is discarded. If the current size is less than n then the file is extended and filled + with zeroes. +

+
+ + Parameters +
+
+

+
+
n
+

+ The new size for the file. +

+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/seek.html b/3party/asio/doc/asio/reference/basic_stream_file/seek.html new file mode 100644 index 0000000..545ed23 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/seek.html @@ -0,0 +1,50 @@ + + + +basic_stream_file::seek + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Seek to a position + in the file. +

+
uint64_t seek(
+    int64_t offset,
+    file_base::seek_basis whence);
+  » more...
+
+uint64_t seek(
+    int64_t offset,
+    file_base::seek_basis whence,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/seek/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/seek/overload1.html new file mode 100644 index 0000000..068e922 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/seek/overload1.html @@ -0,0 +1,84 @@ + + + +basic_stream_file::seek (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Seek to a position in the file. +

+
uint64_t seek(
+    int64_t offset,
+    file_base::seek_basis whence);
+
+

+ This function updates the current position in the file. +

+
+ + Parameters +
+
+

+
+
offset
+

+ The requested position in the file, relative to whence. +

+
whence
+

+ One of seek_set, + seek_cur or seek_end. +

+
+
+
+ + Return + Value +
+

+ The new position relative to the beginning of the file. +

+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/seek/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/seek/overload2.html new file mode 100644 index 0000000..b2612ad --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/seek/overload2.html @@ -0,0 +1,76 @@ + + + +basic_stream_file::seek (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Seek to a position in the file. +

+
uint64_t seek(
+    int64_t offset,
+    file_base::seek_basis whence,
+    asio::error_code & ec);
+
+

+ This function updates the current position in the file. +

+
+ + Parameters +
+
+

+
+
offset
+

+ The requested position in the file, relative to whence. +

+
whence
+

+ One of seek_set, + seek_cur or seek_end. +

+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ + Return + Value +
+

+ The new position relative to the beginning of the file. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/seek_basis.html b/3party/asio/doc/asio/reference/basic_stream_file/seek_basis.html new file mode 100644 index 0000000..a3cfc37 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/seek_basis.html @@ -0,0 +1,70 @@ + + + +basic_stream_file::seek_basis + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Basis + for seeking in a file. +

+
enum seek_basis
+
+

+ + + +

+
+ + Values +
+
+

+
+
seek_set
+

+ Seek to an absolute position. +

+
seek_cur
+

+ Seek to an offset relative to the current file position. +

+
seek_end
+

+ Seek to an offset relative to the end of the file. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/size.html b/3party/asio/doc/asio/reference/basic_stream_file/size.html new file mode 100644 index 0000000..eb5a882 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/size.html @@ -0,0 +1,46 @@ + + + +basic_stream_file::size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the size + of the file. +

+
uint64_t size() const;
+  » more...
+
+uint64_t size(
+    asio::error_code & ec) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/size/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/size/overload1.html new file mode 100644 index 0000000..5af9025 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/size/overload1.html @@ -0,0 +1,59 @@ + + + +basic_stream_file::size (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Get the size of the file. +

+
uint64_t size() const;
+
+

+ This function determines the size of the file, in bytes. +

+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/size/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/size/overload2.html new file mode 100644 index 0000000..8186cda --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/size/overload2.html @@ -0,0 +1,60 @@ + + + +basic_stream_file::size (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Get the size of the file. +

+
uint64_t size(
+    asio::error_code & ec) const;
+
+

+ This function determines the size of the file, in bytes. +

+
+ + Parameters +
+
+

+
+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/sync_all.html b/3party/asio/doc/asio/reference/basic_stream_file/sync_all.html new file mode 100644 index 0000000..6041f1d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/sync_all.html @@ -0,0 +1,46 @@ + + + +basic_stream_file::sync_all + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Synchronise + the file to disk. +

+
void sync_all();
+  » more...
+
+void sync_all(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/sync_all/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/sync_all/overload1.html new file mode 100644 index 0000000..41e69ad --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/sync_all/overload1.html @@ -0,0 +1,60 @@ + + + +basic_stream_file::sync_all (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Synchronise the file to disk. +

+
void sync_all();
+
+

+ This function synchronises the file data and metadata to disk. Note that + the semantics of this synchronisation vary between operation systems. +

+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/sync_all/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/sync_all/overload2.html new file mode 100644 index 0000000..836dd6d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/sync_all/overload2.html @@ -0,0 +1,61 @@ + + + +basic_stream_file::sync_all (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Synchronise the file to disk. +

+
void sync_all(
+    asio::error_code & ec);
+
+

+ This function synchronises the file data and metadata to disk. Note that + the semantics of this synchronisation vary between operation systems. +

+
+ + Parameters +
+
+

+
+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/sync_all_on_write.html b/3party/asio/doc/asio/reference/basic_stream_file/sync_all_on_write.html new file mode 100644 index 0000000..915ff79 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/sync_all_on_write.html @@ -0,0 +1,45 @@ + + + +basic_stream_file::sync_all_on_write + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file so that write operations automatically synchronise the file data + and metadata to disk. +

+
static const flags sync_all_on_write = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/sync_data.html b/3party/asio/doc/asio/reference/basic_stream_file/sync_data.html new file mode 100644 index 0000000..6a3ada0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/sync_data.html @@ -0,0 +1,46 @@ + + + +basic_stream_file::sync_data + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Synchronise + the file data to disk. +

+
void sync_data();
+  » more...
+
+void sync_data(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/sync_data/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/sync_data/overload1.html new file mode 100644 index 0000000..83a0ed9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/sync_data/overload1.html @@ -0,0 +1,60 @@ + + + +basic_stream_file::sync_data (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Synchronise the file data to disk. +

+
void sync_data();
+
+

+ This function synchronises the file data to disk. Note that the semantics + of this synchronisation vary between operation systems. +

+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/sync_data/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/sync_data/overload2.html new file mode 100644 index 0000000..1dd08b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/sync_data/overload2.html @@ -0,0 +1,61 @@ + + + +basic_stream_file::sync_data (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_file. +

+

+ Synchronise the file data to disk. +

+
void sync_data(
+    asio::error_code & ec);
+
+

+ This function synchronises the file data to disk. Note that the semantics + of this synchronisation vary between operation systems. +

+
+ + Parameters +
+
+

+
+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/truncate.html b/3party/asio/doc/asio/reference/basic_stream_file/truncate.html new file mode 100644 index 0000000..af23dad --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/truncate.html @@ -0,0 +1,44 @@ + + + +basic_stream_file::truncate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file with any existing contents truncated. +

+
static const flags truncate = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/write_only.html b/3party/asio/doc/asio/reference/basic_stream_file/write_only.html new file mode 100644 index 0000000..52146f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/write_only.html @@ -0,0 +1,44 @@ + + + +basic_stream_file::write_only + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from file_base. +

+

+ +Open + the file for writing. +

+
static const flags write_only = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file/write_some.html b/3party/asio/doc/asio/reference/basic_stream_file/write_some.html new file mode 100644 index 0000000..30fd248 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/write_some.html @@ -0,0 +1,52 @@ + + + +basic_stream_file::write_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Write + some data to the file. +

+
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/3party/asio/doc/asio/reference/basic_stream_file/write_some/overload1.html b/3party/asio/doc/asio/reference/basic_stream_file/write_some/overload1.html new file mode 100644 index 0000000..bd3f34a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/write_some/overload1.html @@ -0,0 +1,106 @@ + + + +basic_stream_file::write_some (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write some data to the file. +

+
template<
+    typename ConstBufferSequence>
+std::size_t write_some(
+    const ConstBufferSequence & buffers);
+
+

+ This function is used to write data to the stream file. 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 file. +

+
+
+
+ + Return + Value +
+

+ The number of bytes written. +

+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. An error code of asio::error::eof + indicates that the end of the file was reached. +

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

+
file.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/3party/asio/doc/asio/reference/basic_stream_file/write_some/overload2.html b/3party/asio/doc/asio/reference/basic_stream_file/write_some/overload2.html new file mode 100644 index 0000000..0145156 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file/write_some/overload2.html @@ -0,0 +1,83 @@ + + + +basic_stream_file::write_some (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write some data to the file. +

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

+
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/3party/asio/doc/asio/reference/basic_stream_file__rebind_executor.html b/3party/asio/doc/asio/reference/basic_stream_file__rebind_executor.html new file mode 100644 index 0000000..874ca09 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_stream_file::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the file type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The file type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_stream_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_file__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_stream_file__rebind_executor/other.html new file mode 100644 index 0000000..7835c23 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_file__rebind_executor/other.html @@ -0,0 +1,544 @@ + + + +basic_stream_file::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + file type when rebound to the specified executor. +

+
typedef basic_stream_file< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the file type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ flags +

+
+

+ A bitmask type (C++ Std [lib.bitmask.types]). +

+
+

+ native_handle_type +

+
+

+ The native representation of a file. +

+
+

+ seek_basis +

+
+

+ Basis for seeking in a file. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native file to the file. +

+
+

+ async_read_some +

+
+

+ Start an asynchronous read. +

+
+

+ async_write_some +

+
+

+ Start an asynchronous write. +

+
+

+ basic_stream_file [constructor] +

+
+

+ Construct a basic_stream_file without opening it.

+ Construct and open a basic_stream_file.

Construct + a basic_stream_file on an existing native file.

+ Move-construct a basic_stream_file from another.

+ Move-construct a basic_stream_file from a file of another executor + type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the file. +

+
+

+ close +

+
+

+ Close the file. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the file is open. +

+
+

+ native_handle +

+
+

+ Get the native file representation. +

+
+

+ open +

+
+

+ Open the file using the specified path. +

+
+

+ operator= +

+
+

+ Move-assign a basic_stream_file from another.

Move-assign + a basic_stream_file from a file of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the file. +

+
+

+ release +

+
+

+ Release ownership of the underlying native file. +

+
+

+ resize +

+
+

+ Alter the size of the file. +

+
+

+ seek +

+
+

+ Seek to a position in the file. +

+
+

+ size +

+
+

+ Get the size of the file. +

+
+

+ sync_all +

+
+

+ Synchronise the file to disk. +

+
+

+ sync_data +

+
+

+ Synchronise the file data to disk. +

+
+

+ write_some +

+
+

+ Write some data to the file. +

+
+

+ ~basic_stream_file [destructor] +

+
+

+ Destroys the file. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ append [static] +

+
+

+ Open the file in append mode. +

+
+

+ create [static] +

+
+

+ Create the file if it does not exist. +

+
+

+ exclusive [static] +

+
+

+ Ensure a new file is created. Must be combined with create. +

+
+

+ read_only [static] +

+
+

+ Open the file for reading. +

+
+

+ read_write [static] +

+
+

+ Open the file for reading and writing. +

+
+

+ sync_all_on_write [static] +

+
+

+ Open the file so that write operations automatically synchronise + the file data and metadata to disk. +

+
+

+ truncate [static] +

+
+

+ Open the file with any existing contents truncated. +

+
+

+ write_only [static] +

+
+

+ Open the file for writing. +

+
+

+ The basic_stream_file + class template provides asynchronous and blocking stream-oriented file + functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_stream_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket.html b/3party/asio/doc/asio/reference/basic_stream_socket.html new file mode 100644 index 0000000..24e2611 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket.html @@ -0,0 +1,929 @@ + + + +basic_stream_socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides stream-oriented socket functionality. +

+
template<
+    typename Protocol,
+    typename Executor>
+class basic_stream_socket :
+  public basic_socket< Protocol, Executor >
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length of + the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, receive, connect, + and shutdown operations are + thread safe with respect to each other, if the underlying operating system + calls are also thread safe. This means that it is permitted to perform concurrent + calls to these synchronous operations on a single socket object. Other synchronous + operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/basic_stream_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/_basic_stream_socket.html b/3party/asio/doc/asio/reference/basic_stream_socket/_basic_stream_socket.html new file mode 100644 index 0000000..0ce3970 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/_basic_stream_socket.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/assign.html b/3party/asio/doc/asio/reference/basic_stream_socket/assign.html new file mode 100644 index 0000000..365b03e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/assign.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/assign/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/assign/overload1.html new file mode 100644 index 0000000..834fcbc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/assign/overload1.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/assign/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/assign/overload2.html new file mode 100644 index 0000000..6e98b39 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/assign/overload2.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/async_connect.html b/3party/asio/doc/asio/reference/basic_stream_socket/async_connect.html new file mode 100644 index 0000000..e4b317c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/async_connect.html @@ -0,0 +1,141 @@ + + + +basic_stream_socket::async_connect + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_socket. +

+

+ +Start + an asynchronous connect. +

+
template<
+    typename ConnectToken = DEFAULT>
+DEDUCED async_connect(
+    const endpoint_type & peer_endpoint,
+    ConnectToken && token = DEFAULT);
+
+

+ This function is used to asynchronously connect a socket to the specified + remote endpoint. It is an initiating function for an asynchronous + operation, and 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. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the connect completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void connect_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Connect succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::socket socket(my_context);
+asio::ip::tcp::endpoint endpoint(
+    asio::ip::address::from_string("1.2.3.4"), 12345);
+socket.async_connect(endpoint, connect_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/async_read_some.html b/3party/asio/doc/asio/reference/basic_stream_socket/async_read_some.html new file mode 100644 index 0000000..885068c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/async_read_some.html @@ -0,0 +1,142 @@ + + + +basic_stream_socket::async_read_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous read. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_some(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read data from the stream socket. + socket. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/async_receive.html b/3party/asio/doc/asio/reference/basic_stream_socket/async_receive.html new file mode 100644 index 0000000..808dca4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/async_receive.html @@ -0,0 +1,56 @@ + + + +basic_stream_socket::async_receive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+  » more...
+
+template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    socket_base::message_flags flags,
+    ReadToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/async_receive/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/async_receive/overload1.html new file mode 100644 index 0000000..012b7d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/async_receive/overload1.html @@ -0,0 +1,140 @@ + + + +basic_stream_socket::async_receive (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive data from the stream + socket. It is an initiating function for an asynchronous + operation, and 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 completion handler is + called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/async_receive/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/async_receive/overload2.html new file mode 100644 index 0000000..5da6d65 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/async_receive/overload2.html @@ -0,0 +1,145 @@ + + + +basic_stream_socket::async_receive (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous receive. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_receive(
+    const MutableBufferSequence & buffers,
+    socket_base::message_flags flags,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously receive data from the stream + socket. It is an initiating function for an asynchronous + operation, and 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 completion handler is + called. +

+
flags
+

+ Flags specifying how the receive call is to be made. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the receive completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/async_send.html b/3party/asio/doc/asio/reference/basic_stream_socket/async_send.html new file mode 100644 index 0000000..e51932a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/async_send.html @@ -0,0 +1,56 @@ + + + +basic_stream_socket::async_send + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous send. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+  » more...
+
+template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    socket_base::message_flags flags,
+    WriteToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/async_send/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/async_send/overload1.html new file mode 100644 index 0000000..c8cb562 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/async_send/overload1.html @@ -0,0 +1,139 @@ + + + +basic_stream_socket::async_send (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous send. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously send data on the stream socket. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the send completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/async_send/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/async_send/overload2.html new file mode 100644 index 0000000..988c4e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/async_send/overload2.html @@ -0,0 +1,144 @@ + + + +basic_stream_socket::async_send (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous send. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_send(
+    const ConstBufferSequence & buffers,
+    socket_base::message_flags flags,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously send data on the stream socket. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
flags
+

+ Flags specifying how the send call is to be made. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the send completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/async_wait.html b/3party/asio/doc/asio/reference/basic_stream_socket/async_wait.html new file mode 100644 index 0000000..a1827cb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/async_wait.html @@ -0,0 +1,136 @@ + + + +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 WaitToken = DEFAULT>
+DEDUCED async_wait(
+    wait_type w,
+    WaitToken && token = DEFAULT);
+
+

+ This function is used to perform an asynchronous wait for a socket to enter + a ready to read, write or error condition state. It is an initiating function + for an asynchronous operation, + and always returns immediately. +

+
+ + Parameters +
+
+

+
+
w
+

+ Specifies the desired socket state. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the wait completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void wait_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Wait succeeded.
+  }
+}
+
+...
+
+asio::ip::tcp::socket socket(my_context);
+...
+socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/async_write_some.html b/3party/asio/doc/asio/reference/basic_stream_socket/async_write_some.html new file mode 100644 index 0000000..a08a2d1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/async_write_some.html @@ -0,0 +1,142 @@ + + + +basic_stream_socket::async_write_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous write. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_some(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write data to the stream socket. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ On POSIX or Windows operating systems, this asynchronous operation supports + cancellation for the following cancellation_type values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/at_mark.html b/3party/asio/doc/asio/reference/basic_stream_socket/at_mark.html new file mode 100644 index 0000000..1d2cdf1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/at_mark.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/at_mark/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/at_mark/overload1.html new file mode 100644 index 0000000..52bfbb5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/at_mark/overload1.html @@ -0,0 +1,68 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/at_mark/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/at_mark/overload2.html new file mode 100644 index 0000000..f04f140 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/at_mark/overload2.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/available.html b/3party/asio/doc/asio/reference/basic_stream_socket/available.html new file mode 100644 index 0000000..74bb240 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/available.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/available/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/available/overload1.html new file mode 100644 index 0000000..9694c0b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/available/overload1.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/available/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/available/overload2.html new file mode 100644 index 0000000..c743d02 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/available/overload2.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket.html b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket.html new file mode 100644 index 0000000..1e2e2c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket.html @@ -0,0 +1,122 @@ + + + +basic_stream_socket::basic_stream_socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a basic_stream_socket + without opening it. +

+
explicit basic_stream_socket(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_stream_socket(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct and open a basic_stream_socket. +

+
basic_stream_socket(
+    const executor_type & ex,
+    const protocol_type & protocol);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_stream_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a basic_stream_socket, opening it + and binding it to the given local endpoint. +

+
basic_stream_socket(
+    const executor_type & ex,
+    const endpoint_type & endpoint);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_stream_socket(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Construct a basic_stream_socket on an existing + native socket. +

+
basic_stream_socket(
+    const executor_type & ex,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_stream_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » 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,
+    typename Executor1>
+basic_stream_socket(
+    basic_stream_socket< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload1.html new file mode 100644 index 0000000..d516eba --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload1.html @@ -0,0 +1,61 @@ + + + +basic_stream_socket::basic_stream_socket (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_stream_socket without + opening it. +

+
basic_stream_socket(
+    const executor_type & ex);
+
+

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

+
+
ex
+

+ The I/O executor that the socket will use, by default, to dispatch + handlers for any asynchronous operations performed on the socket. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload10.html b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload10.html new file mode 100644 index 0000000..904310f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload10.html @@ -0,0 +1,72 @@ + + + +basic_stream_socket::basic_stream_socket (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_stream_socket from a socket + of another protocol type. +

+
template<
+    typename Protocol1,
+    typename Executor1>
+basic_stream_socket(
+    basic_stream_socket< Protocol1, Executor1 > && other,
+    typename constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload2.html new file mode 100644 index 0000000..3acb647 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload2.html @@ -0,0 +1,65 @@ + + + +basic_stream_socket::basic_stream_socket (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_stream_socket without + opening it. +

+
template<
+    typename ExecutionContext>
+basic_stream_socket(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, to dispatch handlers for any asynchronous + operations performed on the socket. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload3.html b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload3.html new file mode 100644 index 0000000..44295f0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload3.html @@ -0,0 +1,77 @@ + + + +basic_stream_socket::basic_stream_socket (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_stream_socket. +

+
basic_stream_socket(
+    const executor_type & ex,
+    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 +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload4.html b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload4.html new file mode 100644 index 0000000..6c3e2e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload4.html @@ -0,0 +1,81 @@ + + + +basic_stream_socket::basic_stream_socket (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a basic_stream_socket. +

+
template<
+    typename ExecutionContext>
+basic_stream_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload5.html b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload5.html new file mode 100644 index 0000000..51fb7c9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload5.html @@ -0,0 +1,80 @@ + + + +basic_stream_socket::basic_stream_socket (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_stream_socket, opening + it and binding it to the given local endpoint. +

+
basic_stream_socket(
+    const executor_type & ex,
+    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 +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload6.html b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload6.html new file mode 100644 index 0000000..e45e53c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload6.html @@ -0,0 +1,84 @@ + + + +basic_stream_socket::basic_stream_socket (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_stream_socket, opening + it and binding it to the given local endpoint. +

+
template<
+    typename ExecutionContext>
+basic_stream_socket(
+    ExecutionContext & context,
+    const endpoint_type & endpoint,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload7.html b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload7.html new file mode 100644 index 0000000..c5703f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload7.html @@ -0,0 +1,83 @@ + + + +basic_stream_socket::basic_stream_socket (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_stream_socket on an existing + native socket. +

+
basic_stream_socket(
+    const executor_type & ex,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket);
+
+

+ This constructor creates a stream socket object to hold an existing native + socket. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the socket will use, by default, 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/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload8.html b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload8.html new file mode 100644 index 0000000..ec67301 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload8.html @@ -0,0 +1,87 @@ + + + +basic_stream_socket::basic_stream_socket (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_stream_socket on an existing + native socket. +

+
template<
+    typename ExecutionContext>
+basic_stream_socket(
+    ExecutionContext & context,
+    const protocol_type & protocol,
+    const native_handle_type & native_socket,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a stream socket object to hold an existing native + socket. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the socket + will use, by default, 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/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload9.html b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload9.html new file mode 100644 index 0000000..ea001b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload9.html @@ -0,0 +1,67 @@ + + + +basic_stream_socket::basic_stream_socket (9 of 10 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/bind.html b/3party/asio/doc/asio/reference/basic_stream_socket/bind.html new file mode 100644 index 0000000..7722b65 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/bind.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/bind/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/bind/overload1.html new file mode 100644 index 0000000..84de092 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/bind/overload1.html @@ -0,0 +1,83 @@ + + + +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(my_context);
+socket.open(asio::ip::tcp::v4());
+socket.bind(asio::ip::tcp::endpoint(
+      asio::ip::tcp::v4(), 12345));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/bind/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/bind/overload2.html new file mode 100644 index 0000000..a9b6193 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/bind/overload2.html @@ -0,0 +1,80 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_stream_socket/broadcast.html b/3party/asio/doc/asio/reference/basic_stream_socket/broadcast.html new file mode 100644 index 0000000..20bb5e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/broadcast.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::broadcast option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_stream_socket/bytes_readable.html b/3party/asio/doc/asio/reference/basic_stream_socket/bytes_readable.html new file mode 100644 index 0000000..a21e1fd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/bytes_readable.html @@ -0,0 +1,67 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_stream_socket/cancel.html b/3party/asio/doc/asio/reference/basic_stream_socket/cancel.html new file mode 100644 index 0000000..9003cc6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/cancel.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/cancel/overload1.html new file mode 100644 index 0000000..413caf2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/cancel/overload1.html @@ -0,0 +1,104 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/cancel/overload2.html new file mode 100644 index 0000000..dcbcdb0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/cancel/overload2.html @@ -0,0 +1,105 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/close.html b/3party/asio/doc/asio/reference/basic_stream_socket/close.html new file mode 100644 index 0000000..f032568 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/close.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/close/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/close/overload1.html new file mode 100644 index 0000000..625e31f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/close/overload1.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/close/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/close/overload2.html new file mode 100644 index 0000000..7dbb407 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/close/overload2.html @@ -0,0 +1,84 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_stream_socket/connect.html b/3party/asio/doc/asio/reference/basic_stream_socket/connect.html new file mode 100644 index 0000000..5d37eaa --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/connect.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/connect/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/connect/overload1.html new file mode 100644 index 0000000..9479e08 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/connect/overload1.html @@ -0,0 +1,89 @@ + + + +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(my_context);
+asio::ip::tcp::endpoint endpoint(
+    asio::ip::address::from_string("1.2.3.4"), 12345);
+socket.connect(endpoint);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/connect/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/connect/overload2.html new file mode 100644 index 0000000..eccf59f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/connect/overload2.html @@ -0,0 +1,86 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_stream_socket/debug.html b/3party/asio/doc/asio/reference/basic_stream_socket/debug.html new file mode 100644 index 0000000..4a02dce --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/debug.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::debug option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_stream_socket/do_not_route.html b/3party/asio/doc/asio/reference/basic_stream_socket/do_not_route.html new file mode 100644 index 0000000..1f79c19 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/do_not_route.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::do_not_route option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/basic_stream_socket/enable_connection_aborted.html b/3party/asio/doc/asio/reference/basic_stream_socket/enable_connection_aborted.html new file mode 100644 index 0000000..1d19891 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/enable_connection_aborted.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+...
+asio::socket_base::enable_connection_aborted option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_stream_socket/endpoint_type.html b/3party/asio/doc/asio/reference/basic_stream_socket/endpoint_type.html new file mode 100644 index 0000000..ae58213 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/endpoint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/executor_type.html b/3party/asio/doc/asio/reference/basic_stream_socket/executor_type.html new file mode 100644 index 0000000..a310db2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_stream_socket::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_stream_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/get_executor.html b/3party/asio/doc/asio/reference/basic_stream_socket/get_executor.html new file mode 100644 index 0000000..9190b29 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/get_executor.html @@ -0,0 +1,44 @@ + + + +basic_stream_socket::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from basic_socket. +

+

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/get_option.html b/3party/asio/doc/asio/reference/basic_stream_socket/get_option.html new file mode 100644 index 0000000..1645aa2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/get_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/get_option/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/get_option/overload1.html new file mode 100644 index 0000000..1f9d7b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/get_option/overload1.html @@ -0,0 +1,88 @@ + + + +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(my_context);
+...
+asio::ip::tcp::socket::keep_alive option;
+socket.get_option(option);
+bool is_set = option.value();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/get_option/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/get_option/overload2.html new file mode 100644 index 0000000..eaf2711 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/get_option/overload2.html @@ -0,0 +1,85 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_stream_socket/io_control.html b/3party/asio/doc/asio/reference/basic_stream_socket/io_control.html new file mode 100644 index 0000000..35ac4b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/io_control.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/io_control/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/io_control/overload1.html new file mode 100644 index 0000000..a305de1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/io_control/overload1.html @@ -0,0 +1,88 @@ + + + +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(my_context);
+...
+asio::ip::tcp::socket::bytes_readable command;
+socket.io_control(command);
+std::size_t bytes_readable = command.get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/io_control/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/io_control/overload2.html new file mode 100644 index 0000000..e2d4b5e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/io_control/overload2.html @@ -0,0 +1,85 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_stream_socket/is_open.html b/3party/asio/doc/asio/reference/basic_stream_socket/is_open.html new file mode 100644 index 0000000..4a0be67 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/is_open.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/keep_alive.html b/3party/asio/doc/asio/reference/basic_stream_socket/keep_alive.html new file mode 100644 index 0000000..2cca92f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/keep_alive.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::keep_alive option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_stream_socket/linger.html b/3party/asio/doc/asio/reference/basic_stream_socket/linger.html new file mode 100644 index 0000000..35d051f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/linger.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+...
+asio::socket_base::linger option(true, 30);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint.html b/3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint.html new file mode 100644 index 0000000..c1525e4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload1.html new file mode 100644 index 0000000..129185c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload1.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload2.html new file mode 100644 index 0000000..0848297 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer.html b/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer.html new file mode 100644 index 0000000..13c1143 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload1.html new file mode 100644 index 0000000..111f9b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload1.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload2.html new file mode 100644 index 0000000..c238d4e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload2.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer_type.html b/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer_type.html new file mode 100644 index 0000000..a889783 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/lowest_layer_type.html @@ -0,0 +1,846 @@ + + + +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, Executor > lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_stream_socket/max_connections.html b/3party/asio/doc/asio/reference/basic_stream_socket/max_connections.html new file mode 100644 index 0000000..e6330bf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/max_connections.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/max_listen_connections.html b/3party/asio/doc/asio/reference/basic_stream_socket/max_listen_connections.html new file mode 100644 index 0000000..a630a69 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/max_listen_connections.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/message_do_not_route.html b/3party/asio/doc/asio/reference/basic_stream_socket/message_do_not_route.html new file mode 100644 index 0000000..938147a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/message_do_not_route.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/message_end_of_record.html b/3party/asio/doc/asio/reference/basic_stream_socket/message_end_of_record.html new file mode 100644 index 0000000..45f13f0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/message_end_of_record.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/message_flags.html b/3party/asio/doc/asio/reference/basic_stream_socket/message_flags.html new file mode 100644 index 0000000..4e6748d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/message_flags.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/message_out_of_band.html b/3party/asio/doc/asio/reference/basic_stream_socket/message_out_of_band.html new file mode 100644 index 0000000..55d9528 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/message_out_of_band.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/message_peek.html b/3party/asio/doc/asio/reference/basic_stream_socket/message_peek.html new file mode 100644 index 0000000..95f2a93 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/message_peek.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/native_handle.html b/3party/asio/doc/asio/reference/basic_stream_socket/native_handle.html new file mode 100644 index 0000000..9183b9b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/native_handle.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/native_handle_type.html b/3party/asio/doc/asio/reference/basic_stream_socket/native_handle_type.html new file mode 100644 index 0000000..aa3154a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/native_handle_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking.html b/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking.html new file mode 100644 index 0000000..76e35cd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload1.html new file mode 100644 index 0000000..50bfda6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload1.html @@ -0,0 +1,143 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload2.html new file mode 100644 index 0000000..5611eb9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload2.html @@ -0,0 +1,158 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload3.html new file mode 100644 index 0000000..0f8bfa4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload3.html @@ -0,0 +1,149 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking.html b/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking.html new file mode 100644 index 0000000..6dcc7e1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload1.html new file mode 100644 index 0000000..9b72695 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload1.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload2.html new file mode 100644 index 0000000..dbe0321 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload2.html @@ -0,0 +1,82 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload3.html b/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload3.html new file mode 100644 index 0000000..56ad134 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload3.html @@ -0,0 +1,74 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/open.html b/3party/asio/doc/asio/reference/basic_stream_socket/open.html new file mode 100644 index 0000000..8c3063c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/open.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/open/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/open/overload1.html new file mode 100644 index 0000000..158df54 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/open/overload1.html @@ -0,0 +1,80 @@ + + + +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(my_context);
+socket.open(asio::ip::tcp::v4());
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/open/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/open/overload2.html new file mode 100644 index 0000000..2be4b23 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/open/overload2.html @@ -0,0 +1,77 @@ + + + +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(my_context);
+asio::error_code ec;
+socket.open(asio::ip::tcp::v4(), ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_.html b/3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_.html new file mode 100644 index 0000000..8bfaad4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_.html @@ -0,0 +1,55 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_stream_socket & >::type operator=(
+    basic_stream_socket< Protocol1, Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload1.html new file mode 100644 index 0000000..557b5dc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload1.html @@ -0,0 +1,67 @@ + + + +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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload2.html new file mode 100644 index 0000000..0185870 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload2.html @@ -0,0 +1,71 @@ + + + +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,
+    typename Executor1>
+constraint< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value, basic_stream_socket & >::type operator=(
+    basic_stream_socket< Protocol1, Executor1 > && 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/out_of_band_inline.html b/3party/asio/doc/asio/reference/basic_stream_socket/out_of_band_inline.html new file mode 100644 index 0000000..1696c7c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/out_of_band_inline.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::out_of_band_inline option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_stream_socket/protocol_type.html b/3party/asio/doc/asio/reference/basic_stream_socket/protocol_type.html new file mode 100644 index 0000000..eb2e4c9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/read_some.html b/3party/asio/doc/asio/reference/basic_stream_socket/read_some.html new file mode 100644 index 0000000..907ca52 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/read_some.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/read_some/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/read_some/overload1.html new file mode 100644 index 0000000..7df549b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/read_some/overload1.html @@ -0,0 +1,107 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/read_some/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/read_some/overload2.html new file mode 100644 index 0000000..7c74d80 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/read_some/overload2.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/receive.html b/3party/asio/doc/asio/reference/basic_stream_socket/receive.html new file mode 100644 index 0000000..d8e7b09 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/receive.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/receive/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/receive/overload1.html new file mode 100644 index 0000000..6587dbd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/receive/overload1.html @@ -0,0 +1,107 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/receive/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/receive/overload2.html new file mode 100644 index 0000000..b30e17b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/receive/overload2.html @@ -0,0 +1,112 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/receive/overload3.html b/3party/asio/doc/asio/reference/basic_stream_socket/receive/overload3.html new file mode 100644 index 0000000..a4d955e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/receive/overload3.html @@ -0,0 +1,89 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/receive_buffer_size.html b/3party/asio/doc/asio/reference/basic_stream_socket/receive_buffer_size.html new file mode 100644 index 0000000..3a23a81 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/receive_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_stream_socket/receive_low_watermark.html b/3party/asio/doc/asio/reference/basic_stream_socket/receive_low_watermark.html new file mode 100644 index 0000000..a903b79 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/receive_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_stream_socket/release.html b/3party/asio/doc/asio/reference/basic_stream_socket/release.html new file mode 100644 index 0000000..e12e035 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/release.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/release/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/release/overload1.html new file mode 100644 index 0000000..78b4b0b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/release/overload1.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/release/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/release/overload2.html new file mode 100644 index 0000000..abb0209 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/release/overload2.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint.html b/3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint.html new file mode 100644 index 0000000..e767b1c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload1.html new file mode 100644 index 0000000..f0e64a1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload1.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload2.html new file mode 100644 index 0000000..9e5cbf2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/reuse_address.html b/3party/asio/doc/asio/reference/basic_stream_socket/reuse_address.html new file mode 100644 index 0000000..31d6eee --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/reuse_address.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::socket_base::reuse_address option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/basic_stream_socket/send.html b/3party/asio/doc/asio/reference/basic_stream_socket/send.html new file mode 100644 index 0000000..c010780 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/send.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/send/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/send/overload1.html new file mode 100644 index 0000000..20696c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/send/overload1.html @@ -0,0 +1,106 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/send/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/send/overload2.html new file mode 100644 index 0000000..0e734df --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/send/overload2.html @@ -0,0 +1,111 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/send/overload3.html b/3party/asio/doc/asio/reference/basic_stream_socket/send/overload3.html new file mode 100644 index 0000000..55c3c2c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/send/overload3.html @@ -0,0 +1,89 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/send_buffer_size.html b/3party/asio/doc/asio/reference/basic_stream_socket/send_buffer_size.html new file mode 100644 index 0000000..bd7db68 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/send_buffer_size.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_stream_socket/send_low_watermark.html b/3party/asio/doc/asio/reference/basic_stream_socket/send_low_watermark.html new file mode 100644 index 0000000..306fbc9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/send_low_watermark.html @@ -0,0 +1,78 @@ + + + +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(my_context);
+...
+asio::socket_base::send_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/basic_stream_socket/set_option.html b/3party/asio/doc/asio/reference/basic_stream_socket/set_option.html new file mode 100644 index 0000000..973226a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/set_option.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/set_option/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/set_option/overload1.html new file mode 100644 index 0000000..5e224f6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/set_option/overload1.html @@ -0,0 +1,87 @@ + + + +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(my_context);
+...
+asio::ip::tcp::no_delay option(true);
+socket.set_option(option);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/set_option/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/set_option/overload2.html new file mode 100644 index 0000000..c6b3d87 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/set_option/overload2.html @@ -0,0 +1,84 @@ + + + +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(my_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/3party/asio/doc/asio/reference/basic_stream_socket/shutdown.html b/3party/asio/doc/asio/reference/basic_stream_socket/shutdown.html new file mode 100644 index 0000000..4148e1b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/shutdown.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/shutdown/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/shutdown/overload1.html new file mode 100644 index 0000000..5792c97 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/shutdown/overload1.html @@ -0,0 +1,85 @@ + + + +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(my_context);
+...
+socket.shutdown(asio::ip::tcp::socket::shutdown_send);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/shutdown/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/shutdown/overload2.html new file mode 100644 index 0000000..88d5129 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/shutdown/overload2.html @@ -0,0 +1,82 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/shutdown_type.html b/3party/asio/doc/asio/reference/basic_stream_socket/shutdown_type.html new file mode 100644 index 0000000..61d79ad --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/shutdown_type.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/wait.html b/3party/asio/doc/asio/reference/basic_stream_socket/wait.html new file mode 100644 index 0000000..b11ce9e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/wait.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/wait/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/wait/overload1.html new file mode 100644 index 0000000..97f1dfa --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/wait/overload1.html @@ -0,0 +1,73 @@ + + + +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(my_context);
+...
+socket.wait(asio::ip::tcp::socket::wait_read);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/wait/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/wait/overload2.html new file mode 100644 index 0000000..59ce7e1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/wait/overload2.html @@ -0,0 +1,79 @@ + + + +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(my_context);
+...
+asio::error_code ec;
+socket.wait(asio::ip::tcp::socket::wait_read, ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket/wait_type.html b/3party/asio/doc/asio/reference/basic_stream_socket/wait_type.html new file mode 100644 index 0000000..a323fee --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/wait_type.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/write_some.html b/3party/asio/doc/asio/reference/basic_stream_socket/write_some.html new file mode 100644 index 0000000..c606afe --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/write_some.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/write_some/overload1.html b/3party/asio/doc/asio/reference/basic_stream_socket/write_some/overload1.html new file mode 100644 index 0000000..a92e075 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/write_some/overload1.html @@ -0,0 +1,106 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket/write_some/overload2.html b/3party/asio/doc/asio/reference/basic_stream_socket/write_some/overload2.html new file mode 100644 index 0000000..ad57719 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket/write_some/overload2.html @@ -0,0 +1,83 @@ + + + +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/3party/asio/doc/asio/reference/basic_stream_socket__rebind_executor.html b/3party/asio/doc/asio/reference/basic_stream_socket__rebind_executor.html new file mode 100644 index 0000000..bca063f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_stream_socket::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the socket type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The socket type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_stream_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_stream_socket__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_stream_socket__rebind_executor/other.html new file mode 100644 index 0000000..f252016 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_stream_socket__rebind_executor/other.html @@ -0,0 +1,927 @@ + + + +basic_stream_socket::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + socket type when rebound to the specified executor. +

+
typedef basic_stream_socket< Protocol, Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, receive, connect, + and shutdown operations + are thread safe with respect to each other, if the underlying operating + system calls are also thread safe. This means that it is permitted to perform + concurrent calls to these synchronous operations on a single socket object. + Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/basic_stream_socket.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_streambuf.html b/3party/asio/doc/asio/reference/basic_streambuf.html new file mode 100644 index 0000000..de93be1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf.html @@ -0,0 +1,366 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_streambuf/basic_streambuf.html b/3party/asio/doc/asio/reference/basic_streambuf/basic_streambuf.html new file mode 100644 index 0000000..8bba70e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/basic_streambuf.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf/capacity.html b/3party/asio/doc/asio/reference/basic_streambuf/capacity.html new file mode 100644 index 0000000..1386bae --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/capacity.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf/commit.html b/3party/asio/doc/asio/reference/basic_streambuf/commit.html new file mode 100644 index 0000000..0371e0d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/commit.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf/const_buffers_type.html b/3party/asio/doc/asio/reference/basic_streambuf/const_buffers_type.html new file mode 100644 index 0000000..62a0fe4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/const_buffers_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf/consume.html b/3party/asio/doc/asio/reference/basic_streambuf/consume.html new file mode 100644 index 0000000..afe7df0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/consume.html @@ -0,0 +1,55 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf/data.html b/3party/asio/doc/asio/reference/basic_streambuf/data.html new file mode 100644 index 0000000..f63e657 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/data.html @@ -0,0 +1,59 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf/max_size.html b/3party/asio/doc/asio/reference/basic_streambuf/max_size.html new file mode 100644 index 0000000..55a72c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/max_size.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf/mutable_buffers_type.html b/3party/asio/doc/asio/reference/basic_streambuf/mutable_buffers_type.html new file mode 100644 index 0000000..44102f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/mutable_buffers_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf/overflow.html b/3party/asio/doc/asio/reference/basic_streambuf/overflow.html new file mode 100644 index 0000000..1afa1c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/overflow.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf/prepare.html b/3party/asio/doc/asio/reference/basic_streambuf/prepare.html new file mode 100644 index 0000000..e326e59 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/prepare.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf/reserve.html b/3party/asio/doc/asio/reference/basic_streambuf/reserve.html new file mode 100644 index 0000000..b2f5131 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/reserve.html @@ -0,0 +1,40 @@ + + + +basic_streambuf::reserve + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
void reserve(
+    std::size_t n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_streambuf/size.html b/3party/asio/doc/asio/reference/basic_streambuf/size.html new file mode 100644 index 0000000..5194b66 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/size.html @@ -0,0 +1,59 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf/underflow.html b/3party/asio/doc/asio/reference/basic_streambuf/underflow.html new file mode 100644 index 0000000..df15426 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf/underflow.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf_ref.html b/3party/asio/doc/asio/reference/basic_streambuf_ref.html new file mode 100644 index 0000000..32cf2a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref.html @@ -0,0 +1,227 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref.html new file mode 100644 index 0000000..5638052 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html new file mode 100644 index 0000000..df597bd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html new file mode 100644 index 0000000..d041d8d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html new file mode 100644 index 0000000..444b054 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf_ref/capacity.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/capacity.html new file mode 100644 index 0000000..ee71d85 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/capacity.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf_ref/commit.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/commit.html new file mode 100644 index 0000000..39c44c1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/commit.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf_ref/const_buffers_type.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/const_buffers_type.html new file mode 100644 index 0000000..6349a5d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/const_buffers_type.html @@ -0,0 +1,362 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_streambuf_ref/consume.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/consume.html new file mode 100644 index 0000000..29c81f6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/consume.html @@ -0,0 +1,42 @@ + + + +basic_streambuf_ref::consume + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Remove + characters from the input sequence. +

+
void consume(
+    std::size_t n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_streambuf_ref/data.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/data.html new file mode 100644 index 0000000..4b2c9e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/data.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf_ref/max_size.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/max_size.html new file mode 100644 index 0000000..446d7cd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/max_size.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf_ref/mutable_buffers_type.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/mutable_buffers_type.html new file mode 100644 index 0000000..0b1a8b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/mutable_buffers_type.html @@ -0,0 +1,362 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/basic_streambuf_ref/prepare.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/prepare.html new file mode 100644 index 0000000..c273e92 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/prepare.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/basic_streambuf_ref/size.html b/3party/asio/doc/asio/reference/basic_streambuf_ref/size.html new file mode 100644 index 0000000..f84a389 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_streambuf_ref/size.html @@ -0,0 +1,41 @@ + + + +basic_streambuf_ref::size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the size + of the input sequence. +

+
std::size_t size() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor.html b/3party/asio/doc/asio/reference/basic_system_executor.html new file mode 100644 index 0000000..58730c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor.html @@ -0,0 +1,278 @@ + + + +basic_system_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ An executor that uses arbitrary threads. +

+
template<
+    typename Blocking,
+    typename Relationship,
+    typename Allocator>
+class basic_system_executor
+
+
+ + Member Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_system_executor [constructor] +

+
+

+ Default constructor. +

+
+

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

+
+

+ execute +

+
+

+ Execution function. +

+
+

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

+
+

+ query +

+
+

+ Query the current value of the allocator property.

+ Query the occupancy (recommended number of work items) for the + system context. +

+
+

+ query [static] +

+
+

+ Query the current value of the mapping property.

+ Query the current value of the context property.

+ Query the current value of the blocking property.

+ Query the current value of the relationship property. +

+
+

+ require +

+
+

+ Obtain an executor with the blocking.possibly property.
+
Obtain an executor with the blocking.always property.
+
Obtain an executor with the blocking.never property.
+
Obtain an executor with the relationship.continuation property. +

Obtain an executor with the relationship.fork property. +

Obtain an executor with the specified allocator property. +

Obtain an executor with the default allocator property. +

+
+
+ + 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. When the blocking.never property is established, + the system executor will schedule the function to run on an unspecified system + thread pool. When either blocking.possibly or blocking.always is established, + the executor invokes the function immediately. +

+
+ + Requirements +
+

+ Header: asio/system_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/basic_system_executor.html b/3party/asio/doc/asio/reference/basic_system_executor/basic_system_executor.html new file mode 100644 index 0000000..20ec223 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/basic_system_executor.html @@ -0,0 +1,41 @@ + + + +basic_system_executor::basic_system_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
basic_system_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/context.html b/3party/asio/doc/asio/reference/basic_system_executor/context.html new file mode 100644 index 0000000..b1f20f6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/context.html @@ -0,0 +1,41 @@ + + + +basic_system_executor::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the underlying execution context. +

+
system_context & context() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/defer.html b/3party/asio/doc/asio/reference/basic_system_executor/defer.html new file mode 100644 index 0000000..77f6fe3 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/defer.html @@ -0,0 +1,75 @@ + + + +basic_system_executor::defer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Request + the system executor to invoke the given function object. +

+
template<
+    typename Function,
+    typename OtherAllocator>
+void defer(
+    Function && f,
+    const OtherAllocator & 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/3party/asio/doc/asio/reference/basic_system_executor/dispatch.html b/3party/asio/doc/asio/reference/basic_system_executor/dispatch.html new file mode 100644 index 0000000..aa70289 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/dispatch.html @@ -0,0 +1,74 @@ + + + +basic_system_executor::dispatch + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Request + the system executor to invoke the given function object. +

+
template<
+    typename Function,
+    typename OtherAllocator>
+void dispatch(
+    Function && f,
+    const OtherAllocator & 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/3party/asio/doc/asio/reference/basic_system_executor/execute.html b/3party/asio/doc/asio/reference/basic_system_executor/execute.html new file mode 100644 index 0000000..650a013 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/execute.html @@ -0,0 +1,44 @@ + + + +basic_system_executor::execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Execution + function. +

+
template<
+    typename Function>
+void execute(
+    Function && f) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/on_work_finished.html b/3party/asio/doc/asio/reference/basic_system_executor/on_work_finished.html new file mode 100644 index 0000000..feb3576 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/on_work_finished.html @@ -0,0 +1,44 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_system_executor/on_work_started.html b/3party/asio/doc/asio/reference/basic_system_executor/on_work_started.html new file mode 100644 index 0000000..4bb93fe --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/on_work_started.html @@ -0,0 +1,44 @@ + + + +basic_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/3party/asio/doc/asio/reference/basic_system_executor/operator_eq__eq_.html b/3party/asio/doc/asio/reference/basic_system_executor/operator_eq__eq_.html new file mode 100644 index 0000000..cc3f2b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/operator_eq__eq_.html @@ -0,0 +1,56 @@ + + + +basic_system_executor::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + two executors for equality. +

+
friend bool operator==(
+    const basic_system_executor & ,
+    const basic_system_executor & );
+
+

+ Two executors are equal if they refer to the same underlying io_context. +

+
+ + Requirements +
+

+ Header: asio/system_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/operator_not__eq_.html b/3party/asio/doc/asio/reference/basic_system_executor/operator_not__eq_.html new file mode 100644 index 0000000..adfbc07 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/operator_not__eq_.html @@ -0,0 +1,56 @@ + + + +basic_system_executor::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + two executors for inequality. +

+
friend bool operator!=(
+    const basic_system_executor & ,
+    const basic_system_executor & );
+
+

+ Two executors are equal if they refer to the same underlying io_context. +

+
+ + Requirements +
+

+ Header: asio/system_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/post.html b/3party/asio/doc/asio/reference/basic_system_executor/post.html new file mode 100644 index 0000000..274c7aa --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/post.html @@ -0,0 +1,75 @@ + + + +basic_system_executor::post + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Request + the system executor to invoke the given function object. +

+
template<
+    typename Function,
+    typename OtherAllocator>
+void post(
+    Function && f,
+    const OtherAllocator & 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/3party/asio/doc/asio/reference/basic_system_executor/query.html b/3party/asio/doc/asio/reference/basic_system_executor/query.html new file mode 100644 index 0000000..41d66c1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/query.html @@ -0,0 +1,57 @@ + + + +basic_system_executor::query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Query + the current value of the allocator + property. +

+
template<
+    typename OtherAllocator>
+constexpr Allocator query(
+    execution::allocator_t< OtherAllocator > ) const;
+  » more...
+
+constexpr Allocator query(
+    execution::allocator_t< void > ) const;
+  » more...
+
+

+ Query the occupancy (recommended number of work items) for the system context. +

+
std::size_t query(
+    execution::occupancy_t ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/query/overload1.html b/3party/asio/doc/asio/reference/basic_system_executor/query/overload1.html new file mode 100644 index 0000000..336847c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/query/overload1.html @@ -0,0 +1,56 @@ + + + +basic_system_executor::query (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the allocator + property. +

+
template<
+    typename OtherAllocator>
+constexpr Allocator query(
+    execution::allocator_t< OtherAllocator > ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
asio::system_executor ex;
+auto alloc = asio::query(ex,
+    asio::execution::allocator);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/query/overload2.html b/3party/asio/doc/asio/reference/basic_system_executor/query/overload2.html new file mode 100644 index 0000000..1ba3630 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/query/overload2.html @@ -0,0 +1,54 @@ + + + +basic_system_executor::query (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the allocator + property. +

+
constexpr Allocator query(
+    execution::allocator_t< void > ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
asio::system_executor ex;
+auto alloc = asio::query(ex,
+    asio::execution::allocator);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/query/overload3.html b/3party/asio/doc/asio/reference/basic_system_executor/query/overload3.html new file mode 100644 index 0000000..694779f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/query/overload3.html @@ -0,0 +1,54 @@ + + + +basic_system_executor::query (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the occupancy (recommended number of work items) for the system + context. +

+
std::size_t query(
+    execution::occupancy_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
asio::system_executor ex;
+std::size_t occupancy = asio::query(
+    ex, asio::execution::occupancy);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/query__static.html b/3party/asio/doc/asio/reference/basic_system_executor/query__static.html new file mode 100644 index 0000000..4442310 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/query__static.html @@ -0,0 +1,68 @@ + + + +basic_system_executor::query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Query + the current value of the mapping + property. +

+
static constexpr execution::mapping_t query(
+    execution::mapping_t );
+  » more...
+
+

+ Query the current value of the context + property. +

+
static system_context & query(
+    execution::context_t );
+  » more...
+
+

+ Query the current value of the blocking + property. +

+
static constexpr execution::blocking_t query(
+    execution::blocking_t );
+  » more...
+
+

+ Query the current value of the relationship + property. +

+
static constexpr execution::relationship_t query(
+    execution::relationship_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload1.html b/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload1.html new file mode 100644 index 0000000..6afa725 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload1.html @@ -0,0 +1,55 @@ + + + +basic_system_executor::query (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the mapping + property. +

+
static constexpr execution::mapping_t query(
+    execution::mapping_t );
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
asio::system_executor ex;
+if (asio::query(ex, asio::execution::mapping)
+      == asio::execution::mapping.thread)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload2.html b/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload2.html new file mode 100644 index 0000000..ee1f126 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload2.html @@ -0,0 +1,54 @@ + + + +basic_system_executor::query (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the context + property. +

+
static system_context & query(
+    execution::context_t );
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
asio::system_executor ex;
+asio::system_context& pool = asio::query(
+    ex, asio::execution::context);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload3.html b/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload3.html new file mode 100644 index 0000000..5a6b686 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload3.html @@ -0,0 +1,55 @@ + + + +basic_system_executor::query (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the blocking + property. +

+
static constexpr execution::blocking_t query(
+    execution::blocking_t );
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
asio::system_executor ex;
+if (asio::query(ex, asio::execution::blocking)
+      == asio::execution::blocking.always)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload4.html b/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload4.html new file mode 100644 index 0000000..3dc21c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/query__static/overload4.html @@ -0,0 +1,55 @@ + + + +basic_system_executor::query (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the relationship + property. +

+
static constexpr execution::relationship_t query(
+    execution::relationship_t );
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
asio::system_executor ex;
+if (asio::query(ex, asio::execution::relationship)
+      == asio::execution::relationship.continuation)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/require.html b/3party/asio/doc/asio/reference/basic_system_executor/require.html new file mode 100644 index 0000000..5ce6939 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/require.html @@ -0,0 +1,94 @@ + + + +basic_system_executor::require + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an executor with the blocking.possibly + property. +

+
basic_system_executor< execution::blocking_t::possibly_t, Relationship, Allocator > require(
+    execution::blocking_t::possibly_t ) const;
+  » more...
+
+

+ Obtain an executor with the blocking.always + property. +

+
basic_system_executor< execution::blocking_t::always_t, Relationship, Allocator > require(
+    execution::blocking_t::always_t ) const;
+  » more...
+
+

+ Obtain an executor with the blocking.never + property. +

+
basic_system_executor< execution::blocking_t::never_t, Relationship, Allocator > require(
+    execution::blocking_t::never_t ) const;
+  » more...
+
+

+ Obtain an executor with the relationship.continuation + property. +

+
basic_system_executor< Blocking, execution::relationship_t::continuation_t, Allocator > require(
+    execution::relationship_t::continuation_t ) const;
+  » more...
+
+

+ Obtain an executor with the relationship.fork + property. +

+
basic_system_executor< Blocking, execution::relationship_t::fork_t, Allocator > require(
+    execution::relationship_t::fork_t ) const;
+  » more...
+
+

+ Obtain an executor with the specified allocator + property. +

+
template<
+    typename OtherAllocator>
+basic_system_executor< Blocking, Relationship, OtherAllocator > require(
+    execution::allocator_t< OtherAllocator > a) const;
+  » more...
+
+

+ Obtain an executor with the default allocator + property. +

+
basic_system_executor< Blocking, Relationship, std::allocator< void > > require(
+    execution::allocator_t< void > ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/require/overload1.html b/3party/asio/doc/asio/reference/basic_system_executor/require/overload1.html new file mode 100644 index 0000000..687f0cc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/require/overload1.html @@ -0,0 +1,54 @@ + + + +basic_system_executor::require (1 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the blocking.possibly + property. +

+
basic_system_executor< execution::blocking_t::possibly_t, Relationship, Allocator > require(
+    execution::blocking_t::possibly_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
asio::system_executor ex1;
+auto ex2 = asio::require(ex1,
+    asio::execution::blocking.possibly);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/require/overload2.html b/3party/asio/doc/asio/reference/basic_system_executor/require/overload2.html new file mode 100644 index 0000000..c01972f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/require/overload2.html @@ -0,0 +1,54 @@ + + + +basic_system_executor::require (2 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the blocking.always + property. +

+
basic_system_executor< execution::blocking_t::always_t, Relationship, Allocator > require(
+    execution::blocking_t::always_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
asio::system_executor ex1;
+auto ex2 = asio::require(ex1,
+    asio::execution::blocking.always);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/require/overload3.html b/3party/asio/doc/asio/reference/basic_system_executor/require/overload3.html new file mode 100644 index 0000000..7ee3fa6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/require/overload3.html @@ -0,0 +1,54 @@ + + + +basic_system_executor::require (3 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the blocking.never + property. +

+
basic_system_executor< execution::blocking_t::never_t, Relationship, Allocator > require(
+    execution::blocking_t::never_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
asio::system_executor ex1;
+auto ex2 = asio::require(ex1,
+    asio::execution::blocking.never);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/require/overload4.html b/3party/asio/doc/asio/reference/basic_system_executor/require/overload4.html new file mode 100644 index 0000000..b30e827 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/require/overload4.html @@ -0,0 +1,54 @@ + + + +basic_system_executor::require (4 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the relationship.continuation + property. +

+
basic_system_executor< Blocking, execution::relationship_t::continuation_t, Allocator > require(
+    execution::relationship_t::continuation_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
asio::system_executor ex1;
+auto ex2 = asio::require(ex1,
+    asio::execution::relationship.continuation);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/require/overload5.html b/3party/asio/doc/asio/reference/basic_system_executor/require/overload5.html new file mode 100644 index 0000000..65ba2cb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/require/overload5.html @@ -0,0 +1,54 @@ + + + +basic_system_executor::require (5 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the relationship.fork + property. +

+
basic_system_executor< Blocking, execution::relationship_t::fork_t, Allocator > require(
+    execution::relationship_t::fork_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
asio::system_executor ex1;
+auto ex2 = asio::require(ex1,
+    asio::execution::relationship.fork);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/require/overload6.html b/3party/asio/doc/asio/reference/basic_system_executor/require/overload6.html new file mode 100644 index 0000000..998eeb7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/require/overload6.html @@ -0,0 +1,56 @@ + + + +basic_system_executor::require (6 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the specified allocator + property. +

+
template<
+    typename OtherAllocator>
+basic_system_executor< Blocking, Relationship, OtherAllocator > require(
+    execution::allocator_t< OtherAllocator > a) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
asio::system_executor ex1;
+auto ex2 = asio::require(ex1,
+    asio::execution::allocator(my_allocator));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_system_executor/require/overload7.html b/3party/asio/doc/asio/reference/basic_system_executor/require/overload7.html new file mode 100644 index 0000000..73f880a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_system_executor/require/overload7.html @@ -0,0 +1,54 @@ + + + +basic_system_executor::require (7 of 7 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the default allocator + property. +

+
basic_system_executor< Blocking, Relationship, std::allocator< void > > require(
+    execution::allocator_t< void > ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
asio::system_executor ex1;
+auto ex2 = asio::require(ex1,
+    asio::execution::allocator);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer.html b/3party/asio/doc/asio/reference/basic_waitable_timer.html new file mode 100644 index 0000000..a5ed44f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer.html @@ -0,0 +1,445 @@ + + + +basic_waitable_timer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides waitable timer functionality. +

+
template<
+    typename Clock,
+    typename WaitTraits,
+    typename Executor>
+class basic_waitable_timer
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the timer type to another executor. +

+
+

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

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

+
+

+ operator= +

+
+

+ Move-assign a basic_waitable_timer from another. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the timer. +

+
+

+ ~basic_waitable_timer [destructor] +

+
+

+ 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(my_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(my_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/3party/asio/doc/asio/reference/basic_waitable_timer/_basic_waitable_timer.html b/3party/asio/doc/asio/reference/basic_waitable_timer/_basic_waitable_timer.html new file mode 100644 index 0000000..ec4dc6f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/_basic_waitable_timer.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/async_wait.html b/3party/asio/doc/asio/reference/basic_waitable_timer/async_wait.html new file mode 100644 index 0000000..f792380 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/async_wait.html @@ -0,0 +1,121 @@ + + + +basic_waitable_timer::async_wait + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous wait on the timer. +

+
template<
+    typename WaitToken = DEFAULT>
+DEDUCED async_wait(
+    WaitToken && token = DEFAULT);
+
+

+ This function may be used to initiate an asynchronous wait against the + timer. It is an initiating function for an asynchronous + operation, and always returns immediately. +

+

+ For each call to async_wait(), the completion handler will be called + exactly once. The completion 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 +
+
+

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the timer expires. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer.html b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer.html new file mode 100644 index 0000000..240ee2f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer.html @@ -0,0 +1,95 @@ + + + +basic_waitable_timer::basic_waitable_timer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
explicit basic_waitable_timer(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_waitable_timer(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Constructor to set a particular expiry time as an absolute time. +

+
basic_waitable_timer(
+    const executor_type & ex,
+    const time_point & expiry_time);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_waitable_timer(
+    ExecutionContext & context,
+    const time_point & expiry_time,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Constructor to set a particular expiry time relative to now. +

+
basic_waitable_timer(
+    const executor_type & ex,
+    const duration & expiry_time);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_waitable_timer(
+    ExecutionContext & context,
+    const duration & expiry_time,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct a basic_waitable_timer from another. +

+
basic_waitable_timer(
+    basic_waitable_timer && other);
+  » more...
+
+template<
+    typename Executor1>
+basic_waitable_timer(
+    basic_waitable_timer< Clock, WaitTraits, Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html new file mode 100644 index 0000000..75a5b72 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html @@ -0,0 +1,62 @@ + + + +basic_waitable_timer::basic_waitable_timer (1 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor. +

+
basic_waitable_timer(
+    const executor_type & ex);
+
+

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

+
+
ex
+

+ The I/O executor that the timer will use, by default, to dispatch + handlers for any asynchronous operations performed on the timer. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html new file mode 100644 index 0000000..1d5506a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html @@ -0,0 +1,66 @@ + + + +basic_waitable_timer::basic_waitable_timer (2 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor. +

+
template<
+    typename ExecutionContext>
+basic_waitable_timer(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the timer + will use, by default, to dispatch handlers for any asynchronous + operations performed on the timer. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html new file mode 100644 index 0000000..f84b07d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html @@ -0,0 +1,65 @@ + + + +basic_waitable_timer::basic_waitable_timer (3 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor to set a particular expiry time as an absolute time. +

+
basic_waitable_timer(
+    const executor_type & ex,
+    const time_point & expiry_time);
+
+

+ This constructor creates a timer and sets the expiry time. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor object that the timer will use, by default, 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/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html new file mode 100644 index 0000000..a513965 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html @@ -0,0 +1,68 @@ + + + +basic_waitable_timer::basic_waitable_timer (4 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor to set a particular expiry time as an absolute time. +

+
template<
+    typename ExecutionContext>
+basic_waitable_timer(
+    ExecutionContext & context,
+    const time_point & expiry_time,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a timer and sets the expiry time. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the timer + will use, by default, 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/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload5.html b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload5.html new file mode 100644 index 0000000..f152ffe --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload5.html @@ -0,0 +1,63 @@ + + + +basic_waitable_timer::basic_waitable_timer (5 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor to set a particular expiry time relative to now. +

+
basic_waitable_timer(
+    const executor_type & ex,
+    const duration & expiry_time);
+
+

+ This constructor creates a timer and sets the expiry time. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the timer will use, by default, 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/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload6.html b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload6.html new file mode 100644 index 0000000..475c6c1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload6.html @@ -0,0 +1,67 @@ + + + +basic_waitable_timer::basic_waitable_timer (6 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor to set a particular expiry time relative to now. +

+
template<
+    typename ExecutionContext>
+basic_waitable_timer(
+    ExecutionContext & context,
+    const duration & expiry_time,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a timer and sets the expiry time. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the timer + will use, by default, 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/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload7.html b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload7.html new file mode 100644 index 0000000..2533200 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload7.html @@ -0,0 +1,67 @@ + + + +basic_waitable_timer::basic_waitable_timer (7 of 8 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload8.html b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload8.html new file mode 100644 index 0000000..8e42bf5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload8.html @@ -0,0 +1,70 @@ + + + +basic_waitable_timer::basic_waitable_timer (8 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_waitable_timer from another. +

+
template<
+    typename Executor1>
+basic_waitable_timer(
+    basic_waitable_timer< Clock, WaitTraits, Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value >::type  = 0);
+
+

+ 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer/cancel.html b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel.html new file mode 100644 index 0000000..f6ef91f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel/overload1.html new file mode 100644 index 0000000..0583760 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel/overload1.html @@ -0,0 +1,90 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel/overload2.html new file mode 100644 index 0000000..0750509 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel/overload2.html @@ -0,0 +1,92 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one.html b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one.html new file mode 100644 index 0000000..43a1adf --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload1.html b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload1.html new file mode 100644 index 0000000..e52df25 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload1.html @@ -0,0 +1,90 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload2.html b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload2.html new file mode 100644 index 0000000..99e2749 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload2.html @@ -0,0 +1,92 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/clock_type.html b/3party/asio/doc/asio/reference/basic_waitable_timer/clock_type.html new file mode 100644 index 0000000..347f3dc --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/clock_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/duration.html b/3party/asio/doc/asio/reference/basic_waitable_timer/duration.html new file mode 100644 index 0000000..c450e7e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/duration.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/executor_type.html b/3party/asio/doc/asio/reference/basic_waitable_timer/executor_type.html new file mode 100644 index 0000000..3114744 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_waitable_timer::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_waitable_timer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer/expires_after.html b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_after.html new file mode 100644 index 0000000..dd20e5e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_after.html @@ -0,0 +1,101 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at.html b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at.html new file mode 100644 index 0000000..7c162bb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at.html @@ -0,0 +1,59 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload1.html b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload1.html new file mode 100644 index 0000000..de3312b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload1.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload2.html b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload2.html new file mode 100644 index 0000000..c834b2e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload2.html @@ -0,0 +1,100 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload3.html b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload3.html new file mode 100644 index 0000000..fa11d9d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload3.html @@ -0,0 +1,93 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now.html b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now.html new file mode 100644 index 0000000..ed1d998 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now.html @@ -0,0 +1,56 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload1.html b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload1.html new file mode 100644 index 0000000..4131a3d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload1.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload2.html b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload2.html new file mode 100644 index 0000000..7a0089d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload2.html @@ -0,0 +1,101 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload3.html b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload3.html new file mode 100644 index 0000000..254a5a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload3.html @@ -0,0 +1,93 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/expiry.html b/3party/asio/doc/asio/reference/basic_waitable_timer/expiry.html new file mode 100644 index 0000000..11dac57 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/expiry.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/get_executor.html b/3party/asio/doc/asio/reference/basic_waitable_timer/get_executor.html new file mode 100644 index 0000000..42672b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/get_executor.html @@ -0,0 +1,41 @@ + + + +basic_waitable_timer::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_.html b/3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_.html new file mode 100644 index 0000000..c5c8b8d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_.html @@ -0,0 +1,50 @@ + + + +basic_waitable_timer::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a basic_waitable_timer + from another. +

+
basic_waitable_timer & operator=(
+    basic_waitable_timer && other);
+  » more...
+
+template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_waitable_timer & >::type operator=(
+    basic_waitable_timer< Clock, WaitTraits, Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_/overload1.html new file mode 100644 index 0000000..75e9ca6 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_/overload1.html @@ -0,0 +1,68 @@ + + + +basic_waitable_timer::operator= (1 of 2 overloads) + + + + + + + + + +
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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_/overload2.html new file mode 100644 index 0000000..5221881 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/operator_eq_/overload2.html @@ -0,0 +1,70 @@ + + + +basic_waitable_timer::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_waitable_timer from another. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_waitable_timer & >::type operator=(
+    basic_waitable_timer< Clock, WaitTraits, Executor1 > && 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer/time_point.html b/3party/asio/doc/asio/reference/basic_waitable_timer/time_point.html new file mode 100644 index 0000000..da11e51 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/time_point.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/traits_type.html b/3party/asio/doc/asio/reference/basic_waitable_timer/traits_type.html new file mode 100644 index 0000000..72fa6f1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/traits_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/wait.html b/3party/asio/doc/asio/reference/basic_waitable_timer/wait.html new file mode 100644 index 0000000..a8fd408 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/wait.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/wait/overload1.html b/3party/asio/doc/asio/reference/basic_waitable_timer/wait/overload1.html new file mode 100644 index 0000000..984f425 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/wait/overload1.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer/wait/overload2.html b/3party/asio/doc/asio/reference/basic_waitable_timer/wait/overload2.html new file mode 100644 index 0000000..f31f3b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer/wait/overload2.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/basic_waitable_timer__rebind_executor.html b/3party/asio/doc/asio/reference/basic_waitable_timer__rebind_executor.html new file mode 100644 index 0000000..8221830 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_waitable_timer::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the timer type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The timer type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_waitable_timer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_waitable_timer__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_waitable_timer__rebind_executor/other.html new file mode 100644 index 0000000..d7fddfb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_waitable_timer__rebind_executor/other.html @@ -0,0 +1,443 @@ + + + +basic_waitable_timer::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + timer type when rebound to the specified executor. +

+
typedef basic_waitable_timer< Clock, WaitTraits, Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the timer type to another executor. +

+
+

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

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

+
+

+ operator= +

+
+

+ Move-assign a basic_waitable_timer from another. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the timer. +

+
+

+ ~basic_waitable_timer [destructor] +

+
+

+ 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(my_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(my_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/3party/asio/doc/asio/reference/basic_writable_pipe.html b/3party/asio/doc/asio/reference/basic_writable_pipe.html new file mode 100644 index 0000000..b3aa65f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe.html @@ -0,0 +1,328 @@ + + + +basic_writable_pipe + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides pipe functionality. +

+
template<
+    typename Executor = any_io_executor>
+class basic_writable_pipe
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the pipe type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_writable_pipe is always the lowest layer. +

+
+

+ native_handle_type +

+
+

+ The native representation of a pipe. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native pipe to the pipe. +

+
+

+ async_write_some +

+
+

+ Start an asynchronous write. +

+
+

+ basic_writable_pipe [constructor] +

+
+

+ Construct a basic_writable_pipe without opening it.

+ Construct a basic_writable_pipe on an existing native pipe.
+
Move-construct a basic_writable_pipe from another.
+
Move-construct a basic_writable_pipe from a pipe of another + executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the pipe. +

+
+

+ close +

+
+

+ Close the pipe. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the pipe is open. +

+
+

+ lowest_layer +

+
+

+ Get a reference to the lowest layer.

Get a const + reference to the lowest layer. +

+
+

+ native_handle +

+
+

+ Get the native pipe representation. +

+
+

+ operator= +

+
+

+ Move-assign a basic_writable_pipe from another.

Move-assign + a basic_writable_pipe from a pipe of another executor type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native pipe. +

+
+

+ write_some +

+
+

+ Write some data to the pipe. +

+
+

+ ~basic_writable_pipe [destructor] +

+
+

+ Destroys the pipe. +

+
+

+ The basic_writable_pipe + class provides a wrapper over pipe functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_writable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/_basic_writable_pipe.html b/3party/asio/doc/asio/reference/basic_writable_pipe/_basic_writable_pipe.html new file mode 100644 index 0000000..7ad7318 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/_basic_writable_pipe.html @@ -0,0 +1,45 @@ + + + +basic_writable_pipe::~basic_writable_pipe + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destroys + the pipe. +

+
~basic_writable_pipe();
+
+

+ This function destroys the pipe, cancelling any outstanding asynchronous + wait operations associated with the pipe as if by calling cancel. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/assign.html b/3party/asio/doc/asio/reference/basic_writable_pipe/assign.html new file mode 100644 index 0000000..f6f85da --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/assign.html @@ -0,0 +1,48 @@ + + + +basic_writable_pipe::assign + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign + an existing native pipe to the pipe. +

+
void assign(
+    const native_handle_type & native_pipe);
+  » more...
+
+void assign(
+    const native_handle_type & native_pipe,
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/assign/overload1.html b/3party/asio/doc/asio/reference/basic_writable_pipe/assign/overload1.html new file mode 100644 index 0000000..2a7028e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/assign/overload1.html @@ -0,0 +1,41 @@ + + + +basic_writable_pipe::assign (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assign an existing native pipe to the pipe. +

+
void assign(
+    const native_handle_type & native_pipe);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/assign/overload2.html b/3party/asio/doc/asio/reference/basic_writable_pipe/assign/overload2.html new file mode 100644 index 0000000..be9b0a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/assign/overload2.html @@ -0,0 +1,42 @@ + + + +basic_writable_pipe::assign (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assign an existing native pipe to the pipe. +

+
void assign(
+    const native_handle_type & native_pipe,
+    asio::error_code & ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/async_write_some.html b/3party/asio/doc/asio/reference/basic_writable_pipe/async_write_some.html new file mode 100644 index 0000000..e53eddd --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/async_write_some.html @@ -0,0 +1,122 @@ + + + +basic_writable_pipe::async_write_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous write. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_some(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write data to the pipe. It is an + initiating function for an asynchronous + operation, and always returns immediately. +

+
+ + Parameters +
+
+

+
+
buffers
+

+ One or more data buffers to be written to the pipe. 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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: +

+
pipe.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/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe.html b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe.html new file mode 100644 index 0000000..6d86b97 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe.html @@ -0,0 +1,86 @@ + + + +basic_writable_pipe::basic_writable_pipe + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a basic_writable_pipe + without opening it. +

+
explicit basic_writable_pipe(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_writable_pipe(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a basic_writable_pipe on an existing + native pipe. +

+
basic_writable_pipe(
+    const executor_type & ex,
+    const native_handle_type & native_pipe);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_writable_pipe(
+    ExecutionContext & context,
+    const native_handle_type & native_pipe,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct a basic_writable_pipe from another. +

+
basic_writable_pipe(
+    basic_writable_pipe && other);
+  » more...
+
+

+ Move-construct a basic_writable_pipe from a pipe + of another executor type. +

+
template<
+    typename Executor1>
+basic_writable_pipe(
+    basic_writable_pipe< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload1.html b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload1.html new file mode 100644 index 0000000..b5a752e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload1.html @@ -0,0 +1,59 @@ + + + +basic_writable_pipe::basic_writable_pipe (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_writable_pipe without + opening it. +

+
basic_writable_pipe(
+    const executor_type & ex);
+
+

+ This constructor creates a pipe without opening it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the pipe will use, by default, to dispatch + handlers for any asynchronous operations performed on the pipe. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload2.html b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload2.html new file mode 100644 index 0000000..04b8eb2 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload2.html @@ -0,0 +1,63 @@ + + + +basic_writable_pipe::basic_writable_pipe (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_writable_pipe without + opening it. +

+
template<
+    typename ExecutionContext>
+basic_writable_pipe(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates a pipe without opening it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the pipe + will use, by default, to dispatch handlers for any asynchronous + operations performed on the pipe. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload3.html b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload3.html new file mode 100644 index 0000000..08ad517 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload3.html @@ -0,0 +1,77 @@ + + + +basic_writable_pipe::basic_writable_pipe (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_writable_pipe on an existing + native pipe. +

+
basic_writable_pipe(
+    const executor_type & ex,
+    const native_handle_type & native_pipe);
+
+

+ This constructor creates a pipe object to hold an existing native pipe. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the pipe will use, by default, to dispatch + handlers for any asynchronous operations performed on the pipe. +

+
native_pipe
+

+ A native pipe. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload4.html b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload4.html new file mode 100644 index 0000000..019d519 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload4.html @@ -0,0 +1,81 @@ + + + +basic_writable_pipe::basic_writable_pipe (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a basic_writable_pipe on an existing + native pipe. +

+
template<
+    typename ExecutionContext>
+basic_writable_pipe(
+    ExecutionContext & context,
+    const native_handle_type & native_pipe,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a pipe object to hold an existing native pipe. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the pipe + will use, by default, to dispatch handlers for any asynchronous + operations performed on the pipe. +

+
native_pipe
+

+ A native pipe. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload5.html b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload5.html new file mode 100644 index 0000000..e600e0d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload5.html @@ -0,0 +1,67 @@ + + + +basic_writable_pipe::basic_writable_pipe (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_writable_pipe from another. +

+
basic_writable_pipe(
+    basic_writable_pipe && other);
+
+

+ This constructor moves a pipe from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_writable_pipe 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_writable_pipe(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload6.html b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload6.html new file mode 100644 index 0000000..253ede1 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload6.html @@ -0,0 +1,71 @@ + + + +basic_writable_pipe::basic_writable_pipe (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a basic_writable_pipe from a pipe + of another executor type. +

+
template<
+    typename Executor1>
+basic_writable_pipe(
+    basic_writable_pipe< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves a pipe from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_writable_pipe 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_writable_pipe(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/cancel.html b/3party/asio/doc/asio/reference/basic_writable_pipe/cancel.html new file mode 100644 index 0000000..fcb02a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/cancel.html @@ -0,0 +1,46 @@ + + + +basic_writable_pipe::cancel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Cancel + all asynchronous operations associated with the pipe. +

+
void cancel();
+  » more...
+
+void cancel(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/cancel/overload1.html b/3party/asio/doc/asio/reference/basic_writable_pipe/cancel/overload1.html new file mode 100644 index 0000000..fa4bc6e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/cancel/overload1.html @@ -0,0 +1,58 @@ + + + +basic_writable_pipe::cancel (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Cancel all asynchronous operations associated with the pipe. +

+
void cancel();
+
+

+ This function causes all outstanding asynchronous 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/3party/asio/doc/asio/reference/basic_writable_pipe/cancel/overload2.html b/3party/asio/doc/asio/reference/basic_writable_pipe/cancel/overload2.html new file mode 100644 index 0000000..266ea90 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/cancel/overload2.html @@ -0,0 +1,59 @@ + + + +basic_writable_pipe::cancel (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Cancel all asynchronous operations associated with the pipe. +

+
void cancel(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous 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/3party/asio/doc/asio/reference/basic_writable_pipe/close.html b/3party/asio/doc/asio/reference/basic_writable_pipe/close.html new file mode 100644 index 0000000..0bca02d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/close.html @@ -0,0 +1,46 @@ + + + +basic_writable_pipe::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close the + pipe. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/close/overload1.html b/3party/asio/doc/asio/reference/basic_writable_pipe/close/overload1.html new file mode 100644 index 0000000..f65ad1e --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/close/overload1.html @@ -0,0 +1,57 @@ + + + +basic_writable_pipe::close (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Close the pipe. +

+
void close();
+
+

+ This function is used to close the pipe. Any asynchronous 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/3party/asio/doc/asio/reference/basic_writable_pipe/close/overload2.html b/3party/asio/doc/asio/reference/basic_writable_pipe/close/overload2.html new file mode 100644 index 0000000..ea7f880 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/close/overload2.html @@ -0,0 +1,58 @@ + + + +basic_writable_pipe::close (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Close the pipe. +

+
void close(
+    asio::error_code & ec);
+
+

+ This function is used to close the pipe. Any asynchronous 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/3party/asio/doc/asio/reference/basic_writable_pipe/executor_type.html b/3party/asio/doc/asio/reference/basic_writable_pipe/executor_type.html new file mode 100644 index 0000000..e83bc3c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_writable_pipe::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_writable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/get_executor.html b/3party/asio/doc/asio/reference/basic_writable_pipe/get_executor.html new file mode 100644 index 0000000..a62a37c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/get_executor.html @@ -0,0 +1,41 @@ + + + +basic_writable_pipe::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/is_open.html b/3party/asio/doc/asio/reference/basic_writable_pipe/is_open.html new file mode 100644 index 0000000..4ef9d05 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/is_open.html @@ -0,0 +1,41 @@ + + + +basic_writable_pipe::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the pipe is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer.html b/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer.html new file mode 100644 index 0000000..c1dbeca --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer.html @@ -0,0 +1,48 @@ + + + +basic_writable_pipe::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/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer/overload1.html new file mode 100644 index 0000000..b2bc92b --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer/overload1.html @@ -0,0 +1,54 @@ + + + +basic_writable_pipe::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_writable_pipe 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/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer/overload2.html new file mode 100644 index 0000000..378be87 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer/overload2.html @@ -0,0 +1,54 @@ + + + +basic_writable_pipe::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_writable_pipe 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/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer_type.html b/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer_type.html new file mode 100644 index 0000000..d2f680c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/lowest_layer_type.html @@ -0,0 +1,327 @@ + + + +basic_writable_pipe::lowest_layer_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + basic_writable_pipe + is always the lowest layer. +

+
typedef basic_writable_pipe lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the pipe type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_writable_pipe is always the lowest layer. +

+
+

+ native_handle_type +

+
+

+ The native representation of a pipe. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native pipe to the pipe. +

+
+

+ async_write_some +

+
+

+ Start an asynchronous write. +

+
+

+ basic_writable_pipe [constructor] +

+
+

+ Construct a basic_writable_pipe without opening it.

+ Construct a basic_writable_pipe on an existing native pipe. +

Move-construct a basic_writable_pipe from another. +

Move-construct a basic_writable_pipe from a pipe + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the pipe. +

+
+

+ close +

+
+

+ Close the pipe. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the pipe is open. +

+
+

+ lowest_layer +

+
+

+ Get a reference to the lowest layer.

Get a const + reference to the lowest layer. +

+
+

+ native_handle +

+
+

+ Get the native pipe representation. +

+
+

+ operator= +

+
+

+ Move-assign a basic_writable_pipe from another.

+ Move-assign a basic_writable_pipe from a pipe of another executor + type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native pipe. +

+
+

+ write_some +

+
+

+ Write some data to the pipe. +

+
+

+ ~basic_writable_pipe [destructor] +

+
+

+ Destroys the pipe. +

+
+

+ The basic_writable_pipe + class provides a wrapper over pipe functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_writable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/native_handle.html b/3party/asio/doc/asio/reference/basic_writable_pipe/native_handle.html new file mode 100644 index 0000000..0cdca48 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/native_handle.html @@ -0,0 +1,46 @@ + + + +basic_writable_pipe::native_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the native pipe representation. +

+
native_handle_type native_handle();
+
+

+ This function may be used to obtain the underlying representation of the + pipe. This is intended to allow access to native pipe functionality that + is not otherwise provided. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/native_handle_type.html b/3party/asio/doc/asio/reference/basic_writable_pipe/native_handle_type.html new file mode 100644 index 0000000..7c29272 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/native_handle_type.html @@ -0,0 +1,51 @@ + + + +basic_writable_pipe::native_handle_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + native representation of a pipe. +

+
typedef implementation_defined native_handle_type;
+
+
+ + Requirements +
+

+ Header: asio/basic_writable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_.html b/3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_.html new file mode 100644 index 0000000..1939607 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_.html @@ -0,0 +1,54 @@ + + + +basic_writable_pipe::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a basic_writable_pipe + from another. +

+
basic_writable_pipe & operator=(
+    basic_writable_pipe && other);
+  » more...
+
+

+ Move-assign a basic_writable_pipe from a pipe + of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_writable_pipe & >::type operator=(
+    basic_writable_pipe< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_/overload1.html new file mode 100644 index 0000000..466da1d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_/overload1.html @@ -0,0 +1,67 @@ + + + +basic_writable_pipe::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_writable_pipe from another. +

+
basic_writable_pipe & operator=(
+    basic_writable_pipe && other);
+
+

+ This assignment operator moves a pipe from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_writable_pipe 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_writable_pipe(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_/overload2.html new file mode 100644 index 0000000..7116373 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/operator_eq_/overload2.html @@ -0,0 +1,70 @@ + + + +basic_writable_pipe::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a basic_writable_pipe from a pipe + of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_writable_pipe & >::type operator=(
+    basic_writable_pipe< Executor1 > && other);
+
+

+ This assignment operator moves a pipe from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other basic_writable_pipe 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_writable_pipe(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/release.html b/3party/asio/doc/asio/reference/basic_writable_pipe/release.html new file mode 100644 index 0000000..fdcb86a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/release.html @@ -0,0 +1,46 @@ + + + +basic_writable_pipe::release + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Release + ownership of the underlying native pipe. +

+
native_handle_type release();
+  » more...
+
+native_handle_type release(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe/release/overload1.html b/3party/asio/doc/asio/reference/basic_writable_pipe/release/overload1.html new file mode 100644 index 0000000..1517361 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/release/overload1.html @@ -0,0 +1,68 @@ + + + +basic_writable_pipe::release (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Release ownership of the underlying native pipe. +

+
native_handle_type release();
+
+

+ This function causes all outstanding asynchronous write operations to + finish immediately, and the handlers for cancelled operations will be + passed the asio::error::operation_aborted error. Ownership + of the native pipe 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/3party/asio/doc/asio/reference/basic_writable_pipe/release/overload2.html b/3party/asio/doc/asio/reference/basic_writable_pipe/release/overload2.html new file mode 100644 index 0000000..f908959 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/release/overload2.html @@ -0,0 +1,69 @@ + + + +basic_writable_pipe::release (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Release ownership of the underlying native pipe. +

+
native_handle_type release(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous write operations to + finish immediately, and the handlers for cancelled operations will be + passed the asio::error::operation_aborted error. Ownership + of the native pipe 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/3party/asio/doc/asio/reference/basic_writable_pipe/write_some.html b/3party/asio/doc/asio/reference/basic_writable_pipe/write_some.html new file mode 100644 index 0000000..c56adad --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/write_some.html @@ -0,0 +1,52 @@ + + + +basic_writable_pipe::write_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Write + some data to the pipe. +

+
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/3party/asio/doc/asio/reference/basic_writable_pipe/write_some/overload1.html b/3party/asio/doc/asio/reference/basic_writable_pipe/write_some/overload1.html new file mode 100644 index 0000000..3fe38a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/write_some/overload1.html @@ -0,0 +1,106 @@ + + + +basic_writable_pipe::write_some (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write some data to the pipe. +

+
template<
+    typename ConstBufferSequence>
+std::size_t write_some(
+    const ConstBufferSequence & buffers);
+
+

+ This function is used to write data to the pipe. 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 pipe. +

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

+
pipe.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/3party/asio/doc/asio/reference/basic_writable_pipe/write_some/overload2.html b/3party/asio/doc/asio/reference/basic_writable_pipe/write_some/overload2.html new file mode 100644 index 0000000..fe3b251 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe/write_some/overload2.html @@ -0,0 +1,83 @@ + + + +basic_writable_pipe::write_some (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write some data to the pipe. +

+
template<
+    typename ConstBufferSequence>
+std::size_t write_some(
+    const ConstBufferSequence & buffers,
+    asio::error_code & ec);
+
+

+ This function is used to write data to the pipe. 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 pipe. +

+
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/3party/asio/doc/asio/reference/basic_writable_pipe__rebind_executor.html b/3party/asio/doc/asio/reference/basic_writable_pipe__rebind_executor.html new file mode 100644 index 0000000..aae3438 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe__rebind_executor.html @@ -0,0 +1,88 @@ + + + +basic_writable_pipe::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the pipe type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The pipe type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/basic_writable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_writable_pipe__rebind_executor/other.html b/3party/asio/doc/asio/reference/basic_writable_pipe__rebind_executor/other.html new file mode 100644 index 0000000..6a380e9 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_writable_pipe__rebind_executor/other.html @@ -0,0 +1,326 @@ + + + +basic_writable_pipe::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + pipe type when rebound to the specified executor. +

+
typedef basic_writable_pipe< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the pipe type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_writable_pipe is always the lowest layer. +

+
+

+ native_handle_type +

+
+

+ The native representation of a pipe. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native pipe to the pipe. +

+
+

+ async_write_some +

+
+

+ Start an asynchronous write. +

+
+

+ basic_writable_pipe [constructor] +

+
+

+ Construct a basic_writable_pipe without opening it.

+ Construct a basic_writable_pipe on an existing native pipe. +

Move-construct a basic_writable_pipe from another. +

Move-construct a basic_writable_pipe from a pipe + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the pipe. +

+
+

+ close +

+
+

+ Close the pipe. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the pipe is open. +

+
+

+ lowest_layer +

+
+

+ Get a reference to the lowest layer.

Get a const + reference to the lowest layer. +

+
+

+ native_handle +

+
+

+ Get the native pipe representation. +

+
+

+ operator= +

+
+

+ Move-assign a basic_writable_pipe from another.

+ Move-assign a basic_writable_pipe from a pipe of another executor + type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native pipe. +

+
+

+ write_some +

+
+

+ Write some data to the pipe. +

+
+

+ ~basic_writable_pipe [destructor] +

+
+

+ Destroys the pipe. +

+
+

+ The basic_writable_pipe + class provides a wrapper over pipe functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/basic_writable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context.html b/3party/asio/doc/asio/reference/basic_yield_context.html new file mode 100644 index 0000000..53a09eb --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context.html @@ -0,0 +1,245 @@ + + + +basic_yield_context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + that represents the currently executing coroutine. +

+
template<
+    typename Executor>
+class basic_yield_context
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ cancellation_slot_type +

+
+

+ The cancellation slot type associated with the yield context. +

+
+

+ executor_type +

+
+

+ The executor type associated with the yield context. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_yield_context [constructor] +

+
+

+ Construct a yield context from another yield context type. +

+
+

+ cancelled +

+
+

+ Determine whether the current coroutine has been cancelled. +

+
+

+ get_cancellation_slot +

+
+

+ Get the cancellation slot associated with the coroutine. +

+
+

+ get_cancellation_state +

+
+

+ Get the cancellation state associated with the coroutine. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the yield context. +

+
+

+ operator[] +

+
+

+ Return a yield context that sets the specified error_code. +

+
+

+ reset_cancellation_state +

+
+

+ Reset the cancellation state associated with the coroutine. +

+
+

+ throw_if_cancelled +

+
+

+ Determine whether the coroutine throws if trying to suspend when + it has been cancelled.

Set whether the coroutine + throws if trying to suspend when it has been cancelled. +

+
+

+ The basic_yield_context + class is a completion token type that is used to represent the currently + executing stackful coroutine. A basic_yield_context object may be + passed as a completion token to an asynchronous operation. For example: +

+
template <typename Executor>
+void my_coroutine(basic_yield_context<Executor> 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/3party/asio/doc/asio/reference/basic_yield_context/basic_yield_context.html b/3party/asio/doc/asio/reference/basic_yield_context/basic_yield_context.html new file mode 100644 index 0000000..efb1a5f --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/basic_yield_context.html @@ -0,0 +1,48 @@ + + + +basic_yield_context::basic_yield_context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a yield context from another yield context type. +

+
template<
+    typename OtherExecutor>
+basic_yield_context(
+    const basic_yield_context< OtherExecutor > & other,
+    typename constraint< is_convertible< OtherExecutor, Executor >::value >::type  = 0);
+
+

+ Requires that OtherExecutor be convertible to Executor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/cancellation_slot_type.html b/3party/asio/doc/asio/reference/basic_yield_context/cancellation_slot_type.html new file mode 100644 index 0000000..6438836 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/cancellation_slot_type.html @@ -0,0 +1,197 @@ + + + +basic_yield_context::cancellation_slot_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + cancellation slot type associated with the yield context. +

+
typedef cancellation_slot cancellation_slot_type;
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Installs a handler into the slot. +

+
+

+ cancellation_slot [constructor] +

+
+

+ Creates a slot that is not connected to any cancellation signal. +

+
+

+ clear +

+
+

+ Clears the slot. +

+
+

+ emplace +

+
+

+ Installs a handler into the slot, constructing the new object + directly. +

+
+

+ has_handler +

+
+

+ Returns whether the slot is connected and has an installed handler. +

+
+

+ is_connected +

+
+

+ Returns whether the slot is connected to a signal. +

+
+
+ + Friends +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Compare two slots for inequality. +

+
+

+ operator== +

+
+

+ Compare two slots for equality. +

+
+
+ + Requirements +
+

+ Header: asio/spawn.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/cancelled.html b/3party/asio/doc/asio/reference/basic_yield_context/cancelled.html new file mode 100644 index 0000000..d8e1ae0 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/cancelled.html @@ -0,0 +1,41 @@ + + + +basic_yield_context::cancelled + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the current coroutine has been cancelled. +

+
cancellation_type_t cancelled() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/executor_type.html b/3party/asio/doc/asio/reference/basic_yield_context/executor_type.html new file mode 100644 index 0000000..5c3741a --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/executor_type.html @@ -0,0 +1,51 @@ + + + +basic_yield_context::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + executor type associated with the yield context. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/spawn.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/get_cancellation_slot.html b/3party/asio/doc/asio/reference/basic_yield_context/get_cancellation_slot.html new file mode 100644 index 0000000..5ea4fb8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/get_cancellation_slot.html @@ -0,0 +1,41 @@ + + + +basic_yield_context::get_cancellation_slot + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the cancellation slot associated with the coroutine. +

+
cancellation_slot_type get_cancellation_slot() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/get_cancellation_state.html b/3party/asio/doc/asio/reference/basic_yield_context/get_cancellation_state.html new file mode 100644 index 0000000..ea83380 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/get_cancellation_state.html @@ -0,0 +1,41 @@ + + + +basic_yield_context::get_cancellation_state + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the cancellation state associated with the coroutine. +

+
cancellation_state get_cancellation_state() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/get_executor.html b/3party/asio/doc/asio/reference/basic_yield_context/get_executor.html new file mode 100644 index 0000000..7a00212 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/get_executor.html @@ -0,0 +1,41 @@ + + + +basic_yield_context::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the yield context. +

+
executor_type get_executor() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/operator_lb__rb_.html b/3party/asio/doc/asio/reference/basic_yield_context/operator_lb__rb_.html new file mode 100644 index 0000000..54d34a8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/operator_lb__rb_.html @@ -0,0 +1,61 @@ + + + +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 Executor>
+void my_coroutine(basic_yield_context<Executor> yield)
+{
+  ...
+  std::size_t n = my_socket.async_read_some(buffer, yield[ec]);
+  if (ec)
+  {
+    // An error occurred.
+  }
+  ...
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state.html b/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state.html new file mode 100644 index 0000000..bac6be8 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state.html @@ -0,0 +1,56 @@ + + + +basic_yield_context::reset_cancellation_state + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Reset + the cancellation state associated with the coroutine. +

+
void reset_cancellation_state() const;
+  » more...
+
+template<
+    typename Filter>
+void reset_cancellation_state(
+    Filter && filter) const;
+  » more...
+
+template<
+    typename InFilter,
+    typename OutFilter>
+void reset_cancellation_state(
+    InFilter && in_filter,
+    OutFilter && out_filter) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload1.html b/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload1.html new file mode 100644 index 0000000..e72d246 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload1.html @@ -0,0 +1,46 @@ + + + +basic_yield_context::reset_cancellation_state (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Reset the cancellation state associated with the coroutine. +

+
void reset_cancellation_state() const;
+
+

+ Let P be the cancellation + slot associated with the current coroutine's spawn completion handler. Assigns + a new cancellation_state object S, constructed as S(P), into the current coroutine's cancellation + state object. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload2.html b/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload2.html new file mode 100644 index 0000000..b93d996 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload2.html @@ -0,0 +1,49 @@ + + + +basic_yield_context::reset_cancellation_state (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Reset the cancellation state associated with the coroutine. +

+
template<
+    typename Filter>
+void reset_cancellation_state(
+    Filter && filter) const;
+
+

+ Let P be the cancellation + slot associated with the current coroutine's spawn completion handler. Assigns + a new cancellation_state object S, constructed as S(P, std::forward<Filter>(filter)), into the current coroutine's cancellation + state object. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload3.html b/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload3.html new file mode 100644 index 0000000..1b449af --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload3.html @@ -0,0 +1,51 @@ + + + +basic_yield_context::reset_cancellation_state (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Reset the cancellation state associated with the coroutine. +

+
template<
+    typename InFilter,
+    typename OutFilter>
+void reset_cancellation_state(
+    InFilter && in_filter,
+    OutFilter && out_filter) const;
+
+

+ Let P be the cancellation + slot associated with the current coroutine's spawn completion handler. Assigns + a new cancellation_state object S, constructed as S(P, std::forward<InFilter>(in_filter), std::forward<OutFilter>(out_filter)), into the current coroutine's cancellation + state object. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled.html b/3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled.html new file mode 100644 index 0000000..438ec58 --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled.html @@ -0,0 +1,50 @@ + + + +basic_yield_context::throw_if_cancelled + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the coroutine throws if trying to suspend when it has been cancelled. +

+
bool throw_if_cancelled() const;
+  » more...
+
+

+ Set whether the coroutine throws if trying to suspend when it has been + cancelled. +

+
void throw_if_cancelled(
+    bool value) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled/overload1.html b/3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled/overload1.html new file mode 100644 index 0000000..78b7f1c --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled/overload1.html @@ -0,0 +1,41 @@ + + + +basic_yield_context::throw_if_cancelled (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Determine whether the coroutine throws if trying to suspend when it has + been cancelled. +

+
bool throw_if_cancelled() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled/overload2.html b/3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled/overload2.html new file mode 100644 index 0000000..146192d --- /dev/null +++ b/3party/asio/doc/asio/reference/basic_yield_context/throw_if_cancelled/overload2.html @@ -0,0 +1,42 @@ + + + +basic_yield_context::throw_if_cancelled (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Set whether the coroutine throws if trying to suspend when it has been + cancelled. +

+
void throw_if_cancelled(
+    bool value) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/bind_allocator.html b/3party/asio/doc/asio/reference/bind_allocator.html new file mode 100644 index 0000000..6573955 --- /dev/null +++ b/3party/asio/doc/asio/reference/bind_allocator.html @@ -0,0 +1,58 @@ + + + +bind_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Associate an object of type T + with an allocator of type Allocator. +

+
template<
+    typename Allocator,
+    typename T>
+allocator_binder< typename decay< T >::type, Allocator > bind_allocator(
+    const Allocator & s,
+    T && t);
+
+
+ + Requirements +
+

+ Header: asio/bind_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/bind_cancellation_slot.html b/3party/asio/doc/asio/reference/bind_cancellation_slot.html new file mode 100644 index 0000000..6558f44 --- /dev/null +++ b/3party/asio/doc/asio/reference/bind_cancellation_slot.html @@ -0,0 +1,58 @@ + + + +bind_cancellation_slot + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Associate an object of type T + with a cancellation slot of type CancellationSlot. +

+
template<
+    typename CancellationSlot,
+    typename T>
+cancellation_slot_binder< typename decay< T >::type, CancellationSlot > bind_cancellation_slot(
+    const CancellationSlot & s,
+    T && t);
+
+
+ + Requirements +
+

+ Header: asio/bind_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/bind_executor.html b/3party/asio/doc/asio/reference/bind_executor.html new file mode 100644 index 0000000..c386142 --- /dev/null +++ b/3party/asio/doc/asio/reference/bind_executor.html @@ -0,0 +1,73 @@ + + + +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 constraint< is_executor< Executor >::value||execution::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 constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/bind_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/bind_executor/overload1.html b/3party/asio/doc/asio/reference/bind_executor/overload1.html new file mode 100644 index 0000000..cc91e1b --- /dev/null +++ b/3party/asio/doc/asio/reference/bind_executor/overload1.html @@ -0,0 +1,47 @@ + + + +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 constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/bind_executor/overload2.html b/3party/asio/doc/asio/reference/bind_executor/overload2.html new file mode 100644 index 0000000..05066e9 --- /dev/null +++ b/3party/asio/doc/asio/reference/bind_executor/overload2.html @@ -0,0 +1,47 @@ + + + +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 constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/bind_immediate_executor.html b/3party/asio/doc/asio/reference/bind_immediate_executor.html new file mode 100644 index 0000000..0516740 --- /dev/null +++ b/3party/asio/doc/asio/reference/bind_immediate_executor.html @@ -0,0 +1,58 @@ + + + +bind_immediate_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Associate an object of type T + with a immediate executor of type Executor. +

+
template<
+    typename Executor,
+    typename T>
+immediate_executor_binder< typename decay< T >::type, Executor > bind_immediate_executor(
+    const Executor & e,
+    T && t);
+
+
+ + Requirements +
+

+ Header: asio/bind_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer.html b/3party/asio/doc/asio/reference/buffer.html new file mode 100644 index 0000000..89def0a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer.html @@ -0,0 +1,642 @@ + + + +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 non-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...
+
+

+ Create a new modifiable buffer from a contiguous container. +

+
template<
+    typename T>
+mutable_buffer buffer(
+    T & data,
+    typename constraint< is_contiguous_iterator< typename T::iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_const< typename remove_reference< typename std::iterator_traits< typename T::iterator >::reference >::type >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+template<
+    typename T>
+mutable_buffer buffer(
+    T & data,
+    std::size_t max_size_in_bytes,
+    typename constraint< is_contiguous_iterator< typename T::iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_const< typename remove_reference< typename std::iterator_traits< typename T::iterator >::reference >::type >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Create a new non-modifiable buffer from a contiguous container. +

+
template<
+    typename T>
+const_buffer buffer(
+    T & data,
+    typename constraint< is_contiguous_iterator< typename T::iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< is_const< typename remove_reference< typename std::iterator_traits< typename T::iterator >::reference >::type >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+template<
+    typename T>
+const_buffer buffer(
+    T & data,
+    std::size_t max_size_in_bytes,
+    typename constraint< is_contiguous_iterator< typename T::iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< is_const< typename remove_reference< typename std::iterator_traits< typename T::iterator >::reference >::type >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+template<
+    typename T>
+const_buffer buffer(
+    const T & data,
+    typename constraint< is_contiguous_iterator< typename T::const_iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+template<
+    typename T>
+const_buffer buffer(
+    const T & data,
+    std::size_t max_size_in_bytes,
+    typename constraint< is_contiguous_iterator< typename T::const_iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Obtain a buffer representing the entire registered buffer. +

+
mutable_registered_buffer buffer(
+    const mutable_registered_buffer & b);
+  » more...
+
+const_registered_buffer buffer(
+    const const_registered_buffer & b);
+  » more...
+
+

+ Obtain a buffer representing part of a registered buffer. +

+
mutable_registered_buffer buffer(
+    const mutable_registered_buffer & b,
+    std::size_t n);
+  » more...
+
+const_registered_buffer buffer(
+    const const_registered_buffer & b,
+    std::size_t n);
+  » 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);
+
+
+ + Buffer + Literals +
+

+ The \_buf + literal suffix, defined in namespace asio::buffer_literals, + may be used to create const_buffer + objects from string, binary integer, and hexadecimal integer literals. For + example: +

+
using namespace asio::buffer_literals;
+
+asio::const_buffer b1 = "hello"_buf;
+asio::const_buffer b2 = 0xdeadbeef_buf;
+asio::const_buffer b3 = 0x0123456789abcdef0123456789abcdef_buf;
+asio::const_buffer b4 = 0b1010101011001100_buf;
+
+

+ Note that the memory associated with a buffer literal is valid for the lifetime + of the program. This means that the buffer can be safely used with asynchronous + operations. +

+
+ + Requirements +
+

+ Header: asio/buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer/overload1.html b/3party/asio/doc/asio/reference/buffer/overload1.html new file mode 100644 index 0000000..e8477dc --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload1.html @@ -0,0 +1,48 @@ + + + +buffer (1 of 42 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/3party/asio/doc/asio/reference/buffer/overload10.html b/3party/asio/doc/asio/reference/buffer/overload10.html new file mode 100644 index 0000000..768ac16 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload10.html @@ -0,0 +1,58 @@ + + + +buffer (10 of 42 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/3party/asio/doc/asio/reference/buffer/overload11.html b/3party/asio/doc/asio/reference/buffer/overload11.html new file mode 100644 index 0000000..abb1996 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload11.html @@ -0,0 +1,57 @@ + + + +buffer (11 of 42 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/3party/asio/doc/asio/reference/buffer/overload12.html b/3party/asio/doc/asio/reference/buffer/overload12.html new file mode 100644 index 0000000..9be98d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload12.html @@ -0,0 +1,58 @@ + + + +buffer (12 of 42 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/3party/asio/doc/asio/reference/buffer/overload13.html b/3party/asio/doc/asio/reference/buffer/overload13.html new file mode 100644 index 0000000..e3f389d --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload13.html @@ -0,0 +1,57 @@ + + + +buffer (13 of 42 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/3party/asio/doc/asio/reference/buffer/overload14.html b/3party/asio/doc/asio/reference/buffer/overload14.html new file mode 100644 index 0000000..58d4ecb --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload14.html @@ -0,0 +1,58 @@ + + + +buffer (14 of 42 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/3party/asio/doc/asio/reference/buffer/overload15.html b/3party/asio/doc/asio/reference/buffer/overload15.html new file mode 100644 index 0000000..c5c331a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload15.html @@ -0,0 +1,57 @@ + + + +buffer (15 of 42 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/3party/asio/doc/asio/reference/buffer/overload16.html b/3party/asio/doc/asio/reference/buffer/overload16.html new file mode 100644 index 0000000..34a844d --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload16.html @@ -0,0 +1,58 @@ + + + +buffer (16 of 42 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/3party/asio/doc/asio/reference/buffer/overload17.html b/3party/asio/doc/asio/reference/buffer/overload17.html new file mode 100644 index 0000000..5eac225 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload17.html @@ -0,0 +1,57 @@ + + + +buffer (17 of 42 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/3party/asio/doc/asio/reference/buffer/overload18.html b/3party/asio/doc/asio/reference/buffer/overload18.html new file mode 100644 index 0000000..41a3a47 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload18.html @@ -0,0 +1,58 @@ + + + +buffer (18 of 42 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/3party/asio/doc/asio/reference/buffer/overload19.html b/3party/asio/doc/asio/reference/buffer/overload19.html new file mode 100644 index 0000000..a31913e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload19.html @@ -0,0 +1,57 @@ + + + +buffer (19 of 42 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/3party/asio/doc/asio/reference/buffer/overload2.html b/3party/asio/doc/asio/reference/buffer/overload2.html new file mode 100644 index 0000000..706cdb8 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload2.html @@ -0,0 +1,54 @@ + + + +buffer (2 of 42 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/3party/asio/doc/asio/reference/buffer/overload20.html b/3party/asio/doc/asio/reference/buffer/overload20.html new file mode 100644 index 0000000..e979e8f --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload20.html @@ -0,0 +1,58 @@ + + + +buffer (20 of 42 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/3party/asio/doc/asio/reference/buffer/overload21.html b/3party/asio/doc/asio/reference/buffer/overload21.html new file mode 100644 index 0000000..63cb6d9 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload21.html @@ -0,0 +1,57 @@ + + + +buffer (21 of 42 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/3party/asio/doc/asio/reference/buffer/overload22.html b/3party/asio/doc/asio/reference/buffer/overload22.html new file mode 100644 index 0000000..1c2f767 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload22.html @@ -0,0 +1,58 @@ + + + +buffer (22 of 42 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/3party/asio/doc/asio/reference/buffer/overload23.html b/3party/asio/doc/asio/reference/buffer/overload23.html new file mode 100644 index 0000000..56bf5a9 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload23.html @@ -0,0 +1,65 @@ + + + +buffer (23 of 42 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/3party/asio/doc/asio/reference/buffer/overload24.html b/3party/asio/doc/asio/reference/buffer/overload24.html new file mode 100644 index 0000000..129c349 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload24.html @@ -0,0 +1,66 @@ + + + +buffer (24 of 42 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/3party/asio/doc/asio/reference/buffer/overload25.html b/3party/asio/doc/asio/reference/buffer/overload25.html new file mode 100644 index 0000000..e28cce0 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload25.html @@ -0,0 +1,65 @@ + + + +buffer (25 of 42 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/3party/asio/doc/asio/reference/buffer/overload26.html b/3party/asio/doc/asio/reference/buffer/overload26.html new file mode 100644 index 0000000..51a409e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload26.html @@ -0,0 +1,66 @@ + + + +buffer (26 of 42 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/3party/asio/doc/asio/reference/buffer/overload27.html b/3party/asio/doc/asio/reference/buffer/overload27.html new file mode 100644 index 0000000..0e70f44 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload27.html @@ -0,0 +1,62 @@ + + + +buffer (27 of 42 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/3party/asio/doc/asio/reference/buffer/overload28.html b/3party/asio/doc/asio/reference/buffer/overload28.html new file mode 100644 index 0000000..3a4713e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload28.html @@ -0,0 +1,67 @@ + + + +buffer (28 of 42 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/3party/asio/doc/asio/reference/buffer/overload29.html b/3party/asio/doc/asio/reference/buffer/overload29.html new file mode 100644 index 0000000..f6cfbb4 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload29.html @@ -0,0 +1,61 @@ + + + +buffer (29 of 42 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/3party/asio/doc/asio/reference/buffer/overload3.html b/3party/asio/doc/asio/reference/buffer/overload3.html new file mode 100644 index 0000000..86ef9c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload3.html @@ -0,0 +1,48 @@ + + + +buffer (3 of 42 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/3party/asio/doc/asio/reference/buffer/overload30.html b/3party/asio/doc/asio/reference/buffer/overload30.html new file mode 100644 index 0000000..9e9512e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload30.html @@ -0,0 +1,67 @@ + + + +buffer (30 of 42 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/3party/asio/doc/asio/reference/buffer/overload31.html b/3party/asio/doc/asio/reference/buffer/overload31.html new file mode 100644 index 0000000..a6bef6a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload31.html @@ -0,0 +1,53 @@ + + + +buffer (31 of 42 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a new non-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/3party/asio/doc/asio/reference/buffer/overload32.html b/3party/asio/doc/asio/reference/buffer/overload32.html new file mode 100644 index 0000000..dc03831 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload32.html @@ -0,0 +1,58 @@ + + + +buffer (32 of 42 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/3party/asio/doc/asio/reference/buffer/overload33.html b/3party/asio/doc/asio/reference/buffer/overload33.html new file mode 100644 index 0000000..357f266 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload33.html @@ -0,0 +1,60 @@ + + + +buffer (33 of 42 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a new modifiable buffer from a contiguous container. +

+
template<
+    typename T>
+mutable_buffer buffer(
+    T & data,
+    typename constraint< is_contiguous_iterator< typename T::iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_const< typename remove_reference< typename std::iterator_traits< typename T::iterator >::reference >::type >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+
+ + Return + Value +
+

+ A mutable_buffer + value equivalent to: +

+
mutable_buffer(
+    data.size() ? &data[0] : 0,
+    data.size() * sizeof(typename T::value_type));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer/overload34.html b/3party/asio/doc/asio/reference/buffer/overload34.html new file mode 100644 index 0000000..6253899 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload34.html @@ -0,0 +1,63 @@ + + + +buffer (34 of 42 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a new modifiable buffer from a contiguous container. +

+
template<
+    typename T>
+mutable_buffer buffer(
+    T & data,
+    std::size_t max_size_in_bytes,
+    typename constraint< is_contiguous_iterator< typename T::iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_const< typename remove_reference< typename std::iterator_traits< typename T::iterator >::reference >::type >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+
+ + Return + Value +
+

+ A mutable_buffer + value equivalent to: +

+
mutable_buffer(
+    data.size() ? &data[0] : 0,
+    min(
+      data.size() * sizeof(typename T::value_type),
+      max_size_in_bytes));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer/overload35.html b/3party/asio/doc/asio/reference/buffer/overload35.html new file mode 100644 index 0000000..c90625d --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload35.html @@ -0,0 +1,60 @@ + + + +buffer (35 of 42 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a new non-modifiable buffer from a contiguous container. +

+
template<
+    typename T>
+const_buffer buffer(
+    T & data,
+    typename constraint< is_contiguous_iterator< typename T::iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< is_const< typename remove_reference< typename std::iterator_traits< typename T::iterator >::reference >::type >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+
+ + Return + Value +
+

+ A const_buffer + value equivalent to: +

+
const_buffer(
+    data.size() ? &data[0] : 0,
+    data.size() * sizeof(typename T::value_type));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer/overload36.html b/3party/asio/doc/asio/reference/buffer/overload36.html new file mode 100644 index 0000000..7f68269 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload36.html @@ -0,0 +1,63 @@ + + + +buffer (36 of 42 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a new non-modifiable buffer from a contiguous container. +

+
template<
+    typename T>
+const_buffer buffer(
+    T & data,
+    std::size_t max_size_in_bytes,
+    typename constraint< is_contiguous_iterator< typename T::iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< is_const< typename remove_reference< typename std::iterator_traits< typename T::iterator >::reference >::type >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+
+ + Return + Value +
+

+ A const_buffer + value equivalent to: +

+
const_buffer(
+    data.size() ? &data[0] : 0,
+    min(
+      data.size() * sizeof(typename T::value_type),
+      max_size_in_bytes));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer/overload37.html b/3party/asio/doc/asio/reference/buffer/overload37.html new file mode 100644 index 0000000..0d42f17 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload37.html @@ -0,0 +1,59 @@ + + + +buffer (37 of 42 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a new non-modifiable buffer from a contiguous container. +

+
template<
+    typename T>
+const_buffer buffer(
+    const T & data,
+    typename constraint< is_contiguous_iterator< typename T::const_iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+
+ + Return + Value +
+

+ A const_buffer + value equivalent to: +

+
const_buffer(
+    data.size() ? &data[0] : 0,
+    data.size() * sizeof(typename T::value_type));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer/overload38.html b/3party/asio/doc/asio/reference/buffer/overload38.html new file mode 100644 index 0000000..bfbe0f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload38.html @@ -0,0 +1,62 @@ + + + +buffer (38 of 42 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a new non-modifiable buffer from a contiguous container. +

+
template<
+    typename T>
+const_buffer buffer(
+    const T & data,
+    std::size_t max_size_in_bytes,
+    typename constraint< is_contiguous_iterator< typename T::const_iterator >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type  = defaulted_constraint(),
+    typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+
+ + Return + Value +
+

+ A const_buffer + value equivalent to: +

+
const_buffer(
+    data.size() ? &data[0] : 0,
+    min(
+      data.size() * sizeof(typename T::value_type),
+      max_size_in_bytes));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer/overload39.html b/3party/asio/doc/asio/reference/buffer/overload39.html new file mode 100644 index 0000000..4b1b900 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload39.html @@ -0,0 +1,41 @@ + + + +buffer (39 of 42 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain a buffer representing the entire registered buffer. +

+
mutable_registered_buffer buffer(
+    const mutable_registered_buffer & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer/overload4.html b/3party/asio/doc/asio/reference/buffer/overload4.html new file mode 100644 index 0000000..61d9a59 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload4.html @@ -0,0 +1,54 @@ + + + +buffer (4 of 42 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/3party/asio/doc/asio/reference/buffer/overload40.html b/3party/asio/doc/asio/reference/buffer/overload40.html new file mode 100644 index 0000000..43a22ea --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload40.html @@ -0,0 +1,41 @@ + + + +buffer (40 of 42 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain a buffer representing the entire registered buffer. +

+
const_registered_buffer buffer(
+    const const_registered_buffer & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer/overload41.html b/3party/asio/doc/asio/reference/buffer/overload41.html new file mode 100644 index 0000000..c4ec182 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload41.html @@ -0,0 +1,42 @@ + + + +buffer (41 of 42 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain a buffer representing part of a registered buffer. +

+
mutable_registered_buffer buffer(
+    const mutable_registered_buffer & b,
+    std::size_t n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer/overload42.html b/3party/asio/doc/asio/reference/buffer/overload42.html new file mode 100644 index 0000000..ff3a260 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload42.html @@ -0,0 +1,42 @@ + + + +buffer (42 of 42 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain a buffer representing part of a registered buffer. +

+
const_registered_buffer buffer(
+    const const_registered_buffer & b,
+    std::size_t n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer/overload5.html b/3party/asio/doc/asio/reference/buffer/overload5.html new file mode 100644 index 0000000..ce70e88 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload5.html @@ -0,0 +1,49 @@ + + + +buffer (5 of 42 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/3party/asio/doc/asio/reference/buffer/overload6.html b/3party/asio/doc/asio/reference/buffer/overload6.html new file mode 100644 index 0000000..453cd34 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload6.html @@ -0,0 +1,49 @@ + + + +buffer (6 of 42 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/3party/asio/doc/asio/reference/buffer/overload7.html b/3party/asio/doc/asio/reference/buffer/overload7.html new file mode 100644 index 0000000..d96b296 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload7.html @@ -0,0 +1,56 @@ + + + +buffer (7 of 42 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/3party/asio/doc/asio/reference/buffer/overload8.html b/3party/asio/doc/asio/reference/buffer/overload8.html new file mode 100644 index 0000000..ac0814a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload8.html @@ -0,0 +1,57 @@ + + + +buffer (8 of 42 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/3party/asio/doc/asio/reference/buffer/overload9.html b/3party/asio/doc/asio/reference/buffer/overload9.html new file mode 100644 index 0000000..e6400a8 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer/overload9.html @@ -0,0 +1,56 @@ + + + +buffer (9 of 42 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/3party/asio/doc/asio/reference/buffer_cast.html b/3party/asio/doc/asio/reference/buffer_cast.html new file mode 100644 index 0000000..dcfb70e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_cast.html @@ -0,0 +1,87 @@ + + + +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/3party/asio/doc/asio/reference/buffer_cast/overload1.html b/3party/asio/doc/asio/reference/buffer_cast/overload1.html new file mode 100644 index 0000000..54465b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_cast/overload1.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/buffer_cast/overload2.html b/3party/asio/doc/asio/reference/buffer_cast/overload2.html new file mode 100644 index 0000000..4a235ac --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_cast/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/buffer_copy.html b/3party/asio/doc/asio/reference/buffer_copy.html new file mode 100644 index 0000000..8141524 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_copy.html @@ -0,0 +1,111 @@ + + + +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/3party/asio/doc/asio/reference/buffer_copy/overload1.html b/3party/asio/doc/asio/reference/buffer_copy/overload1.html new file mode 100644 index 0000000..98c0ece --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_copy/overload1.html @@ -0,0 +1,91 @@ + + + +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/3party/asio/doc/asio/reference/buffer_copy/overload2.html b/3party/asio/doc/asio/reference/buffer_copy/overload2.html new file mode 100644 index 0000000..568761c --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_copy/overload2.html @@ -0,0 +1,100 @@ + + + +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/3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf.html b/3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf.html new file mode 100644 index 0000000..31f1c6c --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf.html @@ -0,0 +1,65 @@ + + + +buffer_literals::operator""_buf + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Literal operator for creating const_buffer objects from string + literals. +

+
const_buffer operator""_buf(
+    const char * data,
+    std::size_t n);
+  » more...
+
+

+ Literal operator for creating const_buffer objects from unbounded + binary or hexadecimal integer literals. +

+
template<
+    char... Chars>
+const_buffer operator""_buf();
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf/overload1.html b/3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf/overload1.html new file mode 100644 index 0000000..8ef83d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf/overload1.html @@ -0,0 +1,43 @@ + + + +buffer_literals::operator""_buf (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Literal operator for creating const_buffer objects from string + literals. +

+
const_buffer operator""_buf(
+    const char * data,
+    std::size_t n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf/overload2.html b/3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf/overload2.html new file mode 100644 index 0000000..060c836 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_literals__operator_quot__quot__buf/overload2.html @@ -0,0 +1,43 @@ + + + +buffer_literals::operator""_buf (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Literal operator for creating const_buffer objects from unbounded + binary or hexadecimal integer literals. +

+
template<
+    char... Chars>
+const_buffer operator""_buf();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration.html b/3party/asio/doc/asio/reference/buffer_registration.html new file mode 100644 index 0000000..6df924a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration.html @@ -0,0 +1,267 @@ + + + +buffer_registration + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Automatically registers and unregistered buffers with an execution context. +

+
template<
+    typename MutableBufferSequence,
+    typename Allocator = std::allocator<void>>
+class buffer_registration
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocator_type +

+
+

+ The allocator type used for allocating storage for the buffers + container. +

+
+

+ const_iterator +

+
+

+ The type of a const iterator over the registered buffers. +

+
+

+ iterator +

+
+

+ The type of an iterator over the registered buffers. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ at +

+
+

+ Get the buffer at the specified index. +

+
+

+ begin +

+
+

+ Get the begin iterator for the sequence of registered buffers. +

+
+

+ buffer_registration [constructor] +

+
+

+ Register buffers with an executor's execution context.
+
Register buffers with an execution context.

+ Move constructor. +

+
+

+ cbegin +

+
+

+ Get the begin iterator for the sequence of registered buffers. +

+
+

+ cend +

+
+

+ Get the end iterator for the sequence of registered buffers. +

+
+

+ end +

+
+

+ Get the end iterator for the sequence of registered buffers. +

+
+

+ operator= +

+
+

+ Move assignment. +

+
+

+ operator[] +

+
+

+ Get the buffer at the specified index. +

+
+

+ size +

+
+

+ Get the number of registered buffers. +

+
+

+ ~buffer_registration [destructor] +

+
+

+ Unregisters the buffers. +

+
+

+ For portability, applications should assume that only one registration is + permitted per execution context. +

+
+ + Requirements +
+

+ Header: asio/buffer_registration.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/_buffer_registration.html b/3party/asio/doc/asio/reference/buffer_registration/_buffer_registration.html new file mode 100644 index 0000000..c15b274 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/_buffer_registration.html @@ -0,0 +1,41 @@ + + + +buffer_registration::~buffer_registration + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Unregisters + the buffers. +

+
~buffer_registration();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/allocator_type.html b/3party/asio/doc/asio/reference/buffer_registration/allocator_type.html new file mode 100644 index 0000000..37c07e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/allocator_type.html @@ -0,0 +1,51 @@ + + + +buffer_registration::allocator_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + allocator type used for allocating storage for the buffers container. +

+
typedef Allocator allocator_type;
+
+
+ + Requirements +
+

+ Header: asio/buffer_registration.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/at.html b/3party/asio/doc/asio/reference/buffer_registration/at.html new file mode 100644 index 0000000..e5a287a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/at.html @@ -0,0 +1,42 @@ + + + +buffer_registration::at + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the buffer + at the specified index. +

+
const mutable_registered_buffer & at(
+    std::size_t i);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/begin.html b/3party/asio/doc/asio/reference/buffer_registration/begin.html new file mode 100644 index 0000000..24f67a7 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/begin.html @@ -0,0 +1,41 @@ + + + +buffer_registration::begin + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the + begin iterator for the sequence of registered buffers. +

+
const_iterator begin() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/buffer_registration.html b/3party/asio/doc/asio/reference/buffer_registration/buffer_registration.html new file mode 100644 index 0000000..d2e4956 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/buffer_registration.html @@ -0,0 +1,67 @@ + + + +buffer_registration::buffer_registration + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Register + buffers with an executor's execution context. +

+
template<
+    typename Executor>
+buffer_registration(
+    const Executor & ex,
+    const MutableBufferSequence & buffer_sequence,
+    const allocator_type & alloc = allocator_type(),
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+

+ Register buffers with an execution context. +

+
template<
+    typename ExecutionContext>
+buffer_registration(
+    ExecutionContext & ctx,
+    const MutableBufferSequence & buffer_sequence,
+    const allocator_type & alloc = allocator_type(),
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move constructor. +

+
buffer_registration(
+    buffer_registration && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload1.html b/3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload1.html new file mode 100644 index 0000000..95ddb53 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload1.html @@ -0,0 +1,46 @@ + + + +buffer_registration::buffer_registration (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Register buffers with an executor's execution context. +

+
template<
+    typename Executor>
+buffer_registration(
+    const Executor & ex,
+    const MutableBufferSequence & buffer_sequence,
+    const allocator_type & alloc = allocator_type(),
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload2.html b/3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload2.html new file mode 100644 index 0000000..1ddee08 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload2.html @@ -0,0 +1,46 @@ + + + +buffer_registration::buffer_registration (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Register buffers with an execution context. +

+
template<
+    typename ExecutionContext>
+buffer_registration(
+    ExecutionContext & ctx,
+    const MutableBufferSequence & buffer_sequence,
+    const allocator_type & alloc = allocator_type(),
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload3.html b/3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload3.html new file mode 100644 index 0000000..5c892c9 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/buffer_registration/overload3.html @@ -0,0 +1,41 @@ + + + +buffer_registration::buffer_registration (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
buffer_registration(
+    buffer_registration && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/cbegin.html b/3party/asio/doc/asio/reference/buffer_registration/cbegin.html new file mode 100644 index 0000000..2dc13df --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/cbegin.html @@ -0,0 +1,41 @@ + + + +buffer_registration::cbegin + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the + begin iterator for the sequence of registered buffers. +

+
const_iterator cbegin() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/cend.html b/3party/asio/doc/asio/reference/buffer_registration/cend.html new file mode 100644 index 0000000..825f231 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/cend.html @@ -0,0 +1,41 @@ + + + +buffer_registration::cend + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the end + iterator for the sequence of registered buffers. +

+
const_iterator cend() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/const_iterator.html b/3party/asio/doc/asio/reference/buffer_registration/const_iterator.html new file mode 100644 index 0000000..f8ca2d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/const_iterator.html @@ -0,0 +1,51 @@ + + + +buffer_registration::const_iterator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of a const iterator over the registered buffers. +

+
typedef unspecified const_iterator;
+
+
+ + Requirements +
+

+ Header: asio/buffer_registration.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/end.html b/3party/asio/doc/asio/reference/buffer_registration/end.html new file mode 100644 index 0000000..a6770eb --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/end.html @@ -0,0 +1,41 @@ + + + +buffer_registration::end + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the end + iterator for the sequence of registered buffers. +

+
const_iterator end() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/iterator.html b/3party/asio/doc/asio/reference/buffer_registration/iterator.html new file mode 100644 index 0000000..86b4e76 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/iterator.html @@ -0,0 +1,51 @@ + + + +buffer_registration::iterator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of an iterator over the registered buffers. +

+
typedef unspecified iterator;
+
+
+ + Requirements +
+

+ Header: asio/buffer_registration.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/operator_eq_.html b/3party/asio/doc/asio/reference/buffer_registration/operator_eq_.html new file mode 100644 index 0000000..d8c0c59 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/operator_eq_.html @@ -0,0 +1,42 @@ + + + +buffer_registration::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move + assignment. +

+
buffer_registration & operator=(
+    buffer_registration && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/operator_lb__rb_.html b/3party/asio/doc/asio/reference/buffer_registration/operator_lb__rb_.html new file mode 100644 index 0000000..7eea0f0 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/operator_lb__rb_.html @@ -0,0 +1,42 @@ + + + +buffer_registration::operator[] + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the buffer at the specified index. +

+
const mutable_registered_buffer & operator[](
+    std::size_t i);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_registration/size.html b/3party/asio/doc/asio/reference/buffer_registration/size.html new file mode 100644 index 0000000..b8cf42a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_registration/size.html @@ -0,0 +1,41 @@ + + + +buffer_registration::size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the number + of registered buffers. +

+
std::size_t size() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_begin.html b/3party/asio/doc/asio/reference/buffer_sequence_begin.html new file mode 100644 index 0000000..df3aa48 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_begin.html @@ -0,0 +1,93 @@ + + + +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. +

+
template<
+    typename MutableBuffer>
+const mutable_buffer * buffer_sequence_begin(
+    const MutableBuffer & b,
+    typename constraint< is_convertible< const MutableBuffer *, const mutable_buffer * >::value >::type  = 0);
+  » more...
+
+template<
+    typename ConstBuffer>
+const const_buffer * buffer_sequence_begin(
+    const ConstBuffer & b,
+    typename constraint< is_convertible< const ConstBuffer *, const const_buffer * >::value >::type  = 0);
+  » more...
+
+template<
+    typename C>
+auto buffer_sequence_begin(
+    C & c,
+    typename constraint< !is_convertible< const C *, const mutable_buffer * >::value &&!is_convertible< const C *, const const_buffer * >::value >::type  = 0);
+  » more...
+
+template<
+    typename C>
+auto buffer_sequence_begin(
+    const C & c,
+    typename constraint< !is_convertible< const C *, const mutable_buffer * >::value &&!is_convertible< const C *, const const_buffer * >::value >::type  = 0);
+  » more...
+
+

+ Get an iterator to the first element in a buffer sequence. +

+
const mutable_buffer * buffer_sequence_begin(
+    const mutable_registered_buffer & b);
+  » more...
+
+const const_buffer * buffer_sequence_begin(
+    const const_registered_buffer & b);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_begin/overload1.html b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload1.html new file mode 100644 index 0000000..e5d6b11 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload1.html @@ -0,0 +1,44 @@ + + + +buffer_sequence_begin (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get an iterator to the first element in a buffer sequence. +

+
template<
+    typename MutableBuffer>
+const mutable_buffer * buffer_sequence_begin(
+    const MutableBuffer & b,
+    typename constraint< is_convertible< const MutableBuffer *, const mutable_buffer * >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_begin/overload2.html b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload2.html new file mode 100644 index 0000000..27c7d91 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload2.html @@ -0,0 +1,44 @@ + + + +buffer_sequence_begin (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get an iterator to the first element in a buffer sequence. +

+
template<
+    typename ConstBuffer>
+const const_buffer * buffer_sequence_begin(
+    const ConstBuffer & b,
+    typename constraint< is_convertible< const ConstBuffer *, const const_buffer * >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_begin/overload3.html b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload3.html new file mode 100644 index 0000000..64a8261 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload3.html @@ -0,0 +1,44 @@ + + + +buffer_sequence_begin (3 of 6 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,
+    typename constraint< !is_convertible< const C *, const mutable_buffer * >::value &&!is_convertible< const C *, const const_buffer * >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_begin/overload4.html b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload4.html new file mode 100644 index 0000000..fb37db4 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload4.html @@ -0,0 +1,44 @@ + + + +buffer_sequence_begin (4 of 6 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,
+    typename constraint< !is_convertible< const C *, const mutable_buffer * >::value &&!is_convertible< const C *, const const_buffer * >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_begin/overload5.html b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload5.html new file mode 100644 index 0000000..7783a0c --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload5.html @@ -0,0 +1,41 @@ + + + +buffer_sequence_begin (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get an iterator to the first element in a buffer sequence. +

+
const mutable_buffer * buffer_sequence_begin(
+    const mutable_registered_buffer & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_begin/overload6.html b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload6.html new file mode 100644 index 0000000..485fd4b --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_begin/overload6.html @@ -0,0 +1,41 @@ + + + +buffer_sequence_begin (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get an iterator to the first element in a buffer sequence. +

+
const const_buffer * buffer_sequence_begin(
+    const const_registered_buffer & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_end.html b/3party/asio/doc/asio/reference/buffer_sequence_end.html new file mode 100644 index 0000000..87d3f64 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_end.html @@ -0,0 +1,93 @@ + + + +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. +

+
template<
+    typename MutableBuffer>
+const mutable_buffer * buffer_sequence_end(
+    const MutableBuffer & b,
+    typename constraint< is_convertible< const MutableBuffer *, const mutable_buffer * >::value >::type  = 0);
+  » more...
+
+template<
+    typename ConstBuffer>
+const const_buffer * buffer_sequence_end(
+    const ConstBuffer & b,
+    typename constraint< is_convertible< const ConstBuffer *, const const_buffer * >::value >::type  = 0);
+  » more...
+
+template<
+    typename C>
+auto buffer_sequence_end(
+    C & c,
+    typename constraint< !is_convertible< const C *, const mutable_buffer * >::value &&!is_convertible< const C *, const const_buffer * >::value >::type  = 0);
+  » more...
+
+template<
+    typename C>
+auto buffer_sequence_end(
+    const C & c,
+    typename constraint< !is_convertible< const C *, const mutable_buffer * >::value &&!is_convertible< const C *, const const_buffer * >::value >::type  = 0);
+  » more...
+
+

+ Get an iterator to one past the end element in a buffer sequence. +

+
const mutable_buffer * buffer_sequence_end(
+    const mutable_registered_buffer & b);
+  » more...
+
+const const_buffer * buffer_sequence_end(
+    const const_registered_buffer & b);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_end/overload1.html b/3party/asio/doc/asio/reference/buffer_sequence_end/overload1.html new file mode 100644 index 0000000..7e3ff3f --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_end/overload1.html @@ -0,0 +1,44 @@ + + + +buffer_sequence_end (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get an iterator to one past the end element in a buffer sequence. +

+
template<
+    typename MutableBuffer>
+const mutable_buffer * buffer_sequence_end(
+    const MutableBuffer & b,
+    typename constraint< is_convertible< const MutableBuffer *, const mutable_buffer * >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_end/overload2.html b/3party/asio/doc/asio/reference/buffer_sequence_end/overload2.html new file mode 100644 index 0000000..7919b3f --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_end/overload2.html @@ -0,0 +1,44 @@ + + + +buffer_sequence_end (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get an iterator to one past the end element in a buffer sequence. +

+
template<
+    typename ConstBuffer>
+const const_buffer * buffer_sequence_end(
+    const ConstBuffer & b,
+    typename constraint< is_convertible< const ConstBuffer *, const const_buffer * >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_end/overload3.html b/3party/asio/doc/asio/reference/buffer_sequence_end/overload3.html new file mode 100644 index 0000000..6daba23 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_end/overload3.html @@ -0,0 +1,44 @@ + + + +buffer_sequence_end (3 of 6 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,
+    typename constraint< !is_convertible< const C *, const mutable_buffer * >::value &&!is_convertible< const C *, const const_buffer * >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_end/overload4.html b/3party/asio/doc/asio/reference/buffer_sequence_end/overload4.html new file mode 100644 index 0000000..737f097 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_end/overload4.html @@ -0,0 +1,44 @@ + + + +buffer_sequence_end (4 of 6 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,
+    typename constraint< !is_convertible< const C *, const mutable_buffer * >::value &&!is_convertible< const C *, const const_buffer * >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_end/overload5.html b/3party/asio/doc/asio/reference/buffer_sequence_end/overload5.html new file mode 100644 index 0000000..2d3c058 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_end/overload5.html @@ -0,0 +1,41 @@ + + + +buffer_sequence_end (5 of 6 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_registered_buffer & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_sequence_end/overload6.html b/3party/asio/doc/asio/reference/buffer_sequence_end/overload6.html new file mode 100644 index 0000000..fa1d9d9 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_sequence_end/overload6.html @@ -0,0 +1,41 @@ + + + +buffer_sequence_end (6 of 6 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_registered_buffer & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffer_size.html b/3party/asio/doc/asio/reference/buffer_size.html new file mode 100644 index 0000000..574f3b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffer_size.html @@ -0,0 +1,76 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream.html b/3party/asio/doc/asio/reference/buffered_read_stream.html new file mode 100644 index 0000000..f219fbf --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream.html @@ -0,0 +1,362 @@ + + + +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 [constructor] +

+
+

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

+
+

+ 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 [static] +

+
+

+ 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/3party/asio/doc/asio/reference/buffered_read_stream/async_fill.html b/3party/asio/doc/asio/reference/buffered_read_stream/async_fill.html new file mode 100644 index 0000000..f93a1b6 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/async_fill.html @@ -0,0 +1,51 @@ + + + +buffered_read_stream::async_fill + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous fill. +

+
template<
+    typename ReadHandler = DEFAULT>
+DEDUCED async_fill(
+    ReadHandler && handler = DEFAULT);
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_read_stream/async_read_some.html b/3party/asio/doc/asio/reference/buffered_read_stream/async_read_some.html new file mode 100644 index 0000000..a9dda22 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/async_read_some.html @@ -0,0 +1,54 @@ + + + +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 = DEFAULT>
+DEDUCED async_read_some(
+    const MutableBufferSequence & buffers,
+    ReadHandler && handler = DEFAULT);
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_read_stream/async_write_some.html b/3party/asio/doc/asio/reference/buffered_read_stream/async_write_some.html new file mode 100644 index 0000000..9f0d3dc --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/async_write_some.html @@ -0,0 +1,54 @@ + + + +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 = DEFAULT>
+DEDUCED async_write_some(
+    const ConstBufferSequence & buffers,
+    WriteHandler && handler = DEFAULT);
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream.html b/3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream.html new file mode 100644 index 0000000..e15f5dc --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload1.html b/3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload1.html new file mode 100644 index 0000000..0fbed5f --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload1.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload2.html b/3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload2.html new file mode 100644 index 0000000..3219f99 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload2.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/close.html b/3party/asio/doc/asio/reference/buffered_read_stream/close.html new file mode 100644 index 0000000..8c797d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/close.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/close/overload1.html b/3party/asio/doc/asio/reference/buffered_read_stream/close/overload1.html new file mode 100644 index 0000000..351dec4 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/close/overload1.html @@ -0,0 +1,40 @@ + + + +buffered_read_stream::close (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Close the stream. +

+
void close();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_read_stream/close/overload2.html b/3party/asio/doc/asio/reference/buffered_read_stream/close/overload2.html new file mode 100644 index 0000000..cd63714 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/close/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/default_buffer_size.html b/3party/asio/doc/asio/reference/buffered_read_stream/default_buffer_size.html new file mode 100644 index 0000000..b96b459 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/default_buffer_size.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/executor_type.html b/3party/asio/doc/asio/reference/buffered_read_stream/executor_type.html new file mode 100644 index 0000000..e9dcb79 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/executor_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/fill.html b/3party/asio/doc/asio/reference/buffered_read_stream/fill.html new file mode 100644 index 0000000..844e386 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/fill.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/fill/overload1.html b/3party/asio/doc/asio/reference/buffered_read_stream/fill/overload1.html new file mode 100644 index 0000000..67f56c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/fill/overload1.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/fill/overload2.html b/3party/asio/doc/asio/reference/buffered_read_stream/fill/overload2.html new file mode 100644 index 0000000..4b5136c --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/fill/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/get_executor.html b/3party/asio/doc/asio/reference/buffered_read_stream/get_executor.html new file mode 100644 index 0000000..4ce95da --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/get_executor.html @@ -0,0 +1,41 @@ + + + +buffered_read_stream::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
executor_type get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_read_stream/in_avail.html b/3party/asio/doc/asio/reference/buffered_read_stream/in_avail.html new file mode 100644 index 0000000..c32ee91 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/in_avail.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/in_avail/overload1.html b/3party/asio/doc/asio/reference/buffered_read_stream/in_avail/overload1.html new file mode 100644 index 0000000..5da37ca --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/in_avail/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/in_avail/overload2.html b/3party/asio/doc/asio/reference/buffered_read_stream/in_avail/overload2.html new file mode 100644 index 0000000..2c8833a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/in_avail/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer.html b/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer.html new file mode 100644 index 0000000..0b80220 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload1.html new file mode 100644 index 0000000..252a375 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload2.html new file mode 100644 index 0000000..bd7e6bf --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload2.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer_type.html b/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer_type.html new file mode 100644 index 0000000..b396730 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/lowest_layer_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/next_layer.html b/3party/asio/doc/asio/reference/buffered_read_stream/next_layer.html new file mode 100644 index 0000000..11906e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/next_layer.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/next_layer_type.html b/3party/asio/doc/asio/reference/buffered_read_stream/next_layer_type.html new file mode 100644 index 0000000..2dd4ee1 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/next_layer_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/peek.html b/3party/asio/doc/asio/reference/buffered_read_stream/peek.html new file mode 100644 index 0000000..d270f2a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/peek.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/peek/overload1.html b/3party/asio/doc/asio/reference/buffered_read_stream/peek/overload1.html new file mode 100644 index 0000000..339c019 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/peek/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/peek/overload2.html b/3party/asio/doc/asio/reference/buffered_read_stream/peek/overload2.html new file mode 100644 index 0000000..392abc6 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/peek/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/read_some.html b/3party/asio/doc/asio/reference/buffered_read_stream/read_some.html new file mode 100644 index 0000000..6eaffe0 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/read_some.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/read_some/overload1.html b/3party/asio/doc/asio/reference/buffered_read_stream/read_some/overload1.html new file mode 100644 index 0000000..837f3a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/read_some/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/read_some/overload2.html b/3party/asio/doc/asio/reference/buffered_read_stream/read_some/overload2.html new file mode 100644 index 0000000..6114e1e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/read_some/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/write_some.html b/3party/asio/doc/asio/reference/buffered_read_stream/write_some.html new file mode 100644 index 0000000..3631580 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/write_some.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/write_some/overload1.html b/3party/asio/doc/asio/reference/buffered_read_stream/write_some/overload1.html new file mode 100644 index 0000000..18af0cf --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/write_some/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/buffered_read_stream/write_some/overload2.html b/3party/asio/doc/asio/reference/buffered_read_stream/write_some/overload2.html new file mode 100644 index 0000000..533f46a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_read_stream/write_some/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream.html b/3party/asio/doc/asio/reference/buffered_stream.html new file mode 100644 index 0000000..2921d4c --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream.html @@ -0,0 +1,357 @@ + + + +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 [constructor] +

+
+

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

+
+

+ 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/3party/asio/doc/asio/reference/buffered_stream/async_fill.html b/3party/asio/doc/asio/reference/buffered_stream/async_fill.html new file mode 100644 index 0000000..fd0e05d --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/async_fill.html @@ -0,0 +1,51 @@ + + + +buffered_stream::async_fill + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous fill. +

+
template<
+    typename ReadHandler = DEFAULT>
+DEDUCED async_fill(
+    ReadHandler && handler = DEFAULT);
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_stream/async_flush.html b/3party/asio/doc/asio/reference/buffered_stream/async_flush.html new file mode 100644 index 0000000..2b5aea1 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/async_flush.html @@ -0,0 +1,51 @@ + + + +buffered_stream::async_flush + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous flush. +

+
template<
+    typename WriteHandler = DEFAULT>
+DEDUCED async_flush(
+    WriteHandler && handler = DEFAULT);
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_stream/async_read_some.html b/3party/asio/doc/asio/reference/buffered_stream/async_read_some.html new file mode 100644 index 0000000..8e8be1e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/async_read_some.html @@ -0,0 +1,54 @@ + + + +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 = DEFAULT>
+DEDUCED async_read_some(
+    const MutableBufferSequence & buffers,
+    ReadHandler && handler = DEFAULT);
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_stream/async_write_some.html b/3party/asio/doc/asio/reference/buffered_stream/async_write_some.html new file mode 100644 index 0000000..50a6d8e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/async_write_some.html @@ -0,0 +1,54 @@ + + + +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 = DEFAULT>
+DEDUCED async_write_some(
+    const ConstBufferSequence & buffers,
+    WriteHandler && handler = DEFAULT);
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_stream/buffered_stream.html b/3party/asio/doc/asio/reference/buffered_stream/buffered_stream.html new file mode 100644 index 0000000..6994c93 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/buffered_stream.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/buffered_stream/overload1.html b/3party/asio/doc/asio/reference/buffered_stream/buffered_stream/overload1.html new file mode 100644 index 0000000..b47048b --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/buffered_stream/overload1.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/buffered_stream/overload2.html b/3party/asio/doc/asio/reference/buffered_stream/buffered_stream/overload2.html new file mode 100644 index 0000000..33a4d94 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/buffered_stream/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/close.html b/3party/asio/doc/asio/reference/buffered_stream/close.html new file mode 100644 index 0000000..2888354 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/close.html @@ -0,0 +1,45 @@ + + + +buffered_stream::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close the stream. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_stream/close/overload1.html b/3party/asio/doc/asio/reference/buffered_stream/close/overload1.html new file mode 100644 index 0000000..c5c2380 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/close/overload1.html @@ -0,0 +1,40 @@ + + + +buffered_stream::close (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Close the stream. +

+
void close();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_stream/close/overload2.html b/3party/asio/doc/asio/reference/buffered_stream/close/overload2.html new file mode 100644 index 0000000..7d04d2d --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/close/overload2.html @@ -0,0 +1,41 @@ + + + +buffered_stream::close (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Close the stream. +

+
void close(
+    asio::error_code & ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_stream/executor_type.html b/3party/asio/doc/asio/reference/buffered_stream/executor_type.html new file mode 100644 index 0000000..36acfea --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/executor_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/fill.html b/3party/asio/doc/asio/reference/buffered_stream/fill.html new file mode 100644 index 0000000..588dec3 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/fill.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/fill/overload1.html b/3party/asio/doc/asio/reference/buffered_stream/fill/overload1.html new file mode 100644 index 0000000..8ed3bdd --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/fill/overload1.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/fill/overload2.html b/3party/asio/doc/asio/reference/buffered_stream/fill/overload2.html new file mode 100644 index 0000000..2d6df3e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/fill/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/flush.html b/3party/asio/doc/asio/reference/buffered_stream/flush.html new file mode 100644 index 0000000..92a177d --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/flush.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/flush/overload1.html b/3party/asio/doc/asio/reference/buffered_stream/flush/overload1.html new file mode 100644 index 0000000..e123b18 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/flush/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/flush/overload2.html b/3party/asio/doc/asio/reference/buffered_stream/flush/overload2.html new file mode 100644 index 0000000..83ae568 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/flush/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/get_executor.html b/3party/asio/doc/asio/reference/buffered_stream/get_executor.html new file mode 100644 index 0000000..1c87ed8 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/get_executor.html @@ -0,0 +1,41 @@ + + + +buffered_stream::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
executor_type get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_stream/in_avail.html b/3party/asio/doc/asio/reference/buffered_stream/in_avail.html new file mode 100644 index 0000000..9a52105 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/in_avail.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/in_avail/overload1.html b/3party/asio/doc/asio/reference/buffered_stream/in_avail/overload1.html new file mode 100644 index 0000000..e5ac3e4 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/in_avail/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/in_avail/overload2.html b/3party/asio/doc/asio/reference/buffered_stream/in_avail/overload2.html new file mode 100644 index 0000000..1b84846 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/in_avail/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/lowest_layer.html b/3party/asio/doc/asio/reference/buffered_stream/lowest_layer.html new file mode 100644 index 0000000..9b30ae3 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/lowest_layer.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/buffered_stream/lowest_layer/overload1.html new file mode 100644 index 0000000..7f798e0 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/lowest_layer/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/buffered_stream/lowest_layer/overload2.html new file mode 100644 index 0000000..dd30430 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/lowest_layer/overload2.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/lowest_layer_type.html b/3party/asio/doc/asio/reference/buffered_stream/lowest_layer_type.html new file mode 100644 index 0000000..b5ed83c --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/lowest_layer_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/next_layer.html b/3party/asio/doc/asio/reference/buffered_stream/next_layer.html new file mode 100644 index 0000000..3b2aaee --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/next_layer.html @@ -0,0 +1,41 @@ + + + +buffered_stream::next_layer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get a + reference to the next layer. +

+
next_layer_type & next_layer();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_stream/next_layer_type.html b/3party/asio/doc/asio/reference/buffered_stream/next_layer_type.html new file mode 100644 index 0000000..da65e76 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/next_layer_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/peek.html b/3party/asio/doc/asio/reference/buffered_stream/peek.html new file mode 100644 index 0000000..7676394 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/peek.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/peek/overload1.html b/3party/asio/doc/asio/reference/buffered_stream/peek/overload1.html new file mode 100644 index 0000000..ee203ca --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/peek/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/peek/overload2.html b/3party/asio/doc/asio/reference/buffered_stream/peek/overload2.html new file mode 100644 index 0000000..ba8d32a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/peek/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/read_some.html b/3party/asio/doc/asio/reference/buffered_stream/read_some.html new file mode 100644 index 0000000..0da35df --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/read_some.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/read_some/overload1.html b/3party/asio/doc/asio/reference/buffered_stream/read_some/overload1.html new file mode 100644 index 0000000..d782423 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/read_some/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/read_some/overload2.html b/3party/asio/doc/asio/reference/buffered_stream/read_some/overload2.html new file mode 100644 index 0000000..60d4466 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/read_some/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/write_some.html b/3party/asio/doc/asio/reference/buffered_stream/write_some.html new file mode 100644 index 0000000..e64a43c --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/write_some.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/write_some/overload1.html b/3party/asio/doc/asio/reference/buffered_stream/write_some/overload1.html new file mode 100644 index 0000000..40b7196 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/write_some/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/buffered_stream/write_some/overload2.html b/3party/asio/doc/asio/reference/buffered_stream/write_some/overload2.html new file mode 100644 index 0000000..4c1ec96 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_stream/write_some/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream.html b/3party/asio/doc/asio/reference/buffered_write_stream.html new file mode 100644 index 0000000..305a070 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream.html @@ -0,0 +1,363 @@ + + + +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 [constructor] +

+
+

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

+
+

+ 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 [static] +

+
+

+ 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/3party/asio/doc/asio/reference/buffered_write_stream/async_flush.html b/3party/asio/doc/asio/reference/buffered_write_stream/async_flush.html new file mode 100644 index 0000000..713b672 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/async_flush.html @@ -0,0 +1,51 @@ + + + +buffered_write_stream::async_flush + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous flush. +

+
template<
+    typename WriteHandler = DEFAULT>
+DEDUCED async_flush(
+    WriteHandler && handler = DEFAULT);
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_write_stream/async_read_some.html b/3party/asio/doc/asio/reference/buffered_write_stream/async_read_some.html new file mode 100644 index 0000000..e1a11eb --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/async_read_some.html @@ -0,0 +1,54 @@ + + + +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 = DEFAULT>
+DEDUCED async_read_some(
+    const MutableBufferSequence & buffers,
+    ReadHandler && handler = DEFAULT);
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_write_stream/async_write_some.html b/3party/asio/doc/asio/reference/buffered_write_stream/async_write_some.html new file mode 100644 index 0000000..14a6c2b --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/async_write_some.html @@ -0,0 +1,54 @@ + + + +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 = DEFAULT>
+DEDUCED async_write_some(
+    const ConstBufferSequence & buffers,
+    WriteHandler && handler = DEFAULT);
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream.html b/3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream.html new file mode 100644 index 0000000..9561f9a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload1.html b/3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload1.html new file mode 100644 index 0000000..c9dc92e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload1.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload2.html b/3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload2.html new file mode 100644 index 0000000..5260f32 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload2.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/close.html b/3party/asio/doc/asio/reference/buffered_write_stream/close.html new file mode 100644 index 0000000..90803df --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/close.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/close/overload1.html b/3party/asio/doc/asio/reference/buffered_write_stream/close/overload1.html new file mode 100644 index 0000000..f380b8f --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/close/overload1.html @@ -0,0 +1,40 @@ + + + +buffered_write_stream::close (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Close the stream. +

+
void close();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_write_stream/close/overload2.html b/3party/asio/doc/asio/reference/buffered_write_stream/close/overload2.html new file mode 100644 index 0000000..726acd5 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/close/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/default_buffer_size.html b/3party/asio/doc/asio/reference/buffered_write_stream/default_buffer_size.html new file mode 100644 index 0000000..3a014ae --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/default_buffer_size.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/executor_type.html b/3party/asio/doc/asio/reference/buffered_write_stream/executor_type.html new file mode 100644 index 0000000..08860ad --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/executor_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/flush.html b/3party/asio/doc/asio/reference/buffered_write_stream/flush.html new file mode 100644 index 0000000..7ce3eeb --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/flush.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/flush/overload1.html b/3party/asio/doc/asio/reference/buffered_write_stream/flush/overload1.html new file mode 100644 index 0000000..896fb11 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/flush/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/flush/overload2.html b/3party/asio/doc/asio/reference/buffered_write_stream/flush/overload2.html new file mode 100644 index 0000000..d34a0ec --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/flush/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/get_executor.html b/3party/asio/doc/asio/reference/buffered_write_stream/get_executor.html new file mode 100644 index 0000000..6b7b990 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/get_executor.html @@ -0,0 +1,41 @@ + + + +buffered_write_stream::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
executor_type get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffered_write_stream/in_avail.html b/3party/asio/doc/asio/reference/buffered_write_stream/in_avail.html new file mode 100644 index 0000000..f857560 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/in_avail.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/in_avail/overload1.html b/3party/asio/doc/asio/reference/buffered_write_stream/in_avail/overload1.html new file mode 100644 index 0000000..2a68f84 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/in_avail/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/in_avail/overload2.html b/3party/asio/doc/asio/reference/buffered_write_stream/in_avail/overload2.html new file mode 100644 index 0000000..219276b --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/in_avail/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer.html b/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer.html new file mode 100644 index 0000000..8a08d6c --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload1.html new file mode 100644 index 0000000..bfc9a27 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload2.html new file mode 100644 index 0000000..4bdc502 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload2.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer_type.html b/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer_type.html new file mode 100644 index 0000000..6774092 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/lowest_layer_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/next_layer.html b/3party/asio/doc/asio/reference/buffered_write_stream/next_layer.html new file mode 100644 index 0000000..793c1e1 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/next_layer.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/next_layer_type.html b/3party/asio/doc/asio/reference/buffered_write_stream/next_layer_type.html new file mode 100644 index 0000000..50551e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/next_layer_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/peek.html b/3party/asio/doc/asio/reference/buffered_write_stream/peek.html new file mode 100644 index 0000000..fcba993 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/peek.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/peek/overload1.html b/3party/asio/doc/asio/reference/buffered_write_stream/peek/overload1.html new file mode 100644 index 0000000..ca085c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/peek/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/peek/overload2.html b/3party/asio/doc/asio/reference/buffered_write_stream/peek/overload2.html new file mode 100644 index 0000000..90f742d --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/peek/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/read_some.html b/3party/asio/doc/asio/reference/buffered_write_stream/read_some.html new file mode 100644 index 0000000..18b442a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/read_some.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/read_some/overload1.html b/3party/asio/doc/asio/reference/buffered_write_stream/read_some/overload1.html new file mode 100644 index 0000000..34e6f88 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/read_some/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/read_some/overload2.html b/3party/asio/doc/asio/reference/buffered_write_stream/read_some/overload2.html new file mode 100644 index 0000000..5d72a38 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/read_some/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/write_some.html b/3party/asio/doc/asio/reference/buffered_write_stream/write_some.html new file mode 100644 index 0000000..4934c4e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/write_some.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/write_some/overload1.html b/3party/asio/doc/asio/reference/buffered_write_stream/write_some/overload1.html new file mode 100644 index 0000000..633406f --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/write_some/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/buffered_write_stream/write_some/overload2.html b/3party/asio/doc/asio/reference/buffered_write_stream/write_some/overload2.html new file mode 100644 index 0000000..6baa601 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffered_write_stream/write_some/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/buffers_begin.html b/3party/asio/doc/asio/reference/buffers_begin.html new file mode 100644 index 0000000..c26cb5a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_begin.html @@ -0,0 +1,55 @@ + + + +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/3party/asio/doc/asio/reference/buffers_end.html b/3party/asio/doc/asio/reference/buffers_end.html new file mode 100644 index 0000000..78cb890 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_end.html @@ -0,0 +1,55 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator.html b/3party/asio/doc/asio/reference/buffers_iterator.html new file mode 100644 index 0000000..4868c55 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator.html @@ -0,0 +1,406 @@ + + + +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 [static] +

+
+

+ Construct an iterator representing the beginning of the buffers' + data. +

+
+

+ buffers_iterator [constructor] +

+
+

+ Default constructor. Creates an iterator in an undefined state. +

+
+

+ end + [static] +

+
+

+ 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/3party/asio/doc/asio/reference/buffers_iterator/begin.html b/3party/asio/doc/asio/reference/buffers_iterator/begin.html new file mode 100644 index 0000000..7d5822d --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/begin.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/buffers_iterator.html b/3party/asio/doc/asio/reference/buffers_iterator/buffers_iterator.html new file mode 100644 index 0000000..cc38a85 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/buffers_iterator.html @@ -0,0 +1,41 @@ + + + +buffers_iterator::buffers_iterator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. Creates an iterator in an undefined state. +

+
buffers_iterator();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffers_iterator/difference_type.html b/3party/asio/doc/asio/reference/buffers_iterator/difference_type.html new file mode 100644 index 0000000..f5089d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/difference_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/end.html b/3party/asio/doc/asio/reference/buffers_iterator/end.html new file mode 100644 index 0000000..98b371f --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/end.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/iterator_category.html b/3party/asio/doc/asio/reference/buffers_iterator/iterator_category.html new file mode 100644 index 0000000..73b47b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/iterator_category.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator__star_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator__star_.html new file mode 100644 index 0000000..cf19dce --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator__star_.html @@ -0,0 +1,42 @@ + + + +buffers_iterator::operator * + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Dereference + an iterator. +

+
reference operator *() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffers_iterator/operator_arrow_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_arrow_.html new file mode 100644 index 0000000..abf5f50 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_arrow_.html @@ -0,0 +1,41 @@ + + + +buffers_iterator::operator-> + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Dereference + an iterator. +

+
pointer operator->() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffers_iterator/operator_eq__eq_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_eq__eq_.html new file mode 100644 index 0000000..f75148d --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_gt_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_gt_.html new file mode 100644 index 0000000..ceb87b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_gt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_gt__eq_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_gt__eq_.html new file mode 100644 index 0000000..73c9a8f --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_gt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_lb__rb_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_lb__rb_.html new file mode 100644 index 0000000..521575e --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_lb__rb_.html @@ -0,0 +1,42 @@ + + + +buffers_iterator::operator[] + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Access + an individual element. +

+
reference operator[](
+    std::ptrdiff_t difference) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffers_iterator/operator_lt_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_lt_.html new file mode 100644 index 0000000..5ff1b59 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_lt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_lt__eq_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_lt__eq_.html new file mode 100644 index 0000000..d904cb0 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_lt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_minus_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus_.html new file mode 100644 index 0000000..e0e8dd9 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload1.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload1.html new file mode 100644 index 0000000..ed4b179 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload1.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload2.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload2.html new file mode 100644 index 0000000..cf402cb --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload2.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__eq_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__eq_.html new file mode 100644 index 0000000..b72d44a --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__eq_.html @@ -0,0 +1,42 @@ + + + +buffers_iterator::operator-= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Subtraction + operator. +

+
buffers_iterator & operator-=(
+    std::ptrdiff_t difference);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_.html new file mode 100644 index 0000000..4201d27 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload1.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload1.html new file mode 100644 index 0000000..51cafe5 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload1.html @@ -0,0 +1,40 @@ + + + +buffers_iterator::operator-- (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Decrement operator (prefix). +

+
buffers_iterator & operator--();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload2.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload2.html new file mode 100644 index 0000000..191d1a7 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload2.html @@ -0,0 +1,41 @@ + + + +buffers_iterator::operator-- (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Decrement operator (postfix). +

+
buffers_iterator operator--(
+    int );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffers_iterator/operator_not__eq_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_not__eq_.html new file mode 100644 index 0000000..6d1a3fb --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_plus_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus_.html new file mode 100644 index 0000000..b01b194 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload1.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload1.html new file mode 100644 index 0000000..d2beee9 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload1.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload2.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload2.html new file mode 100644 index 0000000..72fa333 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload2.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__eq_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__eq_.html new file mode 100644 index 0000000..761c311 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__eq_.html @@ -0,0 +1,42 @@ + + + +buffers_iterator::operator+= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Addition + operator. +

+
buffers_iterator & operator+=(
+    std::ptrdiff_t difference);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_.html new file mode 100644 index 0000000..890e1b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload1.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload1.html new file mode 100644 index 0000000..80b5370 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload1.html @@ -0,0 +1,40 @@ + + + +buffers_iterator::operator++ (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Increment operator (prefix). +

+
buffers_iterator & operator++();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload2.html b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload2.html new file mode 100644 index 0000000..0bf2019 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload2.html @@ -0,0 +1,41 @@ + + + +buffers_iterator::operator++ (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Increment operator (postfix). +

+
buffers_iterator operator++(
+    int );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/buffers_iterator/pointer.html b/3party/asio/doc/asio/reference/buffers_iterator/pointer.html new file mode 100644 index 0000000..bf23145 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/pointer.html @@ -0,0 +1,56 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/reference.html b/3party/asio/doc/asio/reference/buffers_iterator/reference.html new file mode 100644 index 0000000..a1b3372 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/reference.html @@ -0,0 +1,56 @@ + + + +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/3party/asio/doc/asio/reference/buffers_iterator/value_type.html b/3party/asio/doc/asio/reference/buffers_iterator/value_type.html new file mode 100644 index 0000000..74c45f4 --- /dev/null +++ b/3party/asio/doc/asio/reference/buffers_iterator/value_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/can_prefer.html b/3party/asio/doc/asio/reference/can_prefer.html new file mode 100644 index 0000000..3838fcb --- /dev/null +++ b/3party/asio/doc/asio/reference/can_prefer.html @@ -0,0 +1,63 @@ + + + +can_prefer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a prefer + expression is well-formed. +

+
template<
+    typename T,
+    typename... Properties>
+struct can_prefer
+
+

+ Class template can_prefer + is a trait that is derived from true_type + if the expression asio::prefer(std::declval<T>(), + std::declval<Properties>()...) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/prefer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/can_query.html b/3party/asio/doc/asio/reference/can_query.html new file mode 100644 index 0000000..7790b60 --- /dev/null +++ b/3party/asio/doc/asio/reference/can_query.html @@ -0,0 +1,63 @@ + + + +can_query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a query + expression is well-formed. +

+
template<
+    typename T,
+    typename Property>
+struct can_query
+
+

+ Class template can_query + is a trait that is derived from true_type + if the expression asio::query(std::declval<T>(), + std::declval<Property>()) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/query.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/can_require.html b/3party/asio/doc/asio/reference/can_require.html new file mode 100644 index 0000000..6b397c9 --- /dev/null +++ b/3party/asio/doc/asio/reference/can_require.html @@ -0,0 +1,63 @@ + + + +can_require + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a require + expression is well-formed. +

+
template<
+    typename T,
+    typename... Properties>
+struct can_require
+
+

+ Class template can_require + is a trait that is derived from true_type + if the expression asio::require(std::declval<T>(), + std::declval<Properties>()...) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/require.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/can_require_concept.html b/3party/asio/doc/asio/reference/can_require_concept.html new file mode 100644 index 0000000..4ff6ee7 --- /dev/null +++ b/3party/asio/doc/asio/reference/can_require_concept.html @@ -0,0 +1,63 @@ + + + +can_require_concept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a require_concept + expression is well-formed. +

+
template<
+    typename T,
+    typename Property>
+struct can_require_concept
+
+

+ Class template can_require_concept + is a trait that is derived from true_type + if the expression asio::require_concept(std::declval<T>(), + std::declval<Property>()) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/require_concept.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_filter.html b/3party/asio/doc/asio/reference/cancellation_filter.html new file mode 100644 index 0000000..75d60b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_filter.html @@ -0,0 +1,89 @@ + + + +cancellation_filter + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A simple cancellation signal propagation filter. +

+
template<
+    cancellation_type_t Mask>
+struct cancellation_filter
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+

+ Returns type & Mask. +

+
+
+ + Requirements +
+

+ Header: asio/cancellation_state.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_filter/operator_lp__rp_.html b/3party/asio/doc/asio/reference/cancellation_filter/operator_lp__rp_.html new file mode 100644 index 0000000..321af66 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_filter/operator_lp__rp_.html @@ -0,0 +1,43 @@ + + + +cancellation_filter::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Returns + type & + Mask. +

+
cancellation_type_t operator()(
+    cancellation_type_t type) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_signal.html b/3party/asio/doc/asio/reference/cancellation_signal.html new file mode 100644 index 0000000..6d52593 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_signal.html @@ -0,0 +1,120 @@ + + + +cancellation_signal + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A cancellation signal with a single slot. +

+
class cancellation_signal
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ cancellation_signal [constructor] +

+
+
+

+ emit +

+
+

+ Emits the signal and causes invocation of the slot's handler, if + any. +

+
+

+ slot +

+
+

+ Returns the single slot associated with the signal. +

+
+

+ ~cancellation_signal [destructor] +

+
+
+
+ + Requirements +
+

+ Header: asio/cancellation_signal.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_signal/_cancellation_signal.html b/3party/asio/doc/asio/reference/cancellation_signal/_cancellation_signal.html new file mode 100644 index 0000000..1b6248e --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_signal/_cancellation_signal.html @@ -0,0 +1,39 @@ + + + +cancellation_signal::~cancellation_signal + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
~cancellation_signal();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_signal/cancellation_signal.html b/3party/asio/doc/asio/reference/cancellation_signal/cancellation_signal.html new file mode 100644 index 0000000..2019f4f --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_signal/cancellation_signal.html @@ -0,0 +1,39 @@ + + + +cancellation_signal::cancellation_signal + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
constexpr cancellation_signal();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_signal/emit.html b/3party/asio/doc/asio/reference/cancellation_signal/emit.html new file mode 100644 index 0000000..b409042 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_signal/emit.html @@ -0,0 +1,42 @@ + + + +cancellation_signal::emit + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Emits the + signal and causes invocation of the slot's handler, if any. +

+
void emit(
+    cancellation_type_t type);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_signal/slot.html b/3party/asio/doc/asio/reference/cancellation_signal/slot.html new file mode 100644 index 0000000..1347c33 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_signal/slot.html @@ -0,0 +1,45 @@ + + + +cancellation_signal::slot + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Returns the + single slot associated with the signal. +

+
cancellation_slot slot();
+
+

+ The signal object must remain valid for as long the slot may be used. Destruction + of the signal invalidates the slot. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot.html b/3party/asio/doc/asio/reference/cancellation_slot.html new file mode 100644 index 0000000..c090ef9 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot.html @@ -0,0 +1,197 @@ + + + +cancellation_slot + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A slot associated with a cancellation signal. +

+
class cancellation_slot
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Installs a handler into the slot. +

+
+

+ cancellation_slot [constructor] +

+
+

+ Creates a slot that is not connected to any cancellation signal. +

+
+

+ clear +

+
+

+ Clears the slot. +

+
+

+ emplace +

+
+

+ Installs a handler into the slot, constructing the new object directly. +

+
+

+ has_handler +

+
+

+ Returns whether the slot is connected and has an installed handler. +

+
+

+ is_connected +

+
+

+ Returns whether the slot is connected to a signal. +

+
+
+ + Friends +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Compare two slots for inequality. +

+
+

+ operator== +

+
+

+ Compare two slots for equality. +

+
+
+ + Requirements +
+

+ Header: asio/cancellation_signal.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot/assign.html b/3party/asio/doc/asio/reference/cancellation_slot/assign.html new file mode 100644 index 0000000..10e6492 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot/assign.html @@ -0,0 +1,74 @@ + + + +cancellation_slot::assign + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Installs + a handler into the slot. +

+
template<
+    typename CancellationHandler>
+decay< CancellationHandler >::type & assign(
+    CancellationHandler && handler);
+
+

+ Destroys any existing handler in the slot, then installs the new handler, + constructing it as a decay-copy of the supplied handler. +

+

+ The handler is a function object to be called when the signal is emitted. + The signature of the handler must be +

+
void handler(asio::cancellation_type_t);
+
+
+ + Parameters +
+
+

+
+
handler
+

+ The handler to be installed. +

+
+
+
+ + Return Value +
+

+ A reference to the newly installed handler. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot/cancellation_slot.html b/3party/asio/doc/asio/reference/cancellation_slot/cancellation_slot.html new file mode 100644 index 0000000..2f8603f --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot/cancellation_slot.html @@ -0,0 +1,41 @@ + + + +cancellation_slot::cancellation_slot + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Creates + a slot that is not connected to any cancellation signal. +

+
constexpr cancellation_slot();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot/clear.html b/3party/asio/doc/asio/reference/cancellation_slot/clear.html new file mode 100644 index 0000000..afdc720 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot/clear.html @@ -0,0 +1,44 @@ + + + +cancellation_slot::clear + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Clears the + slot. +

+
void clear();
+
+

+ Destroys any existing handler in the slot. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot/emplace.html b/3party/asio/doc/asio/reference/cancellation_slot/emplace.html new file mode 100644 index 0000000..736e554 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot/emplace.html @@ -0,0 +1,85 @@ + + + +cancellation_slot::emplace + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Installs + a handler into the slot, constructing the new object directly. +

+
template<
+    typename CancellationHandler,
+    typename... Args>
+CancellationHandler & emplace(
+    Args &&... args);
+
+

+ Destroys any existing handler in the slot, then installs the new handler, + constructing it with the supplied args. +

+

+ The handler is a function object to be called when the signal is emitted. + The signature of the handler must be +

+
void handler(asio::cancellation_type_t);
+
+
+ + Parameters +
+
+

+
+
args
+

+ Arguments to be passed to the CancellationHandler + object's constructor. +

+
+
+
+ + Return + Value +
+

+ A reference to the newly installed handler. +

+
+ + Remarks +
+

+ Handlers installed into the slot via emplace + are not required to be copy constructible or move constructible. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot/has_handler.html b/3party/asio/doc/asio/reference/cancellation_slot/has_handler.html new file mode 100644 index 0000000..3c7be12 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot/has_handler.html @@ -0,0 +1,41 @@ + + + +cancellation_slot::has_handler + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Returns + whether the slot is connected and has an installed handler. +

+
constexpr bool has_handler() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot/is_connected.html b/3party/asio/doc/asio/reference/cancellation_slot/is_connected.html new file mode 100644 index 0000000..db6e009 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot/is_connected.html @@ -0,0 +1,41 @@ + + + +cancellation_slot::is_connected + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Returns + whether the slot is connected to a signal. +

+
constexpr bool is_connected() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot/operator_eq__eq_.html b/3party/asio/doc/asio/reference/cancellation_slot/operator_eq__eq_.html new file mode 100644 index 0000000..af53044 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +cancellation_slot::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + two slots for equality. +

+
friend constexpr bool operator==(
+    const cancellation_slot & lhs,
+    const cancellation_slot & rhs);
+
+
+ + Requirements +
+

+ Header: asio/cancellation_signal.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot/operator_not__eq_.html b/3party/asio/doc/asio/reference/cancellation_slot/operator_not__eq_.html new file mode 100644 index 0000000..bde40fe --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +cancellation_slot::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + two slots for inequality. +

+
friend constexpr bool operator!=(
+    const cancellation_slot & lhs,
+    const cancellation_slot & rhs);
+
+
+ + Requirements +
+

+ Header: asio/cancellation_signal.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder.html b/3party/asio/doc/asio/reference/cancellation_slot_binder.html new file mode 100644 index 0000000..c0939ba --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder.html @@ -0,0 +1,244 @@ + + + +cancellation_slot_binder + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A call wrapper type to bind a cancellation slot of type CancellationSlot + to an object of type T. +

+
template<
+    typename T,
+    typename CancellationSlot>
+class cancellation_slot_binder
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ argument_type +

+
+

+ The type of the function's argument. +

+
+

+ cancellation_slot_type +

+
+

+ The type of the associated cancellation slot. +

+
+

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

+
+

+ cancellation_slot_binder [constructor] +

+
+

+ Construct a cancellation slot wrapper for the specified object. +

Copy constructor.

Construct a copy, + but specify a different cancellation slot.

Construct + a copy of a different cancellation slot wrapper type.

+ Construct a copy of a different cancellation slot wrapper type, + but specify a different cancellation slot.

Move constructor. +

Move construct the target object, but specify a different + cancellation slot.

Move construct from a different + cancellation slot wrapper type.

Move construct from + a different cancellation slot wrapper type, but specify a different + cancellation slot. +

+
+

+ get +

+
+

+ Obtain a reference to the target object. +

+
+

+ get_cancellation_slot +

+
+

+ Obtain the associated cancellation slot. +

+
+

+ operator() +

+
+
+

+ ~cancellation_slot_binder [destructor] +

+
+

+ Destructor. +

+
+
+ + Requirements +
+

+ Header: asio/bind_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/_cancellation_slot_binder.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/_cancellation_slot_binder.html new file mode 100644 index 0000000..706335b --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/_cancellation_slot_binder.html @@ -0,0 +1,40 @@ + + + +cancellation_slot_binder::~cancellation_slot_binder + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~cancellation_slot_binder();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/argument_type.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/argument_type.html new file mode 100644 index 0000000..e123527 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/argument_type.html @@ -0,0 +1,73 @@ + + + +cancellation_slot_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_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder.html new file mode 100644 index 0000000..fa7a3d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder.html @@ -0,0 +1,121 @@ + + + +cancellation_slot_binder::cancellation_slot_binder + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a cancellation slot wrapper for the specified object. +

+
template<
+    typename U>
+cancellation_slot_binder(
+    const cancellation_slot_type & s,
+    U && u);
+  » more...
+
+

+ Copy constructor. +

+
cancellation_slot_binder(
+    const cancellation_slot_binder & other);
+  » more...
+
+

+ Construct a copy, but specify a different cancellation slot. +

+
cancellation_slot_binder(
+    const cancellation_slot_type & s,
+    const cancellation_slot_binder & other);
+  » more...
+
+

+ Construct a copy of a different cancellation slot wrapper type. +

+
template<
+    typename U,
+    typename OtherCancellationSlot>
+cancellation_slot_binder(
+    const cancellation_slot_binder< U, OtherCancellationSlot > & other);
+  » more...
+
+

+ Construct a copy of a different cancellation slot wrapper type, but specify + a different cancellation slot. +

+
template<
+    typename U,
+    typename OtherCancellationSlot>
+cancellation_slot_binder(
+    const cancellation_slot_type & s,
+    const cancellation_slot_binder< U, OtherCancellationSlot > & other);
+  » more...
+
+

+ Move constructor. +

+
cancellation_slot_binder(
+    cancellation_slot_binder && other);
+  » more...
+
+

+ Move construct the target object, but specify a different cancellation + slot. +

+
cancellation_slot_binder(
+    const cancellation_slot_type & s,
+    cancellation_slot_binder && other);
+  » more...
+
+

+ Move construct from a different cancellation slot wrapper type. +

+
template<
+    typename U,
+    typename OtherCancellationSlot>
+cancellation_slot_binder(
+    cancellation_slot_binder< U, OtherCancellationSlot > && other);
+  » more...
+
+

+ Move construct from a different cancellation slot wrapper type, but specify + a different cancellation slot. +

+
template<
+    typename U,
+    typename OtherCancellationSlot>
+cancellation_slot_binder(
+    const cancellation_slot_type & s,
+    cancellation_slot_binder< U, OtherCancellationSlot > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload1.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload1.html new file mode 100644 index 0000000..ebf039f --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload1.html @@ -0,0 +1,48 @@ + + + +cancellation_slot_binder::cancellation_slot_binder (1 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a cancellation slot wrapper for the specified object. +

+
template<
+    typename U>
+cancellation_slot_binder(
+    const cancellation_slot_type & s,
+    U && u);
+
+

+ This constructor is only valid if the type T + is constructible from type U. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload2.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload2.html new file mode 100644 index 0000000..f17a5f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload2.html @@ -0,0 +1,41 @@ + + + +cancellation_slot_binder::cancellation_slot_binder (2 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
cancellation_slot_binder(
+    const cancellation_slot_binder & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload3.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload3.html new file mode 100644 index 0000000..67073fb --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload3.html @@ -0,0 +1,42 @@ + + + +cancellation_slot_binder::cancellation_slot_binder (3 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a copy, but specify a different cancellation slot. +

+
cancellation_slot_binder(
+    const cancellation_slot_type & s,
+    const cancellation_slot_binder & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload4.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload4.html new file mode 100644 index 0000000..0cccea6 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload4.html @@ -0,0 +1,50 @@ + + + +cancellation_slot_binder::cancellation_slot_binder (4 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a copy of a different cancellation slot wrapper type. +

+
template<
+    typename U,
+    typename OtherCancellationSlot>
+cancellation_slot_binder(
+    const cancellation_slot_binder< U, OtherCancellationSlot > & other);
+
+

+ This constructor is only valid if the CancellationSlot + type is constructible from type OtherCancellationSlot, + and the type T is constructible + from type U. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload5.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload5.html new file mode 100644 index 0000000..4419941 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload5.html @@ -0,0 +1,50 @@ + + + +cancellation_slot_binder::cancellation_slot_binder (5 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a copy of a different cancellation slot wrapper type, but specify + a different cancellation slot. +

+
template<
+    typename U,
+    typename OtherCancellationSlot>
+cancellation_slot_binder(
+    const cancellation_slot_type & s,
+    const cancellation_slot_binder< U, OtherCancellationSlot > & other);
+
+

+ This constructor is only valid if the type T + is constructible from type U. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload6.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload6.html new file mode 100644 index 0000000..5e61d30 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload6.html @@ -0,0 +1,41 @@ + + + +cancellation_slot_binder::cancellation_slot_binder (6 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
cancellation_slot_binder(
+    cancellation_slot_binder && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload7.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload7.html new file mode 100644 index 0000000..334269a --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload7.html @@ -0,0 +1,43 @@ + + + +cancellation_slot_binder::cancellation_slot_binder (7 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move construct the target object, but specify a different cancellation + slot. +

+
cancellation_slot_binder(
+    const cancellation_slot_type & s,
+    cancellation_slot_binder && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload8.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload8.html new file mode 100644 index 0000000..8d6f490 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload8.html @@ -0,0 +1,44 @@ + + + +cancellation_slot_binder::cancellation_slot_binder (8 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move construct from a different cancellation slot wrapper type. +

+
template<
+    typename U,
+    typename OtherCancellationSlot>
+cancellation_slot_binder(
+    cancellation_slot_binder< U, OtherCancellationSlot > && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload9.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload9.html new file mode 100644 index 0000000..562d39b --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload9.html @@ -0,0 +1,46 @@ + + + +cancellation_slot_binder::cancellation_slot_binder (9 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move construct from a different cancellation slot wrapper type, but specify + a different cancellation slot. +

+
template<
+    typename U,
+    typename OtherCancellationSlot>
+cancellation_slot_binder(
+    const cancellation_slot_type & s,
+    cancellation_slot_binder< U, OtherCancellationSlot > && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_type.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_type.html new file mode 100644 index 0000000..4b36012 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/cancellation_slot_type.html @@ -0,0 +1,51 @@ + + + +cancellation_slot_binder::cancellation_slot_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the associated cancellation slot. +

+
typedef CancellationSlot cancellation_slot_type;
+
+
+ + Requirements +
+

+ Header: asio/bind_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/first_argument_type.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/first_argument_type.html new file mode 100644 index 0000000..5d465f1 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/first_argument_type.html @@ -0,0 +1,73 @@ + + + +cancellation_slot_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_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/get.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/get.html new file mode 100644 index 0000000..e1b6e3c --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/get.html @@ -0,0 +1,45 @@ + + + +cancellation_slot_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/3party/asio/doc/asio/reference/cancellation_slot_binder/get/overload1.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/get/overload1.html new file mode 100644 index 0000000..9eb14e9 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/get/overload1.html @@ -0,0 +1,40 @@ + + + +cancellation_slot_binder::get (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain a reference to the target object. +

+
target_type & get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/get/overload2.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/get/overload2.html new file mode 100644 index 0000000..983c639 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/get/overload2.html @@ -0,0 +1,40 @@ + + + +cancellation_slot_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/3party/asio/doc/asio/reference/cancellation_slot_binder/get_cancellation_slot.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/get_cancellation_slot.html new file mode 100644 index 0000000..0ec17d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/get_cancellation_slot.html @@ -0,0 +1,41 @@ + + + +cancellation_slot_binder::get_cancellation_slot + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the associated cancellation slot. +

+
cancellation_slot_type get_cancellation_slot() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_.html new file mode 100644 index 0000000..3c3b03c --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_.html @@ -0,0 +1,49 @@ + + + +cancellation_slot_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/3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_/overload1.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_/overload1.html new file mode 100644 index 0000000..53831b6 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_/overload1.html @@ -0,0 +1,40 @@ + + + +cancellation_slot_binder::operator() (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename... Args>
+auto operator()(
+    Args && ...);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_/overload2.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_/overload2.html new file mode 100644 index 0000000..beaff33 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_/overload2.html @@ -0,0 +1,40 @@ + + + +cancellation_slot_binder::operator() (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename... Args>
+auto operator()(
+    Args && ...) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/result_type.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/result_type.html new file mode 100644 index 0000000..f9b55b2 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/result_type.html @@ -0,0 +1,73 @@ + + + +cancellation_slot_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_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/second_argument_type.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/second_argument_type.html new file mode 100644 index 0000000..f812067 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/second_argument_type.html @@ -0,0 +1,73 @@ + + + +cancellation_slot_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_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_slot_binder/target_type.html b/3party/asio/doc/asio/reference/cancellation_slot_binder/target_type.html new file mode 100644 index 0000000..883a366 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_slot_binder/target_type.html @@ -0,0 +1,51 @@ + + + +cancellation_slot_binder::target_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the target object. +

+
typedef T target_type;
+
+
+ + Requirements +
+

+ Header: asio/bind_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_state.html b/3party/asio/doc/asio/reference/cancellation_state.html new file mode 100644 index 0000000..c955dec --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_state.html @@ -0,0 +1,126 @@ + + + +cancellation_state + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A cancellation state is used for chaining signals and slots in compositions. +

+
class cancellation_state
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ cancellation_state [constructor] +

+
+

+ Construct a disconnected cancellation state.

Construct + and attach to a parent slot to create a new child slot. +

+
+

+ cancelled +

+
+

+ Returns the cancellation types that have been triggered. +

+
+

+ clear +

+
+

+ Clears the specified cancellation types, if they have been triggered. +

+
+

+ slot +

+
+

+ Returns the single child slot associated with the state. +

+
+
+ + Requirements +
+

+ Header: asio/cancellation_state.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_state/cancellation_state.html b/3party/asio/doc/asio/reference/cancellation_state/cancellation_state.html new file mode 100644 index 0000000..88d35f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_state/cancellation_state.html @@ -0,0 +1,69 @@ + + + +cancellation_state::cancellation_state + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a disconnected cancellation state. +

+
constexpr cancellation_state();
+  » more...
+
+

+ Construct and attach to a parent slot to create a new child slot. +

+
template<
+    typename CancellationSlot>
+explicit constexpr cancellation_state(
+    CancellationSlot slot);
+  » more...
+
+template<
+    typename CancellationSlot,
+    typename Filter>
+constexpr cancellation_state(
+    CancellationSlot slot,
+    Filter filter);
+  » more...
+
+template<
+    typename CancellationSlot,
+    typename InFilter,
+    typename OutFilter>
+constexpr cancellation_state(
+    CancellationSlot slot,
+    InFilter in_filter,
+    OutFilter out_filter);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload1.html b/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload1.html new file mode 100644 index 0000000..85589d1 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload1.html @@ -0,0 +1,40 @@ + + + +cancellation_state::cancellation_state (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a disconnected cancellation state. +

+
constexpr cancellation_state();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload2.html b/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload2.html new file mode 100644 index 0000000..68b43f2 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload2.html @@ -0,0 +1,60 @@ + + + +cancellation_state::cancellation_state (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and attach to a parent slot to create a new child slot. +

+
template<
+    typename CancellationSlot>
+constexpr cancellation_state(
+    CancellationSlot slot);
+
+

+ Initialises the cancellation state so that it allows terminal cancellation + only. Equivalent to cancellation_state(slot, enable_terminal_cancellation()). +

+
+ + Parameters +
+
+

+
+
slot
+

+ The parent cancellation slot to which the state will be attached. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload3.html b/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload3.html new file mode 100644 index 0000000..e5bc046 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload3.html @@ -0,0 +1,86 @@ + + + +cancellation_state::cancellation_state (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and attach to a parent slot to create a new child slot. +

+
template<
+    typename CancellationSlot,
+    typename Filter>
+constexpr cancellation_state(
+    CancellationSlot slot,
+    Filter filter);
+
+
+ + Parameters +
+
+

+
+
slot
+

+ The parent cancellation slot to which the state will be attached. +

+
filter
+
+

+ A function object that is used to transform incoming cancellation + signals as they are received from the parent slot. This function + object must have the signature: +

+
asio::cancellation_type_t filter(
+    asio::cancellation_type_t);
+
+
+
+
+

+ The library provides the following pre-defined cancellation filters: +

+ +
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload4.html b/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload4.html new file mode 100644 index 0000000..1d19ba0 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_state/cancellation_state/overload4.html @@ -0,0 +1,99 @@ + + + +cancellation_state::cancellation_state (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and attach to a parent slot to create a new child slot. +

+
template<
+    typename CancellationSlot,
+    typename InFilter,
+    typename OutFilter>
+constexpr cancellation_state(
+    CancellationSlot slot,
+    InFilter in_filter,
+    OutFilter out_filter);
+
+
+ + Parameters +
+
+

+
+
slot
+

+ The parent cancellation slot to which the state will be attached. +

+
in_filter
+
+

+ A function object that is used to transform incoming cancellation + signals as they are received from the parent slot. This function + object must have the signature: +

+
asio::cancellation_type_t in_filter(
+    asio::cancellation_type_t);
+
+
+
out_filter
+
+

+ A function object that is used to transform outcoming cancellation + signals as they are relayed to the child slot. This function object + must have the signature: +

+
asio::cancellation_type_t out_filter(
+    asio::cancellation_type_t);
+
+
+
+
+

+ The library provides the following pre-defined cancellation filters: +

+ +
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_state/cancelled.html b/3party/asio/doc/asio/reference/cancellation_state/cancelled.html new file mode 100644 index 0000000..efe22ee --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_state/cancelled.html @@ -0,0 +1,41 @@ + + + +cancellation_state::cancelled + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Returns + the cancellation types that have been triggered. +

+
cancellation_type_t cancelled() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_state/clear.html b/3party/asio/doc/asio/reference/cancellation_state/clear.html new file mode 100644 index 0000000..73ba851 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_state/clear.html @@ -0,0 +1,42 @@ + + + +cancellation_state::clear + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Clears the + specified cancellation types, if they have been triggered. +

+
void clear(
+    cancellation_type_t mask = cancellation_type::all);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_state/slot.html b/3party/asio/doc/asio/reference/cancellation_state/slot.html new file mode 100644 index 0000000..9946904 --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_state/slot.html @@ -0,0 +1,44 @@ + + + +cancellation_state::slot + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Returns the + single child slot associated with the state. +

+
constexpr cancellation_slot slot() const;
+
+

+ This sub-slot is used with the operations that are being composed. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_type.html b/3party/asio/doc/asio/reference/cancellation_type.html new file mode 100644 index 0000000..6907cba --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_type.html @@ -0,0 +1,94 @@ + + + +cancellation_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Enumeration representing the different types of cancellation that may be + requested from or implemented by an asynchronous operation. +

+
enum class cancellation_type : unsigned int
+
+

+ + + + + +

+
+ + Values +
+
+

+
+
none
+

+ Bitmask representing no types of cancellation. +

+
terminal
+

+ Requests cancellation where, following a successful cancellation, the + only safe operations on the I/O object are closure or destruction. +

+
partial
+

+ Requests cancellation where a successful cancellation may result in + partial side effects or no side effects. Following cancellation, the + I/O object is in a well-known state, and may be used for further operations. +

+
total
+

+ Requests cancellation where a successful cancellation results in no + apparent side effects. Following cancellation, the I/O object is in + the same observable state as it was prior to the operation. +

+
all
+

+ Bitmask representing all types of cancellation. +

+
+
+
+ + Requirements +
+

+ Header: asio/cancellation_type.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/cancellation_type_t.html b/3party/asio/doc/asio/reference/cancellation_type_t.html new file mode 100644 index 0000000..01c3afc --- /dev/null +++ b/3party/asio/doc/asio/reference/cancellation_type_t.html @@ -0,0 +1,52 @@ + + + +cancellation_type_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Portability typedef. +

+
typedef cancellation_type cancellation_type_t;
+
+
+ + Requirements +
+

+ Header: asio/cancellation_type.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/co_spawn.html b/3party/asio/doc/asio/reference/co_spawn.html new file mode 100644 index 0000000..45c6431 --- /dev/null +++ b/3party/asio/doc/asio/reference/co_spawn.html @@ -0,0 +1,118 @@ + + + +co_spawn + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Spawn a new coroutined-based thread of execution. +

+
template<
+    typename Executor,
+    typename T,
+    typename AwaitableExecutor,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    const Executor & ex,
+    awaitable< T, AwaitableExecutor > a,
+    CompletionToken && token = DEFAULT,
+    typename constraint< (is_executor< Executor >::value||execution::is_executor< Executor >::value)&&is_convertible< Executor, AwaitableExecutor >::value >::type  = 0);
+  » more...
+
+template<
+    typename Executor,
+    typename AwaitableExecutor,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    const Executor & ex,
+    awaitable< void, AwaitableExecutor > a,
+    CompletionToken && token = DEFAULT,
+    typename constraint< (is_executor< Executor >::value||execution::is_executor< Executor >::value)&&is_convertible< Executor, AwaitableExecutor >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext,
+    typename T,
+    typename AwaitableExecutor,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    ExecutionContext & ctx,
+    awaitable< T, AwaitableExecutor > a,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value &&is_convertible< typename ExecutionContext::executor_type, AwaitableExecutor >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext,
+    typename AwaitableExecutor,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    ExecutionContext & ctx,
+    awaitable< void, AwaitableExecutor > a,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value &&is_convertible< typename ExecutionContext::executor_type, AwaitableExecutor >::value >::type  = 0);
+  » more...
+
+template<
+    typename Executor,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    const Executor & ex,
+    F && f,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    ExecutionContext & ctx,
+    F && f,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/co_spawn.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/co_spawn/overload1.html b/3party/asio/doc/asio/reference/co_spawn/overload1.html new file mode 100644 index 0000000..9631fcc --- /dev/null +++ b/3party/asio/doc/asio/reference/co_spawn/overload1.html @@ -0,0 +1,134 @@ + + + +co_spawn (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a new coroutined-based thread of execution. +

+
template<
+    typename Executor,
+    typename T,
+    typename AwaitableExecutor,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    const Executor & ex,
+    awaitable< T, AwaitableExecutor > a,
+    CompletionToken && token = DEFAULT,
+    typename constraint< (is_executor< Executor >::value||execution::is_executor< Executor >::value)&&is_convertible< Executor, AwaitableExecutor >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ex
+

+ The executor that will be used to schedule the new thread of execution. +

+
a
+

+ The awaitable + object that is the result of calling the coroutine's entry point + function. +

+
token
+
+

+ The completion + token that will handle the notification that the thread of + execution has completed. The function signature of the completion + handler must be: +

+
void handler(std::exception_ptr, T);
+
+
+
+
+
+ + Completion + Signature +
+
void(std::exception_ptr, T)
+
+
+ + Example +
+
asio::awaitable<std::size_t> echo(tcp::socket socket)
+{
+  std::size_t bytes_transferred = 0;
+
+  try
+  {
+    char data[1024];
+    for (;;)
+    {
+      std::size_t n = co_await socket.async_read_some(
+          asio::buffer(data), asio::use_awaitable);
+
+      co_await asio::async_write(socket,
+          asio::buffer(data, n), asio::use_awaitable);
+
+      bytes_transferred += n;
+    }
+  }
+  catch (const std::exception&)
+  {
+  }
+
+  co_return bytes_transferred;
+}
+
+// ...
+
+asio::co_spawn(my_executor,
+  echo(std::move(my_tcp_socket)),
+  [](std::exception_ptr e, std::size_t n)
+  {
+    std::cout << "transferred " << n << "\n";
+  });
+
+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call this_coro::reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/co_spawn/overload2.html b/3party/asio/doc/asio/reference/co_spawn/overload2.html new file mode 100644 index 0000000..5de8ceb --- /dev/null +++ b/3party/asio/doc/asio/reference/co_spawn/overload2.html @@ -0,0 +1,125 @@ + + + +co_spawn (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a new coroutined-based thread of execution. +

+
template<
+    typename Executor,
+    typename AwaitableExecutor,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    const Executor & ex,
+    awaitable< void, AwaitableExecutor > a,
+    CompletionToken && token = DEFAULT,
+    typename constraint< (is_executor< Executor >::value||execution::is_executor< Executor >::value)&&is_convertible< Executor, AwaitableExecutor >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ex
+

+ The executor that will be used to schedule the new thread of execution. +

+
a
+

+ The awaitable + object that is the result of calling the coroutine's entry point + function. +

+
token
+
+

+ The completion + token that will handle the notification that the thread of + execution has completed. The function signature of the completion + handler must be: +

+
void handler(std::exception_ptr);
+
+
+
+
+
+ + Completion + Signature +
+
void(std::exception_ptr)
+
+
+ + Example +
+
asio::awaitable<void> echo(tcp::socket socket)
+{
+  try
+  {
+    char data[1024];
+    for (;;)
+    {
+      std::size_t n = co_await socket.async_read_some(
+          asio::buffer(data), asio::use_awaitable);
+
+      co_await asio::async_write(socket,
+          asio::buffer(data, n), asio::use_awaitable);
+    }
+  }
+  catch (const std::exception& e)
+  {
+    std::cerr << "Exception: " << e.what() << "\n";
+  }
+}
+
+// ...
+
+asio::co_spawn(my_executor,
+  echo(std::move(my_tcp_socket)),
+  asio::detached);
+
+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call this_coro::reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/co_spawn/overload3.html b/3party/asio/doc/asio/reference/co_spawn/overload3.html new file mode 100644 index 0000000..29ed562 --- /dev/null +++ b/3party/asio/doc/asio/reference/co_spawn/overload3.html @@ -0,0 +1,135 @@ + + + +co_spawn (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a new coroutined-based thread of execution. +

+
template<
+    typename ExecutionContext,
+    typename T,
+    typename AwaitableExecutor,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    ExecutionContext & ctx,
+    awaitable< T, AwaitableExecutor > a,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value &&is_convertible< typename ExecutionContext::executor_type, AwaitableExecutor >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ctx
+

+ An execution context that will provide the executor to be used to + schedule the new thread of execution. +

+
a
+

+ The awaitable + object that is the result of calling the coroutine's entry point + function. +

+
token
+
+

+ The completion + token that will handle the notification that the thread of + execution has completed. The function signature of the completion + handler must be: +

+
void handler(std::exception_ptr);
+
+
+
+
+
+ + Completion + Signature +
+
void(std::exception_ptr, T)
+
+
+ + Example +
+
asio::awaitable<std::size_t> echo(tcp::socket socket)
+{
+  std::size_t bytes_transferred = 0;
+
+  try
+  {
+    char data[1024];
+    for (;;)
+    {
+      std::size_t n = co_await socket.async_read_some(
+          asio::buffer(data), asio::use_awaitable);
+
+      co_await asio::async_write(socket,
+          asio::buffer(data, n), asio::use_awaitable);
+
+      bytes_transferred += n;
+    }
+  }
+  catch (const std::exception&)
+  {
+  }
+
+  co_return bytes_transferred;
+}
+
+// ...
+
+asio::co_spawn(my_io_context,
+  echo(std::move(my_tcp_socket)),
+  [](std::exception_ptr e, std::size_t n)
+  {
+    std::cout << "transferred " << n << "\n";
+  });
+
+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call this_coro::reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/co_spawn/overload4.html b/3party/asio/doc/asio/reference/co_spawn/overload4.html new file mode 100644 index 0000000..d31fc65 --- /dev/null +++ b/3party/asio/doc/asio/reference/co_spawn/overload4.html @@ -0,0 +1,126 @@ + + + +co_spawn (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a new coroutined-based thread of execution. +

+
template<
+    typename ExecutionContext,
+    typename AwaitableExecutor,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    ExecutionContext & ctx,
+    awaitable< void, AwaitableExecutor > a,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value &&is_convertible< typename ExecutionContext::executor_type, AwaitableExecutor >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ctx
+

+ An execution context that will provide the executor to be used to + schedule the new thread of execution. +

+
a
+

+ The awaitable + object that is the result of calling the coroutine's entry point + function. +

+
token
+
+

+ The completion + token that will handle the notification that the thread of + execution has completed. The function signature of the completion + handler must be: +

+
void handler(std::exception_ptr);
+
+
+
+
+
+ + Completion + Signature +
+
void(std::exception_ptr)
+
+
+ + Example +
+
asio::awaitable<void> echo(tcp::socket socket)
+{
+  try
+  {
+    char data[1024];
+    for (;;)
+    {
+      std::size_t n = co_await socket.async_read_some(
+          asio::buffer(data), asio::use_awaitable);
+
+      co_await asio::async_write(socket,
+          asio::buffer(data, n), asio::use_awaitable);
+    }
+  }
+  catch (const std::exception& e)
+  {
+    std::cerr << "Exception: " << e.what() << "\n";
+  }
+}
+
+// ...
+
+asio::co_spawn(my_io_context,
+  echo(std::move(my_tcp_socket)),
+  asio::detached);
+
+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call this_coro::reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/co_spawn/overload5.html b/3party/asio/doc/asio/reference/co_spawn/overload5.html new file mode 100644 index 0000000..62ea1cf --- /dev/null +++ b/3party/asio/doc/asio/reference/co_spawn/overload5.html @@ -0,0 +1,158 @@ + + + +co_spawn (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a new coroutined-based thread of execution. +

+
template<
+    typename Executor,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    const Executor & ex,
+    F && f,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ex
+

+ The executor that will be used to schedule the new thread of execution. +

+
f
+

+ A nullary function object with a return type of the form asio::awaitable<R,E> + that will be used as the coroutine's entry point. +

+
token
+

+ The completion + token that will handle the notification that the thread of + execution has completed. If R + is void, the function + signature of the completion handler must be: +

+
+
+
void handler(std::exception_ptr);
+
+

+ Otherwise, the function signature of the completion handler must be: +

+
void handler(std::exception_ptr, R);
+
+
+ + Completion + Signature +
+
void(std::exception_ptr, R)
+
+

+ where R is the first template + argument to the awaitable + returned by the supplied function object F: +

+
asio::awaitable<R, AwaitableExecutor> F()
+
+
+ + Example +
+
asio::awaitable<std::size_t> echo(tcp::socket socket)
+{
+  std::size_t bytes_transferred = 0;
+
+  try
+  {
+    char data[1024];
+    for (;;)
+    {
+      std::size_t n = co_await socket.async_read_some(
+          asio::buffer(data), asio::use_awaitable);
+
+      co_await asio::async_write(socket,
+          asio::buffer(data, n), asio::use_awaitable);
+
+      bytes_transferred += n;
+    }
+  }
+  catch (const std::exception&)
+  {
+  }
+
+  co_return bytes_transferred;
+}
+
+// ...
+
+asio::co_spawn(my_executor,
+  [socket = std::move(my_tcp_socket)]() mutable
+    -> asio::awaitable<void>
+  {
+    try
+    {
+      char data[1024];
+      for (;;)
+      {
+        std::size_t n = co_await socket.async_read_some(
+            asio::buffer(data), asio::use_awaitable);
+
+        co_await asio::async_write(socket,
+            asio::buffer(data, n), asio::use_awaitable);
+      }
+    }
+    catch (const std::exception& e)
+    {
+      std::cerr << "Exception: " << e.what() << "\n";
+    }
+  }, asio::detached);
+
+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call this_coro::reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/co_spawn/overload6.html b/3party/asio/doc/asio/reference/co_spawn/overload6.html new file mode 100644 index 0000000..9b2647c --- /dev/null +++ b/3party/asio/doc/asio/reference/co_spawn/overload6.html @@ -0,0 +1,159 @@ + + + +co_spawn (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a new coroutined-based thread of execution. +

+
template<
+    typename ExecutionContext,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED co_spawn(
+    ExecutionContext & ctx,
+    F && f,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ctx
+

+ An execution context that will provide the executor to be used to + schedule the new thread of execution. +

+
f
+

+ A nullary function object with a return type of the form asio::awaitable<R,E> + that will be used as the coroutine's entry point. +

+
token
+

+ The completion + token that will handle the notification that the thread of + execution has completed. If R + is void, the function + signature of the completion handler must be: +

+
+
+
void handler(std::exception_ptr);
+
+

+ Otherwise, the function signature of the completion handler must be: +

+
void handler(std::exception_ptr, R);
+
+
+ + Completion + Signature +
+
void(std::exception_ptr, R)
+
+

+ where R is the first template + argument to the awaitable + returned by the supplied function object F: +

+
asio::awaitable<R, AwaitableExecutor> F()
+
+
+ + Example +
+
asio::awaitable<std::size_t> echo(tcp::socket socket)
+{
+  std::size_t bytes_transferred = 0;
+
+  try
+  {
+    char data[1024];
+    for (;;)
+    {
+      std::size_t n = co_await socket.async_read_some(
+          asio::buffer(data), asio::use_awaitable);
+
+      co_await asio::async_write(socket,
+          asio::buffer(data, n), asio::use_awaitable);
+
+      bytes_transferred += n;
+    }
+  }
+  catch (const std::exception&)
+  {
+  }
+
+  co_return bytes_transferred;
+}
+
+// ...
+
+asio::co_spawn(my_io_context,
+  [socket = std::move(my_tcp_socket)]() mutable
+    -> asio::awaitable<void>
+  {
+    try
+    {
+      char data[1024];
+      for (;;)
+      {
+        std::size_t n = co_await socket.async_read_some(
+            asio::buffer(data), asio::use_awaitable);
+
+        co_await asio::async_write(socket,
+            asio::buffer(data, n), asio::use_awaitable);
+      }
+    }
+    catch (const std::exception& e)
+    {
+      std::cerr << "Exception: " << e.what() << "\n";
+    }
+  }, asio::detached);
+
+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call this_coro::reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/completion_signature_of.html b/3party/asio/doc/asio/reference/completion_signature_of.html new file mode 100644 index 0000000..427f4f4 --- /dev/null +++ b/3party/asio/doc/asio/reference/completion_signature_of.html @@ -0,0 +1,100 @@ + + + +completion_signature_of + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The completion_signature_of trait determines + the completion signature of an asynchronous operation. +

+
template<
+    typename T,
+    typename... Args>
+struct completion_signature_of
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+
+

+ Class template completion_signature_of + is a trait with a member type alias type + that denotes the completion signature of the asynchronous operation initiated + by the expression T(Args..., token) + operation, where token is + an unspecified completion token type. If the asynchronous operation does + not have exactly one completion signature, the instantion of the trait is + well-formed but the member type alias type + is omitted. If the expression T(Args..., + token) + is not an asynchronous operation then use of the trait is ill-formed. +

+
+ + Requirements +
+

+ Header: asio/async_result.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/completion_signature_of/type.html b/3party/asio/doc/asio/reference/completion_signature_of/type.html new file mode 100644 index 0000000..c8af64b --- /dev/null +++ b/3party/asio/doc/asio/reference/completion_signature_of/type.html @@ -0,0 +1,49 @@ + + + +completion_signature_of::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
typedef automatically_determined type;
+
+
+ + Requirements +
+

+ Header: asio/async_result.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/connect.html b/3party/asio/doc/asio/reference/connect.html new file mode 100644 index 0000000..8371c00 --- /dev/null +++ b/3party/asio/doc/asio/reference/connect.html @@ -0,0 +1,207 @@ + + + +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 Executor,
+    typename EndpointSequence>
+Protocol::endpoint connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    typename constraint< is_endpoint_sequence< EndpointSequence >::value >::type  = 0);
+  » more...
+
+template<
+    typename Protocol,
+    typename Executor,
+    typename EndpointSequence>
+Protocol::endpoint connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    asio::error_code & ec,
+    typename constraint< 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 Executor,
+    typename Iterator>
+Iterator connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    typename constraint<!is_endpoint_sequence< Iterator >::value >::type  = 0);
+  » more...
+
+template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator>
+Iterator connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    asio::error_code & ec,
+    typename constraint<!is_endpoint_sequence< Iterator >::value >::type  = 0);
+  » more...
+
+

+ Establishes a socket connection by trying each endpoint in a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator>
+Iterator connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    Iterator end);
+  » more...
+
+template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator>
+Iterator connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    Iterator end,
+    asio::error_code & ec);
+  » more...
+
+template<
+    typename Protocol,
+    typename Executor,
+    typename EndpointSequence,
+    typename ConnectCondition>
+Protocol::endpoint connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    ConnectCondition connect_condition,
+    typename constraint< is_endpoint_sequence< EndpointSequence >::value >::type  = 0);
+  » more...
+
+template<
+    typename Protocol,
+    typename Executor,
+    typename EndpointSequence,
+    typename ConnectCondition>
+Protocol::endpoint connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    ConnectCondition connect_condition,
+    asio::error_code & ec,
+    typename constraint< 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 Executor,
+    typename Iterator,
+    typename ConnectCondition>
+Iterator connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    ConnectCondition connect_condition,
+    typename constraint<!is_endpoint_sequence< Iterator >::value >::type  = 0);
+  » more...
+
+template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator,
+    typename ConnectCondition>
+Iterator connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    ConnectCondition connect_condition,
+    asio::error_code & ec,
+    typename constraint<!is_endpoint_sequence< Iterator >::value >::type  = 0);
+  » more...
+
+

+ Establishes a socket connection by trying each endpoint in a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator,
+    typename ConnectCondition>
+Iterator connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    Iterator end,
+    ConnectCondition connect_condition);
+  » more...
+
+template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator,
+    typename ConnectCondition>
+Iterator connect(
+    basic_socket< Protocol, Executor > & 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/3party/asio/doc/asio/reference/connect/overload1.html b/3party/asio/doc/asio/reference/connect/overload1.html new file mode 100644 index 0000000..9dc7acf --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload1.html @@ -0,0 +1,102 @@ + + + +connect (1 of 12 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Establishes a socket connection by trying each endpoint in a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename EndpointSequence>
+Protocol::endpoint connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    typename constraint< 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(my_context);
+tcp::resolver::query q("host", "service");
+tcp::socket s(my_context);
+asio::connect(s, r.resolve(q));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/connect/overload10.html b/3party/asio/doc/asio/reference/connect/overload10.html new file mode 100644 index 0000000..94c6059 --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload10.html @@ -0,0 +1,118 @@ + + + +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 Executor,
+    typename Iterator,
+    typename ConnectCondition>
+Iterator connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    ConnectCondition connect_condition,
+    asio::error_code & ec,
+    typename constraint<!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/3party/asio/doc/asio/reference/connect/overload11.html b/3party/asio/doc/asio/reference/connect/overload11.html new file mode 100644 index 0000000..1c9dad7 --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload11.html @@ -0,0 +1,151 @@ + + + +connect (11 of 12 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Establishes a socket connection by trying each endpoint in a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator,
+    typename ConnectCondition>
+Iterator connect(
+    basic_socket< Protocol, Executor > & 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(my_context);
+tcp::resolver::query q("host", "service");
+tcp::resolver::results_type e = r.resolve(q);
+tcp::socket s(my_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/3party/asio/doc/asio/reference/connect/overload12.html b/3party/asio/doc/asio/reference/connect/overload12.html new file mode 100644 index 0000000..83d2767 --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload12.html @@ -0,0 +1,153 @@ + + + +connect (12 of 12 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Establishes a socket connection by trying each endpoint in a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator,
+    typename ConnectCondition>
+Iterator connect(
+    basic_socket< Protocol, Executor > & 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(my_context);
+tcp::resolver::query q("host", "service");
+tcp::resolver::results_type e = r.resolve(q);
+tcp::socket s(my_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/3party/asio/doc/asio/reference/connect/overload2.html b/3party/asio/doc/asio/reference/connect/overload2.html new file mode 100644 index 0000000..7ed6fcb --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload2.html @@ -0,0 +1,101 @@ + + + +connect (2 of 12 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Establishes a socket connection by trying each endpoint in a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename EndpointSequence>
+Protocol::endpoint connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    asio::error_code & ec,
+    typename constraint< 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(my_context);
+tcp::resolver::query q("host", "service");
+tcp::socket s(my_context);
+asio::error_code ec;
+asio::connect(s, r.resolve(q), ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/connect/overload3.html b/3party/asio/doc/asio/reference/connect/overload3.html new file mode 100644 index 0000000..b3b66e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload3.html @@ -0,0 +1,103 @@ + + + +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 Executor,
+    typename Iterator>
+Iterator connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    typename constraint<!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/3party/asio/doc/asio/reference/connect/overload4.html b/3party/asio/doc/asio/reference/connect/overload4.html new file mode 100644 index 0000000..5f5fc83 --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload4.html @@ -0,0 +1,96 @@ + + + +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 Executor,
+    typename Iterator>
+Iterator connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    asio::error_code & ec,
+    typename constraint<!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/3party/asio/doc/asio/reference/connect/overload5.html b/3party/asio/doc/asio/reference/connect/overload5.html new file mode 100644 index 0000000..1d9bf1d --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload5.html @@ -0,0 +1,107 @@ + + + +connect (5 of 12 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Establishes a socket connection by trying each endpoint in a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator>
+Iterator connect(
+    basic_socket< Protocol, Executor > & 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(my_context);
+tcp::resolver::query q("host", "service");
+tcp::resolver::results_type e = r.resolve(q);
+tcp::socket s(my_context);
+asio::connect(s, e.begin(), e.end());
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/connect/overload6.html b/3party/asio/doc/asio/reference/connect/overload6.html new file mode 100644 index 0000000..3b88946 --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload6.html @@ -0,0 +1,106 @@ + + + +connect (6 of 12 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Establishes a socket connection by trying each endpoint in a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename Iterator>
+Iterator connect(
+    basic_socket< Protocol, Executor > & 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(my_context);
+tcp::resolver::query q("host", "service");
+tcp::resolver::results_type e = r.resolve(q);
+tcp::socket s(my_context);
+asio::error_code ec;
+asio::connect(s, e.begin(), e.end(), ec);
+if (ec)
+{
+  // An error occurred.
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/connect/overload7.html b/3party/asio/doc/asio/reference/connect/overload7.html new file mode 100644 index 0000000..b931edf --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload7.html @@ -0,0 +1,146 @@ + + + +connect (7 of 12 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Establishes a socket connection by trying each endpoint in a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename EndpointSequence,
+    typename ConnectCondition>
+Protocol::endpoint connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    ConnectCondition connect_condition,
+    typename constraint< 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(my_context);
+tcp::resolver::query q("host", "service");
+tcp::socket s(my_context);
+tcp::endpoint e = asio::connect(s,
+    r.resolve(q), my_connect_condition());
+std::cout << "Connected to: " << e << std::endl;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/connect/overload8.html b/3party/asio/doc/asio/reference/connect/overload8.html new file mode 100644 index 0000000..158338b --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload8.html @@ -0,0 +1,148 @@ + + + +connect (8 of 12 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Establishes a socket connection by trying each endpoint in a sequence. +

+
template<
+    typename Protocol,
+    typename Executor,
+    typename EndpointSequence,
+    typename ConnectCondition>
+Protocol::endpoint connect(
+    basic_socket< Protocol, Executor > & s,
+    const EndpointSequence & endpoints,
+    ConnectCondition connect_condition,
+    asio::error_code & ec,
+    typename constraint< 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(my_context);
+tcp::resolver::query q("host", "service");
+tcp::socket s(my_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/3party/asio/doc/asio/reference/connect/overload9.html b/3party/asio/doc/asio/reference/connect/overload9.html new file mode 100644 index 0000000..1dc8c05 --- /dev/null +++ b/3party/asio/doc/asio/reference/connect/overload9.html @@ -0,0 +1,125 @@ + + + +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 Executor,
+    typename Iterator,
+    typename ConnectCondition>
+Iterator connect(
+    basic_socket< Protocol, Executor > & s,
+    Iterator begin,
+    ConnectCondition connect_condition,
+    typename constraint<!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/3party/asio/doc/asio/reference/connect_pipe.html b/3party/asio/doc/asio/reference/connect_pipe.html new file mode 100644 index 0000000..f0fa9d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/connect_pipe.html @@ -0,0 +1,67 @@ + + + +connect_pipe + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Connect two pipe ends using an anonymous pipe. +

+
template<
+    typename Executor1,
+    typename Executor2>
+void connect_pipe(
+    basic_readable_pipe< Executor1 > & read_end,
+    basic_writable_pipe< Executor2 > & write_end);
+  » more...
+
+template<
+    typename Executor1,
+    typename Executor2>
+void connect_pipe(
+    basic_readable_pipe< Executor1 > & read_end,
+    basic_writable_pipe< Executor2 > & write_end,
+    asio::error_code & ec);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/connect_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/connect_pipe/overload1.html b/3party/asio/doc/asio/reference/connect_pipe/overload1.html new file mode 100644 index 0000000..376ab42 --- /dev/null +++ b/3party/asio/doc/asio/reference/connect_pipe/overload1.html @@ -0,0 +1,75 @@ + + + +connect_pipe (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Connect two pipe ends using an anonymous pipe. +

+
template<
+    typename Executor1,
+    typename Executor2>
+void connect_pipe(
+    basic_readable_pipe< Executor1 > & read_end,
+    basic_writable_pipe< Executor2 > & write_end);
+
+
+ + Parameters +
+
+

+
+
read_end
+

+ The read end of the pipe. +

+
write_end
+

+ The write end of the pipe. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/connect_pipe/overload2.html b/3party/asio/doc/asio/reference/connect_pipe/overload2.html new file mode 100644 index 0000000..2c9e767 --- /dev/null +++ b/3party/asio/doc/asio/reference/connect_pipe/overload2.html @@ -0,0 +1,89 @@ + + + +connect_pipe (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Connect two pipe ends using an anonymous pipe. +

+
template<
+    typename Executor1,
+    typename Executor2>
+void connect_pipe(
+    basic_readable_pipe< Executor1 > & read_end,
+    basic_writable_pipe< Executor2 > & write_end,
+    asio::error_code & ec);
+
+
+ + Parameters +
+
+

+
+
read_end
+

+ The read end of the pipe. +

+
write_end
+

+ The write end of the pipe. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ + Parameters +
+
+

+
+
ec
+

+ Set to indicate what error occurred, if any. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/consign.html b/3party/asio/doc/asio/reference/consign.html new file mode 100644 index 0000000..99c18c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/consign.html @@ -0,0 +1,63 @@ + + + +consign + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Completion token adapter used to specify that the completion handler should + carry additional values along with it. +

+
template<
+    typename CompletionToken,
+    typename... Values>
+constexpr consign_t< typename decay< CompletionToken >::type, typename decay< Values >::type...> consign(
+    CompletionToken && completion_token,
+    Values &&... values);
+
+

+ This completion token adapter is typically used to keep at least one copy + of an object, such as a smart pointer, alive until the completion handler + is called. +

+
+ + Requirements +
+

+ Header: asio/consign.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/consign_t.html b/3party/asio/doc/asio/reference/consign_t.html new file mode 100644 index 0000000..a6a72e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/consign_t.html @@ -0,0 +1,97 @@ + + + +consign_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Completion token type used to specify that the completion handler should + carry additional values along with it. +

+
template<
+    typename CompletionToken,
+    typename... Values>
+class consign_t
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ consign_t + [constructor] +

+
+

+ Constructor. +

+
+

+ This completion token adapter is typically used to keep at least one copy + of an object, such as a smart pointer, alive until the completion handler + is called. +

+
+ + Requirements +
+

+ Header: asio/consign.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/consign_t/consign_t.html b/3party/asio/doc/asio/reference/consign_t/consign_t.html new file mode 100644 index 0000000..0e51907 --- /dev/null +++ b/3party/asio/doc/asio/reference/consign_t/consign_t.html @@ -0,0 +1,45 @@ + + + +consign_t::consign_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
template<
+    typename T,
+    typename... V>
+constexpr consign_t(
+    T && completion_token,
+    V &&... values);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_buffer.html b/3party/asio/doc/asio/reference/const_buffer.html new file mode 100644 index 0000000..0ad5a74 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffer.html @@ -0,0 +1,185 @@ + + + +const_buffer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Holds a buffer that cannot be modified. +

+
class const_buffer
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ const_buffer [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/const_buffer/const_buffer.html b/3party/asio/doc/asio/reference/const_buffer/const_buffer.html new file mode 100644 index 0000000..b06e907 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffer/const_buffer.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/const_buffer/const_buffer/overload1.html b/3party/asio/doc/asio/reference/const_buffer/const_buffer/overload1.html new file mode 100644 index 0000000..ecf92c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffer/const_buffer/overload1.html @@ -0,0 +1,40 @@ + + + +const_buffer::const_buffer (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an empty buffer. +

+
const_buffer();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_buffer/const_buffer/overload2.html b/3party/asio/doc/asio/reference/const_buffer/const_buffer/overload2.html new file mode 100644 index 0000000..69645d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffer/const_buffer/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/const_buffer/const_buffer/overload3.html b/3party/asio/doc/asio/reference/const_buffer/const_buffer/overload3.html new file mode 100644 index 0000000..a6fe4df --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffer/const_buffer/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/const_buffer/data.html b/3party/asio/doc/asio/reference/const_buffer/data.html new file mode 100644 index 0000000..4eb3622 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffer/data.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/const_buffer/operator_plus_.html b/3party/asio/doc/asio/reference/const_buffer/operator_plus_.html new file mode 100644 index 0000000..e3b73e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffer/operator_plus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/const_buffer/operator_plus_/overload1.html b/3party/asio/doc/asio/reference/const_buffer/operator_plus_/overload1.html new file mode 100644 index 0000000..32fa49c --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffer/operator_plus_/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/const_buffer/operator_plus_/overload2.html b/3party/asio/doc/asio/reference/const_buffer/operator_plus_/overload2.html new file mode 100644 index 0000000..707f5ee --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffer/operator_plus_/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/const_buffer/operator_plus__eq_.html b/3party/asio/doc/asio/reference/const_buffer/operator_plus__eq_.html new file mode 100644 index 0000000..ea9db74 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffer/operator_plus__eq_.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/const_buffer/size.html b/3party/asio/doc/asio/reference/const_buffer/size.html new file mode 100644 index 0000000..67ba019 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffer/size.html @@ -0,0 +1,41 @@ + + + +const_buffer::size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the size of the memory + range. +

+
std::size_t size() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_buffers_1.html b/3party/asio/doc/asio/reference/const_buffers_1.html new file mode 100644 index 0000000..143ad01 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1.html @@ -0,0 +1,236 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/const_buffers_1/begin.html b/3party/asio/doc/asio/reference/const_buffers_1/begin.html new file mode 100644 index 0000000..7aea970 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/begin.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1.html b/3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1.html new file mode 100644 index 0000000..428f076 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload1.html b/3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload1.html new file mode 100644 index 0000000..c0638a7 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload2.html b/3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload2.html new file mode 100644 index 0000000..470c4ab --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/const_iterator.html b/3party/asio/doc/asio/reference/const_buffers_1/const_iterator.html new file mode 100644 index 0000000..886b828 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/const_iterator.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/data.html b/3party/asio/doc/asio/reference/const_buffers_1/data.html new file mode 100644 index 0000000..7056901 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/data.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/end.html b/3party/asio/doc/asio/reference/const_buffers_1/end.html new file mode 100644 index 0000000..32a6dcc --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/end.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/operator_plus_.html b/3party/asio/doc/asio/reference/const_buffers_1/operator_plus_.html new file mode 100644 index 0000000..7268d49 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/operator_plus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload1.html b/3party/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload1.html new file mode 100644 index 0000000..446354c --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload1.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload2.html b/3party/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload2.html new file mode 100644 index 0000000..45e8b3e --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/operator_plus__eq_.html b/3party/asio/doc/asio/reference/const_buffers_1/operator_plus__eq_.html new file mode 100644 index 0000000..8684182 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/operator_plus__eq_.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/size.html b/3party/asio/doc/asio/reference/const_buffers_1/size.html new file mode 100644 index 0000000..68ea7bb --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/size.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/const_buffers_1/value_type.html b/3party/asio/doc/asio/reference/const_buffers_1/value_type.html new file mode 100644 index 0000000..89c481f --- /dev/null +++ b/3party/asio/doc/asio/reference/const_buffers_1/value_type.html @@ -0,0 +1,184 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/const_registered_buffer.html b/3party/asio/doc/asio/reference/const_registered_buffer.html new file mode 100644 index 0000000..0ae48a7 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer.html @@ -0,0 +1,194 @@ + + + +const_registered_buffer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Holds a registered buffer over non-modifiable data. +

+
class const_registered_buffer
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ buffer +

+
+

+ Get the underlying constant buffer. +

+
+

+ const_registered_buffer [constructor] +

+
+

+ Default constructor creates an invalid registered buffer.
+
Construct a non-modifiable buffer from a modifiable one. +

+
+

+ data +

+
+

+ Get a pointer to the beginning of the memory range. +

+
+

+ id +

+
+

+ Get the registered buffer identifier. +

+
+

+ 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 registered buffer that is offset from + the start of another. +

+

+ Create a new non-modifiable buffer that is offset from the start + of another. +

+
+

+ Satisfies the ConstBufferSequence + type requirements. +

+
+ + Requirements +
+

+ Header: asio/registered_buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_registered_buffer/buffer.html b/3party/asio/doc/asio/reference/const_registered_buffer/buffer.html new file mode 100644 index 0000000..f6af24a --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer/buffer.html @@ -0,0 +1,41 @@ + + + +const_registered_buffer::buffer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the underlying constant buffer. +

+
const const_buffer & buffer() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer.html b/3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer.html new file mode 100644 index 0000000..50280d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer.html @@ -0,0 +1,49 @@ + + + +const_registered_buffer::const_registered_buffer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor creates an invalid registered buffer. +

+
const_registered_buffer();
+  » more...
+
+

+ Construct a non-modifiable buffer from a modifiable one. +

+
const_registered_buffer(
+    const mutable_registered_buffer & b);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer/overload1.html b/3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer/overload1.html new file mode 100644 index 0000000..61fc74d --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer/overload1.html @@ -0,0 +1,40 @@ + + + +const_registered_buffer::const_registered_buffer (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor creates an invalid registered buffer. +

+
const_registered_buffer();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer/overload2.html b/3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer/overload2.html new file mode 100644 index 0000000..fd1107e --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer/const_registered_buffer/overload2.html @@ -0,0 +1,41 @@ + + + +const_registered_buffer::const_registered_buffer (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a non-modifiable buffer from a modifiable one. +

+
const_registered_buffer(
+    const mutable_registered_buffer & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_registered_buffer/data.html b/3party/asio/doc/asio/reference/const_registered_buffer/data.html new file mode 100644 index 0000000..608174e --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer/data.html @@ -0,0 +1,49 @@ + + + +const_registered_buffer::data + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + a pointer to the beginning of the memory range. +

+
const void * data() const;
+
+
+ + Return + Value +
+

+ buffer().data(). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_registered_buffer/id.html b/3party/asio/doc/asio/reference/const_registered_buffer/id.html new file mode 100644 index 0000000..c5c0a7a --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer/id.html @@ -0,0 +1,41 @@ + + + +const_registered_buffer::id + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the + registered buffer identifier. +

+
const registered_buffer_id & id() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_.html b/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_.html new file mode 100644 index 0000000..499c47b --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_.html @@ -0,0 +1,53 @@ + + + +const_registered_buffer::operator+ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Create + a new non-modifiable registered buffer that is offset from the start of + another. +

+
const_registered_buffer operator+(
+    const const_registered_buffer & b,
+    std::size_t n);
+  » more...
+
+

+ Create a new non-modifiable buffer that is offset from the start of another. +

+
const_registered_buffer operator+(
+    std::size_t n,
+    const const_registered_buffer & b);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_/overload1.html b/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_/overload1.html new file mode 100644 index 0000000..28c62e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_/overload1.html @@ -0,0 +1,43 @@ + + + +const_registered_buffer::operator+ (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a new non-modifiable registered buffer that is offset from the + start of another. +

+
const_registered_buffer operator+(
+    const const_registered_buffer & b,
+    std::size_t n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_/overload2.html b/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_/overload2.html new file mode 100644 index 0000000..df6bf76 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus_/overload2.html @@ -0,0 +1,42 @@ + + + +const_registered_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_registered_buffer operator+(
+    std::size_t n,
+    const const_registered_buffer & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus__eq_.html b/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus__eq_.html new file mode 100644 index 0000000..1c9e509 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer/operator_plus__eq_.html @@ -0,0 +1,42 @@ + + + +const_registered_buffer::operator+= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move + the start of the buffer by the specified number of bytes. +

+
const_registered_buffer & operator+=(
+    std::size_t n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/const_registered_buffer/size.html b/3party/asio/doc/asio/reference/const_registered_buffer/size.html new file mode 100644 index 0000000..0d9c8f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/const_registered_buffer/size.html @@ -0,0 +1,49 @@ + + + +const_registered_buffer::size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the size of the memory range. +

+
std::size_t size() const;
+
+
+ + Return + Value +
+

+ buffer().size(). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/coroutine.html b/3party/asio/doc/asio/reference/coroutine.html new file mode 100644 index 0000000..3d1439f --- /dev/null +++ b/3party/asio/doc/asio/reference/coroutine.html @@ -0,0 +1,449 @@ + + + +coroutine + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides support for implementing stackless coroutines. +

+
class coroutine
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ coroutine + [constructor] +

+
+

+ 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(my_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 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/3party/asio/doc/asio/reference/coroutine/coroutine.html b/3party/asio/doc/asio/reference/coroutine/coroutine.html new file mode 100644 index 0000000..20eb5c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/coroutine/coroutine.html @@ -0,0 +1,41 @@ + + + +coroutine::coroutine + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructs a coroutine + in its initial state. +

+
coroutine();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/coroutine/is_child.html b/3party/asio/doc/asio/reference/coroutine/is_child.html new file mode 100644 index 0000000..ab1cdc5 --- /dev/null +++ b/3party/asio/doc/asio/reference/coroutine/is_child.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/coroutine/is_complete.html b/3party/asio/doc/asio/reference/coroutine/is_complete.html new file mode 100644 index 0000000..5952989 --- /dev/null +++ b/3party/asio/doc/asio/reference/coroutine/is_complete.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/coroutine/is_parent.html b/3party/asio/doc/asio/reference/coroutine/is_parent.html new file mode 100644 index 0000000..4672f55 --- /dev/null +++ b/3party/asio/doc/asio/reference/coroutine/is_parent.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/deadline_timer.html b/3party/asio/doc/asio/reference/deadline_timer.html new file mode 100644 index 0000000..0f7395d --- /dev/null +++ b/3party/asio/doc/asio/reference/deadline_timer.html @@ -0,0 +1,391 @@ + + + +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 +

+
+

+ rebind_executor +

+
+

+ Rebinds the timer type to another executor. +

+
+

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

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

+
+

+ operator= +

+
+

+ Move-assign a basic_deadline_timer from another. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the timer. +

+
+

+ ~basic_deadline_timer [destructor] +

+
+

+ 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(my_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(my_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/3party/asio/doc/asio/reference/default_completion_token.html b/3party/asio/doc/asio/reference/default_completion_token.html new file mode 100644 index 0000000..22922a7 --- /dev/null +++ b/3party/asio/doc/asio/reference/default_completion_token.html @@ -0,0 +1,98 @@ + + + +default_completion_token + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Traits type used to determine the default completion token type associated + with a type (such as an executor). +

+
template<
+    typename T>
+struct default_completion_token
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ If T has a nested type default_completion_token_type, T::default_completion_token_type. + Otherwise the typedef type is not defined. +

+
+

+ A program may specialise this traits type if the T + template parameter in the specialisation is a user-defined type. +

+

+ Specialisations of this trait may provide a nested typedef type, which is a default-constructible + completion token type. +

+
+ + Requirements +
+

+ Header: asio/async_result.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/default_completion_token/type.html b/3party/asio/doc/asio/reference/default_completion_token/type.html new file mode 100644 index 0000000..9b466f4 --- /dev/null +++ b/3party/asio/doc/asio/reference/default_completion_token/type.html @@ -0,0 +1,53 @@ + + + +default_completion_token::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +If + T has a nested type default_completion_token_type, T::default_completion_token_type. + Otherwise the typedef type + is not defined. +

+
typedef see_below type;
+
+
+ + Requirements +
+

+ Header: asio/async_result.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/defer.html b/3party/asio/doc/asio/reference/defer.html new file mode 100644 index 0000000..d562d78 --- /dev/null +++ b/3party/asio/doc/asio/reference/defer.html @@ -0,0 +1,74 @@ + + + +defer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+

+defer +

+

+ +

+

+ Submits a completion token or function object for execution. +

+
template<
+    typename NullaryToken>
+DEDUCED defer(
+    NullaryToken && token);
+  » more...
+
+template<
+    typename Executor,
+    typename NullaryToken = DEFAULT>
+DEDUCED defer(
+    const Executor & ex,
+    NullaryToken && token = DEFAULT,
+    typename constraint< (execution::is_executor< Executor >::value &&can_require< Executor, execution::blocking_t::never_t >::value)||is_executor< Executor >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext,
+    typename NullaryToken = DEFAULT>
+DEDUCED defer(
+    ExecutionContext & ctx,
+    NullaryToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/defer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/defer/overload1.html b/3party/asio/doc/asio/reference/defer/overload1.html new file mode 100644 index 0000000..f9fc6a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/defer/overload1.html @@ -0,0 +1,139 @@ + + + +defer (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Submits a completion token or function object for execution. +

+
template<
+    typename NullaryToken>
+DEDUCED defer(
+    NullaryToken && 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(). +

+

+ The use of defer(), + rather than post, + indicates the caller's preference that the executor defer the queueing + of the function object. This may allow the executor to optimise queueing + for cases when the function object represents a continuation of the current + call context. +

+
+ + Parameters +
+
+

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler. The + function signature of the completion handler must be: +

+
void handler();
+
+
+
+
+
+ + Return + Value +
+

+ This function returns async_initiate<NullaryToken, void()>(Init{}, token), + where Init is a function + object type defined as: +

+
class Init
+{
+public:
+  template <typename CompletionHandler>
+    void operator()(CompletionHandler&& completion_handler) const;
+};
+
+

+ The function call operator of Init: +

+
    +
  • +

    + Obtains the handler's associated executor object ex + of type Ex by performing +

    +
    auto ex = get_associated_executor(handler);
    +
    +
  • +
  • +

    + Obtains the handler's associated allocator object alloc + by performing +

    +
    auto alloc = get_associated_allocator(handler);
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is true, performs +

    +
    prefer(
    +    require(ex, execution::blocking.never),
    +    execution::relationship.continuation,
    +    execution::allocator(alloc)
    +  ).execute(std::forward<CompletionHandler>(completion_handler));
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is false, performs +

    +
    ex.defer(
    +    std::forward<CompletionHandler>(completion_handler),
    +    alloc);
    +
    +
  • +
+
+ + Completion + Signature +
+
void()
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/defer/overload2.html b/3party/asio/doc/asio/reference/defer/overload2.html new file mode 100644 index 0000000..767d9f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/defer/overload2.html @@ -0,0 +1,177 @@ + + + +defer (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Submits a completion token or function object for execution. +

+
template<
+    typename Executor,
+    typename NullaryToken = DEFAULT>
+DEDUCED defer(
+    const Executor & ex,
+    NullaryToken && token = DEFAULT,
+    typename constraint< (execution::is_executor< Executor >::value &&can_require< Executor, execution::blocking_t::never_t >::value)||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(). +

+

+ The use of defer(), + rather than post, + indicates the caller's preference that the executor defer the queueing + of the function object. This may allow the executor to optimise queueing + for cases when the function object represents a continuation of the current + call context. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The target executor. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler. The + function signature of the completion handler must be: +

+
void handler();
+
+
+
+
+
+ + Return + Value +
+

+ This function returns async_initiate<NullaryToken, void()>(Init{ex}, token), + where Init is a function + object type defined as: +

+
class Init
+{
+public:
+  using executor_type = Executor;
+  explicit Init(const Executor& ex) : ex_(ex) {}
+  executor_type get_executor() const noexcept { return ex_; }
+  template <typename CompletionHandler>
+    void operator()(CompletionHandler&& completion_handler) const;
+private:
+  Executor ex_; // exposition only
+};
+
+

+ The function call operator of Init: +

+
    +
  • +

    + Obtains the handler's associated executor object ex1 + of type Ex1 by performing +

    +
    auto ex1 = get_associated_executor(handler, ex);
    +
    +
  • +
  • +

    + Obtains the handler's associated allocator object alloc + by performing +

    +
    auto alloc = get_associated_allocator(handler);
    +
    +
  • +
  • +

    + If execution::is_executor<Ex1>::value is true, constructs a function + object f with a member + executor_ that is initialised + with prefer(ex1, execution::outstanding_work.tracked), + a member handler_ that + is a decay-copy of completion_handler, + and a function call operator that performs: +

    +
    auto a = get_associated_allocator(handler_);
    +prefer(executor_, execution::allocator(a)).execute(std::move(handler_));
    +
    +
  • +
  • +

    + If execution::is_executor<Ex1>::value is false, constructs a function + object f with a member + work_ that is initialised + with make_work_guard(ex1), a member handler_ + that is a decay-copy of completion_handler, + and a function call operator that performs: +

    +
    auto a = get_associated_allocator(handler_);
    +work_.get_executor().dispatch(std::move(handler_), a);
    +work_.reset();
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is true, performs +

    +
    prefer(
    +    require(ex, execution::blocking.never),
    +    execution::relationship.continuation,
    +    execution::allocator(alloc)
    +  ).execute(std::move(f));
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is false, performs +

    +
    ex.defer(std::move(f), alloc);
    +
    +
  • +
+
+ + Completion + Signature +
+
void()
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/defer/overload3.html b/3party/asio/doc/asio/reference/defer/overload3.html new file mode 100644 index 0000000..3b256ea --- /dev/null +++ b/3party/asio/doc/asio/reference/defer/overload3.html @@ -0,0 +1,84 @@ + + + +defer (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Submits a completion token or function object for execution. +

+
template<
+    typename ExecutionContext,
+    typename NullaryToken = DEFAULT>
+DEDUCED defer(
+    ExecutionContext & ctx,
+    NullaryToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ctx
+

+ An execution context, from which the target executor is obtained. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler. The + function signature of the completion handler must be: +

+
void handler();
+
+
+
+
+
+ + Return + Value +
+

+ defer(ctx.get_executor(), + forward<NullaryToken>(token)). +

+
+ + Completion + Signature +
+
void()
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred.html b/3party/asio/doc/asio/reference/deferred.html new file mode 100644 index 0000000..5fe55fc --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred.html @@ -0,0 +1,57 @@ + + + +deferred + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + object used to specify that an asynchronous operation should return a function + object to lazily launch the operation. +

+
constexpr deferred_t deferred;
+
+

+ See the documentation for deferred_t for a usage example. +

+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_async_operation.html b/3party/asio/doc/asio/reference/deferred_async_operation.html new file mode 100644 index 0000000..98b8045 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_async_operation.html @@ -0,0 +1,116 @@ + + + +deferred_async_operation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Encapsulates a deferred asynchronous operation. +

+
template<
+    typename Signature,
+    typename Initiation,
+    typename... InitArgs>
+class deferred_async_operation
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ deferred_async_operation [constructor] +

+
+

+ Construct a deferred asynchronous operation from the arguments + to an initiation function object. +

+
+

+ detail::index_sequence_for +

+
+
+

+ operator() +

+
+

+ Initiate the asynchronous operation using the supplied completion + token. +

+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_async_operation/deferred_async_operation.html b/3party/asio/doc/asio/reference/deferred_async_operation/deferred_async_operation.html new file mode 100644 index 0000000..91898a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_async_operation/deferred_async_operation.html @@ -0,0 +1,48 @@ + + + +deferred_async_operation::deferred_async_operation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a deferred asynchronous operation from the arguments to an initiation function + object. +

+
template<
+    typename I,
+    typename... A>
+constexpr deferred_async_operation(
+    deferred_init_tag ,
+    I && initiation,
+    A &&... init_args);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_async_operation/detail__index_sequence_for.html b/3party/asio/doc/asio/reference/deferred_async_operation/detail__index_sequence_for.html new file mode 100644 index 0000000..fa368eb --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_async_operation/detail__index_sequence_for.html @@ -0,0 +1,39 @@ + + + +deferred_async_operation::detail::index_sequence_for + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
auto detail::index_sequence_for();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_async_operation/operator_lp__rp_.html b/3party/asio/doc/asio/reference/deferred_async_operation/operator_lp__rp_.html new file mode 100644 index 0000000..4137512 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_async_operation/operator_lp__rp_.html @@ -0,0 +1,44 @@ + + + +deferred_async_operation::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Initiate + the asynchronous operation using the supplied completion token. +

+
template<
+    typename CompletionToken>
+auto operator()(
+    CompletionToken && token);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_.html b/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_.html new file mode 100644 index 0000000..1869aa5 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_.html @@ -0,0 +1,118 @@ + + + +deferred_async_operation< deferred_signatures< Signatures...>, Initiation, InitArgs...> + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Encapsulates a deferred asynchronous operation thas has multiple completion + signatures. +

+
template<
+    typename... Signatures,
+    typename Initiation,
+    typename... InitArgs>
+class deferred_async_operation< deferred_signatures< Signatures...>, Initiation, InitArgs...>
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ deferred_async_operation +

+
+

+ Construct a deferred asynchronous operation from the arguments + to an initiation function object. +

+
+

+ detail::index_sequence_for +

+
+
+

+ operator() +

+
+

+ Initiate the asynchronous operation using the supplied completion + token. +

+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/deferred_async_operation.html b/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/deferred_async_operation.html new file mode 100644 index 0000000..36b6a22 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/deferred_async_operation.html @@ -0,0 +1,49 @@ + + + +deferred_async_operation< deferred_signatures< Signatures...>, Initiation, InitArgs...>::deferred_async_operation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a deferred asynchronous operation from the arguments to an initiation function + object. +

+
template<
+    typename I,
+    typename... A>
+constexpr deferred_async_operation(
+    deferred_init_tag ,
+    I && initiation,
+    A &&... init_args);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/detail__index_sequence_for.html b/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/detail__index_sequence_for.html new file mode 100644 index 0000000..a82e044 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/detail__index_sequence_for.html @@ -0,0 +1,40 @@ + + + +deferred_async_operation< deferred_signatures< Signatures...>, Initiation, InitArgs...>::detail::index_sequence_for + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+ + +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/operator_lp__rp_.html b/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/operator_lp__rp_.html new file mode 100644 index 0000000..400df7b --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/operator_lp__rp_.html @@ -0,0 +1,45 @@ + + + +deferred_async_operation< deferred_signatures< Signatures...>, Initiation, InitArgs...>::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Initiate + the asynchronous operation using the supplied completion token. +

+
template<
+    typename CompletionToken>
+auto operator()(
+    CompletionToken && token);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_conditional.html b/3party/asio/doc/asio/reference/deferred_conditional.html new file mode 100644 index 0000000..0b3ebe9 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_conditional.html @@ -0,0 +1,128 @@ + + + +deferred_conditional + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Used to represent a deferred conditional branch. +

+
template<
+    typename OnTrue = deferred_noop,
+    typename OnFalse = deferred_noop>
+class deferred_conditional
+
+
+ + Member Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ deferred_conditional [constructor] +

+
+

+ Construct a deferred conditional with the value to determine which + branch will be executed. +

+
+

+ operator() +

+
+

+ Invoke the conditional branch bsaed on the stored alue. +

+
+

+ otherwise +

+
+

+ Set the false branch of the conditional. +

+
+

+ then +

+
+

+ Set the true branch of the conditional. +

+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_conditional/deferred_conditional.html b/3party/asio/doc/asio/reference/deferred_conditional/deferred_conditional.html new file mode 100644 index 0000000..4dbeaf5 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_conditional/deferred_conditional.html @@ -0,0 +1,43 @@ + + + +deferred_conditional::deferred_conditional + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a deferred conditional with the value to determine which branch will be + executed. +

+
constexpr deferred_conditional(
+    bool b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_conditional/operator_lp__rp_.html b/3party/asio/doc/asio/reference/deferred_conditional/operator_lp__rp_.html new file mode 100644 index 0000000..e02dab2 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_conditional/operator_lp__rp_.html @@ -0,0 +1,44 @@ + + + +deferred_conditional::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Invoke + the conditional branch bsaed on the stored alue. +

+
template<
+    typename... Args>
+auto operator()(
+    Args &&... args);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_conditional/otherwise.html b/3party/asio/doc/asio/reference/deferred_conditional/otherwise.html new file mode 100644 index 0000000..c836971 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_conditional/otherwise.html @@ -0,0 +1,47 @@ + + + +deferred_conditional::otherwise + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Set + the false branch of the conditional. +

+
template<
+    typename T>
+deferred_conditional< OnTrue, T > otherwise(
+    T on_false,
+    typename constraint< is_deferred< T >::value >::type *  = 0,
+    typename constraint< !is_same< typename conditional< true, OnTrue, T >::type, deferred_noop >::value >::type *  = 0,
+    typename constraint< is_same< typename conditional< true, OnFalse, T >::type, deferred_noop >::value >::type *  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_conditional/then.html b/3party/asio/doc/asio/reference/deferred_conditional/then.html new file mode 100644 index 0000000..7e131f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_conditional/then.html @@ -0,0 +1,46 @@ + + + +deferred_conditional::then + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Set the + true branch of the conditional. +

+
template<
+    typename T>
+deferred_conditional< T, OnFalse > then(
+    T on_true,
+    typename constraint< is_deferred< T >::value >::type *  = 0,
+    typename constraint< is_same< typename conditional< true, OnTrue, T >::type, deferred_noop >::value >::type *  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_function.html b/3party/asio/doc/asio/reference/deferred_function.html new file mode 100644 index 0000000..5a66669 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_function.html @@ -0,0 +1,133 @@ + + + +deferred_function + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Wraps a function object so that it may be used as an element in a deferred + composition. +

+
template<
+    typename Function>
+class deferred_function
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ deferred_function [constructor] +

+
+

+ Constructor. +

+
+

+ operator() +

+
+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ function_ +

+
+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_function/deferred_function.html b/3party/asio/doc/asio/reference/deferred_function/deferred_function.html new file mode 100644 index 0000000..c40ce6e --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_function/deferred_function.html @@ -0,0 +1,44 @@ + + + +deferred_function::deferred_function + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
template<
+    typename F>
+constexpr deferred_function(
+    deferred_init_tag ,
+    F && function);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_function/function_.html b/3party/asio/doc/asio/reference/deferred_function/function_.html new file mode 100644 index 0000000..49a2ee0 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_function/function_.html @@ -0,0 +1,39 @@ + + + +deferred_function::function_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
Function function_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_function/operator_lp__rp_.html b/3party/asio/doc/asio/reference/deferred_function/operator_lp__rp_.html new file mode 100644 index 0000000..5c986aa --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_function/operator_lp__rp_.html @@ -0,0 +1,42 @@ + + + +deferred_function::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename... Args>
+auto operator()(
+    Args &&... args);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_init_tag.html b/3party/asio/doc/asio/reference/deferred_init_tag.html new file mode 100644 index 0000000..b1907de --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_init_tag.html @@ -0,0 +1,52 @@ + + + +deferred_init_tag + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Tag type to disambiguate deferred constructors. +

+
struct deferred_init_tag
+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_noop.html b/3party/asio/doc/asio/reference/deferred_noop.html new file mode 100644 index 0000000..2b4c209 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_noop.html @@ -0,0 +1,87 @@ + + + +deferred_noop + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Used to represent an empty deferred action. +

+
struct deferred_noop
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+

+ No effect. +

+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_noop/operator_lp__rp_.html b/3party/asio/doc/asio/reference/deferred_noop/operator_lp__rp_.html new file mode 100644 index 0000000..7626fa4 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_noop/operator_lp__rp_.html @@ -0,0 +1,44 @@ + + + +deferred_noop::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +No + effect. +

+
template<
+    typename... Args>
+void operator()(
+    Args && ...);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_sequence.html b/3party/asio/doc/asio/reference/deferred_sequence.html new file mode 100644 index 0000000..f12b696 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_sequence.html @@ -0,0 +1,98 @@ + + + +deferred_sequence + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Defines a link between two consecutive operations in a sequence. +

+
template<
+    typename Head,
+    typename Tail>
+class deferred_sequence
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ deferred_sequence [constructor] +

+
+
+

+ operator() +

+
+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_sequence/deferred_sequence.html b/3party/asio/doc/asio/reference/deferred_sequence/deferred_sequence.html new file mode 100644 index 0000000..bf31cd0 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_sequence/deferred_sequence.html @@ -0,0 +1,45 @@ + + + +deferred_sequence::deferred_sequence + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename H,
+    typename T>
+constexpr deferred_sequence(
+    deferred_init_tag ,
+    H && head,
+    T && tail);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_.html b/3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_.html new file mode 100644 index 0000000..6daee93 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_.html @@ -0,0 +1,49 @@ + + + +deferred_sequence::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename CompletionToken>
+auto operator()(
+    CompletionToken && token);
+  » more...
+
+template<
+    typename CompletionToken>
+auto operator()(
+    CompletionToken && token) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_/overload1.html b/3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_/overload1.html new file mode 100644 index 0000000..e574063 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_/overload1.html @@ -0,0 +1,40 @@ + + + +deferred_sequence::operator() (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename CompletionToken>
+auto operator()(
+    CompletionToken && token);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_/overload2.html b/3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_/overload2.html new file mode 100644 index 0000000..05e338d --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_sequence/operator_lp__rp_/overload2.html @@ -0,0 +1,40 @@ + + + +deferred_sequence::operator() (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename CompletionToken>
+auto operator()(
+    CompletionToken && token) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_signatures.html b/3party/asio/doc/asio/reference/deferred_signatures.html new file mode 100644 index 0000000..5f68a0c --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_signatures.html @@ -0,0 +1,54 @@ + + + +deferred_signatures + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Helper type to wrap multiple completion signatures. +

+
template<
+    typename... Signatures>
+struct deferred_signatures
+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_t.html b/3party/asio/doc/asio/reference/deferred_t.html new file mode 100644 index 0000000..6ab626e --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_t.html @@ -0,0 +1,192 @@ + + + +deferred_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Class used to specify that an asynchronous operation should return a function + object to lazily launch the operation. +

+
class deferred_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the deferred_t completion token as the + default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use deferred_t as its + default completion token type. +

+
+

+ deferred_t [constructor] +

+
+

+ Default constructor. +

+
+

+ operator() +

+
+

+ Creates a new deferred from a function.

Passes through + anything that is already deferred. +

+
+

+ values + [static] +

+
+

+ Returns a deferred operation that returns the provided values. +

+
+

+ when + [static] +

+
+

+ Creates a conditional object for branching deferred operations. +

+
+

+ The deferred_t + class is used to indicate that an asynchronous operation should return a + function object which is itself an initiation function. A deferred_t object may be passed + as a completion token to an asynchronous operation, typically using the special + value asio::deferred. For example: +

+
auto my_deferred_op
+  = my_socket.async_read_some(my_buffer,
+      asio::deferred);
+
+

+ The initiating function (async_read_some in the above example) returns a + function object that will lazily initiate the operation. +

+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_t/as_default_on.html b/3party/asio/doc/asio/reference/deferred_t/as_default_on.html new file mode 100644 index 0000000..fdb46ba --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_t/as_default_on.html @@ -0,0 +1,45 @@ + + + +deferred_t::as_default_on + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Function + helper to adapt an I/O object to use deferred_t + as its default completion token type. +

+
template<
+    typename T>
+static decay< T >::type::template rebind_executor< executor_with_default< typename decay< T >::type::executor_type > >::other as_default_on(
+    T && object);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_t/deferred_t.html b/3party/asio/doc/asio/reference/deferred_t/deferred_t.html new file mode 100644 index 0000000..97b3470 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_t/deferred_t.html @@ -0,0 +1,40 @@ + + + +deferred_t::deferred_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default constructor. +

+
constexpr deferred_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_.html b/3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_.html new file mode 100644 index 0000000..e519d5a --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_.html @@ -0,0 +1,54 @@ + + + +deferred_t::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Creates a + new deferred from a function. +

+
template<
+    typename Function>
+constraint< !is_deferred< typename decay< Function >::type >::value, deferred_function< typename decay< Function >::type > >::type operator()(
+    Function && function) const;
+  » more...
+
+

+ Passes through anything that is already deferred. +

+
template<
+    typename T>
+constraint< is_deferred< typename decay< T >::type >::value, typename decay< T >::type >::type operator()(
+    T && t) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_/overload1.html b/3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_/overload1.html new file mode 100644 index 0000000..d1c3b97 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_/overload1.html @@ -0,0 +1,43 @@ + + + +deferred_t::operator() (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Creates a new deferred from a function. +

+
template<
+    typename Function>
+constraint< !is_deferred< typename decay< Function >::type >::value, deferred_function< typename decay< Function >::type > >::type operator()(
+    Function && function) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_/overload2.html b/3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_/overload2.html new file mode 100644 index 0000000..7a0f82f --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_t/operator_lp__rp_/overload2.html @@ -0,0 +1,43 @@ + + + +deferred_t::operator() (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Passes through anything that is already deferred. +

+
template<
+    typename T>
+constraint< is_deferred< typename decay< T >::type >::value, typename decay< T >::type >::type operator()(
+    T && t) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_t/values.html b/3party/asio/doc/asio/reference/deferred_t/values.html new file mode 100644 index 0000000..771c579 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_t/values.html @@ -0,0 +1,44 @@ + + + +deferred_t::values + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Returns a deferred operation + that returns the provided values. +

+
template<
+    typename... Args>
+static constexpr deferred_values< typename decay< Args >::type...> values(
+    Args &&... args);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_t/when.html b/3party/asio/doc/asio/reference/deferred_t/when.html new file mode 100644 index 0000000..debd778 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_t/when.html @@ -0,0 +1,42 @@ + + + +deferred_t::when + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Creates a conditional object + for branching deferred operations. +

+
static constexpr deferred_conditional when(
+    bool b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_t__executor_with_default.html b/3party/asio/doc/asio/reference/deferred_t__executor_with_default.html new file mode 100644 index 0000000..4f12a70 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_t__executor_with_default.html @@ -0,0 +1,124 @@ + + + +deferred_t::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Adapts an executor to add the deferred_t + completion token as the default. +

+
template<
+    typename InnerExecutor>
+struct executor_with_default
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_completion_token_type +

+
+

+ Specify deferred_t as the default completion token type. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default [constructor] +

+
+

+ Construct the adapted executor from the inner executor type. +

+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_t__executor_with_default/default_completion_token_type.html b/3party/asio/doc/asio/reference/deferred_t__executor_with_default/default_completion_token_type.html new file mode 100644 index 0000000..8a48a22 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_t__executor_with_default/default_completion_token_type.html @@ -0,0 +1,191 @@ + + + +deferred_t::executor_with_default::default_completion_token_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Specify + deferred_t as the default + completion token type. +

+
typedef deferred_t default_completion_token_type;
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the deferred_t completion token as + the default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use deferred_t as its + default completion token type. +

+
+

+ deferred_t [constructor] +

+
+

+ Default constructor. +

+
+

+ operator() +

+
+

+ Creates a new deferred from a function.

Passes + through anything that is already deferred. +

+
+

+ values + [static] +

+
+

+ Returns a deferred operation that returns the provided values. +

+
+

+ when + [static] +

+
+

+ Creates a conditional object for branching deferred operations. +

+
+

+ The deferred_t + class is used to indicate that an asynchronous operation should return + a function object which is itself an initiation function. A deferred_t object may be passed + as a completion token to an asynchronous operation, typically using the + special value asio::deferred. For example: +

+
auto my_deferred_op
+  = my_socket.async_read_some(my_buffer,
+      asio::deferred);
+
+

+ The initiating function (async_read_some in the above example) returns + a function object that will lazily initiate the operation. +

+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_t__executor_with_default/executor_with_default.html b/3party/asio/doc/asio/reference/deferred_t__executor_with_default/executor_with_default.html new file mode 100644 index 0000000..8e390b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_t__executor_with_default/executor_with_default.html @@ -0,0 +1,45 @@ + + + +deferred_t::executor_with_default::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + the adapted executor from the inner executor type. +

+
template<
+    typename InnerExecutor1>
+executor_with_default(
+    const InnerExecutor1 & ex,
+    typename constraint< conditional< !is_same< InnerExecutor1, executor_with_default >::value, is_convertible< InnerExecutor1, InnerExecutor >, false_type >::type::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_values.html b/3party/asio/doc/asio/reference/deferred_values.html new file mode 100644 index 0000000..d00a261 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_values.html @@ -0,0 +1,113 @@ + + + +deferred_values + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Encapsulates deferred values. +

+
template<
+    typename... Values>
+class deferred_values
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ deferred_values [constructor] +

+
+

+ Construct a deferred asynchronous operation from the arguments + to an initiation function object. +

+
+

+ detail::index_sequence_for +

+
+
+

+ operator() +

+
+

+ Initiate the deferred operation using the supplied completion token. +

+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_values/deferred_values.html b/3party/asio/doc/asio/reference/deferred_values/deferred_values.html new file mode 100644 index 0000000..63d5138 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_values/deferred_values.html @@ -0,0 +1,46 @@ + + + +deferred_values::deferred_values + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a deferred asynchronous operation from the arguments to an initiation function + object. +

+
template<
+    typename... V>
+constexpr deferred_values(
+    deferred_init_tag ,
+    V &&... values);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_values/detail__index_sequence_for.html b/3party/asio/doc/asio/reference/deferred_values/detail__index_sequence_for.html new file mode 100644 index 0000000..9d61acb --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_values/detail__index_sequence_for.html @@ -0,0 +1,39 @@ + + + +deferred_values::detail::index_sequence_for + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
auto detail::index_sequence_for();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_values/operator_lp__rp_.html b/3party/asio/doc/asio/reference/deferred_values/operator_lp__rp_.html new file mode 100644 index 0000000..36aa142 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_values/operator_lp__rp_.html @@ -0,0 +1,44 @@ + + + +deferred_values::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Initiate + the deferred operation using the supplied completion token. +

+
template<
+    typename CompletionToken>
+auto operator()(
+    CompletionToken && token);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_values__initiate.html b/3party/asio/doc/asio/reference/deferred_values__initiate.html new file mode 100644 index 0000000..e07fd36 --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_values__initiate.html @@ -0,0 +1,81 @@ + + + +deferred_values::initiate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
struct initiate
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/deferred_values__initiate/operator_lp__rp_.html b/3party/asio/doc/asio/reference/deferred_values__initiate/operator_lp__rp_.html new file mode 100644 index 0000000..7c4263a --- /dev/null +++ b/3party/asio/doc/asio/reference/deferred_values__initiate/operator_lp__rp_.html @@ -0,0 +1,44 @@ + + + +deferred_values::initiate::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename Handler,
+    typename... V>
+void operator()(
+    Handler handler,
+    V &&... values);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/detached.html b/3party/asio/doc/asio/reference/detached.html new file mode 100644 index 0000000..eb284f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/detached.html @@ -0,0 +1,56 @@ + + + +detached + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + object used to specify that an asynchronous operation is detached. +

+
constexpr detached_t detached;
+
+

+ See the documentation for detached_t for a usage example. +

+
+ + Requirements +
+

+ Header: asio/detached.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/detached_t.html b/3party/asio/doc/asio/reference/detached_t.html new file mode 100644 index 0000000..99a27ef --- /dev/null +++ b/3party/asio/doc/asio/reference/detached_t.html @@ -0,0 +1,149 @@ + + + +detached_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + type used to specify that an asynchronous operation is detached. +

+
class detached_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the detached_t completion token as the + default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use detached_t as its + default completion token type. +

+
+

+ detached_t [constructor] +

+
+

+ Constructor. +

+
+

+ 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 asio::detached. + For example: +

+
my_socket.async_send(my_buffer, asio::detached);
+
+
+ + Requirements +
+

+ Header: asio/detached.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/detached_t/as_default_on.html b/3party/asio/doc/asio/reference/detached_t/as_default_on.html new file mode 100644 index 0000000..d3081b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/detached_t/as_default_on.html @@ -0,0 +1,45 @@ + + + +detached_t::as_default_on + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Function + helper to adapt an I/O object to use detached_t + as its default completion token type. +

+
template<
+    typename T>
+static decay< T >::type::template rebind_executor< executor_with_default< typename decay< T >::type::executor_type > >::other as_default_on(
+    T && object);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/detached_t/detached_t.html b/3party/asio/doc/asio/reference/detached_t/detached_t.html new file mode 100644 index 0000000..5007cf6 --- /dev/null +++ b/3party/asio/doc/asio/reference/detached_t/detached_t.html @@ -0,0 +1,40 @@ + + + +detached_t::detached_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
constexpr detached_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/detached_t__executor_with_default.html b/3party/asio/doc/asio/reference/detached_t__executor_with_default.html new file mode 100644 index 0000000..c629fbc --- /dev/null +++ b/3party/asio/doc/asio/reference/detached_t__executor_with_default.html @@ -0,0 +1,126 @@ + + + +detached_t::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Adapts an executor to add the detached_t + completion token as the default. +

+
template<
+    typename InnerExecutor>
+struct executor_with_default
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_completion_token_type +

+
+

+ Specify detached_t as the default completion token type. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default [constructor] +

+
+

+ Construct the adapted executor from the inner executor type.
+
Convert the specified executor to the inner executor type, + then use that to construct the adapted executor. +

+
+
+ + Requirements +
+

+ Header: asio/detached.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/detached_t__executor_with_default/default_completion_token_type.html b/3party/asio/doc/asio/reference/detached_t__executor_with_default/default_completion_token_type.html new file mode 100644 index 0000000..fe7d3f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/detached_t__executor_with_default/default_completion_token_type.html @@ -0,0 +1,148 @@ + + + +detached_t::executor_with_default::default_completion_token_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Specify + detached_t as the default + completion token type. +

+
typedef detached_t default_completion_token_type;
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the detached_t completion token as + the default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use detached_t as its + default completion token type. +

+
+

+ detached_t [constructor] +

+
+

+ Constructor. +

+
+

+ 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 asio::detached. + For example: +

+
my_socket.async_send(my_buffer, asio::detached);
+
+
+ + Requirements +
+

+ Header: asio/detached.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default.html b/3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default.html new file mode 100644 index 0000000..1a68e31 --- /dev/null +++ b/3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default.html @@ -0,0 +1,54 @@ + + + +detached_t::executor_with_default::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + the adapted executor from the inner executor type. +

+
executor_with_default(
+    const InnerExecutor & ex);
+  » more...
+
+

+ Convert the specified executor to the inner executor type, then use that + to construct the adapted executor. +

+
template<
+    typename OtherExecutor>
+executor_with_default(
+    const OtherExecutor & ex,
+    typename constraint< is_convertible< OtherExecutor, InnerExecutor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default/overload1.html b/3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default/overload1.html new file mode 100644 index 0000000..60610fd --- /dev/null +++ b/3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default/overload1.html @@ -0,0 +1,41 @@ + + + +detached_t::executor_with_default::executor_with_default (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct the adapted executor from the inner executor type. +

+
executor_with_default(
+    const InnerExecutor & ex);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default/overload2.html b/3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default/overload2.html new file mode 100644 index 0000000..dcfc629 --- /dev/null +++ b/3party/asio/doc/asio/reference/detached_t__executor_with_default/executor_with_default/overload2.html @@ -0,0 +1,45 @@ + + + +detached_t::executor_with_default::executor_with_default (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Convert the specified executor to the inner executor type, then use that + to construct the adapted executor. +

+
template<
+    typename OtherExecutor>
+executor_with_default(
+    const OtherExecutor & ex,
+    typename constraint< is_convertible< OtherExecutor, InnerExecutor >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/disable_cancellation.html b/3party/asio/doc/asio/reference/disable_cancellation.html new file mode 100644 index 0000000..ec552bc --- /dev/null +++ b/3party/asio/doc/asio/reference/disable_cancellation.html @@ -0,0 +1,86 @@ + + + +disable_cancellation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A cancellation filter that disables cancellation. +

+
typedef cancellation_filter< cancellation_type::none > disable_cancellation;
+
+
+ + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+

+ Returns type & Mask. +

+
+
+ + Requirements +
+

+ Header: asio/cancellation_state.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dispatch.html b/3party/asio/doc/asio/reference/dispatch.html new file mode 100644 index 0000000..3c806fd --- /dev/null +++ b/3party/asio/doc/asio/reference/dispatch.html @@ -0,0 +1,74 @@ + + + +dispatch + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Submits a completion token or function object for execution. +

+
template<
+    typename NullaryToken>
+DEDUCED dispatch(
+    NullaryToken && token);
+  » more...
+
+template<
+    typename Executor,
+    typename NullaryToken = DEFAULT>
+DEDUCED dispatch(
+    const Executor & ex,
+    NullaryToken && token = DEFAULT,
+    typename constraint< execution::is_executor< Executor >::value||is_executor< Executor >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext,
+    typename NullaryToken = DEFAULT>
+DEDUCED dispatch(
+    ExecutionContext & ctx,
+    NullaryToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/dispatch.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dispatch/overload1.html b/3party/asio/doc/asio/reference/dispatch/overload1.html new file mode 100644 index 0000000..73c8496 --- /dev/null +++ b/3party/asio/doc/asio/reference/dispatch/overload1.html @@ -0,0 +1,129 @@ + + + +dispatch (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Submits a completion token or function object for execution. +

+
template<
+    typename NullaryToken>
+DEDUCED dispatch(
+    NullaryToken && token);
+
+

+ This function submits an object for execution using the object's associated + executor. The function object may be called from the current thread prior + to returning from dispatch(). Otherwise, it is queued for execution. +

+
+ + Parameters +
+
+

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler. The + function signature of the completion handler must be: +

+
void handler();
+
+
+
+
+
+ + Return + Value +
+

+ This function returns async_initiate<NullaryToken, void()>(Init{}, token), + where Init is a function + object type defined as: +

+
class Init
+{
+public:
+  template <typename CompletionHandler>
+    void operator()(CompletionHandler&& completion_handler) const;
+};
+
+

+ The function call operator of Init: +

+
    +
  • +

    + Obtains the handler's associated executor object ex + of type Ex by performing +

    +
    auto ex = get_associated_executor(handler);
    +
    +
  • +
  • +

    + Obtains the handler's associated allocator object alloc + by performing +

    +
    auto alloc = get_associated_allocator(handler);
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is true, performs +

    +
    prefer(ex, execution::allocator(alloc)).execute(
    +    std::forward<CompletionHandler>(completion_handler));
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is false, performs +

    +
    ex.dispatch(
    +    std::forward<CompletionHandler>(completion_handler),
    +    alloc);
    +
    +
  • +
+
+ + Completion + Signature +
+
void()
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dispatch/overload2.html b/3party/asio/doc/asio/reference/dispatch/overload2.html new file mode 100644 index 0000000..506d6ca --- /dev/null +++ b/3party/asio/doc/asio/reference/dispatch/overload2.html @@ -0,0 +1,167 @@ + + + +dispatch (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Submits a completion token or function object for execution. +

+
template<
+    typename Executor,
+    typename NullaryToken = DEFAULT>
+DEDUCED dispatch(
+    const Executor & ex,
+    NullaryToken && token = DEFAULT,
+    typename constraint< execution::is_executor< Executor >::value||is_executor< Executor >::value >::type  = 0);
+
+

+ This function submits an object for execution using the specified executor. + The function object may be called from the current thread prior to returning + from dispatch(). + Otherwise, it is queued for execution. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The target executor. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler. The + function signature of the completion handler must be: +

+
void handler();
+
+
+
+
+
+ + Return + Value +
+

+ This function returns async_initiate<NullaryToken, void()>(Init{ex}, token), + where Init is a function + object type defined as: +

+
class Init
+{
+public:
+  using executor_type = Executor;
+  explicit Init(const Executor& ex) : ex_(ex) {}
+  executor_type get_executor() const noexcept { return ex_; }
+  template <typename CompletionHandler>
+    void operator()(CompletionHandler&& completion_handler) const;
+private:
+  Executor ex_; // exposition only
+};
+
+

+ The function call operator of Init: +

+
    +
  • +

    + Obtains the handler's associated executor object ex1 + of type Ex1 by performing +

    +
    auto ex1 = get_associated_executor(handler, ex);
    +
    +
  • +
  • +

    + Obtains the handler's associated allocator object alloc + by performing +

    +
    auto alloc = get_associated_allocator(handler);
    +
    +
  • +
  • +

    + If execution::is_executor<Ex1>::value is true, constructs a function + object f with a member + executor_ that is initialised + with prefer(ex1, execution::outstanding_work.tracked), + a member handler_ that + is a decay-copy of completion_handler, + and a function call operator that performs: +

    +
    auto a = get_associated_allocator(handler_);
    +prefer(executor_, execution::allocator(a)).execute(std::move(handler_));
    +
    +
  • +
  • +

    + If execution::is_executor<Ex1>::value is false, constructs a function + object f with a member + work_ that is initialised + with make_work_guard(ex1), a member handler_ + that is a decay-copy of completion_handler, + and a function call operator that performs: +

    +
    auto a = get_associated_allocator(handler_);
    +work_.get_executor().dispatch(std::move(handler_), a);
    +work_.reset();
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is true, performs +

    +
    prefer(ex, execution::allocator(alloc)).execute(std::move(f));
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is false, performs +

    +
    ex.dispatch(std::move(f), alloc);
    +
    +
  • +
+
+ + Completion + Signature +
+
void()
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dispatch/overload3.html b/3party/asio/doc/asio/reference/dispatch/overload3.html new file mode 100644 index 0000000..1607d07 --- /dev/null +++ b/3party/asio/doc/asio/reference/dispatch/overload3.html @@ -0,0 +1,85 @@ + + + +dispatch (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Submits a completion token or function object for execution. +

+
template<
+    typename ExecutionContext,
+    typename NullaryToken = DEFAULT>
+DEDUCED dispatch(
+    ExecutionContext & ctx,
+    NullaryToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ctx
+

+ An execution context, from which the target executor is obtained. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler. The + function signature of the completion handler must be: +

+
void handler();
+
+
+
+
+
+ + Return + Value +
+

+ dispatch(ctx.get_executor(), + forward<NullaryToken>(token)). +

+
+ + Completion + Signature +
+
void()
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_buffer.html b/3party/asio/doc/asio/reference/dynamic_buffer.html new file mode 100644 index 0000000..790cde3 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_buffer.html @@ -0,0 +1,90 @@ + + + +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/3party/asio/doc/asio/reference/dynamic_buffer/overload1.html b/3party/asio/doc/asio/reference/dynamic_buffer/overload1.html new file mode 100644 index 0000000..f83b948 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_buffer/overload1.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/dynamic_buffer/overload2.html b/3party/asio/doc/asio/reference/dynamic_buffer/overload2.html new file mode 100644 index 0000000..b8a881d --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_buffer/overload2.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/dynamic_buffer/overload3.html b/3party/asio/doc/asio/reference/dynamic_buffer/overload3.html new file mode 100644 index 0000000..4b0dd81 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_buffer/overload3.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/dynamic_buffer/overload4.html b/3party/asio/doc/asio/reference/dynamic_buffer/overload4.html new file mode 100644 index 0000000..7a3c2e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_buffer/overload4.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/dynamic_string_buffer.html b/3party/asio/doc/asio/reference/dynamic_string_buffer.html new file mode 100644 index 0000000..d13446d --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer.html @@ -0,0 +1,265 @@ + + + +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 a sequence of constant buffers that + refers to the underlying memory. +

+
+

+ mutable_buffers_type +

+
+

+ The type used to represent a sequence of mutable buffers that refers + to the underlying memory. +

+
+
+ + Member Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ capacity +

+
+

+ Get the maximum size that the buffer may grow to without triggering + reallocation. +

+
+

+ commit +

+
+

+ DynamicBuffer_v1: Move bytes from the output sequence to the input + sequence. +

+
+

+ consume +

+
+

+ DynamicBuffer_v1: Remove characters from the input sequence. DynamicBuffer_v2: + Consume the specified number of bytes from the beginning of the + underlying memory. +

+
+

+ data +

+
+

+ DynamicBuffer_v1: Get a list of buffers that represents the input + sequence.

DynamicBuffer_v2: Get a sequence of buffers + that represents the underlying memory. +

+
+

+ dynamic_string_buffer [constructor] +

+
+

+ Construct a dynamic buffer from a string.

DynamicBuffer_v2: + Copy construct a dynamic buffer.

Move construct a + dynamic buffer. +

+
+

+ grow +

+
+

+ DynamicBuffer_v2: Grow the underlying memory by the specified number + of bytes. +

+
+

+ max_size +

+
+

+ Get the maximum size of the dynamic buffer. +

+
+

+ prepare +

+
+

+ DynamicBuffer_v1: Get a list of buffers that represents the output + sequence, with the given size. +

+
+

+ shrink +

+
+

+ DynamicBuffer_v2: Shrink the underlying memory by the specified + number of bytes. +

+
+

+ size +

+
+

+ DynamicBuffer_v1: Get the size of the input sequence. DynamicBuffer_v2: + Get the current size of the underlying memory. +

+
+

+ Requires that sizeof(Elem) == 1. +

+
+ + Requirements +
+

+ Header: asio/buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/capacity.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/capacity.html new file mode 100644 index 0000000..e5d881b --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/capacity.html @@ -0,0 +1,50 @@ + + + +dynamic_string_buffer::capacity + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the maximum size that the buffer may grow to without triggering reallocation. +

+
std::size_t capacity() const;
+
+
+ + Return + Value +
+

+ The current capacity of the underlying string if less than max_size(). + Otherwise returns max_size(). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/commit.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/commit.html new file mode 100644 index 0000000..49084ef --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/commit.html @@ -0,0 +1,72 @@ + + + +dynamic_string_buffer::commit + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v1: 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/3party/asio/doc/asio/reference/dynamic_string_buffer/const_buffers_type.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/const_buffers_type.html new file mode 100644 index 0000000..c5750c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/const_buffers_type.html @@ -0,0 +1,185 @@ + + + +dynamic_string_buffer::const_buffers_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type used to represent a sequence of constant buffers that refers to the + underlying memory. +

+
typedef const_buffer const_buffers_type;
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ const_buffer [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/dynamic_string_buffer/consume.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/consume.html new file mode 100644 index 0000000..891ce22 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/consume.html @@ -0,0 +1,61 @@ + + + +dynamic_string_buffer::consume + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v1: Remove characters from the input + sequence. DynamicBuffer_v2: Consume the + specified number of bytes from the beginning of the underlying memory. +

+
void consume(
+    std::size_t n);
+
+

+ DynamicBuffer_v1: 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. +

+

+ DynamicBuffer_v2: Erases n bytes from the beginning of the string. + If n is greater than the + current size of the string, the string is emptied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/data.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/data.html new file mode 100644 index 0000000..9467d71 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/data.html @@ -0,0 +1,56 @@ + + + +dynamic_string_buffer::data + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v1: Get a list of buffers that represents + the input sequence. +

+
const_buffers_type data() const;
+  » more...
+
+

+ DynamicBuffer_v2: Get a sequence of buffers + that represents the underlying memory. +

+
mutable_buffers_type data(
+    std::size_t pos,
+    std::size_t n);
+  » more...
+
+const_buffers_type data(
+    std::size_t pos,
+    std::size_t n) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload1.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload1.html new file mode 100644 index 0000000..21e2b2c --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload1.html @@ -0,0 +1,60 @@ + + + +dynamic_string_buffer::data (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ DynamicBuffer_v1: 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 the input sequence. +

+
+ + Remarks +
+

+ The returned object is invalidated by any dynamic_string_buffer + or basic_string member + function that resizes or erases the string. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload2.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload2.html new file mode 100644 index 0000000..9c1e2e9 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload2.html @@ -0,0 +1,81 @@ + + + +dynamic_string_buffer::data (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ DynamicBuffer_v2: Get a sequence of + buffers that represents the underlying memory. +

+
mutable_buffers_type data(
+    std::size_t pos,
+    std::size_t n);
+
+
+ + Parameters +
+
+

+
+
pos
+

+ Position of the first byte to represent in the buffer sequence +

+
n
+

+ The number of bytes to return in the buffer sequence. If the underlying + memory is shorter, the buffer sequence represents as many bytes + as are available. +

+
+
+
+ + Return + Value +
+

+ An object of type mutable_buffers_type + that satisfies MutableBufferSequence requirements, representing the basic_string + memory. +

+
+ + Remarks +
+

+ The returned object is invalidated by any dynamic_string_buffer + or basic_string member + function that resizes or erases the string. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload3.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload3.html new file mode 100644 index 0000000..af9e89d --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/data/overload3.html @@ -0,0 +1,71 @@ + + + +dynamic_string_buffer::data (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ DynamicBuffer_v2: Get a sequence of + buffers that represents the underlying memory. +

+
const_buffers_type data(
+    std::size_t pos,
+    std::size_t n) const;
+
+
+ + Parameters +
+
+

+
+
pos
+

+ Position of the first byte to represent in the buffer sequence +

+
n
+

+ The number of bytes to return in the buffer sequence. If the underlying + memory is shorter, the buffer sequence represents as many bytes + as are available. +

+
+
+
+ + Remarks +
+

+ The returned object is invalidated by any dynamic_string_buffer + or basic_string member + function that resizes or erases the string. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer.html new file mode 100644 index 0000000..15c7f0f --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer.html @@ -0,0 +1,59 @@ + + + +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...
+
+

+ DynamicBuffer_v2: Copy construct a dynamic + buffer. +

+
dynamic_string_buffer(
+    const dynamic_string_buffer & other);
+  » more...
+
+

+ Move construct a dynamic buffer. +

+
dynamic_string_buffer(
+    dynamic_string_buffer && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html new file mode 100644 index 0000000..22c95ea --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html @@ -0,0 +1,75 @@ + + + +dynamic_string_buffer::dynamic_string_buffer (1 of 3 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. + The object stores a reference to the string and the user is responsible + for ensuring that the string object remains valid while the dynamic_string_buffer + object, and copies of the object, are in use. +

+
+
+

+ DynamicBuffer_v1: Any existing data + in the string is treated as the dynamic buffer's input sequence. +

+
+ + Parameters +
+
+

+
+
maximum_size
+

+ Specifies a maximum size for the buffer, in bytes. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html new file mode 100644 index 0000000..3171e27 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html @@ -0,0 +1,42 @@ + + + +dynamic_string_buffer::dynamic_string_buffer (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ DynamicBuffer_v2: Copy construct a dynamic + buffer. +

+
dynamic_string_buffer(
+    const dynamic_string_buffer & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload3.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload3.html new file mode 100644 index 0000000..57f8d91 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload3.html @@ -0,0 +1,41 @@ + + + +dynamic_string_buffer::dynamic_string_buffer (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move construct a dynamic buffer. +

+
dynamic_string_buffer(
+    dynamic_string_buffer && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/grow.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/grow.html new file mode 100644 index 0000000..e6ec45f --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/grow.html @@ -0,0 +1,61 @@ + + + +dynamic_string_buffer::grow + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v2: Grow the underlying memory by + the specified number of bytes. +

+
void grow(
+    std::size_t n);
+
+

+ Resizes the string to accommodate an additional n + bytes at the end. +

+
+ + Exceptions +
+
+

+
+
std::length_error
+

+ If size() + + n + > max_size(). +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/max_size.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/max_size.html new file mode 100644 index 0000000..956ca6f --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/max_size.html @@ -0,0 +1,49 @@ + + + +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 size of the underlying memory. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/mutable_buffers_type.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/mutable_buffers_type.html new file mode 100644 index 0000000..c3d53c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/mutable_buffers_type.html @@ -0,0 +1,184 @@ + + + +dynamic_string_buffer::mutable_buffers_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type used to represent a sequence of mutable buffers that refers to the + underlying memory. +

+
typedef mutable_buffer mutable_buffers_type;
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ data +

+
+

+ Get a pointer to the beginning of the memory range. +

+
+

+ mutable_buffer [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/dynamic_string_buffer/prepare.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/prepare.html new file mode 100644 index 0000000..38af7ab --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/prepare.html @@ -0,0 +1,80 @@ + + + +dynamic_string_buffer::prepare + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v1: 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/3party/asio/doc/asio/reference/dynamic_string_buffer/shrink.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/shrink.html new file mode 100644 index 0000000..dd3a498 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/shrink.html @@ -0,0 +1,47 @@ + + + +dynamic_string_buffer::shrink + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v2: Shrink the underlying memory by + the specified number of bytes. +

+
void shrink(
+    std::size_t n);
+
+

+ Erases n bytes from the + end of the string by resizing the basic_string object. If n is greater than the current size of + the string, the string is emptied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_string_buffer/size.html b/3party/asio/doc/asio/reference/dynamic_string_buffer/size.html new file mode 100644 index 0000000..bd15d6d --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_string_buffer/size.html @@ -0,0 +1,52 @@ + + + +dynamic_string_buffer::size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v1: Get the size of the input sequence. + DynamicBuffer_v2: Get the current size + of the underlying memory. +

+
std::size_t size() const;
+
+
+ + Return + Value +
+

+ DynamicBuffer_v1 The current size of the + input sequence. DynamicBuffer_v2: The + current size of the underlying string if less than max_size(). Otherwise returns max_size(). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer.html new file mode 100644 index 0000000..fd57417 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer.html @@ -0,0 +1,264 @@ + + + +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 a sequence of constant buffers that + refers to the underlying memory. +

+
+

+ mutable_buffers_type +

+
+

+ The type used to represent a sequence of mutable buffers that refers + to the underlying memory. +

+
+
+ + Member Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ capacity +

+
+

+ Get the maximum size that the buffer may grow to without triggering + reallocation. +

+
+

+ commit +

+
+

+ DynamicBuffer_v1: Move bytes from the output sequence to the input + sequence. +

+
+

+ consume +

+
+

+ DynamicBuffer_v1: Remove characters from the input sequence. DynamicBuffer_v2: + Consume the specified number of bytes from the beginning of the + underlying memory. +

+
+

+ data +

+
+

+ DynamicBuffer_v1: Get a list of buffers that represents the input + sequence.

DynamicBuffer_v2: Get a sequence of buffers + that represents the underlying memory. +

+
+

+ dynamic_vector_buffer [constructor] +

+
+

+ Construct a dynamic buffer from a vector.

DynamicBuffer_v2: + Copy construct a dynamic buffer.

Move construct a + dynamic buffer. +

+
+

+ grow +

+
+

+ DynamicBuffer_v2: Grow the underlying memory by the specified number + of bytes. +

+
+

+ max_size +

+
+

+ Get the maximum size of the dynamic buffer. +

+
+

+ prepare +

+
+

+ DynamicBuffer_v1: Get a list of buffers that represents the output + sequence, with the given size. +

+
+

+ shrink +

+
+

+ DynamicBuffer_v2: Shrink the underlying memory by the specified + number of bytes. +

+
+

+ size +

+
+

+ DynamicBuffer_v1: Get the size of the input sequence. DynamicBuffer_v2: + Get the current size of the underlying memory. +

+
+

+ Requires that sizeof(Elem) == 1. +

+
+ + Requirements +
+

+ Header: asio/buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/capacity.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/capacity.html new file mode 100644 index 0000000..c68681d --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/capacity.html @@ -0,0 +1,51 @@ + + + +dynamic_vector_buffer::capacity + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the maximum size that the buffer may grow to without triggering reallocation. +

+
std::size_t capacity() const;
+
+
+ + Return + Value +
+

+ DynamicBuffer_v1: The current total capacity + of the buffer, i.e. for both the input sequence and output sequence. DynamicBuffer_v2: The current capacity of the underlying + vector if less than max_size(). Otherwise returns max_size(). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/commit.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/commit.html new file mode 100644 index 0000000..c953fe3 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/commit.html @@ -0,0 +1,72 @@ + + + +dynamic_vector_buffer::commit + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v1: 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/3party/asio/doc/asio/reference/dynamic_vector_buffer/const_buffers_type.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/const_buffers_type.html new file mode 100644 index 0000000..e900799 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/const_buffers_type.html @@ -0,0 +1,185 @@ + + + +dynamic_vector_buffer::const_buffers_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type used to represent a sequence of constant buffers that refers to the + underlying memory. +

+
typedef const_buffer const_buffers_type;
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ const_buffer [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/dynamic_vector_buffer/consume.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/consume.html new file mode 100644 index 0000000..6d807fb --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/consume.html @@ -0,0 +1,61 @@ + + + +dynamic_vector_buffer::consume + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v1: Remove characters from the input + sequence. DynamicBuffer_v2: Consume the + specified number of bytes from the beginning of the underlying memory. +

+
void consume(
+    std::size_t n);
+
+

+ DynamicBuffer_v1: 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. +

+

+ DynamicBuffer_v2: Erases n bytes from the beginning of the vector. + If n is greater than the + current size of the vector, the vector is emptied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/data.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/data.html new file mode 100644 index 0000000..8162de5 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/data.html @@ -0,0 +1,56 @@ + + + +dynamic_vector_buffer::data + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v1: Get a list of buffers that represents + the input sequence. +

+
const_buffers_type data() const;
+  » more...
+
+

+ DynamicBuffer_v2: Get a sequence of buffers + that represents the underlying memory. +

+
mutable_buffers_type data(
+    std::size_t pos,
+    std::size_t n);
+  » more...
+
+const_buffers_type data(
+    std::size_t pos,
+    std::size_t n) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload1.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload1.html new file mode 100644 index 0000000..3b7a5a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload1.html @@ -0,0 +1,60 @@ + + + +dynamic_vector_buffer::data (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ DynamicBuffer_v1: 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 vector + memory in the input sequence. +

+
+ + Remarks +
+

+ The returned object is invalidated by any dynamic_vector_buffer + or vector member function + that modifies the input sequence or output sequence. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload2.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload2.html new file mode 100644 index 0000000..4330927 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload2.html @@ -0,0 +1,81 @@ + + + +dynamic_vector_buffer::data (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ DynamicBuffer_v2: Get a sequence of + buffers that represents the underlying memory. +

+
mutable_buffers_type data(
+    std::size_t pos,
+    std::size_t n);
+
+
+ + Parameters +
+
+

+
+
pos
+

+ Position of the first byte to represent in the buffer sequence +

+
n
+

+ The number of bytes to return in the buffer sequence. If the underlying + memory is shorter, the buffer sequence represents as many bytes + as are available. +

+
+
+
+ + Return + Value +
+

+ An object of type mutable_buffers_type + that satisfies MutableBufferSequence requirements, representing the vector + memory. +

+
+ + Remarks +
+

+ The returned object is invalidated by any dynamic_vector_buffer + or vector member function + that resizes or erases the vector. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload3.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload3.html new file mode 100644 index 0000000..33aac19 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/data/overload3.html @@ -0,0 +1,71 @@ + + + +dynamic_vector_buffer::data (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ DynamicBuffer_v2: Get a sequence of + buffers that represents the underlying memory. +

+
const_buffers_type data(
+    std::size_t pos,
+    std::size_t n) const;
+
+
+ + Parameters +
+
+

+
+
pos
+

+ Position of the first byte to represent in the buffer sequence +

+
n
+

+ The number of bytes to return in the buffer sequence. If the underlying + memory is shorter, the buffer sequence represents as many bytes + as are available. +

+
+
+
+ + Remarks +
+

+ The returned object is invalidated by any dynamic_vector_buffer + or vector member function + that resizes or erases the vector. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html new file mode 100644 index 0000000..5519c32 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html @@ -0,0 +1,59 @@ + + + +dynamic_vector_buffer::dynamic_vector_buffer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a dynamic buffer from a vector. +

+
explicit dynamic_vector_buffer(
+    std::vector< Elem, Allocator > & v,
+    std::size_t maximum_size = (std::numeric_limits< std::size_t >::max)());
+  » more...
+
+

+ DynamicBuffer_v2: Copy construct a dynamic + buffer. +

+
dynamic_vector_buffer(
+    const dynamic_vector_buffer & other);
+  » more...
+
+

+ Move construct a dynamic buffer. +

+
dynamic_vector_buffer(
+    dynamic_vector_buffer && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html new file mode 100644 index 0000000..a5d2c2f --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html @@ -0,0 +1,62 @@ + + + +dynamic_vector_buffer::dynamic_vector_buffer (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a dynamic buffer from a vector. +

+
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. + The object stores a reference to the vector and the user is responsible + for ensuring that the vector object remains valid while the dynamic_vector_buffer + object, and copies of the object, are in use. +

+
maximum_size
+

+ Specifies a maximum size for the buffer, in bytes. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html new file mode 100644 index 0000000..2bb53b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html @@ -0,0 +1,42 @@ + + + +dynamic_vector_buffer::dynamic_vector_buffer (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ DynamicBuffer_v2: Copy construct a dynamic + buffer. +

+
dynamic_vector_buffer(
+    const dynamic_vector_buffer & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload3.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload3.html new file mode 100644 index 0000000..b734020 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload3.html @@ -0,0 +1,41 @@ + + + +dynamic_vector_buffer::dynamic_vector_buffer (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move construct a dynamic buffer. +

+
dynamic_vector_buffer(
+    dynamic_vector_buffer && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/grow.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/grow.html new file mode 100644 index 0000000..d37fbe8 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/grow.html @@ -0,0 +1,61 @@ + + + +dynamic_vector_buffer::grow + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v2: Grow the underlying memory by + the specified number of bytes. +

+
void grow(
+    std::size_t n);
+
+

+ Resizes the vector to accommodate an additional n + bytes at the end. +

+
+ + Exceptions +
+
+

+
+
std::length_error
+

+ If size() + + n + > max_size(). +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/max_size.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/max_size.html new file mode 100644 index 0000000..1afaed7 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/max_size.html @@ -0,0 +1,51 @@ + + + +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 +
+

+ DynamicBuffer_v1: The allowed maximum + of the sum of the sizes of the input sequence and output sequence. DynamicBuffer_v2: The allowed maximum size of the + underlying memory. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/mutable_buffers_type.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/mutable_buffers_type.html new file mode 100644 index 0000000..6b630e9 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/mutable_buffers_type.html @@ -0,0 +1,184 @@ + + + +dynamic_vector_buffer::mutable_buffers_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type used to represent a sequence of mutable buffers that refers to the + underlying memory. +

+
typedef mutable_buffer mutable_buffers_type;
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ data +

+
+

+ Get a pointer to the beginning of the memory range. +

+
+

+ mutable_buffer [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/dynamic_vector_buffer/prepare.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/prepare.html new file mode 100644 index 0000000..4f6e882 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/prepare.html @@ -0,0 +1,80 @@ + + + +dynamic_vector_buffer::prepare + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v1: 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 vector object as necessary. +

+
+ + Return + Value +
+

+ An object of type mutable_buffers_type + that satisfies MutableBufferSequence requirements, representing vector + 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 vector member function + that modifies the input sequence or output sequence. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/shrink.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/shrink.html new file mode 100644 index 0000000..cd087e4 --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/shrink.html @@ -0,0 +1,47 @@ + + + +dynamic_vector_buffer::shrink + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v2: Shrink the underlying memory by + the specified number of bytes. +

+
void shrink(
+    std::size_t n);
+
+

+ Erases n bytes from the + end of the vector by resizing the vector object. If n + is greater than the current size of the vector, the vector is emptied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/dynamic_vector_buffer/size.html b/3party/asio/doc/asio/reference/dynamic_vector_buffer/size.html new file mode 100644 index 0000000..468c76d --- /dev/null +++ b/3party/asio/doc/asio/reference/dynamic_vector_buffer/size.html @@ -0,0 +1,52 @@ + + + +dynamic_vector_buffer::size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +DynamicBuffer_v1: Get the size of the input sequence. + DynamicBuffer_v2: Get the current size + of the underlying memory. +

+
std::size_t size() const;
+
+
+ + Return + Value +
+

+ DynamicBuffer_v1 The current size of the + input sequence. DynamicBuffer_v2: The + current size of the underlying vector if less than max_size(). Otherwise returns max_size(). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/enable_partial_cancellation.html b/3party/asio/doc/asio/reference/enable_partial_cancellation.html new file mode 100644 index 0000000..2d857ec --- /dev/null +++ b/3party/asio/doc/asio/reference/enable_partial_cancellation.html @@ -0,0 +1,87 @@ + + + +enable_partial_cancellation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A cancellation filter that enables terminal and partial cancellation. +

+
typedef cancellation_filter< cancellation_type::terminal|cancellation_type::partial > enable_partial_cancellation;
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+

+ Returns type & Mask. +

+
+
+ + Requirements +
+

+ Header: asio/cancellation_state.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/enable_terminal_cancellation.html b/3party/asio/doc/asio/reference/enable_terminal_cancellation.html new file mode 100644 index 0000000..364e92b --- /dev/null +++ b/3party/asio/doc/asio/reference/enable_terminal_cancellation.html @@ -0,0 +1,87 @@ + + + +enable_terminal_cancellation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A cancellation filter that enables terminal cancellation only. +

+
typedef cancellation_filter< cancellation_type::terminal > enable_terminal_cancellation;
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+

+ Returns type & Mask. +

+
+
+ + Requirements +
+

+ Header: asio/cancellation_state.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/enable_total_cancellation.html b/3party/asio/doc/asio/reference/enable_total_cancellation.html new file mode 100644 index 0000000..f66a6b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/enable_total_cancellation.html @@ -0,0 +1,87 @@ + + + +enable_total_cancellation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A cancellation filter that enables terminal, partial and total cancellation. +

+
typedef cancellation_filter< cancellation_type::terminal|cancellation_type::partial|cancellation_type::total > enable_total_cancellation;
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+

+ Returns type & Mask. +

+
+
+ + Requirements +
+

+ Header: asio/cancellation_state.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error__addrinfo_category.html b/3party/asio/doc/asio/reference/error__addrinfo_category.html new file mode 100644 index 0000000..9db60c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__addrinfo_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error__addrinfo_errors.html b/3party/asio/doc/asio/reference/error__addrinfo_errors.html new file mode 100644 index 0000000..6057ece --- /dev/null +++ b/3party/asio/doc/asio/reference/error__addrinfo_errors.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/error__basic_errors.html b/3party/asio/doc/asio/reference/error__basic_errors.html new file mode 100644 index 0000000..7e0b16e --- /dev/null +++ b/3party/asio/doc/asio/reference/error__basic_errors.html @@ -0,0 +1,231 @@ + + + +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/3party/asio/doc/asio/reference/error__clear.html b/3party/asio/doc/asio/reference/error__clear.html new file mode 100644 index 0000000..8996f5a --- /dev/null +++ b/3party/asio/doc/asio/reference/error__clear.html @@ -0,0 +1,50 @@ + + + +error::clear + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
void clear(
+    asio::error_code & ec);
+
+
+ + Requirements +
+

+ Header: asio/error.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error__get_addrinfo_category.html b/3party/asio/doc/asio/reference/error__get_addrinfo_category.html new file mode 100644 index 0000000..5e0dde5 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__get_addrinfo_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error__get_misc_category.html b/3party/asio/doc/asio/reference/error__get_misc_category.html new file mode 100644 index 0000000..738c45e --- /dev/null +++ b/3party/asio/doc/asio/reference/error__get_misc_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error__get_netdb_category.html b/3party/asio/doc/asio/reference/error__get_netdb_category.html new file mode 100644 index 0000000..1354da0 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__get_netdb_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error__get_ssl_category.html b/3party/asio/doc/asio/reference/error__get_ssl_category.html new file mode 100644 index 0000000..81e7f89 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__get_ssl_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error__get_system_category.html b/3party/asio/doc/asio/reference/error__get_system_category.html new file mode 100644 index 0000000..f84d1a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__get_system_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error__make_error_code.html b/3party/asio/doc/asio/reference/error__make_error_code.html new file mode 100644 index 0000000..fb4a1f2 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__make_error_code.html @@ -0,0 +1,67 @@ + + + +error::make_error_code + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
asio::error_code make_error_code(
+    basic_errors e);
+  » 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/3party/asio/doc/asio/reference/error__make_error_code/overload1.html b/3party/asio/doc/asio/reference/error__make_error_code/overload1.html new file mode 100644 index 0000000..401a939 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__make_error_code/overload1.html @@ -0,0 +1,38 @@ + + + +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/3party/asio/doc/asio/reference/error__make_error_code/overload2.html b/3party/asio/doc/asio/reference/error__make_error_code/overload2.html new file mode 100644 index 0000000..e64855d --- /dev/null +++ b/3party/asio/doc/asio/reference/error__make_error_code/overload2.html @@ -0,0 +1,38 @@ + + + +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/3party/asio/doc/asio/reference/error__make_error_code/overload3.html b/3party/asio/doc/asio/reference/error__make_error_code/overload3.html new file mode 100644 index 0000000..fd99751 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__make_error_code/overload3.html @@ -0,0 +1,38 @@ + + + +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/3party/asio/doc/asio/reference/error__make_error_code/overload4.html b/3party/asio/doc/asio/reference/error__make_error_code/overload4.html new file mode 100644 index 0000000..4cc675a --- /dev/null +++ b/3party/asio/doc/asio/reference/error__make_error_code/overload4.html @@ -0,0 +1,38 @@ + + + +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/3party/asio/doc/asio/reference/error__make_error_code/overload5.html b/3party/asio/doc/asio/reference/error__make_error_code/overload5.html new file mode 100644 index 0000000..5bf94f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__make_error_code/overload5.html @@ -0,0 +1,38 @@ + + + +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/3party/asio/doc/asio/reference/error__misc_category.html b/3party/asio/doc/asio/reference/error__misc_category.html new file mode 100644 index 0000000..5774ddb --- /dev/null +++ b/3party/asio/doc/asio/reference/error__misc_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error__misc_errors.html b/3party/asio/doc/asio/reference/error__misc_errors.html new file mode 100644 index 0000000..dd34319 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__misc_errors.html @@ -0,0 +1,80 @@ + + + +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/3party/asio/doc/asio/reference/error__netdb_category.html b/3party/asio/doc/asio/reference/error__netdb_category.html new file mode 100644 index 0000000..57c225d --- /dev/null +++ b/3party/asio/doc/asio/reference/error__netdb_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error__netdb_errors.html b/3party/asio/doc/asio/reference/error__netdb_errors.html new file mode 100644 index 0000000..d6c7be0 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__netdb_errors.html @@ -0,0 +1,80 @@ + + + +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/3party/asio/doc/asio/reference/error__ssl_category.html b/3party/asio/doc/asio/reference/error__ssl_category.html new file mode 100644 index 0000000..3abb593 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__ssl_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error__ssl_errors.html b/3party/asio/doc/asio/reference/error__ssl_errors.html new file mode 100644 index 0000000..08471c7 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__ssl_errors.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error__system_category.html b/3party/asio/doc/asio/reference/error__system_category.html new file mode 100644 index 0000000..e065f47 --- /dev/null +++ b/3party/asio/doc/asio/reference/error__system_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error_category.html b/3party/asio/doc/asio/reference/error_category.html new file mode 100644 index 0000000..360252e --- /dev/null +++ b/3party/asio/doc/asio/reference/error_category.html @@ -0,0 +1,138 @@ + + + +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] +

+
+

+ Destructor. +

+
+
+ + Requirements +
+

+ Header: asio/error_code.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error_category/_error_category.html b/3party/asio/doc/asio/reference/error_category/_error_category.html new file mode 100644 index 0000000..0b09aa4 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_category/_error_category.html @@ -0,0 +1,40 @@ + + + +error_category::~error_category + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
virtual ~error_category();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error_category/message.html b/3party/asio/doc/asio/reference/error_category/message.html new file mode 100644 index 0000000..59ff456 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_category/message.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/error_category/name.html b/3party/asio/doc/asio/reference/error_category/name.html new file mode 100644 index 0000000..e8eb3ab --- /dev/null +++ b/3party/asio/doc/asio/reference/error_category/name.html @@ -0,0 +1,41 @@ + + + +error_category::name + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Returns a string naming + the error gategory. +

+
const char * name() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error_category/operator_eq__eq_.html b/3party/asio/doc/asio/reference/error_category/operator_eq__eq_.html new file mode 100644 index 0000000..88278a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_category/operator_eq__eq_.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/error_category/operator_not__eq_.html b/3party/asio/doc/asio/reference/error_category/operator_not__eq_.html new file mode 100644 index 0000000..f327f52 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_category/operator_not__eq_.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/error_code.html b/3party/asio/doc/asio/reference/error_code.html new file mode 100644 index 0000000..47a661d --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code.html @@ -0,0 +1,273 @@ + + + +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 [constructor] +

+
+

+ 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 [static] +

+
+
+

+ 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/3party/asio/doc/asio/reference/error_code/assign.html b/3party/asio/doc/asio/reference/error_code/assign.html new file mode 100644 index 0000000..554d34c --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/assign.html @@ -0,0 +1,42 @@ + + + +error_code::assign + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign a new error value. +

+
void assign(
+    int v,
+    const error_category & c);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error_code/category.html b/3party/asio/doc/asio/reference/error_code/category.html new file mode 100644 index 0000000..10272d9 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/category.html @@ -0,0 +1,40 @@ + + + +error_code::category + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the error category. +

+
const error_category & category() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error_code/clear.html b/3party/asio/doc/asio/reference/error_code/clear.html new file mode 100644 index 0000000..38b6d8c --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/clear.html @@ -0,0 +1,41 @@ + + + +error_code::clear + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Clear the error value to + the default. +

+
void clear();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error_code/error_code.html b/3party/asio/doc/asio/reference/error_code/error_code.html new file mode 100644 index 0000000..d8c8cfe --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/error_code.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/error_code/error_code/overload1.html b/3party/asio/doc/asio/reference/error_code/error_code/overload1.html new file mode 100644 index 0000000..53fc2d1 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/error_code/overload1.html @@ -0,0 +1,40 @@ + + + +error_code::error_code (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
error_code();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error_code/error_code/overload2.html b/3party/asio/doc/asio/reference/error_code/error_code/overload2.html new file mode 100644 index 0000000..1297ca9 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/error_code/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/error_code/error_code/overload3.html b/3party/asio/doc/asio/reference/error_code/error_code/overload3.html new file mode 100644 index 0000000..e490806 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/error_code/overload3.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/error_code/message.html b/3party/asio/doc/asio/reference/error_code/message.html new file mode 100644 index 0000000..355d008 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/message.html @@ -0,0 +1,41 @@ + + + +error_code::message + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the message associated + with the error. +

+
std::string message() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error_code/operator_eq__eq_.html b/3party/asio/doc/asio/reference/error_code/operator_eq__eq_.html new file mode 100644 index 0000000..05ab1df --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/error_code/operator_not_.html b/3party/asio/doc/asio/reference/error_code/operator_not_.html new file mode 100644 index 0000000..142d814 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/operator_not_.html @@ -0,0 +1,41 @@ + + + +error_code::operator! + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Operator to test + if the error represents success. +

+
bool operator!() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error_code/operator_not__eq_.html b/3party/asio/doc/asio/reference/error_code/operator_not__eq_.html new file mode 100644 index 0000000..fe9287d --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/error_code/operator_unspecified_bool_type.html b/3party/asio/doc/asio/reference/error_code/operator_unspecified_bool_type.html new file mode 100644 index 0000000..604d49e --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/operator_unspecified_bool_type.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/error_code/unspecified_bool_true.html b/3party/asio/doc/asio/reference/error_code/unspecified_bool_true.html new file mode 100644 index 0000000..5175010 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/unspecified_bool_true.html @@ -0,0 +1,40 @@ + + + +error_code::unspecified_bool_true + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
static void unspecified_bool_true(
+    unspecified_bool_type_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error_code/unspecified_bool_type.html b/3party/asio/doc/asio/reference/error_code/unspecified_bool_type.html new file mode 100644 index 0000000..10f931f --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/unspecified_bool_type.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/error_code/value.html b/3party/asio/doc/asio/reference/error_code/value.html new file mode 100644 index 0000000..a9f66b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code/value.html @@ -0,0 +1,40 @@ + + + +error_code::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the error value. +

+
int value() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/error_code__unspecified_bool_type_t.html b/3party/asio/doc/asio/reference/error_code__unspecified_bool_type_t.html new file mode 100644 index 0000000..603ab4d --- /dev/null +++ b/3party/asio/doc/asio/reference/error_code__unspecified_bool_type_t.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/execution__allocator.html b/3party/asio/doc/asio/reference/execution__allocator.html new file mode 100644 index 0000000..c18a27a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__allocator.html @@ -0,0 +1,52 @@ + + + +execution::allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A special value used for accessing the execution::allocator_t property. +

+
constexpr allocator_t< void > allocator;
+
+
+ + Requirements +
+

+ Header: asio/execution/allocator.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__allocator_t.html b/3party/asio/doc/asio/reference/execution__allocator_t.html new file mode 100644 index 0000000..5fbd20e --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__allocator_t.html @@ -0,0 +1,164 @@ + + + +execution::allocator_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A property to describe which allocator an executor will use to allocate the + memory required to store a submitted function object. +

+
template<
+    typename ProtoAllocator>
+struct allocator_t
+
+
+ + Member Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocator_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value +

+
+

+ Obtain the allocator stored in the allocator_t property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The allocator_t property applies to executors, senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The allocator_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The allocator_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/allocator.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__allocator_t/allocator_t.html b/3party/asio/doc/asio/reference/execution__allocator_t/allocator_t.html new file mode 100644 index 0000000..cffca44 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__allocator_t/allocator_t.html @@ -0,0 +1,41 @@ + + + +execution::allocator_t::allocator_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr allocator_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__allocator_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__allocator_t/is_applicable_property_v.html new file mode 100644 index 0000000..415babb --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__allocator_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::allocator_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::allocator_t + property applies to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+  is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__allocator_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__allocator_t/is_preferable.html new file mode 100644 index 0000000..373852a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__allocator_t/is_preferable.html @@ -0,0 +1,42 @@ + + + +execution::allocator_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::allocator_t + property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__allocator_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__allocator_t/is_requirable.html new file mode 100644 index 0000000..1086148 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__allocator_t/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::allocator_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::allocator_t + property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__allocator_t/value.html b/3party/asio/doc/asio/reference/execution__allocator_t/value.html new file mode 100644 index 0000000..fdb3a33 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__allocator_t/value.html @@ -0,0 +1,45 @@ + + + +execution::allocator_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the allocator stored in the execution::allocator_t property object. +

+
constexpr ProtoAllocator value() const;
+
+

+ Present only if ProtoAllocator + is non-void. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor.html b/3party/asio/doc/asio/reference/execution__any_executor.html new file mode 100644 index 0000000..71bd284 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor.html @@ -0,0 +1,279 @@ + + + +execution::any_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Polymorphic executor wrapper. +

+
template<
+    typename... SupportableProperties>
+class any_executor
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ any_executor [constructor] +

+
+

+ Default constructor.

Construct in an empty state. + Equivalent effects to default constructor.

Copy constructor. +

Move constructor.

Construct to point + to the same target as another any_executor.

Construct + a polymorphic wrapper for the specified executor. +

+
+

+ context +

+
+

+ Obtain the underlying execution context. +

+
+

+ execute +

+
+

+ Execute the function on the target executor. +

+
+

+ operator bool +

+
+

+ Determine whether the wrapper has a target executor. +

+
+

+ operator= +

+
+

+ Assignment operator.

Move assignment operator.
+
Assignment operator that sets the polymorphic wrapper to + the empty state.

Assignment operator to create a + polymorphic wrapper for the specified executor. +

+
+

+ prefer +

+
+

+ Obtain a polymorphic wrapper with the specified property. +

+
+

+ query +

+
+

+ Obtain the value associated with the specified property. +

+
+

+ require +

+
+

+ Obtain a polymorphic wrapper with the specified property. +

+
+

+ swap +

+
+

+ Swap targets with another polymorphic wrapper. +

+
+

+ target +

+
+

+ Get a pointer to the target executor. +

+
+

+ target_type +

+
+

+ Get the type of the target executor. +

+
+

+ ~any_executor [destructor] +

+
+

+ Destructor. +

+
+
+ + Related + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Inequality operator. +

+
+

+ operator== +

+
+

+ Equality operator. +

+
+
+ + Requirements +
+

+ Header: asio/execution/any_executor.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/_any_executor.html b/3party/asio/doc/asio/reference/execution__any_executor/_any_executor.html new file mode 100644 index 0000000..75ca984 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/_any_executor.html @@ -0,0 +1,40 @@ + + + +execution::any_executor::~any_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~any_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/any_executor.html b/3party/asio/doc/asio/reference/execution__any_executor/any_executor.html new file mode 100644 index 0000000..cf3da77 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/any_executor.html @@ -0,0 +1,105 @@ + + + +execution::any_executor::any_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
any_executor();
+  » more...
+
+

+ Construct in an empty state. Equivalent effects to default constructor. +

+
any_executor(
+    nullptr_t );
+  » more...
+
+

+ Copy constructor. +

+
any_executor(
+    const any_executor & e);
+  » more...
+
+

+ Move constructor. +

+
any_executor(
+    any_executor && e);
+  » more...
+
+

+ Construct to point to the same target as another execution::any_executor. +

+
template<
+    class... OtherSupportableProperties>
+any_executor(
+    any_executor< OtherSupportableProperties...> e);
+  » more...
+
+template<
+    class... OtherSupportableProperties>
+any_executor(
+    std::nothrow_t ,
+    any_executor< OtherSupportableProperties...> e);
+  » more...
+
+any_executor(
+    std::nothrow_t ,
+    const any_executor & e);
+  » more...
+
+any_executor(
+    std::nothrow_t ,
+    any_executor && e);
+  » more...
+
+

+ Construct a polymorphic wrapper for the specified executor. +

+
template<
+    typename Executor>
+any_executor(
+    Executor e);
+  » more...
+
+template<
+    typename Executor>
+any_executor(
+    std::nothrow_t ,
+    Executor e);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload1.html b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload1.html new file mode 100644 index 0000000..58e3b82 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload1.html @@ -0,0 +1,40 @@ + + + +execution::any_executor::any_executor (1 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
any_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload10.html b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload10.html new file mode 100644 index 0000000..aa427a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload10.html @@ -0,0 +1,44 @@ + + + +execution::any_executor::any_executor (10 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a polymorphic wrapper for the specified executor. +

+
template<
+    typename Executor>
+any_executor(
+    std::nothrow_t ,
+    Executor e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload2.html b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload2.html new file mode 100644 index 0000000..5ea78d0 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload2.html @@ -0,0 +1,41 @@ + + + +execution::any_executor::any_executor (2 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct in an empty state. Equivalent effects to default constructor. +

+
any_executor(
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload3.html b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload3.html new file mode 100644 index 0000000..739c9a2 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload3.html @@ -0,0 +1,41 @@ + + + +execution::any_executor::any_executor (3 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
any_executor(
+    const any_executor & e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload4.html b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload4.html new file mode 100644 index 0000000..b38c987 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload4.html @@ -0,0 +1,41 @@ + + + +execution::any_executor::any_executor (4 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
any_executor(
+    any_executor && e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload5.html b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload5.html new file mode 100644 index 0000000..32e6389 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload5.html @@ -0,0 +1,43 @@ + + + +execution::any_executor::any_executor (5 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another execution::any_executor. +

+
template<
+    class... OtherSupportableProperties>
+any_executor(
+    any_executor< OtherSupportableProperties...> e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload6.html b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload6.html new file mode 100644 index 0000000..7b5a36d --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload6.html @@ -0,0 +1,44 @@ + + + +execution::any_executor::any_executor (6 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another execution::any_executor. +

+
template<
+    class... OtherSupportableProperties>
+any_executor(
+    std::nothrow_t ,
+    any_executor< OtherSupportableProperties...> e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload7.html b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload7.html new file mode 100644 index 0000000..f3e16fa --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload7.html @@ -0,0 +1,42 @@ + + + +execution::any_executor::any_executor (7 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another execution::any_executor. +

+
any_executor(
+    std::nothrow_t ,
+    const any_executor & e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload8.html b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload8.html new file mode 100644 index 0000000..2877178 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload8.html @@ -0,0 +1,42 @@ + + + +execution::any_executor::any_executor (8 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to point to the same target as another execution::any_executor. +

+
any_executor(
+    std::nothrow_t ,
+    any_executor && e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload9.html b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload9.html new file mode 100644 index 0000000..e88e042 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/any_executor/overload9.html @@ -0,0 +1,43 @@ + + + +execution::any_executor::any_executor (9 of 10 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a polymorphic wrapper for the specified executor. +

+
template<
+    typename Executor>
+any_executor(
+    Executor e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/context.html b/3party/asio/doc/asio/reference/execution__any_executor/context.html new file mode 100644 index 0000000..bdb9ac7 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/context.html @@ -0,0 +1,46 @@ + + + +execution::any_executor::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the underlying execution context. +

+
automatically_determined context() const;
+
+

+ This function is provided for backward compatibility. It is automatically + defined when the SupportableProperties... + list includes a property of type execution::context_as<U>, for some type U. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/execute.html b/3party/asio/doc/asio/reference/execution__any_executor/execute.html new file mode 100644 index 0000000..b249ab6 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/execute.html @@ -0,0 +1,48 @@ + + + +execution::any_executor::execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Execute + the function on the target executor. +

+
template<
+    typename Function>
+void execute(
+    Function && f) const;
+
+

+ Throws bad_executor + if the polymorphic wrapper has no target. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_bool.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_bool.html new file mode 100644 index 0000000..a98e309 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_bool.html @@ -0,0 +1,51 @@ + + + +execution::any_executor::operator bool + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the wrapper has a target executor. +

+
operator bool() const;
+
+
+ + Return + Value +
+

+ true if the polymorphic wrapper + has a target executor, otherwise false. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_.html new file mode 100644 index 0000000..309476a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_.html @@ -0,0 +1,66 @@ + + + +execution::any_executor::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assignment + operator. +

+
any_executor & operator=(
+    const any_executor & e);
+  » more...
+
+

+ Move assignment operator. +

+
any_executor & operator=(
+    any_executor && e);
+  » more...
+
+

+ Assignment operator that sets the polymorphic wrapper to the empty state. +

+
any_executor & operator=(
+    nullptr_t );
+  » more...
+
+

+ Assignment operator to create a polymorphic wrapper for the specified executor. +

+
template<
+    typename Executor>
+any_executor & operator=(
+    Executor e);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload1.html new file mode 100644 index 0000000..4d4d3a3 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +execution::any_executor::operator= (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator. +

+
any_executor & operator=(
+    const any_executor & e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload2.html new file mode 100644 index 0000000..63e9a16 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload2.html @@ -0,0 +1,41 @@ + + + +execution::any_executor::operator= (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move assignment operator. +

+
any_executor & operator=(
+    any_executor && e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload3.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload3.html new file mode 100644 index 0000000..82075ef --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload3.html @@ -0,0 +1,41 @@ + + + +execution::any_executor::operator= (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator that sets the polymorphic wrapper to the empty state. +

+
any_executor & operator=(
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload4.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload4.html new file mode 100644 index 0000000..756f327 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq_/overload4.html @@ -0,0 +1,44 @@ + + + +execution::any_executor::operator= (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator to create a polymorphic wrapper for the specified + executor. +

+
template<
+    typename Executor>
+any_executor & operator=(
+    Executor e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_.html new file mode 100644 index 0000000..bcd5879 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_.html @@ -0,0 +1,54 @@ + + + +execution::any_executor::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Equality + operator. +

+
bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+  » more...
+
+bool operator==(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload1.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload1.html new file mode 100644 index 0000000..917c648 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload1.html @@ -0,0 +1,42 @@ + + + +execution::any_executor::operator== (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Equality operator. +

+
bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload2.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload2.html new file mode 100644 index 0000000..776ff9a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload2.html @@ -0,0 +1,42 @@ + + + +execution::any_executor::operator== (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Equality operator. +

+
bool operator==(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload3.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload3.html new file mode 100644 index 0000000..c7282a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_eq__eq_/overload3.html @@ -0,0 +1,42 @@ + + + +execution::any_executor::operator== (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Equality operator. +

+
bool operator==(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_.html new file mode 100644 index 0000000..0e3ed41 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_.html @@ -0,0 +1,54 @@ + + + +execution::any_executor::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Inequality + operator. +

+
bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+  » more...
+
+bool operator!=(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload1.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload1.html new file mode 100644 index 0000000..25cee3d --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload1.html @@ -0,0 +1,42 @@ + + + +execution::any_executor::operator!= (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inequality operator. +

+
bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload2.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload2.html new file mode 100644 index 0000000..61ba213 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload2.html @@ -0,0 +1,42 @@ + + + +execution::any_executor::operator!= (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inequality operator. +

+
bool operator!=(
+    const any_executor< SupportableProperties...> & a,
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload3.html b/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload3.html new file mode 100644 index 0000000..40904f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/operator_not__eq_/overload3.html @@ -0,0 +1,42 @@ + + + +execution::any_executor::operator!= (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inequality operator. +

+
bool operator!=(
+    nullptr_t ,
+    const any_executor< SupportableProperties...> & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/prefer.html b/3party/asio/doc/asio/reference/execution__any_executor/prefer.html new file mode 100644 index 0000000..a4950fa --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/prefer.html @@ -0,0 +1,54 @@ + + + +execution::any_executor::prefer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_executor prefer(
+    Property ) const;
+
+

+ Do not call this function directly. It is intended for use with the prefer + customisation point. +

+

+ For example: +

+
execution::any_executor<execution::blocking_t::possibly_t> ex = ...;
+auto ex2 = asio::prefer(ex, execution::blocking.possibly);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/query.html b/3party/asio/doc/asio/reference/execution__any_executor/query.html new file mode 100644 index 0000000..1222d42 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/query.html @@ -0,0 +1,54 @@ + + + +execution::any_executor::query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the value associated with the specified property. +

+
template<
+    typename Property>
+Property::polymorphic_query_result_type query(
+    Property ) const;
+
+

+ Do not call this function directly. It is intended for use with the query + customisation point. +

+

+ For example: +

+
execution::any_executor<execution::occupancy_t> ex = ...;
+size_t n = asio::query(ex, execution::occupancy);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/require.html b/3party/asio/doc/asio/reference/execution__any_executor/require.html new file mode 100644 index 0000000..a1ce994 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/require.html @@ -0,0 +1,55 @@ + + + +execution::any_executor::require + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + a polymorphic wrapper with the specified property. +

+
template<
+    typename Property>
+any_executor require(
+    Property ) const;
+
+

+ Do not call this function directly. It is intended for use with the require + and prefer + customisation points. +

+

+ For example: +

+
execution::any_executor<execution::blocking_t::possibly_t> ex = ...;
+auto ex2 = asio::requre(ex, execution::blocking.possibly);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/swap.html b/3party/asio/doc/asio/reference/execution__any_executor/swap.html new file mode 100644 index 0000000..73c60c8 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/swap.html @@ -0,0 +1,42 @@ + + + +execution::any_executor::swap + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Swap + targets with another polymorphic wrapper. +

+
void swap(
+    any_executor & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/target.html b/3party/asio/doc/asio/reference/execution__any_executor/target.html new file mode 100644 index 0000000..500ace1 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/target.html @@ -0,0 +1,49 @@ + + + +execution::any_executor::target + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + a pointer to the target executor. +

+
template<
+    typename Executor>
+Executor * target();
+  » more...
+
+template<
+    typename Executor>
+const Executor * target() const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/target/overload1.html b/3party/asio/doc/asio/reference/execution__any_executor/target/overload1.html new file mode 100644 index 0000000..2aa0cd4 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/target/overload1.html @@ -0,0 +1,42 @@ + + + +execution::any_executor::target (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get a pointer to the target executor. +

+
template<
+    typename Executor>
+Executor * target();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/target/overload2.html b/3party/asio/doc/asio/reference/execution__any_executor/target/overload2.html new file mode 100644 index 0000000..3a2c036 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/target/overload2.html @@ -0,0 +1,42 @@ + + + +execution::any_executor::target (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get a pointer to the target executor. +

+
template<
+    typename Executor>
+const Executor * target() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__any_executor/target_type.html b/3party/asio/doc/asio/reference/execution__any_executor/target_type.html new file mode 100644 index 0000000..93559ac --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__any_executor/target_type.html @@ -0,0 +1,41 @@ + + + +execution::any_executor::target_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the type of the target executor. +

+
const type_info & target_type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bad_executor.html b/3party/asio/doc/asio/reference/execution__bad_executor.html new file mode 100644 index 0000000..94b37d4 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bad_executor.html @@ -0,0 +1,102 @@ + + + +execution::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] +

+
+

+ Constructor. +

+
+

+ what +

+
+

+ Obtain message associated with exception. +

+
+
+ + Requirements +
+

+ Header: asio/execution/bad_executor.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bad_executor/bad_executor.html b/3party/asio/doc/asio/reference/execution__bad_executor/bad_executor.html new file mode 100644 index 0000000..5f663cb --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bad_executor/bad_executor.html @@ -0,0 +1,40 @@ + + + +execution::bad_executor::bad_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
bad_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bad_executor/what.html b/3party/asio/doc/asio/reference/execution__bad_executor/what.html new file mode 100644 index 0000000..a89d1f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bad_executor/what.html @@ -0,0 +1,41 @@ + + + +execution::bad_executor::what + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + message associated with exception. +

+
virtual const char * what() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking.html b/3party/asio/doc/asio/reference/execution__blocking.html new file mode 100644 index 0000000..bbfee87 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking.html @@ -0,0 +1,52 @@ + + + +execution::blocking + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A special value used for accessing the execution::blocking_t property. +

+
constexpr blocking_t blocking;
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation.html new file mode 100644 index 0000000..1027ab0 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation.html @@ -0,0 +1,52 @@ + + + +execution::blocking_adaptation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A special value used for accessing the execution::blocking_adaptation_t property. +

+
constexpr blocking_adaptation_t blocking_adaptation;
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking_adaptation.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t.html new file mode 100644 index 0000000..2b75230 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t.html @@ -0,0 +1,286 @@ + + + +execution::blocking_adaptation_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A property to describe whether automatic adaptation of an executor is allowed + in order to apply the execution::blocking_adaptation_t::allowed_t property. +

+
struct blocking_adaptation_t
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allowed_t +

+
+

+ A sub-property that indicates that automatic adaptation is allowed. +

+
+

+ disallowed_t +

+
+

+ A sub-property that indicates that automatic adaptation is not + allowed. +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ blocking_adaptation_t [constructor] +

+
+

+ Default constructor.

Construct from a sub-property + value. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allowed [static] +

+
+

+ A special value used for accessing the blocking_adaptation_t::allowed_t + property. +

+
+

+ disallowed [static] +

+
+

+ A special value used for accessing the blocking_adaptation_t::disallowed_t + property. +

+
+

+ is_applicable_property_v [static] +

+
+

+ The blocking_adaptation_t property applies to executors, senders, + and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The top-level blocking_adaptation_t property cannot be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The top-level blocking_adaptation_t property cannot be required. +

+
+
+ + Friends +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Compare property values for inequality. +

+
+

+ operator== +

+
+

+ Compare property values for equality. +

+
+
+ + Requirements +
+

+ Header: asio/execution/blocking_adaptation.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/allowed.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/allowed.html new file mode 100644 index 0000000..e583adb --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/allowed.html @@ -0,0 +1,41 @@ + + + +execution::blocking_adaptation_t::allowed + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::blocking_adaptation_t::allowed_t property. +

+
static constexpr allowed_t allowed;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t.html new file mode 100644 index 0000000..c594b8f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t.html @@ -0,0 +1,53 @@ + + + +execution::blocking_adaptation_t::blocking_adaptation_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr blocking_adaptation_t();
+  » more...
+
+

+ Construct from a sub-property value. +

+
constexpr blocking_adaptation_t(
+    disallowed_t );
+  » more...
+
+constexpr blocking_adaptation_t(
+    allowed_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload1.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload1.html new file mode 100644 index 0000000..4bd161c --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload1.html @@ -0,0 +1,40 @@ + + + +execution::blocking_adaptation_t::blocking_adaptation_t (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr blocking_adaptation_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload2.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload2.html new file mode 100644 index 0000000..c8e4c07 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload2.html @@ -0,0 +1,41 @@ + + + +execution::blocking_adaptation_t::blocking_adaptation_t (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr blocking_adaptation_t(
+    disallowed_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload3.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload3.html new file mode 100644 index 0000000..e76e7d4 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/blocking_adaptation_t/overload3.html @@ -0,0 +1,41 @@ + + + +execution::blocking_adaptation_t::blocking_adaptation_t (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr blocking_adaptation_t(
+    allowed_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/disallowed.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/disallowed.html new file mode 100644 index 0000000..45be9ef --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/disallowed.html @@ -0,0 +1,41 @@ + + + +execution::blocking_adaptation_t::disallowed + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::blocking_adaptation_t::disallowed_t property. +

+
static constexpr disallowed_t disallowed;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_applicable_property_v.html new file mode 100644 index 0000000..3b9abc9 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::blocking_adaptation_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_adaptation_t property + applies to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+  is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_preferable.html new file mode 100644 index 0000000..aff5e6b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_preferable.html @@ -0,0 +1,42 @@ + + + +execution::blocking_adaptation_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::blocking_adaptation_t property + cannot be preferred. +

+
static constexpr bool is_preferable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_requirable.html new file mode 100644 index 0000000..c322c6f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::blocking_adaptation_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::blocking_adaptation_t property + cannot be required. +

+
static constexpr bool is_requirable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/operator_eq__eq_.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/operator_eq__eq_.html new file mode 100644 index 0000000..a5284d7 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +execution::blocking_adaptation_t::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for equality. +

+
friend constexpr bool operator==(
+    const blocking_adaptation_t & a,
+    const blocking_adaptation_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking_adaptation.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/operator_not__eq_.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/operator_not__eq_.html new file mode 100644 index 0000000..85ba086 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +execution::blocking_adaptation_t::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for inequality. +

+
friend constexpr bool operator!=(
+    const blocking_adaptation_t & a,
+    const blocking_adaptation_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking_adaptation.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..3c13e80 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::blocking_adaptation_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef blocking_adaptation_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking_adaptation.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t.html new file mode 100644 index 0000000..d85a484 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t.html @@ -0,0 +1,197 @@ + + + +execution::blocking_adaptation_t::allowed_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that automatic adaptation is allowed. +

+
struct allowed_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allowed_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The blocking_adaptation_t::allowed_t property applies to executors, + senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The blocking_adaptation_t::allowed_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The blocking_adaptation_t::allowed_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/blocking_adaptation.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/allowed_t.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/allowed_t.html new file mode 100644 index 0000000..83257b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/allowed_t.html @@ -0,0 +1,41 @@ + + + +execution::blocking_adaptation_t::allowed_t::allowed_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr allowed_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_applicable_property_v.html new file mode 100644 index 0000000..e0ef92a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::blocking_adaptation_t::allowed_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_adaptation_t::allowed_t property applies to + executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_preferable.html new file mode 100644 index 0000000..d77af20 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::blocking_adaptation_t::allowed_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_adaptation_t::allowed_t property can be preferred. +

+
static constexpr bool is_preferable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_requirable.html new file mode 100644 index 0000000..b177cb6 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::blocking_adaptation_t::allowed_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_adaptation_t::allowed_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..56c8cd4 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::blocking_adaptation_t::allowed_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef blocking_adaptation_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking_adaptation.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/value.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/value.html new file mode 100644 index 0000000..0fb354e --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__allowed_t/value.html @@ -0,0 +1,49 @@ + + + +execution::blocking_adaptation_t::allowed_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr blocking_adaptation_t value();
+
+
+ + Return + Value +
+

+ allowed_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t.html new file mode 100644 index 0000000..952d631 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t.html @@ -0,0 +1,197 @@ + + + +execution::blocking_adaptation_t::disallowed_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that automatic adaptation is not allowed. +

+
struct disallowed_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ disallowed_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The blocking_adaptation_t::disallowed_t property applies to executors, + senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The blocking_adaptation_t::disallowed_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The blocking_adaptation_t::disallowed_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/blocking_adaptation.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/disallowed_t.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/disallowed_t.html new file mode 100644 index 0000000..05d93cf --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/disallowed_t.html @@ -0,0 +1,41 @@ + + + +execution::blocking_adaptation_t::disallowed_t::disallowed_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr disallowed_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_applicable_property_v.html new file mode 100644 index 0000000..d94c3f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::blocking_adaptation_t::disallowed_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_adaptation_t::disallowed_t property applies + to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_preferable.html new file mode 100644 index 0000000..3d2aec0 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::blocking_adaptation_t::disallowed_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_adaptation_t::disallowed_t property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_requirable.html new file mode 100644 index 0000000..564f515 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::blocking_adaptation_t::disallowed_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_adaptation_t::disallowed_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..f1daaaf --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::blocking_adaptation_t::disallowed_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef blocking_adaptation_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking_adaptation.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/value.html b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/value.html new file mode 100644 index 0000000..26212e4 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_adaptation_t__disallowed_t/value.html @@ -0,0 +1,49 @@ + + + +execution::blocking_adaptation_t::disallowed_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr blocking_adaptation_t value();
+
+
+ + Return + Value +
+

+ disallowed_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t.html b/3party/asio/doc/asio/reference/execution__blocking_t.html new file mode 100644 index 0000000..ce2dba2 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t.html @@ -0,0 +1,311 @@ + + + +execution::blocking_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A property to describe what guarantees an executor makes about the blocking + behaviour of their execution functions. +

+
struct blocking_t
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ always_t +

+
+

+ A sub-property that indicates that invocation of an executor's + execution function shall block until completion of all invocations + of the submitted function object. +

+
+

+ never_t +

+
+

+ A sub-property that indicates that invocation of an executor's + execution function shall not block pending completion of the invocations + of the submitted function object. +

+
+

+ possibly_t +

+
+

+ A sub-property that indicates that invocation of an executor's + execution function may block pending completion of one or more + invocations of the submitted function object. +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ blocking_t [constructor] +

+
+

+ Default constructor.

Construct from a sub-property + value. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ always [static] +

+
+

+ A special value used for accessing the blocking_t::always_t property. +

+
+

+ is_applicable_property_v [static] +

+
+

+ The blocking_t property applies to executors, senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The top-level blocking_t property cannot be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The top-level blocking_t property cannot be required. +

+
+

+ never [static] +

+
+

+ A special value used for accessing the blocking_t::never_t property. +

+
+

+ possibly [static] +

+
+

+ A special value used for accessing the blocking_t::possibly_t property. +

+
+
+ + Friends +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Compare property values for inequality. +

+
+

+ operator== +

+
+

+ Compare property values for equality. +

+
+
+ + Requirements +
+

+ Header: asio/execution/blocking.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/always.html b/3party/asio/doc/asio/reference/execution__blocking_t/always.html new file mode 100644 index 0000000..d7e141a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/always.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::always + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::blocking_t::always_t property. +

+
static constexpr always_t always;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t.html b/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t.html new file mode 100644 index 0000000..d645aa1 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t.html @@ -0,0 +1,57 @@ + + + +execution::blocking_t::blocking_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr blocking_t();
+  » more...
+
+

+ Construct from a sub-property value. +

+
constexpr blocking_t(
+    possibly_t );
+  » more...
+
+constexpr blocking_t(
+    always_t );
+  » more...
+
+constexpr blocking_t(
+    never_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload1.html b/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload1.html new file mode 100644 index 0000000..0d09e55 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload1.html @@ -0,0 +1,40 @@ + + + +execution::blocking_t::blocking_t (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr blocking_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload2.html b/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload2.html new file mode 100644 index 0000000..7b74983 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload2.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::blocking_t (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr blocking_t(
+    possibly_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload3.html b/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload3.html new file mode 100644 index 0000000..817f5b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload3.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::blocking_t (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr blocking_t(
+    always_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload4.html b/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload4.html new file mode 100644 index 0000000..236084b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/blocking_t/overload4.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::blocking_t (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr blocking_t(
+    never_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__blocking_t/is_applicable_property_v.html new file mode 100644 index 0000000..74e3ce9 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::blocking_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_t + property applies to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+  is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__blocking_t/is_preferable.html new file mode 100644 index 0000000..bfc51b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/is_preferable.html @@ -0,0 +1,42 @@ + + + +execution::blocking_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::blocking_t property cannot be + preferred. +

+
static constexpr bool is_preferable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__blocking_t/is_requirable.html new file mode 100644 index 0000000..73e5c64 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::blocking_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::blocking_t property cannot be + required. +

+
static constexpr bool is_requirable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/never.html b/3party/asio/doc/asio/reference/execution__blocking_t/never.html new file mode 100644 index 0000000..e482aa6 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/never.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::never + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A special + value used for accessing the execution::blocking_t::never_t property. +

+
static constexpr never_t never;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/operator_eq__eq_.html b/3party/asio/doc/asio/reference/execution__blocking_t/operator_eq__eq_.html new file mode 100644 index 0000000..670a5fb --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +execution::blocking_t::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for equality. +

+
friend constexpr bool operator==(
+    const blocking_t & a,
+    const blocking_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/operator_not__eq_.html b/3party/asio/doc/asio/reference/execution__blocking_t/operator_not__eq_.html new file mode 100644 index 0000000..26dce4c --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +execution::blocking_t::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for inequality. +

+
friend constexpr bool operator!=(
+    const blocking_t & a,
+    const blocking_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__blocking_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..04adcdd --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::blocking_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef blocking_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t/possibly.html b/3party/asio/doc/asio/reference/execution__blocking_t/possibly.html new file mode 100644 index 0000000..ff1308c --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t/possibly.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::possibly + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::blocking_t::possibly_t property. +

+
static constexpr possibly_t possibly;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__always_t.html b/3party/asio/doc/asio/reference/execution__blocking_t__always_t.html new file mode 100644 index 0000000..7e042fe --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__always_t.html @@ -0,0 +1,199 @@ + + + +execution::blocking_t::always_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that invocation of an executor's execution + function shall block until completion of all invocations of the submitted + function object. +

+
struct always_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ always_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The blocking_t::always_t property applies to executors, senders, + and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The blocking_t::always_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The blocking_t::always_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/blocking.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__always_t/always_t.html b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/always_t.html new file mode 100644 index 0000000..b953498 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/always_t.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::always_t::always_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr always_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_applicable_property_v.html new file mode 100644 index 0000000..0beea7f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::blocking_t::always_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_t::always_t property applies to executors, + senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_preferable.html new file mode 100644 index 0000000..01d0826 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::always_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_t::always_t property can be preferred. +

+
static constexpr bool is_preferable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_requirable.html new file mode 100644 index 0000000..c9ae7d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::always_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_t::always_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__always_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..edba496 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::blocking_t::always_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef blocking_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__always_t/value.html b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/value.html new file mode 100644 index 0000000..318f20c --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__always_t/value.html @@ -0,0 +1,49 @@ + + + +execution::blocking_t::always_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr blocking_t value();
+
+
+ + Return + Value +
+

+ always_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__never_t.html b/3party/asio/doc/asio/reference/execution__blocking_t__never_t.html new file mode 100644 index 0000000..95c837f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__never_t.html @@ -0,0 +1,199 @@ + + + +execution::blocking_t::never_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that invocation of an executor's execution + function shall not block pending completion of the invocations of the submitted + function object. +

+
struct never_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ never_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The blocking_t::never_t property applies to executors, senders, + and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The blocking_t::never_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The blocking_t::never_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/blocking.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_applicable_property_v.html new file mode 100644 index 0000000..2d1a3e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::blocking_t::never_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_t::never_t property applies to executors, + senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_preferable.html new file mode 100644 index 0000000..86bb584 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::never_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_t::never_t property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_requirable.html new file mode 100644 index 0000000..6758a76 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::never_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_t::never_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__never_t/never_t.html b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/never_t.html new file mode 100644 index 0000000..aa6143d --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/never_t.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::never_t::never_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr never_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__never_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..cbfb872 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::blocking_t::never_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef blocking_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__never_t/value.html b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/value.html new file mode 100644 index 0000000..221072c --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__never_t/value.html @@ -0,0 +1,49 @@ + + + +execution::blocking_t::never_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr blocking_t value();
+
+
+ + Return + Value +
+

+ never_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t.html b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t.html new file mode 100644 index 0000000..2639665 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t.html @@ -0,0 +1,199 @@ + + + +execution::blocking_t::possibly_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that invocation of an executor's execution + function may block pending completion of one or more invocations of the submitted + function object. +

+
struct possibly_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ possibly_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The blocking_t::possibly_t property applies to executors, senders, + and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The blocking_t::possibly_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The blocking_t::possibly_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/blocking.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_applicable_property_v.html new file mode 100644 index 0000000..e5d0652 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::blocking_t::possibly_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_t::possibly_t property applies to + executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_preferable.html new file mode 100644 index 0000000..cd23011 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::possibly_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_t::possibly_t property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_requirable.html new file mode 100644 index 0000000..286fafa --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::possibly_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::blocking_t::possibly_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..aea7ee2 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::blocking_t::possibly_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef blocking_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/blocking.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/possibly_t.html b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/possibly_t.html new file mode 100644 index 0000000..dee836c --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/possibly_t.html @@ -0,0 +1,41 @@ + + + +execution::blocking_t::possibly_t::possibly_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr possibly_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/value.html b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/value.html new file mode 100644 index 0000000..a485d84 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__blocking_t__possibly_t/value.html @@ -0,0 +1,49 @@ + + + +execution::blocking_t::possibly_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr blocking_t value();
+
+
+ + Return + Value +
+

+ possibly_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_execute.html b/3party/asio/doc/asio/reference/execution__bulk_execute.html new file mode 100644 index 0000000..92fbe99 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_execute.html @@ -0,0 +1,111 @@ + + + +execution::bulk_execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A customisation point that creates a bulk sender. +

+
constexpr unspecified bulk_execute = unspecified;
+
+

+ The name execution::bulk_execute denotes a customisation point + object. If is_convertible_v<N, + size_t> + is true, then the expression execution::bulk_execute(S, + F, N) for + some subexpressions S, F, and N + is expression-equivalent to: +

+
    +
  • + S.bulk_execute(F, N), + if that expression is valid. If the function selected does not execute + N invocations of the + function object F on + the executor S in bulk + with forward progress guarantee asio::query(S, execution::bulk_guarantee), and the result of that function does + not model sender<void>, + the program is ill-formed with no diagnostic required. +
  • +
  • + Otherwise, bulk_execute(S, F, N), if that expression is valid, with overload + resolution performed in a context that includes the declaration void bulk_execute(); and that does not include a declaration + of execution::bulk_execute. If the function selected + by overload resolution does not execute N + invocations of the function object F + on the executor S in + bulk with forward progress guarantee asio::query(E, execution::bulk_guarantee), and the result of that function does + not model sender<void>, + the program is ill-formed with no diagnostic required. +
  • +
  • + Otherwise, if the types F + and executor_index_t<remove_cvref_t<S>> model invocable + and if asio::query(S, execution::bulk_guarantee) + equals execution::bulk_guarantee.unsequenced, then +
  • +
  • + Evaluates DECAY_COPY(std::forward<decltype(F)>(F)) on the calling thread to create a function + object cf. [Note: Additional + copies of cf may subsequently + be created. --end note.] +
  • +
  • + For each value of i in + N, cf(i) (or copy of cf)) + will be invoked at most once by an execution agent that is unique for + each value of i. +
  • +
  • + May block pending completion of one or more invocations of cf. +
  • +
  • + Synchronizes with (C++Std [intro.multithread]) the invocations of cf. +
  • +
  • + Otherwise, execution::bulk_execute(S, F, N) is ill-formed. +
  • +
+
+ + Requirements +
+

+ Header: asio/execution/bulk_execute.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee.html new file mode 100644 index 0000000..7fb48fb --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee.html @@ -0,0 +1,52 @@ + + + +execution::bulk_guarantee + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A special value used for accessing the execution::bulk_guarantee_t property. +

+
constexpr bulk_guarantee_t bulk_guarantee;
+
+
+ + Requirements +
+

+ Header: asio/execution/bulk_guarantee.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t.html new file mode 100644 index 0000000..baf119d --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t.html @@ -0,0 +1,312 @@ + + + +execution::bulk_guarantee_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A property to communicate the forward progress and ordering guarantees of + execution agents associated with the bulk execution. +

+
struct bulk_guarantee_t
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ parallel_t +

+
+

+ A sub-property that indicates that execution agents within the + same bulk execution may be parallelised. +

+
+

+ sequenced_t +

+
+

+ A sub-property that indicates that execution agents within the + same bulk execution may not be parallelised and vectorised. +

+
+

+ unsequenced_t +

+
+

+ A sub-property that indicates that execution agents within the + same bulk execution may be parallelised and vectorised. +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ bulk_guarantee_t [constructor] +

+
+

+ Default constructor.

Construct from a sub-property + value. +

+
+
+ + Data Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The bulk_guarantee_t property applies to executors, senders, and + schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The top-level bulk_guarantee_t property cannot be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The top-level bulk_guarantee_t property cannot be required. +

+
+

+ parallel [static] +

+
+

+ A special value used for accessing the bulk_guarantee_t::parallel_t + property. +

+
+

+ sequenced [static] +

+
+

+ A special value used for accessing the bulk_guarantee_t::sequenced_t + property. +

+
+

+ unsequenced [static] +

+
+

+ A special value used for accessing the bulk_guarantee_t::unsequenced_t + property. +

+
+
+ + Friends +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Compare property values for inequality. +

+
+

+ operator== +

+
+

+ Compare property values for equality. +

+
+
+ + Requirements +
+

+ Header: asio/execution/bulk_guarantee.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t.html new file mode 100644 index 0000000..a0626d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t.html @@ -0,0 +1,57 @@ + + + +execution::bulk_guarantee_t::bulk_guarantee_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr bulk_guarantee_t();
+  » more...
+
+

+ Construct from a sub-property value. +

+
constexpr bulk_guarantee_t(
+    unsequenced_t );
+  » more...
+
+constexpr bulk_guarantee_t(
+    sequenced_t );
+  » more...
+
+constexpr bulk_guarantee_t(
+    parallel_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload1.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload1.html new file mode 100644 index 0000000..ed2a868 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload1.html @@ -0,0 +1,40 @@ + + + +execution::bulk_guarantee_t::bulk_guarantee_t (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr bulk_guarantee_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload2.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload2.html new file mode 100644 index 0000000..5e5d382 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload2.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::bulk_guarantee_t (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr bulk_guarantee_t(
+    unsequenced_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload3.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload3.html new file mode 100644 index 0000000..82d3364 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload3.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::bulk_guarantee_t (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr bulk_guarantee_t(
+    sequenced_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload4.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload4.html new file mode 100644 index 0000000..5ad290d --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/bulk_guarantee_t/overload4.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::bulk_guarantee_t (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr bulk_guarantee_t(
+    parallel_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_applicable_property_v.html new file mode 100644 index 0000000..f107a73 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::bulk_guarantee_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::bulk_guarantee_t property applies + to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+  is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_preferable.html new file mode 100644 index 0000000..f428625 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_preferable.html @@ -0,0 +1,42 @@ + + + +execution::bulk_guarantee_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::bulk_guarantee_t property cannot + be preferred. +

+
static constexpr bool is_preferable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_requirable.html new file mode 100644 index 0000000..e3f19a6 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::bulk_guarantee_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::bulk_guarantee_t property cannot + be required. +

+
static constexpr bool is_requirable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/operator_eq__eq_.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/operator_eq__eq_.html new file mode 100644 index 0000000..f0b4f82 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +execution::bulk_guarantee_t::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for equality. +

+
friend constexpr bool operator==(
+    const bulk_guarantee_t & a,
+    const bulk_guarantee_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/bulk_guarantee.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/operator_not__eq_.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/operator_not__eq_.html new file mode 100644 index 0000000..7f0e35e --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +execution::bulk_guarantee_t::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for inequality. +

+
friend constexpr bool operator!=(
+    const bulk_guarantee_t & a,
+    const bulk_guarantee_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/bulk_guarantee.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/parallel.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/parallel.html new file mode 100644 index 0000000..e478019 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/parallel.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::parallel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::bulk_guarantee_t::parallel_t property. +

+
static constexpr parallel_t parallel;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..ffbc433 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::bulk_guarantee_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef bulk_guarantee_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/bulk_guarantee.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/sequenced.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/sequenced.html new file mode 100644 index 0000000..bcf518e --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/sequenced.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::sequenced + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::bulk_guarantee_t::sequenced_t property. +

+
static constexpr sequenced_t sequenced;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/unsequenced.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/unsequenced.html new file mode 100644 index 0000000..afb631a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t/unsequenced.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::unsequenced + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::bulk_guarantee_t::unsequenced_t property. +

+
static constexpr unsequenced_t unsequenced;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t.html new file mode 100644 index 0000000..d6006ed --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t.html @@ -0,0 +1,198 @@ + + + +execution::bulk_guarantee_t::parallel_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that execution agents within the same bulk + execution may be parallelised. +

+
struct parallel_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ parallel_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The bulk_guarantee_t::parallel_t property applies to executors, + senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The bulk_guarantee_t::parallel_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The bulk_guarantee_t::parallel_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/bulk_guarantee.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_applicable_property_v.html new file mode 100644 index 0000000..cac86ac --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::bulk_guarantee_t::parallel_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::bulk_guarantee_t::parallel_t property applies to + executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_preferable.html new file mode 100644 index 0000000..1eedaf6 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::parallel_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::bulk_guarantee_t::parallel_t property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_requirable.html new file mode 100644 index 0000000..fe878ce --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::parallel_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::bulk_guarantee_t::parallel_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/parallel_t.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/parallel_t.html new file mode 100644 index 0000000..be2adc5 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/parallel_t.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::parallel_t::parallel_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr parallel_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..a15581a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::bulk_guarantee_t::parallel_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef bulk_guarantee_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/bulk_guarantee.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/value.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/value.html new file mode 100644 index 0000000..023b96b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__parallel_t/value.html @@ -0,0 +1,49 @@ + + + +execution::bulk_guarantee_t::parallel_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr bulk_guarantee_t value();
+
+
+ + Return + Value +
+

+ parallel_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t.html new file mode 100644 index 0000000..11b8d2b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t.html @@ -0,0 +1,198 @@ + + + +execution::bulk_guarantee_t::sequenced_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that execution agents within the same bulk + execution may not be parallelised and vectorised. +

+
struct sequenced_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ sequenced_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The bulk_guarantee_t::sequenced_t property applies to executors, + senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The bulk_guarantee_t::sequenced_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The bulk_guarantee_t::sequenced_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/bulk_guarantee.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_applicable_property_v.html new file mode 100644 index 0000000..f667e70 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::bulk_guarantee_t::sequenced_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::bulk_guarantee_t::sequenced_t property applies to + executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_preferable.html new file mode 100644 index 0000000..f97b6a7 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::sequenced_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::bulk_guarantee_t::sequenced_t property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_requirable.html new file mode 100644 index 0000000..57e5959 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::sequenced_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::bulk_guarantee_t::sequenced_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..4e4331f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::bulk_guarantee_t::sequenced_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef bulk_guarantee_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/bulk_guarantee.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/sequenced_t.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/sequenced_t.html new file mode 100644 index 0000000..7b50ef6 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/sequenced_t.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::sequenced_t::sequenced_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr sequenced_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/value.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/value.html new file mode 100644 index 0000000..180af6e --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__sequenced_t/value.html @@ -0,0 +1,49 @@ + + + +execution::bulk_guarantee_t::sequenced_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr bulk_guarantee_t value();
+
+
+ + Return + Value +
+

+ sequenced_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t.html new file mode 100644 index 0000000..2cc2855 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t.html @@ -0,0 +1,198 @@ + + + +execution::bulk_guarantee_t::unsequenced_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that execution agents within the same bulk + execution may be parallelised and vectorised. +

+
struct unsequenced_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ unsequenced_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The bulk_guarantee_t::unsequenced_t property applies to executors, + senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The bulk_guarantee_t::unsequenced_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The bulk_guarantee_t::unsequenced_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/bulk_guarantee.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_applicable_property_v.html new file mode 100644 index 0000000..1cbc4de --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::bulk_guarantee_t::unsequenced_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::bulk_guarantee_t::unsequenced_t property applies + to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_preferable.html new file mode 100644 index 0000000..aa27f44 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_preferable.html @@ -0,0 +1,42 @@ + + + +execution::bulk_guarantee_t::unsequenced_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::bulk_guarantee_t::unsequenced_t property can be + preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_requirable.html new file mode 100644 index 0000000..cbfb5af --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::bulk_guarantee_t::unsequenced_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::bulk_guarantee_t::unsequenced_t property can be + required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..7e2864f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::bulk_guarantee_t::unsequenced_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef bulk_guarantee_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/bulk_guarantee.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/unsequenced_t.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/unsequenced_t.html new file mode 100644 index 0000000..974692f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/unsequenced_t.html @@ -0,0 +1,41 @@ + + + +execution::bulk_guarantee_t::unsequenced_t::unsequenced_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr unsequenced_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/value.html b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/value.html new file mode 100644 index 0000000..b184589 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__bulk_guarantee_t__unsequenced_t/value.html @@ -0,0 +1,49 @@ + + + +execution::bulk_guarantee_t::unsequenced_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr bulk_guarantee_t value();
+
+
+ + Return + Value +
+

+ unsequenced_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__can_bulk_execute.html b/3party/asio/doc/asio/reference/execution__can_bulk_execute.html new file mode 100644 index 0000000..edea267 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__can_bulk_execute.html @@ -0,0 +1,64 @@ + + + +execution::can_bulk_execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a bulk_execute + expression is well-formed. +

+
template<
+    typename S,
+    typename F,
+    typename N>
+struct can_bulk_execute
+
+

+ Class template can_bulk_execute + is a trait that is derived from true_type + if the expression execution::bulk_execute(std::declval<S>(), std::declval<F>(), + std::declval<N>) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/bulk_execute.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__can_connect.html b/3party/asio/doc/asio/reference/execution__can_connect.html new file mode 100644 index 0000000..b5a630f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__can_connect.html @@ -0,0 +1,62 @@ + + + +execution::can_connect + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a connect + expression is well-formed. +

+
template<
+    typename S,
+    typename R>
+struct can_connect
+
+

+ Class template can_connect + is a trait that is derived from true_type + if the expression execution::connect(std::declval<S>(), std::declval<R>()) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/connect.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__can_execute.html b/3party/asio/doc/asio/reference/execution__can_execute.html new file mode 100644 index 0000000..4e9ec36 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__can_execute.html @@ -0,0 +1,62 @@ + + + +execution::can_execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ (Deprecated.) A type trait that determines whether an execute + expression is well-formed. +

+
template<
+    typename T,
+    typename F>
+struct can_execute
+
+

+ Class template can_execute + is a trait that is derived from true_type + if the expression execution::execute(std::declval<T>(), std::declval<F>()) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/execute.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__can_schedule.html b/3party/asio/doc/asio/reference/execution__can_schedule.html new file mode 100644 index 0000000..feede13 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__can_schedule.html @@ -0,0 +1,61 @@ + + + +execution::can_schedule + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a schedule + expression is well-formed. +

+
template<
+    typename S>
+struct can_schedule
+
+

+ Class template can_schedule + is a trait that is derived from true_type + if the expression execution::schedule(std::declval<S>()) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/schedule.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__can_set_done.html b/3party/asio/doc/asio/reference/execution__can_set_done.html new file mode 100644 index 0000000..0916684 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__can_set_done.html @@ -0,0 +1,61 @@ + + + +execution::can_set_done + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a set_done + expression is well-formed. +

+
template<
+    typename R>
+struct can_set_done
+
+

+ Class template can_set_done + is a trait that is derived from true_type + if the expression execution::set_done(std::declval<R>(), std::declval<E>()) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/set_done.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__can_set_error.html b/3party/asio/doc/asio/reference/execution__can_set_error.html new file mode 100644 index 0000000..ab423a3 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__can_set_error.html @@ -0,0 +1,62 @@ + + + +execution::can_set_error + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a set_error + expression is well-formed. +

+
template<
+    typename R,
+    typename E>
+struct can_set_error
+
+

+ Class template can_set_error + is a trait that is derived from true_type + if the expression execution::set_error(std::declval<R>(), std::declval<E>()) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/set_error.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__can_set_value.html b/3party/asio/doc/asio/reference/execution__can_set_value.html new file mode 100644 index 0000000..2652af1 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__can_set_value.html @@ -0,0 +1,61 @@ + + + +execution::can_set_value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a set_value + expression is well-formed. +

+
template<
+    typename R,
+    typename... Vs>
+struct can_set_value
+
+

+ Class template can_set_value + is a trait that is derived from true_type + if the expression execution::set_value(std::declval<R>(), std::declval<Vs>()...) is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/set_value.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__can_start.html b/3party/asio/doc/asio/reference/execution__can_start.html new file mode 100644 index 0000000..94f1af7 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__can_start.html @@ -0,0 +1,61 @@ + + + +execution::can_start + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a start + expression is well-formed. +

+
template<
+    typename R>
+struct can_start
+
+

+ Class template can_start + is a trait that is derived from true_type + if the expression execution::start(std::declval<R>(), std::declval<E>()) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/start.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__can_submit.html b/3party/asio/doc/asio/reference/execution__can_submit.html new file mode 100644 index 0000000..50aef2b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__can_submit.html @@ -0,0 +1,62 @@ + + + +execution::can_submit + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a submit + expression is well-formed. +

+
template<
+    typename S,
+    typename R>
+struct can_submit
+
+

+ Class template can_submit + is a trait that is derived from true_type + if the expression execution::submit(std::declval<R>(), std::declval<E>()) + is well formed; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/submit.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__connect.html b/3party/asio/doc/asio/reference/execution__connect.html new file mode 100644 index 0000000..cd9ba26 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__connect.html @@ -0,0 +1,124 @@ + + + +execution::connect + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A customisation point that connects a sender to a receiver. +

+
constexpr unspecified connect = unspecified;
+
+

+ The name execution::connect denotes a customisation point object. + For some subexpressions s + and r, let S be a type such that decltype((s)) + is S and let R be a type such that decltype((r)) + is R. The expression execution::connect(s, r) is expression-equivalent to: +

+
    +
  • + s.connect(r), + if that expression is valid, if its type satisfies operation_state, + and if S satisfies sender. +
  • +
  • + Otherwise, connect(s, r), + if that expression is valid, if its type satisfies operation_state, + and if S satisfies sender, with overload resolution performed + in a context that includes the declaration void + connect(); + and that does not include a declaration of execution::connect. +
  • +
  • +

    + Otherwise, as_operation{s, r}, if r + is not an instance of as_receiver<F, S> for some type F, + and if receiver_of<R> && executor_of<remove_cvref_t<S>, as_invocable<remove_cvref_t<R>, S>> is true, + where as_operation is + an implementation-defined class equivalent to +

    +
    template <class S, class R>
    + struct as_operation
    + {
    +   remove_cvref_t<S> e_;
    +   remove_cvref_t<R> r_;
    +   void start() noexcept try {
    +     execution::execute(std::move(e_),
    +         as_invocable<remove_cvref_t<R>, S>{r_});
    +   } catch(...) {
    +     execution::set_error(std::move(r_), current_exception());
    +   }
    + };
    +
    +
  • +
+

+ and as_invocable is a class + template equivalent to the following: +

+
template<class R>
+ struct as_invocable
+ {
+   R* r_;
+   explicit as_invocable(R& r) noexcept
+     : r_(std::addressof(r)) {}
+   as_invocable(as_invocable && other) noexcept
+     : r_(std::exchange(other.r_, nullptr)) {}
+   ~as_invocable() {
+     if(r_)
+       execution::set_done(std::move(*r_));
+   }
+   void operator()() & noexcept try {
+     execution::set_value(std::move(*r_));
+     r_ = nullptr;
+   } catch(...) {
+     execution::set_error(std::move(*r_), current_exception());
+     r_ = nullptr;
+   }
+ };
+
+
  • + Otherwise, execution::connect(s, r) is ill-formed. +
+
+ + Requirements +
+

+ Header: asio/execution/connect.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__connect_result.html b/3party/asio/doc/asio/reference/execution__connect_result.html new file mode 100644 index 0000000..3d8b886 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__connect_result.html @@ -0,0 +1,90 @@ + + + +execution::connect_result + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait to determine the result of a connect + expression. +

+
template<
+    typename S,
+    typename R>
+struct connect_result
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ The type of the connect expression. +

+
+
+ + Requirements +
+

+ Header: asio/execution/connect.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__connect_result/type.html b/3party/asio/doc/asio/reference/execution__connect_result/type.html new file mode 100644 index 0000000..f4989a3 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__connect_result/type.html @@ -0,0 +1,54 @@ + + + +execution::connect_result::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the connect expression. +

+
typedef automatically_determined type;
+
+

+ The type of the expression execution::connect(std::declval<S>(), std::declval<R>()). +

+
+ + Requirements +
+

+ Header: asio/execution/connect.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context.html b/3party/asio/doc/asio/reference/execution__context.html new file mode 100644 index 0000000..84ae9b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context.html @@ -0,0 +1,52 @@ + + + +execution::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A special value used for accessing the execution::context_t property. +

+
constexpr context_t context;
+
+
+ + Requirements +
+

+ Header: asio/execution/context.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context_as.html b/3party/asio/doc/asio/reference/execution__context_as.html new file mode 100644 index 0000000..c8bb459 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context_as.html @@ -0,0 +1,53 @@ + + + +execution::context_as + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A special value used for accessing the execution::context_as_t property. +

+
template <typename U>
+constexpr context_as_t context_as;
+
+
+ + Requirements +
+

+ Header: asio/execution/context_as.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context_as_t.html b/3party/asio/doc/asio/reference/execution__context_as_t.html new file mode 100644 index 0000000..fc9045f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context_as_t.html @@ -0,0 +1,150 @@ + + + +execution::context_as_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A property that is used to obtain the execution context that is associated + with an executor. +

+
template<
+    typename U>
+struct context_as_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The context_as_t property applies to executors, senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The context_t property cannot be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The context_t property cannot be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/context_as.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context_as_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__context_as_t/is_applicable_property_v.html new file mode 100644 index 0000000..39deb10 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context_as_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::context_as_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::context_as_t + property applies to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+  is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context_as_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__context_as_t/is_preferable.html new file mode 100644 index 0000000..26f63ba --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context_as_t/is_preferable.html @@ -0,0 +1,42 @@ + + + +execution::context_as_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::context_t + property cannot be preferred. +

+
static constexpr bool is_preferable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context_as_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__context_as_t/is_requirable.html new file mode 100644 index 0000000..b8d07ca --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context_as_t/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::context_as_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::context_t + property cannot be required. +

+
static constexpr bool is_requirable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context_as_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__context_as_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..aac5a6c --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context_as_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::context_as_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef T polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/context_as.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context_t.html b/3party/asio/doc/asio/reference/execution__context_t.html new file mode 100644 index 0000000..f037866 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context_t.html @@ -0,0 +1,148 @@ + + + +execution::context_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A property that is used to obtain the execution context that is associated + with an executor. +

+
struct context_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The context_t property applies to executors, senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The context_t property cannot be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The context_t property cannot be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/context.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__context_t/is_applicable_property_v.html new file mode 100644 index 0000000..1eefb32 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::context_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::context_t + property applies to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+  is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__context_t/is_preferable.html new file mode 100644 index 0000000..6e5321b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context_t/is_preferable.html @@ -0,0 +1,42 @@ + + + +execution::context_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::context_t + property cannot be preferred. +

+
static constexpr bool is_preferable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__context_t/is_requirable.html new file mode 100644 index 0000000..254c1ca --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context_t/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::context_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::context_t + property cannot be required. +

+
static constexpr bool is_requirable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__context_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__context_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..bcbcb49 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__context_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::context_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef std::any polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/context.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__execute.html b/3party/asio/doc/asio/reference/execution__execute.html new file mode 100644 index 0000000..b5e0d7a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__execute.html @@ -0,0 +1,86 @@ + + + +execution::execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ (Deprecated: Use execute + member function.) A customisation point that executes a function on an executor. +

+
constexpr unspecified execute = unspecified;
+
+

+ The name execution::execute denotes a customisation point object. +

+

+ For some subexpressions e + and f, let E be a type such that decltype((e)) + is E and let F be a type such that decltype((f)) + is F. The expression execution::execute(e, f) is ill-formed if F + does not model invocable, + or if E does not model either + executor or sender. Otherwise, it is expression-equivalent + to: +

+
    +
  • + e.execute(f), + if that expression is valid. If the function selected does not execute + the function object f + on the executor e, the + program is ill-formed with no diagnostic required. +
  • +
  • + Otherwise, execute(e, f), + if that expression is valid, with overload resolution performed in a + context that includes the declaration void + execute(); + and that does not include a declaration of execution::execute. + If the function selected by overload resolution does not execute the + function object f on + the executor e, the program + is ill-formed with no diagnostic required. +
  • +
+
+ + Requirements +
+

+ Header: asio/execution/execute.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__executor_index.html b/3party/asio/doc/asio/reference/execution__executor_index.html new file mode 100644 index 0000000..f7e1716 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__executor_index.html @@ -0,0 +1,95 @@ + + + +execution::executor_index + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::executor_index trait detects the + type used by an executor to represent an index within a bulk operation. +

+
template<
+    typename T>
+struct executor_index
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ T::index_type if T::index_type is valid, otherwise executor_shape_t<T>. +

+
+

+ Class template executor_index + is a type trait with a nested type alias type + whose type is T::index_type if T::index_type + is valid, otherwise executor_shape_t<T>. +

+
+ + Requirements +
+

+ Header: asio/execution/executor.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__executor_index/type.html b/3party/asio/doc/asio/reference/execution__executor_index/type.html new file mode 100644 index 0000000..9f1be01 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__executor_index/type.html @@ -0,0 +1,51 @@ + + + +execution::executor_index::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +T::index_type + if T::index_type is valid, otherwise executor_shape_t<T>. +

+
typedef automatically_determined type;
+
+
+ + Requirements +
+

+ Header: asio/execution/executor.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__executor_shape.html b/3party/asio/doc/asio/reference/execution__executor_shape.html new file mode 100644 index 0000000..4c71408 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__executor_shape.html @@ -0,0 +1,95 @@ + + + +execution::executor_shape + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::executor_shape trait detects the + type used by an executor to represent the shape of a bulk operation. +

+
template<
+    typename T>
+struct executor_shape
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ T::shape_type if T::shape_type is valid, otherwise std::size_t. +

+
+

+ Class template executor_shape + is a type trait with a nested type alias type + whose type is T::shape_type if T::shape_type + is valid, otherwise std::size_t. +

+
+ + Requirements +
+

+ Header: asio/execution/executor.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__executor_shape/type.html b/3party/asio/doc/asio/reference/execution__executor_shape/type.html new file mode 100644 index 0000000..d575f8c --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__executor_shape/type.html @@ -0,0 +1,51 @@ + + + +execution::executor_shape::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +T::shape_type + if T::shape_type is valid, otherwise std::size_t. +

+
typedef automatically_determined type;
+
+
+ + Requirements +
+

+ Header: asio/execution/executor.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__invocable_archetype.html b/3party/asio/doc/asio/reference/execution__invocable_archetype.html new file mode 100644 index 0000000..6a18bf8 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__invocable_archetype.html @@ -0,0 +1,88 @@ + + + +execution::invocable_archetype + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ An archetypal function object used for determining adherence to the execution::executor + concept. +

+
struct invocable_archetype
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+

+ Function call operator. +

+
+
+ + Requirements +
+

+ Header: asio/execution/invocable_archetype.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__invocable_archetype/operator_lp__rp_.html b/3party/asio/doc/asio/reference/execution__invocable_archetype/operator_lp__rp_.html new file mode 100644 index 0000000..a42a2ea --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__invocable_archetype/operator_lp__rp_.html @@ -0,0 +1,44 @@ + + + +execution::invocable_archetype::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Function + call operator. +

+
template<
+    typename... Args>
+void operator()(
+    Args && ...);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__is_executor.html b/3party/asio/doc/asio/reference/execution__is_executor.html new file mode 100644 index 0000000..2bfda2f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__is_executor.html @@ -0,0 +1,61 @@ + + + +execution::is_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::is_executor + trait detects whether a type T satisfies the execution::executor concept. +

+
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 concept + definition for an executor, otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/executor.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__is_executor_of.html b/3party/asio/doc/asio/reference/execution__is_executor_of.html new file mode 100644 index 0000000..60bbdfb --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__is_executor_of.html @@ -0,0 +1,64 @@ + + + +execution::is_executor_of + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::is_executor_of trait detects whether + a type T satisfies the execution::executor_of concept for some set of value + arguments. +

+
template<
+    typename T,
+    typename F>
+struct is_executor_of
+
+

+ Class template is_executor_of + is a type trait that is derived from true_type + if the type T meets the concept + definition for an executor that is invocable with a function object of type + F, otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/executor.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__is_nothrow_receiver_of.html b/3party/asio/doc/asio/reference/execution__is_nothrow_receiver_of.html new file mode 100644 index 0000000..d3c3b97 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__is_nothrow_receiver_of.html @@ -0,0 +1,67 @@ + + + +execution::is_nothrow_receiver_of + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::is_nothrow_receiver_of trait detects + whether a type T satisfies the execution::receiver_of concept for some set + of value arguments, with a noexcept set_value + operation. +

+
template<
+    typename T,
+    typename... Vs>
+struct is_nothrow_receiver_of
+
+

+ Class template is_nothrow_receiver_of + is a type trait that is derived from true_type + if the type T meets the concept + definition for a receiver for value arguments Vs, + and the expression execution::set_value(declval<T>(), + declval<Ts>()...) + is noexcept, otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/receiver.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__is_operation_state.html b/3party/asio/doc/asio/reference/execution__is_operation_state.html new file mode 100644 index 0000000..61dea2a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__is_operation_state.html @@ -0,0 +1,62 @@ + + + +execution::is_operation_state + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::is_operation_state trait detects + whether a type T satisfies the execution::operation_state concept. +

+
template<
+    typename T>
+struct is_operation_state
+
+

+ Class template is_operation_state + is a type trait that is derived from true_type + if the type T meets the concept + definition for an operation_state, + otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/operation_state.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__is_receiver.html b/3party/asio/doc/asio/reference/execution__is_receiver.html new file mode 100644 index 0000000..abcab7a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__is_receiver.html @@ -0,0 +1,63 @@ + + + +execution::is_receiver + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::is_receiver + trait detects whether a type T satisfies the execution::receiver concept. +

+
template<
+    typename T,
+    typename E = std::exception_ptr>
+struct is_receiver
+
+

+ Class template is_receiver + is a type trait that is derived from true_type + if the type T meets the concept + definition for a receiver for error type E, + otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/receiver.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__is_receiver_of.html b/3party/asio/doc/asio/reference/execution__is_receiver_of.html new file mode 100644 index 0000000..67e199f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__is_receiver_of.html @@ -0,0 +1,64 @@ + + + +execution::is_receiver_of + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::is_receiver_of trait detects whether + a type T satisfies the execution::receiver_of concept for some set of value + arguments. +

+
template<
+    typename T,
+    typename... Vs>
+struct is_receiver_of
+
+

+ Class template is_receiver_of + is a type trait that is derived from true_type + if the type T meets the concept + definition for a receiver for value arguments Vs, + otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/receiver.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__is_scheduler.html b/3party/asio/doc/asio/reference/execution__is_scheduler.html new file mode 100644 index 0000000..b18e5fa --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__is_scheduler.html @@ -0,0 +1,62 @@ + + + +execution::is_scheduler + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::is_scheduler trait detects whether + a type T satisfies the execution::scheduler concept. +

+
template<
+    typename T>
+struct is_scheduler
+
+

+ Class template is_scheduler + is a type trait that is derived from true_type + if the type T meets the concept + definition for a scheduler for error type E, + otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/scheduler.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__is_sender.html b/3party/asio/doc/asio/reference/execution__is_sender.html new file mode 100644 index 0000000..c3c9e62 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__is_sender.html @@ -0,0 +1,61 @@ + + + +execution::is_sender + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::is_sender + trait detects whether a type T satisfies the execution::sender concept. +

+
template<
+    typename T>
+struct is_sender
+
+

+ Class template is_sender + is a type trait that is derived from true_type + if the type T meets the concept + definition for a sender, otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/execution/sender.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__is_sender_to.html b/3party/asio/doc/asio/reference/execution__is_sender_to.html new file mode 100644 index 0000000..e3780c9 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__is_sender_to.html @@ -0,0 +1,62 @@ + + + +execution::is_sender_to + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::is_sender_to trait detects whether + a type T satisfies the execution::sender_to concept for some receiver. +

+
template<
+    typename T,
+    typename R>
+struct is_sender_to
+
+

+ Class template is_sender_to + is a type trait that is derived from true_type + if the type T meets the concept + definition for a sender for some receiver type R, otherwise false. +

+
+ + Requirements +
+

+ Header: asio/execution/sender.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__is_typed_sender.html b/3party/asio/doc/asio/reference/execution__is_typed_sender.html new file mode 100644 index 0000000..e68566e --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__is_typed_sender.html @@ -0,0 +1,61 @@ + + + +execution::is_typed_sender + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The execution::is_typed_sender trait detects whether + a type T satisfies the execution::typed_sender concept. +

+
template<
+    typename T>
+struct is_typed_sender
+
+

+ Class template is_typed_sender + is a type trait that is derived from true_type + if the type T meets the concept + definition for a typed sender, otherwise false. +

+
+ + Requirements +
+

+ Header: asio/execution/sender.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping.html b/3party/asio/doc/asio/reference/execution__mapping.html new file mode 100644 index 0000000..8a26ee6 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping.html @@ -0,0 +1,52 @@ + + + +execution::mapping + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A special value used for accessing the execution::mapping_t property. +

+
constexpr mapping_t mapping;
+
+
+ + Requirements +
+

+ Header: asio/execution/mapping.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t.html b/3party/asio/doc/asio/reference/execution__mapping_t.html new file mode 100644 index 0000000..3649e97 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t.html @@ -0,0 +1,309 @@ + + + +execution::mapping_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A property to describe what guarantees an executor makes about the mapping + of execution agents on to threads of execution. +

+
struct mapping_t
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ new_thread_t +

+
+

+ A sub-property that indicates that execution agents are mapped + on to new threads of execution. +

+
+

+ other_t +

+
+

+ A sub-property that indicates that the mapping of execution agents + is implementation-defined. +

+
+

+ thread_t +

+
+

+ A sub-property that indicates that execution agents are mapped + on to threads of execution. +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ mapping_t [constructor] +

+
+

+ Default constructor.

Construct from a sub-property + value. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The mapping_t property applies to executors, senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The top-level mapping_t property cannot be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The top-level mapping_t property cannot be required. +

+
+

+ new_thread [static] +

+
+

+ A special value used for accessing the mapping_t::new_thread_t + property. +

+
+

+ other [static] +

+
+

+ A special value used for accessing the mapping_t::other_t property. +

+
+

+ thread [static] +

+
+

+ A special value used for accessing the mapping_t::thread_t property. +

+
+
+ + Friends +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Compare property values for inequality. +

+
+

+ operator== +

+
+

+ Compare property values for equality. +

+
+
+ + Requirements +
+

+ Header: asio/execution/mapping.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__mapping_t/is_applicable_property_v.html new file mode 100644 index 0000000..98c271a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::mapping_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::mapping_t + property applies to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+  is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__mapping_t/is_preferable.html new file mode 100644 index 0000000..5ed6905 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::mapping_t property cannot be preferred. +

+
static constexpr bool is_preferable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__mapping_t/is_requirable.html new file mode 100644 index 0000000..83535f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::mapping_t property cannot be required. +

+
static constexpr bool is_requirable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t.html b/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t.html new file mode 100644 index 0000000..729a908 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t.html @@ -0,0 +1,57 @@ + + + +execution::mapping_t::mapping_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr mapping_t();
+  » more...
+
+

+ Construct from a sub-property value. +

+
constexpr mapping_t(
+    thread_t );
+  » more...
+
+constexpr mapping_t(
+    new_thread_t );
+  » more...
+
+constexpr mapping_t(
+    other_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload1.html b/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload1.html new file mode 100644 index 0000000..7fcfd24 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload1.html @@ -0,0 +1,40 @@ + + + +execution::mapping_t::mapping_t (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr mapping_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload2.html b/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload2.html new file mode 100644 index 0000000..ce1d05a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload2.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::mapping_t (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr mapping_t(
+    thread_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload3.html b/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload3.html new file mode 100644 index 0000000..3633a6a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload3.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::mapping_t (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr mapping_t(
+    new_thread_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload4.html b/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload4.html new file mode 100644 index 0000000..6c76efc --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/mapping_t/overload4.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::mapping_t (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr mapping_t(
+    other_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/new_thread.html b/3party/asio/doc/asio/reference/execution__mapping_t/new_thread.html new file mode 100644 index 0000000..d9518a9 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/new_thread.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::new_thread + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::mapping_t::new_thread_t property. +

+
static constexpr new_thread_t new_thread;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/operator_eq__eq_.html b/3party/asio/doc/asio/reference/execution__mapping_t/operator_eq__eq_.html new file mode 100644 index 0000000..b2378ee --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +execution::mapping_t::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for equality. +

+
friend constexpr bool operator==(
+    const mapping_t & a,
+    const mapping_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/mapping.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/operator_not__eq_.html b/3party/asio/doc/asio/reference/execution__mapping_t/operator_not__eq_.html new file mode 100644 index 0000000..29e4e46 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +execution::mapping_t::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for inequality. +

+
friend constexpr bool operator!=(
+    const mapping_t & a,
+    const mapping_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/mapping.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/other.html b/3party/asio/doc/asio/reference/execution__mapping_t/other.html new file mode 100644 index 0000000..57352bb --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/other.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A special + value used for accessing the execution::mapping_t::other_t property. +

+
static constexpr other_t other;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__mapping_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..e2a62fa --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::mapping_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef mapping_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/mapping.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t/thread.html b/3party/asio/doc/asio/reference/execution__mapping_t/thread.html new file mode 100644 index 0000000..714f249 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t/thread.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::thread + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A special + value used for accessing the execution::mapping_t::thread_t property. +

+
static constexpr thread_t thread;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t.html b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t.html new file mode 100644 index 0000000..621a44b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t.html @@ -0,0 +1,198 @@ + + + +execution::mapping_t::new_thread_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that execution agents are mapped on to new + threads of execution. +

+
struct new_thread_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ new_thread_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The mapping_t::new_thread_t property applies to executors, senders, + and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The mapping_t::new_thread_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The mapping_t::new_thread_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/mapping.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_applicable_property_v.html new file mode 100644 index 0000000..2205979 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::mapping_t::new_thread_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::mapping_t::new_thread_t property applies + to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_preferable.html new file mode 100644 index 0000000..97fbe59 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::new_thread_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::mapping_t::new_thread_t property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_requirable.html new file mode 100644 index 0000000..7e24830 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::new_thread_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::mapping_t::new_thread_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/new_thread_t.html b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/new_thread_t.html new file mode 100644 index 0000000..91d5c7c --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/new_thread_t.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::new_thread_t::new_thread_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr new_thread_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..150f2cc --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::mapping_t::new_thread_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef mapping_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/mapping.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/value.html b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/value.html new file mode 100644 index 0000000..0400fbd --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__new_thread_t/value.html @@ -0,0 +1,49 @@ + + + +execution::mapping_t::new_thread_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr mapping_t value();
+
+
+ + Return + Value +
+

+ new_thread_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__other_t.html b/3party/asio/doc/asio/reference/execution__mapping_t__other_t.html new file mode 100644 index 0000000..09ec5b3 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__other_t.html @@ -0,0 +1,197 @@ + + + +execution::mapping_t::other_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that the mapping of execution agents is implementation-defined. +

+
struct other_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The mapping_t::other_t property applies to executors, senders, + and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The mapping_t::other_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The mapping_t::other_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/mapping.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_applicable_property_v.html new file mode 100644 index 0000000..b5ab950 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::mapping_t::other_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::mapping_t::other_t property applies to executors, + senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_preferable.html new file mode 100644 index 0000000..8550ea2 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::other_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::mapping_t::other_t property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_requirable.html new file mode 100644 index 0000000..19ceebc --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::other_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::mapping_t::other_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__other_t/other_t.html b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/other_t.html new file mode 100644 index 0000000..6cd1660 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/other_t.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::other_t::other_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr other_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__other_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..9754f05 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::mapping_t::other_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef mapping_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/mapping.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__other_t/value.html b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/value.html new file mode 100644 index 0000000..890e3ff --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__other_t/value.html @@ -0,0 +1,49 @@ + + + +execution::mapping_t::other_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr mapping_t value();
+
+
+ + Return + Value +
+

+ other_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__thread_t.html b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t.html new file mode 100644 index 0000000..592e56a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t.html @@ -0,0 +1,198 @@ + + + +execution::mapping_t::thread_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that execution agents are mapped on to threads + of execution. +

+
struct thread_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ thread_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The mapping_t::thread_t property applies to executors, senders, + and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The mapping_t::thread_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The mapping_t::thread_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/mapping.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_applicable_property_v.html new file mode 100644 index 0000000..6fd009e --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::mapping_t::thread_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::mapping_t::thread_t property applies to executors, + senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_preferable.html new file mode 100644 index 0000000..ac59795 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::thread_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::mapping_t::thread_t property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_requirable.html new file mode 100644 index 0000000..85b56aa --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::thread_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::mapping_t::thread_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..cb8c449 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::mapping_t::thread_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef mapping_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/mapping.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/thread_t.html b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/thread_t.html new file mode 100644 index 0000000..d1bccb8 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/thread_t.html @@ -0,0 +1,41 @@ + + + +execution::mapping_t::thread_t::thread_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr thread_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/value.html b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/value.html new file mode 100644 index 0000000..defdda1 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__mapping_t__thread_t/value.html @@ -0,0 +1,49 @@ + + + +execution::mapping_t::thread_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr mapping_t value();
+
+
+ + Return + Value +
+

+ thread_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__occupancy.html b/3party/asio/doc/asio/reference/execution__occupancy.html new file mode 100644 index 0000000..a65d0df --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__occupancy.html @@ -0,0 +1,52 @@ + + + +execution::occupancy + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A special value used for accessing the execution::occupancy_t property. +

+
constexpr occupancy_t occupancy;
+
+
+ + Requirements +
+

+ Header: asio/execution/occupancy.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__occupancy_t.html b/3party/asio/doc/asio/reference/execution__occupancy_t.html new file mode 100644 index 0000000..ee84303 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__occupancy_t.html @@ -0,0 +1,148 @@ + + + +execution::occupancy_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A property that gives an estimate of the number of execution agents that + should occupy the associated execution context. +

+
struct occupancy_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The occupancy_t property applies to executors, senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The occupancy_t property cannot be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The occupancy_t property cannot be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/occupancy.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__occupancy_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__occupancy_t/is_applicable_property_v.html new file mode 100644 index 0000000..386b4c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__occupancy_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::occupancy_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::occupancy_t + property applies to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+  is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__occupancy_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__occupancy_t/is_preferable.html new file mode 100644 index 0000000..5061ad5 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__occupancy_t/is_preferable.html @@ -0,0 +1,42 @@ + + + +execution::occupancy_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::occupancy_t + property cannot be preferred. +

+
static constexpr bool is_preferable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__occupancy_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__occupancy_t/is_requirable.html new file mode 100644 index 0000000..e3464f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__occupancy_t/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::occupancy_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::occupancy_t + property cannot be required. +

+
static constexpr bool is_requirable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__occupancy_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__occupancy_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..65252d4 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__occupancy_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::occupancy_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef std::size_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/occupancy.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work.html b/3party/asio/doc/asio/reference/execution__outstanding_work.html new file mode 100644 index 0000000..836fa3d --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work.html @@ -0,0 +1,52 @@ + + + +execution::outstanding_work + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A special value used for accessing the execution::outstanding_work_t property. +

+
constexpr outstanding_work_t outstanding_work;
+
+
+ + Requirements +
+

+ Header: asio/execution/outstanding_work.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t.html new file mode 100644 index 0000000..b6c1879 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t.html @@ -0,0 +1,286 @@ + + + +execution::outstanding_work_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A property to describe whether task submission is likely in the future. +

+
struct outstanding_work_t
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ tracked_t +

+
+

+ A sub-property that indicates that the executor represents likely + future submission of a function object. +

+
+

+ untracked_t +

+
+

+ A sub-property that indicates that the executor does not represent + likely future submission of a function object. +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ outstanding_work_t [constructor] +

+
+

+ Default constructor.

Construct from a sub-property + value. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The outstanding_work_t property applies to executors, senders, + and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The top-level outstanding_work_t property cannot be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The top-level outstanding_work_t property cannot be required. +

+
+

+ tracked [static] +

+
+

+ A special value used for accessing the outstanding_work_t::tracked_t + property. +

+
+

+ untracked [static] +

+
+

+ A special value used for accessing the outstanding_work_t::untracked_t + property. +

+
+
+ + Friends +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Compare property values for inequality. +

+
+

+ operator== +

+
+

+ Compare property values for equality. +

+
+
+ + Requirements +
+

+ Header: asio/execution/outstanding_work.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/is_applicable_property_v.html new file mode 100644 index 0000000..832064f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::outstanding_work_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::outstanding_work_t property applies + to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+  is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/is_preferable.html new file mode 100644 index 0000000..ed09e4c --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/is_preferable.html @@ -0,0 +1,42 @@ + + + +execution::outstanding_work_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::outstanding_work_t property cannot + be preferred. +

+
static constexpr bool is_preferable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/is_requirable.html new file mode 100644 index 0000000..d1d7943 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::outstanding_work_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::outstanding_work_t property cannot + be required. +

+
static constexpr bool is_requirable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/operator_eq__eq_.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/operator_eq__eq_.html new file mode 100644 index 0000000..5ab1607 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +execution::outstanding_work_t::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for equality. +

+
friend constexpr bool operator==(
+    const outstanding_work_t & a,
+    const outstanding_work_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/outstanding_work.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/operator_not__eq_.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/operator_not__eq_.html new file mode 100644 index 0000000..55dd019 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +execution::outstanding_work_t::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for inequality. +

+
friend constexpr bool operator!=(
+    const outstanding_work_t & a,
+    const outstanding_work_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/outstanding_work.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t.html new file mode 100644 index 0000000..9e9c613 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t.html @@ -0,0 +1,53 @@ + + + +execution::outstanding_work_t::outstanding_work_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr outstanding_work_t();
+  » more...
+
+

+ Construct from a sub-property value. +

+
constexpr outstanding_work_t(
+    untracked_t );
+  » more...
+
+constexpr outstanding_work_t(
+    tracked_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload1.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload1.html new file mode 100644 index 0000000..a07522a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload1.html @@ -0,0 +1,40 @@ + + + +execution::outstanding_work_t::outstanding_work_t (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr outstanding_work_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload2.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload2.html new file mode 100644 index 0000000..e7f330d --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload2.html @@ -0,0 +1,41 @@ + + + +execution::outstanding_work_t::outstanding_work_t (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr outstanding_work_t(
+    untracked_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload3.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload3.html new file mode 100644 index 0000000..31ebab9 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/outstanding_work_t/overload3.html @@ -0,0 +1,41 @@ + + + +execution::outstanding_work_t::outstanding_work_t (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr outstanding_work_t(
+    tracked_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..8049ef1 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::outstanding_work_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef outstanding_work_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/outstanding_work.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/tracked.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/tracked.html new file mode 100644 index 0000000..f1cca19 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/tracked.html @@ -0,0 +1,41 @@ + + + +execution::outstanding_work_t::tracked + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::outstanding_work_t::tracked_t property. +

+
static constexpr tracked_t tracked;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t/untracked.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t/untracked.html new file mode 100644 index 0000000..48e933b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t/untracked.html @@ -0,0 +1,41 @@ + + + +execution::outstanding_work_t::untracked + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::outstanding_work_t::untracked_t property. +

+
static constexpr untracked_t untracked;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t.html new file mode 100644 index 0000000..7ea37d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t.html @@ -0,0 +1,198 @@ + + + +execution::outstanding_work_t::tracked_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that the executor represents likely future + submission of a function object. +

+
struct tracked_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ tracked_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The outstanding_work_t::untracked_t property applies to executors, + senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The outstanding_work_t::tracked_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The outstanding_work_t::tracked_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/outstanding_work.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_applicable_property_v.html new file mode 100644 index 0000000..b9ee0fa --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::outstanding_work_t::tracked_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::outstanding_work_t::untracked_t property applies to + executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_preferable.html new file mode 100644 index 0000000..f113434 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::outstanding_work_t::tracked_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::outstanding_work_t::tracked_t property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_requirable.html new file mode 100644 index 0000000..14fa8ff --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::outstanding_work_t::tracked_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::outstanding_work_t::tracked_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..09b54ba --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::outstanding_work_t::tracked_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef outstanding_work_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/outstanding_work.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/tracked_t.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/tracked_t.html new file mode 100644 index 0000000..da1b30a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/tracked_t.html @@ -0,0 +1,41 @@ + + + +execution::outstanding_work_t::tracked_t::tracked_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr tracked_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/value.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/value.html new file mode 100644 index 0000000..5c2d7f0 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__tracked_t/value.html @@ -0,0 +1,49 @@ + + + +execution::outstanding_work_t::tracked_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr outstanding_work_t value();
+
+
+ + Return + Value +
+

+ tracked_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t.html new file mode 100644 index 0000000..a5010a1 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t.html @@ -0,0 +1,198 @@ + + + +execution::outstanding_work_t::untracked_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that the executor does not represent likely + future submission of a function object. +

+
struct untracked_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ untracked_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The outstanding_work_t::untracked_t property applies to executors, + senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The outstanding_work_t::untracked_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The outstanding_work_t::untracked_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/outstanding_work.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_applicable_property_v.html new file mode 100644 index 0000000..39df77d --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::outstanding_work_t::untracked_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::outstanding_work_t::untracked_t property applies to + executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_preferable.html new file mode 100644 index 0000000..81e34ee --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::outstanding_work_t::untracked_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::outstanding_work_t::untracked_t property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_requirable.html new file mode 100644 index 0000000..74569cd --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::outstanding_work_t::untracked_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::outstanding_work_t::untracked_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..877de1e --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::outstanding_work_t::untracked_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef outstanding_work_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/outstanding_work.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/untracked_t.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/untracked_t.html new file mode 100644 index 0000000..bf1092d --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/untracked_t.html @@ -0,0 +1,41 @@ + + + +execution::outstanding_work_t::untracked_t::untracked_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr untracked_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/value.html b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/value.html new file mode 100644 index 0000000..0985c84 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__outstanding_work_t__untracked_t/value.html @@ -0,0 +1,49 @@ + + + +execution::outstanding_work_t::untracked_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr outstanding_work_t value();
+
+
+ + Return + Value +
+

+ untracked_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__prefer_only.html b/3party/asio/doc/asio/reference/execution__prefer_only.html new file mode 100644 index 0000000..c9da36b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__prefer_only.html @@ -0,0 +1,152 @@ + + + +execution::prefer_only + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A property adapter that is used with the polymorphic executor wrapper to + mark properties as preferable, but not requirable. +

+
template<
+    typename Property>
+struct prefer_only
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The prefer_only adapter applies to the same types as the nested + property. +

+
+

+ is_preferable [static] +

+
+

+ The context_t property can be preferred, it the underlying property + can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The context_t property cannot be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/prefer_only.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__prefer_only/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__prefer_only/is_applicable_property_v.html new file mode 100644 index 0000000..fa1466b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__prefer_only/is_applicable_property_v.html @@ -0,0 +1,43 @@ + + + +execution::prefer_only::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::prefer_only + adapter applies to the same types as the nested property. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =is_applicable_property<T, Property>::value;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__prefer_only/is_preferable.html b/3party/asio/doc/asio/reference/execution__prefer_only/is_preferable.html new file mode 100644 index 0000000..0a27ad2 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__prefer_only/is_preferable.html @@ -0,0 +1,46 @@ + + + +execution::prefer_only::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::context_t + property can be preferred, it the underlying property can be preferred. +

+
static constexpr bool is_preferable = automatically_determined;
+
+

+ true if Property::is_preferable + is true, otherwise false. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__prefer_only/is_requirable.html b/3party/asio/doc/asio/reference/execution__prefer_only/is_requirable.html new file mode 100644 index 0000000..2ffda93 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__prefer_only/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::prefer_only::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::context_t + property cannot be required. +

+
static constexpr bool is_requirable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__prefer_only/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__prefer_only/polymorphic_query_result_type.html new file mode 100644 index 0000000..b80a840 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__prefer_only/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::prefer_only::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef Property::polymorphic_query_result_type polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/prefer_only.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__receiver_invocation_error.html b/3party/asio/doc/asio/reference/execution__receiver_invocation_error.html new file mode 100644 index 0000000..ca74db0 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__receiver_invocation_error.html @@ -0,0 +1,88 @@ + + + +execution::receiver_invocation_error + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Exception reported via set_error + when an exception escapes from set_value. +

+
class receiver_invocation_error
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ receiver_invocation_error [constructor] +

+
+

+ Constructor. +

+
+
+ + Requirements +
+

+ Header: asio/execution/receiver_invocation_error.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__receiver_invocation_error/receiver_invocation_error.html b/3party/asio/doc/asio/reference/execution__receiver_invocation_error/receiver_invocation_error.html new file mode 100644 index 0000000..6d90295 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__receiver_invocation_error/receiver_invocation_error.html @@ -0,0 +1,40 @@ + + + +execution::receiver_invocation_error::receiver_invocation_error + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
receiver_invocation_error();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship.html b/3party/asio/doc/asio/reference/execution__relationship.html new file mode 100644 index 0000000..ea69d7d --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship.html @@ -0,0 +1,52 @@ + + + +execution::relationship + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A special value used for accessing the execution::relationship_t property. +

+
constexpr relationship_t relationship;
+
+
+ + Requirements +
+

+ Header: asio/execution/relationship.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t.html b/3party/asio/doc/asio/reference/execution__relationship_t.html new file mode 100644 index 0000000..5929bf0 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t.html @@ -0,0 +1,285 @@ + + + +execution::relationship_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A property to describe whether submitted tasks represent continuations of + the calling context. +

+
struct relationship_t
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ continuation_t +

+
+

+ A sub-property that indicates that the executor represents a continuation + of the calling context. +

+
+

+ fork_t +

+
+

+ A sub-property that indicates that the executor does not represent + a continuation of the calling context. +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ relationship_t [constructor] +

+
+

+ Default constructor.

Construct from a sub-property + value. +

+
+
+ + Data Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ continuation [static] +

+
+

+ A special value used for accessing the relationship_t::continuation_t + property. +

+
+

+ fork [static] +

+
+

+ A special value used for accessing the relationship_t::fork_t property. +

+
+

+ is_applicable_property_v [static] +

+
+

+ The relationship_t property applies to executors, senders, and + schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The top-level relationship_t property cannot be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The top-level relationship_t property cannot be required. +

+
+
+ + Friends +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Compare property values for inequality. +

+
+

+ operator== +

+
+

+ Compare property values for equality. +

+
+
+ + Requirements +
+

+ Header: asio/execution/relationship.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/continuation.html b/3party/asio/doc/asio/reference/execution__relationship_t/continuation.html new file mode 100644 index 0000000..449bf14 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/continuation.html @@ -0,0 +1,41 @@ + + + +execution::relationship_t::continuation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::relationship_t::continuation_t property. +

+
static constexpr continuation_t continuation;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/fork.html b/3party/asio/doc/asio/reference/execution__relationship_t/fork.html new file mode 100644 index 0000000..7e7aaa8 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/fork.html @@ -0,0 +1,41 @@ + + + +execution::relationship_t::fork + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + special value used for accessing the execution::relationship_t::fork_t property. +

+
static constexpr fork_t fork;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__relationship_t/is_applicable_property_v.html new file mode 100644 index 0000000..7a785b2 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::relationship_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::relationship_t property applies + to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+  is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__relationship_t/is_preferable.html new file mode 100644 index 0000000..dd2f3fa --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/is_preferable.html @@ -0,0 +1,42 @@ + + + +execution::relationship_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::relationship_t property cannot + be preferred. +

+
static constexpr bool is_preferable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__relationship_t/is_requirable.html new file mode 100644 index 0000000..f28b7e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::relationship_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + top-level execution::relationship_t property cannot + be required. +

+
static constexpr bool is_requirable = false;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/operator_eq__eq_.html b/3party/asio/doc/asio/reference/execution__relationship_t/operator_eq__eq_.html new file mode 100644 index 0000000..1ea92af --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +execution::relationship_t::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for equality. +

+
friend constexpr bool operator==(
+    const relationship_t & a,
+    const relationship_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/relationship.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/operator_not__eq_.html b/3party/asio/doc/asio/reference/execution__relationship_t/operator_not__eq_.html new file mode 100644 index 0000000..167aa1c --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +execution::relationship_t::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + property values for inequality. +

+
friend constexpr bool operator!=(
+    const relationship_t & a,
+    const relationship_t & b);
+
+
+ + Requirements +
+

+ Header: asio/execution/relationship.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__relationship_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..e4aaad8 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::relationship_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef relationship_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/relationship.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t.html b/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t.html new file mode 100644 index 0000000..86d8c15 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t.html @@ -0,0 +1,53 @@ + + + +execution::relationship_t::relationship_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr relationship_t();
+  » more...
+
+

+ Construct from a sub-property value. +

+
constexpr relationship_t(
+    fork_t );
+  » more...
+
+constexpr relationship_t(
+    continuation_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload1.html b/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload1.html new file mode 100644 index 0000000..6eac10b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload1.html @@ -0,0 +1,40 @@ + + + +execution::relationship_t::relationship_t (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr relationship_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload2.html b/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload2.html new file mode 100644 index 0000000..5afbf43 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload2.html @@ -0,0 +1,41 @@ + + + +execution::relationship_t::relationship_t (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr relationship_t(
+    fork_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload3.html b/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload3.html new file mode 100644 index 0000000..264e6ad --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t/relationship_t/overload3.html @@ -0,0 +1,41 @@ + + + +execution::relationship_t::relationship_t (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from a sub-property value. +

+
constexpr relationship_t(
+    continuation_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t.html b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t.html new file mode 100644 index 0000000..d35c0c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t.html @@ -0,0 +1,198 @@ + + + +execution::relationship_t::continuation_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that the executor represents a continuation + of the calling context. +

+
struct continuation_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ continuation_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The relationship_t::continuation_t property applies to executors, + senders, and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The relationship_t::continuation_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The relationship_t::continuation_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/relationship.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/continuation_t.html b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/continuation_t.html new file mode 100644 index 0000000..7a9fcdd --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/continuation_t.html @@ -0,0 +1,41 @@ + + + +execution::relationship_t::continuation_t::continuation_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr continuation_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_applicable_property_v.html new file mode 100644 index 0000000..9f61cf2 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::relationship_t::continuation_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::relationship_t::continuation_t property applies + to executors, senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_preferable.html new file mode 100644 index 0000000..4f6d243 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_preferable.html @@ -0,0 +1,42 @@ + + + +execution::relationship_t::continuation_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::relationship_t::continuation_t property can be + preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_requirable.html new file mode 100644 index 0000000..bd30b3b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/is_requirable.html @@ -0,0 +1,42 @@ + + + +execution::relationship_t::continuation_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::relationship_t::continuation_t property can be + required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..57346db --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::relationship_t::continuation_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef relationship_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/relationship.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/value.html b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/value.html new file mode 100644 index 0000000..639b7ce --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__continuation_t/value.html @@ -0,0 +1,49 @@ + + + +execution::relationship_t::continuation_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr relationship_t value();
+
+
+ + Return + Value +
+

+ continuation_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__fork_t.html b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t.html new file mode 100644 index 0000000..9578c10 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t.html @@ -0,0 +1,198 @@ + + + +execution::relationship_t::fork_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A sub-property that indicates that the executor does not represent a continuation + of the calling context. +

+
struct fork_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ polymorphic_query_result_type +

+
+

+ The type returned by queries against an any_executor. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ fork_t [constructor] +

+
+

+ Default constructor. +

+
+

+ value [static] +

+
+

+ Get the value associated with a property object. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_applicable_property_v [static] +

+
+

+ The relationship_t::fork_t property applies to executors, senders, + and schedulers. +

+
+

+ is_preferable [static] +

+
+

+ The relationship_t::fork_t property can be preferred. +

+
+

+ is_requirable [static] +

+
+

+ The relationship_t::fork_t property can be required. +

+
+
+ + Requirements +
+

+ Header: asio/execution/relationship.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/fork_t.html b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/fork_t.html new file mode 100644 index 0000000..2cd7d84 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/fork_t.html @@ -0,0 +1,41 @@ + + + +execution::relationship_t::fork_t::fork_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr fork_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_applicable_property_v.html b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_applicable_property_v.html new file mode 100644 index 0000000..5965cc5 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_applicable_property_v.html @@ -0,0 +1,44 @@ + + + +execution::relationship_t::fork_t::is_applicable_property_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::relationship_t::fork_t property applies to executors, + senders, and schedulers. +

+
template <typename T>
+static constexpr bool is_applicable_property_v =
+    is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_preferable.html b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_preferable.html new file mode 100644 index 0000000..014a3f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_preferable.html @@ -0,0 +1,41 @@ + + + +execution::relationship_t::fork_t::is_preferable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::relationship_t::fork_t property can be preferred. +

+
static constexpr bool is_preferable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_requirable.html b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_requirable.html new file mode 100644 index 0000000..7af707b --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/is_requirable.html @@ -0,0 +1,41 @@ + + + +execution::relationship_t::fork_t::is_requirable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + execution::relationship_t::fork_t property can be required. +

+
static constexpr bool is_requirable = true;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/polymorphic_query_result_type.html b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/polymorphic_query_result_type.html new file mode 100644 index 0000000..df8bfcf --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/polymorphic_query_result_type.html @@ -0,0 +1,51 @@ + + + +execution::relationship_t::fork_t::polymorphic_query_result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type returned by queries against an any_executor. +

+
typedef relationship_t polymorphic_query_result_type;
+
+
+ + Requirements +
+

+ Header: asio/execution/relationship.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/value.html b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/value.html new file mode 100644 index 0000000..171cd2a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__relationship_t__fork_t/value.html @@ -0,0 +1,49 @@ + + + +execution::relationship_t::fork_t::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the value associated with a property object. +

+
static constexpr relationship_t value();
+
+
+ + Return + Value +
+

+ fork_t(); +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__schedule.html b/3party/asio/doc/asio/reference/execution__schedule.html new file mode 100644 index 0000000..c5dde92 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__schedule.html @@ -0,0 +1,79 @@ + + + +execution::schedule + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A customisation point that is used to obtain a sender from a scheduler. +

+
constexpr unspecified schedule = unspecified;
+
+

+ The name execution::schedule denotes a customisation point + object. For some subexpression s, + let S be a type such that + decltype((s)) is + S. The expression execution::schedule(s) is expression-equivalent + to: +

+
    +
  • + s.schedule(), + if that expression is valid and its type models sender. +
  • +
  • + Otherwise, schedule(s), + if that expression is valid and its type models sender + with overload resolution performed in a context that includes the declaration + void schedule(); and that does not include a declaration + of execution::schedule. +
  • +
  • + Otherwise, S if S satisfies executor. +
  • +
  • + Otherwise, execution::schedule(s) is ill-formed. +
  • +
+
+ + Requirements +
+

+ Header: asio/execution/schedule.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__sender_base.html b/3party/asio/doc/asio/reference/execution__sender_base.html new file mode 100644 index 0000000..eaf470e --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__sender_base.html @@ -0,0 +1,52 @@ + + + +execution::sender_base + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Base class used for tagging senders. +

+
typedef unspecified sender_base;
+
+
+ + Requirements +
+

+ Header: asio/execution/sender.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__sender_traits.html b/3party/asio/doc/asio/reference/execution__sender_traits.html new file mode 100644 index 0000000..b7bfc53 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__sender_traits.html @@ -0,0 +1,54 @@ + + + +execution::sender_traits + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Traits for senders. +

+
template<
+    typename S>
+struct sender_traits
+
+
+ + Requirements +
+

+ Header: asio/execution/sender.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__set_done.html b/3party/asio/doc/asio/reference/execution__set_done.html new file mode 100644 index 0000000..79b8857 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__set_done.html @@ -0,0 +1,79 @@ + + + +execution::set_done + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A customisation point that delivers a done notification to a receiver. +

+
constexpr unspecified set_done = unspecified;
+
+

+ The name execution::set_done denotes a customisation point + object. The expression execution::set_done(R) + for some subexpression R + is expression-equivalent to: +

+
    +
  • + R.set_done(), + if that expression is valid. If the function selected does not signal + the receiver R's done + channel, the program is ill-formed with no diagnostic required. +
  • +
  • + Otherwise, set_done(R), + if that expression is valid, with overload resolution performed in a + context that includes the declaration void + set_done(); + and that does not include a declaration of execution::set_done. + If the function selected by overload resolution does not signal the receiver + R's done channel, the + program is ill-formed with no diagnostic required. +
  • +
  • + Otherwise, execution::set_done(R) is ill-formed. +
  • +
+
+ + Requirements +
+

+ Header: asio/execution/set_done.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__set_error.html b/3party/asio/doc/asio/reference/execution__set_error.html new file mode 100644 index 0000000..5b923e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__set_error.html @@ -0,0 +1,80 @@ + + + +execution::set_error + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A customisation point that delivers an error notification to a receiver. +

+
constexpr unspecified set_error = unspecified;
+
+

+ The name execution::set_error denotes a customisation point + object. The expression execution::set_error(R, + E) + for some subexpressions R + and E are expression-equivalent + to: +

+
    +
  • + R.set_error(E), + if that expression is valid. If the function selected does not send the + error E to the receiver + R's error channel, the + program is ill-formed with no diagnostic required. +
  • +
  • + Otherwise, set_error(R, E), if that expression is valid, with overload + resolution performed in a context that includes the declaration void set_error(); and that does not include a declaration + of execution::set_error. If the function selected + by overload resolution does not send the error E + to the receiver R's error + channel, the program is ill-formed with no diagnostic required. +
  • +
  • + Otherwise, execution::set_error(R, E) is ill-formed. +
  • +
+
+ + Requirements +
+

+ Header: asio/execution/set_error.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__set_value.html b/3party/asio/doc/asio/reference/execution__set_value.html new file mode 100644 index 0000000..47ce975 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__set_value.html @@ -0,0 +1,80 @@ + + + +execution::set_value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A customisation point that delivers a value to a receiver. +

+
constexpr unspecified set_value = unspecified;
+
+

+ The name execution::set_value denotes a customisation point + object. The expression execution::set_value(R, + Vs...) + for some subexpressions R + and Vs... + is expression-equivalent to: +

+
    +
  • + R.set_value(Vs...), + if that expression is valid. If the function selected does not send the + value(s) Vs... + to the receiver R's value + channel, the program is ill-formed with no diagnostic required. +
  • +
  • + Otherwise, set_value(R, Vs...), if that expression is valid, with + overload resolution performed in a context that includes the declaration + void set_value(); and that does not include a declaration + of execution::set_value. If the function selected + by overload resolution does not send the value(s) Vs... to the receiver R's + value channel, the program is ill-formed with no diagnostic required. +
  • +
  • + Otherwise, execution::set_value(R, Vs...) is ill-formed. +
  • +
+
+ + Requirements +
+

+ Header: asio/execution/set_value.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__start.html b/3party/asio/doc/asio/reference/execution__start.html new file mode 100644 index 0000000..3c83fef --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__start.html @@ -0,0 +1,75 @@ + + + +execution::start + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A customisation point that notifies an operation state object to start its + associated operation. +

+
constexpr unspecified start = unspecified;
+
+

+ The name execution::start denotes a customisation point object. + The expression execution::start(R) + for some subexpression R + is expression-equivalent to: +

+
    +
  • + R.start(), + if that expression is valid. +
  • +
  • + Otherwise, start(R), + if that expression is valid, with overload resolution performed in a + context that includes the declaration void + start(); + and that does not include a declaration of execution::start. +
  • +
  • + Otherwise, execution::start(R) is ill-formed. +
  • +
+
+ + Requirements +
+

+ Header: asio/execution/start.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution__submit.html b/3party/asio/doc/asio/reference/execution__submit.html new file mode 100644 index 0000000..9baa6c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution__submit.html @@ -0,0 +1,117 @@ + + + +execution::submit + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A customisation point that submits a sender to a receiver. +

+
constexpr unspecified submit = unspecified;
+
+

+ The name execution::submit denotes a customisation point object. + For some subexpressions s + and r, let S be a type such that decltype((s)) + is S and let R be a type such that decltype((r)) + is R. The expression execution::submit(s, r) is ill-formed if sender_to<S, + R> + is not true. Otherwise, it is + expression-equivalent to: +

+
    +
  • + s.submit(r), + if that expression is valid and S + models sender. If the + function selected does not submit the receiver object r + via the sender s, the + program is ill-formed with no diagnostic required. +
  • +
  • + Otherwise, submit(s, r), + if that expression is valid and S + models sender, with overload + resolution performed in a context that includes the declaration void submit(); and that does not include a declaration + of execution::submit. If the function selected by + overload resolution does not submit the receiver object r via the sender s, + the program is ill-formed with no diagnostic required. +
  • +
  • +

    + Otherwise, execution::start((new submit_receiver<S, R>{s,r})->state_), + where submit_receiver + is an implementation-defined class template equivalent to: +

    +
    template<class S, class R>
    +  struct submit_receiver {
    +    struct wrap {
    +      submit_receiver * p_;
    +      template<class...As>
    +        requires receiver_of<R, As...>
    +      void set_value(As&&... as) &&
    +        noexcept(is_nothrow_receiver_of_v<R, As...>) {
    +        execution::set_value(std::move(p_->r_), (As&&) as...);
    +        delete p_;
    +      }
    +      template<class E>
    +        requires receiver<R, E>
    +      void set_error(E&& e) && noexcept {
    +        execution::set_error(std::move(p_->r_), (E&&) e);
    +        delete p_;
    +      }
    +      void set_done() && noexcept {
    +        execution::set_done(std::move(p_->r_));
    +        delete p_;
    +      }
    +    };
    +    remove_cvref_t<R> r_;
    +    connect_result_t<S, wrap> state_;
    +    submit_receiver(S&& s, R&& r)
    +      : r_((R&&) r)
    +      , state_(execution::connect((S&&) s, wrap{this})) {}
    +  };
    +
    +
  • +
+
+ + Requirements +
+

+ Header: asio/execution/submit.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context.html b/3party/asio/doc/asio/reference/execution_context.html new file mode 100644 index 0000000..64f182f --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context.html @@ -0,0 +1,390 @@ + + + +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 +

+
+

+ execution_context [constructor] +

+
+

+ Constructor. +

+
+

+ notify_fork +

+
+

+ Notify the execution_context of a fork-related event. +

+
+

+ ~execution_context [destructor] +

+
+

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

+
+

+ 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/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context/_execution_context.html b/3party/asio/doc/asio/reference/execution_context/_execution_context.html new file mode 100644 index 0000000..0801056 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/_execution_context.html @@ -0,0 +1,40 @@ + + + +execution_context::~execution_context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~execution_context();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context/add_service.html b/3party/asio/doc/asio/reference/execution_context/add_service.html new file mode 100644 index 0000000..6335d4d --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/add_service.html @@ -0,0 +1,105 @@ + + + +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/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context/destroy.html b/3party/asio/doc/asio/reference/execution_context/destroy.html new file mode 100644 index 0000000..95b7d9a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/destroy.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/execution_context/execution_context.html b/3party/asio/doc/asio/reference/execution_context/execution_context.html new file mode 100644 index 0000000..a827eae --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/execution_context.html @@ -0,0 +1,40 @@ + + + +execution_context::execution_context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
execution_context();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context/fork_event.html b/3party/asio/doc/asio/reference/execution_context/fork_event.html new file mode 100644 index 0000000..131bb62 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/fork_event.html @@ -0,0 +1,67 @@ + + + +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/3party/asio/doc/asio/reference/execution_context/has_service.html b/3party/asio/doc/asio/reference/execution_context/has_service.html new file mode 100644 index 0000000..6635d0a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/has_service.html @@ -0,0 +1,82 @@ + + + +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/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context/make_service.html b/3party/asio/doc/asio/reference/execution_context/make_service.html new file mode 100644 index 0000000..34f64f1 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/make_service.html @@ -0,0 +1,91 @@ + + + +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/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context/notify_fork.html b/3party/asio/doc/asio/reference/execution_context/notify_fork.html new file mode 100644 index 0000000..ffa4371 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/notify_fork.html @@ -0,0 +1,115 @@ + + + +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/3party/asio/doc/asio/reference/execution_context/shutdown.html b/3party/asio/doc/asio/reference/execution_context/shutdown.html new file mode 100644 index 0000000..28dd083 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/shutdown.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/execution_context/use_service.html b/3party/asio/doc/asio/reference/execution_context/use_service.html new file mode 100644 index 0000000..36643af --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/use_service.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/execution_context/use_service/overload1.html b/3party/asio/doc/asio/reference/execution_context/use_service/overload1.html new file mode 100644 index 0000000..bf110d0 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/use_service/overload1.html @@ -0,0 +1,82 @@ + + + +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/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context/use_service/overload2.html b/3party/asio/doc/asio/reference/execution_context/use_service/overload2.html new file mode 100644 index 0000000..f9e6afc --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context/use_service/overload2.html @@ -0,0 +1,90 @@ + + + +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/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context__id.html b/3party/asio/doc/asio/reference/execution_context__id.html new file mode 100644 index 0000000..32c799a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context__id.html @@ -0,0 +1,87 @@ + + + +execution_context::id + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Class used to uniquely identify a service. +

+
class id :
+  noncopyable
+
+
+ + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ id [constructor] +

+
+

+ Constructor. +

+
+
+ + Requirements +
+

+ Header: asio/execution_context.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context__id/id.html b/3party/asio/doc/asio/reference/execution_context__id/id.html new file mode 100644 index 0000000..8b85081 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context__id/id.html @@ -0,0 +1,40 @@ + + + +execution_context::id::id + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
id();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context__service.html b/3party/asio/doc/asio/reference/execution_context__service.html new file mode 100644 index 0000000..2e815ac --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context__service.html @@ -0,0 +1,187 @@ + + + +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] +

+
+

+ Constructor. +

+
+

+ ~service [destructor] +

+
+

+ 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/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context__service/_service.html b/3party/asio/doc/asio/reference/execution_context__service/_service.html new file mode 100644 index 0000000..6be0ca2 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context__service/_service.html @@ -0,0 +1,40 @@ + + + +execution_context::service::~service + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
virtual ~service();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context__service/context.html b/3party/asio/doc/asio/reference/execution_context__service/context.html new file mode 100644 index 0000000..1ea2871 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context__service/context.html @@ -0,0 +1,41 @@ + + + +execution_context::service::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the context object that owns the service. +

+
execution_context & context();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/execution_context__service/notify_fork.html b/3party/asio/doc/asio/reference/execution_context__service/notify_fork.html new file mode 100644 index 0000000..5693f97 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context__service/notify_fork.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/execution_context__service/service.html b/3party/asio/doc/asio/reference/execution_context__service/service.html new file mode 100644 index 0000000..5bbb04a --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context__service/service.html @@ -0,0 +1,55 @@ + + + +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/3party/asio/doc/asio/reference/execution_context__service/shutdown.html b/3party/asio/doc/asio/reference/execution_context__service/shutdown.html new file mode 100644 index 0000000..9cb43b3 --- /dev/null +++ b/3party/asio/doc/asio/reference/execution_context__service/shutdown.html @@ -0,0 +1,41 @@ + + + +execution_context::service::shutdown + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destroy + all user-defined handler objects owned by the service. +

+
void shutdown();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor.html b/3party/asio/doc/asio/reference/executor.html new file mode 100644 index 0000000..a9ea326 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor.html @@ -0,0 +1,331 @@ + + + +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 + [constructor] +

+
+

+ 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 [static] +

+
+
+

+ ~executor + [destructor] +

+
+

+ 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/3party/asio/doc/asio/reference/executor/_executor.html b/3party/asio/doc/asio/reference/executor/_executor.html new file mode 100644 index 0000000..8bbbe8f --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/_executor.html @@ -0,0 +1,40 @@ + + + +executor::~executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor/context.html b/3party/asio/doc/asio/reference/executor/context.html new file mode 100644 index 0000000..00e26d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/context.html @@ -0,0 +1,41 @@ + + + +executor::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain the underlying execution + context. +

+
execution_context & context() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor/defer.html b/3party/asio/doc/asio/reference/executor/defer.html new file mode 100644 index 0000000..ef69c02 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/defer.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/executor/dispatch.html b/3party/asio/doc/asio/reference/executor/dispatch.html new file mode 100644 index 0000000..18e86d1 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/dispatch.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/executor/executor.html b/3party/asio/doc/asio/reference/executor/executor.html new file mode 100644 index 0000000..7c0e810 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/executor.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/executor/executor/overload1.html b/3party/asio/doc/asio/reference/executor/executor/overload1.html new file mode 100644 index 0000000..32e30ef --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/executor/overload1.html @@ -0,0 +1,40 @@ + + + +executor::executor (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor/executor/overload2.html b/3party/asio/doc/asio/reference/executor/executor/overload2.html new file mode 100644 index 0000000..83e50e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/executor/overload2.html @@ -0,0 +1,41 @@ + + + +executor::executor (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct from nullptr. +

+
executor(
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor/executor/overload3.html b/3party/asio/doc/asio/reference/executor/executor/overload3.html new file mode 100644 index 0000000..2bd68f1 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/executor/overload3.html @@ -0,0 +1,41 @@ + + + +executor::executor (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
executor(
+    const executor & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor/executor/overload4.html b/3party/asio/doc/asio/reference/executor/executor/overload4.html new file mode 100644 index 0000000..714b11c --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/executor/overload4.html @@ -0,0 +1,41 @@ + + + +executor::executor (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
executor(
+    executor && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor/executor/overload5.html b/3party/asio/doc/asio/reference/executor/executor/overload5.html new file mode 100644 index 0000000..162b397 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/executor/overload5.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/executor/executor/overload6.html b/3party/asio/doc/asio/reference/executor/executor/overload6.html new file mode 100644 index 0000000..cc79030 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/executor/overload6.html @@ -0,0 +1,47 @@ + + + +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/3party/asio/doc/asio/reference/executor/on_work_finished.html b/3party/asio/doc/asio/reference/executor/on_work_finished.html new file mode 100644 index 0000000..097d85e --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/on_work_finished.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/executor/on_work_started.html b/3party/asio/doc/asio/reference/executor/on_work_started.html new file mode 100644 index 0000000..cb18c14 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/on_work_started.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/executor/operator_eq_.html b/3party/asio/doc/asio/reference/executor/operator_eq_.html new file mode 100644 index 0000000..447aee6 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/operator_eq_.html @@ -0,0 +1,64 @@ + + + +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/3party/asio/doc/asio/reference/executor/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/executor/operator_eq_/overload1.html new file mode 100644 index 0000000..67fce4e --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +executor::operator= (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator. +

+
executor & operator=(
+    const executor & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/executor/operator_eq_/overload2.html new file mode 100644 index 0000000..7277440 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/operator_eq_/overload2.html @@ -0,0 +1,38 @@ + + + +executor::operator= (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
executor & operator=(
+    executor && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor/operator_eq_/overload3.html b/3party/asio/doc/asio/reference/executor/operator_eq_/overload3.html new file mode 100644 index 0000000..079d393 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/operator_eq_/overload3.html @@ -0,0 +1,41 @@ + + + +executor::operator= (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator for nullptr_t. +

+
executor & operator=(
+    nullptr_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor/operator_eq_/overload4.html b/3party/asio/doc/asio/reference/executor/operator_eq_/overload4.html new file mode 100644 index 0000000..01aea0e --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/operator_eq_/overload4.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/executor/operator_eq__eq_.html b/3party/asio/doc/asio/reference/executor/operator_eq__eq_.html new file mode 100644 index 0000000..f831283 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/executor/operator_not__eq_.html b/3party/asio/doc/asio/reference/executor/operator_not__eq_.html new file mode 100644 index 0000000..a9a4984 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/executor/operator_unspecified_bool_type.html b/3party/asio/doc/asio/reference/executor/operator_unspecified_bool_type.html new file mode 100644 index 0000000..775c1a3 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/operator_unspecified_bool_type.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/executor/post.html b/3party/asio/doc/asio/reference/executor/post.html new file mode 100644 index 0000000..46db075 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/post.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/executor/target.html b/3party/asio/doc/asio/reference/executor/target.html new file mode 100644 index 0000000..c802bfd --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/target.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/executor/target/overload1.html b/3party/asio/doc/asio/reference/executor/target/overload1.html new file mode 100644 index 0000000..d3dcf43 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/target/overload1.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/executor/target/overload2.html b/3party/asio/doc/asio/reference/executor/target/overload2.html new file mode 100644 index 0000000..8c44955 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/target/overload2.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/executor/target_type.html b/3party/asio/doc/asio/reference/executor/target_type.html new file mode 100644 index 0000000..844e2da --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/target_type.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/executor/unspecified_bool_true.html b/3party/asio/doc/asio/reference/executor/unspecified_bool_true.html new file mode 100644 index 0000000..0917733 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/unspecified_bool_true.html @@ -0,0 +1,40 @@ + + + +executor::unspecified_bool_true + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
static void unspecified_bool_true(
+    unspecified_bool_type_t );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor/unspecified_bool_type.html b/3party/asio/doc/asio/reference/executor/unspecified_bool_type.html new file mode 100644 index 0000000..aabee6b --- /dev/null +++ b/3party/asio/doc/asio/reference/executor/unspecified_bool_type.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/executor__unspecified_bool_type_t.html b/3party/asio/doc/asio/reference/executor__unspecified_bool_type_t.html new file mode 100644 index 0000000..b64d45d --- /dev/null +++ b/3party/asio/doc/asio/reference/executor__unspecified_bool_type_t.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/executor_arg.html b/3party/asio/doc/asio/reference/executor_arg.html new file mode 100644 index 0000000..304ecc7 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_arg.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/executor_arg_t.html b/3party/asio/doc/asio/reference/executor_arg_t.html new file mode 100644 index 0000000..6fe2964 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_arg_t.html @@ -0,0 +1,96 @@ + + + +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] +

+
+

+ 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/3party/asio/doc/asio/reference/executor_arg_t/executor_arg_t.html b/3party/asio/doc/asio/reference/executor_arg_t/executor_arg_t.html new file mode 100644 index 0000000..9efcd28 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_arg_t/executor_arg_t.html @@ -0,0 +1,40 @@ + + + +executor_arg_t::executor_arg_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
constexpr executor_arg_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor_binder.html b/3party/asio/doc/asio/reference/executor_binder.html new file mode 100644 index 0000000..e1a9889 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder.html @@ -0,0 +1,243 @@ + + + +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 [constructor] +

+
+

+ 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] +

+
+

+ Destructor. +

+
+
+ + Requirements +
+

+ Header: asio/bind_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor_binder/_executor_binder.html b/3party/asio/doc/asio/reference/executor_binder/_executor_binder.html new file mode 100644 index 0000000..f17d248 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/_executor_binder.html @@ -0,0 +1,40 @@ + + + +executor_binder::~executor_binder + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~executor_binder();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor_binder/argument_type.html b/3party/asio/doc/asio/reference/executor_binder/argument_type.html new file mode 100644 index 0000000..2fca2f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/argument_type.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/executor_binder.html b/3party/asio/doc/asio/reference/executor_binder/executor_binder.html new file mode 100644 index 0000000..7131e7b --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/executor_binder.html @@ -0,0 +1,125 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload1.html b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload1.html new file mode 100644 index 0000000..6339d80 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload1.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload2.html b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload2.html new file mode 100644 index 0000000..d8ea14b --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload2.html @@ -0,0 +1,41 @@ + + + +executor_binder::executor_binder (2 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
executor_binder(
+    const executor_binder & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload3.html b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload3.html new file mode 100644 index 0000000..61dd9e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload3.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload4.html b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload4.html new file mode 100644 index 0000000..1ec0fe9 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload4.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload5.html b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload5.html new file mode 100644 index 0000000..7ddc00d --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload5.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload6.html b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload6.html new file mode 100644 index 0000000..839da9b --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload6.html @@ -0,0 +1,41 @@ + + + +executor_binder::executor_binder (6 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
executor_binder(
+    executor_binder && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload7.html b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload7.html new file mode 100644 index 0000000..6cc90bf --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload7.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload8.html b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload8.html new file mode 100644 index 0000000..3cf705f --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload8.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload9.html b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload9.html new file mode 100644 index 0000000..329f0c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/executor_binder/overload9.html @@ -0,0 +1,47 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/executor_type.html b/3party/asio/doc/asio/reference/executor_binder/executor_type.html new file mode 100644 index 0000000..dc15743 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/executor_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/first_argument_type.html b/3party/asio/doc/asio/reference/executor_binder/first_argument_type.html new file mode 100644 index 0000000..5e197ac --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/first_argument_type.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/get.html b/3party/asio/doc/asio/reference/executor_binder/get.html new file mode 100644 index 0000000..d422e3c --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/get.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/get/overload1.html b/3party/asio/doc/asio/reference/executor_binder/get/overload1.html new file mode 100644 index 0000000..b8b5ef9 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/get/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/get/overload2.html b/3party/asio/doc/asio/reference/executor_binder/get/overload2.html new file mode 100644 index 0000000..4e4f7b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/get/overload2.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/get_executor.html b/3party/asio/doc/asio/reference/executor_binder/get_executor.html new file mode 100644 index 0000000..5cb075f --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/get_executor.html @@ -0,0 +1,41 @@ + + + +executor_binder::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the associated executor. +

+
executor_type get_executor() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_.html b/3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_.html new file mode 100644 index 0000000..faa293c --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload1.html b/3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload1.html new file mode 100644 index 0000000..313ff66 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload1.html @@ -0,0 +1,40 @@ + + + +executor_binder::operator() (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename... Args>
+auto operator()(
+    Args && ...);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload2.html b/3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload2.html new file mode 100644 index 0000000..7a7d078 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload2.html @@ -0,0 +1,40 @@ + + + +executor_binder::operator() (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename... Args>
+auto operator()(
+    Args && ...) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor_binder/result_type.html b/3party/asio/doc/asio/reference/executor_binder/result_type.html new file mode 100644 index 0000000..e1e2a7c --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/result_type.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/second_argument_type.html b/3party/asio/doc/asio/reference/executor_binder/second_argument_type.html new file mode 100644 index 0000000..5f54348 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/second_argument_type.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/executor_binder/target_type.html b/3party/asio/doc/asio/reference/executor_binder/target_type.html new file mode 100644 index 0000000..208738b --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_binder/target_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/executor_work_guard.html b/3party/asio/doc/asio/reference/executor_work_guard.html new file mode 100644 index 0000000..90ef1ab --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_work_guard.html @@ -0,0 +1,175 @@ + + + +executor_work_guard + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ An object of type executor_work_guard + controls ownership of outstanding 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 [constructor] +

+
+

+ 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] +

+
+

+ Destructor. +

+
+
+ + Requirements +
+

+ Header: asio/executor_work_guard.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor_work_guard/_executor_work_guard.html b/3party/asio/doc/asio/reference/executor_work_guard/_executor_work_guard.html new file mode 100644 index 0000000..8b4c3d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_work_guard/_executor_work_guard.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/executor_work_guard/executor_type.html b/3party/asio/doc/asio/reference/executor_work_guard/executor_type.html new file mode 100644 index 0000000..8b03da9 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_work_guard/executor_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard.html b/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard.html new file mode 100644 index 0000000..de64078 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload1.html b/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload1.html new file mode 100644 index 0000000..282700e --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload1.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload2.html b/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload2.html new file mode 100644 index 0000000..64b81b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload3.html b/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload3.html new file mode 100644 index 0000000..c3671e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/executor_work_guard/get_executor.html b/3party/asio/doc/asio/reference/executor_work_guard/get_executor.html new file mode 100644 index 0000000..64a11e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_work_guard/get_executor.html @@ -0,0 +1,41 @@ + + + +executor_work_guard::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the associated executor. +

+
executor_type get_executor() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/executor_work_guard/owns_work.html b/3party/asio/doc/asio/reference/executor_work_guard/owns_work.html new file mode 100644 index 0000000..ecdb078 --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_work_guard/owns_work.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/executor_work_guard/reset.html b/3party/asio/doc/asio/reference/executor_work_guard/reset.html new file mode 100644 index 0000000..79137cf --- /dev/null +++ b/3party/asio/doc/asio/reference/executor_work_guard/reset.html @@ -0,0 +1,45 @@ + + + +executor_work_guard::reset + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Indicate + that the work is no longer outstanding. +

+
void reset();
+
+

+ 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/3party/asio/doc/asio/reference/experimental__as_single.html b/3party/asio/doc/asio/reference/experimental__as_single.html new file mode 100644 index 0000000..923d4d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single.html @@ -0,0 +1,57 @@ + + + +experimental::as_single + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Adapt a completion + token to specify that the completion handler arguments should be combined + into a single argument. +

+
template<
+    typename CompletionToken>
+constexpr as_single_t< typename decay< CompletionToken >::type > as_single(
+    CompletionToken && completion_token);
+
+
+ + Requirements +
+

+ Header: asio/experimental/as_single.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t.html b/3party/asio/doc/asio/reference/experimental__as_single_t.html new file mode 100644 index 0000000..602b760 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t.html @@ -0,0 +1,195 @@ + + + +experimental::as_single_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + adapter used to specify that the completion handler arguments should be combined + into a single argument. +

+
template<
+    typename CompletionToken>
+class as_single_t
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_constructor_tag +

+
+

+ Tag type used to prevent the "default" constructor from + being used for conversions. +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the as_single_t completion token as the + default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use as_single_t as its + default completion token type. +

+
+

+ as_single_t [constructor] +

+
+

+ Default constructor.

Constructor. +

+
+
+ + Data Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ token_ +

+
+
+

+ The experimental::as_single_t class is used to indicate + that any arguments to the completion handler should be combined and passed + as a single argument. If there is already one argument, that argument is + passed as-is. If there is more than argument, the arguments are first moved + into a std::tuple and that tuple is then passed to + the completion handler. +

+
+ + Requirements +
+

+ Header: asio/experimental/as_single.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t/as_default_on.html b/3party/asio/doc/asio/reference/experimental__as_single_t/as_default_on.html new file mode 100644 index 0000000..b274c49 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t/as_default_on.html @@ -0,0 +1,45 @@ + + + +experimental::as_single_t::as_default_on + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Function + helper to adapt an I/O object to use as_single_t + as its default completion token type. +

+
template<
+    typename T>
+static decay< T >::type::template rebind_executor< executor_with_default< typename decay< T >::type::executor_type > >::other as_default_on(
+    T && object);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t.html b/3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t.html new file mode 100644 index 0000000..325155c --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t.html @@ -0,0 +1,53 @@ + + + +experimental::as_single_t::as_single_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr as_single_t(
+    default_constructor_tag  = default_constructor_tag(),
+    CompletionToken token = CompletionToken());
+  » more...
+
+

+ Constructor. +

+
template<
+    typename T>
+explicit constexpr as_single_t(
+    T && completion_token);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t/overload1.html b/3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t/overload1.html new file mode 100644 index 0000000..87cf4ce --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t/overload1.html @@ -0,0 +1,48 @@ + + + +experimental::as_single_t::as_single_t (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr as_single_t(
+    default_constructor_tag  = default_constructor_tag(),
+    CompletionToken token = CompletionToken());
+
+

+ This constructor is only valid if the underlying completion token is + default constructible and move constructible. The underlying completion + token is itself defaulted as an argument to allow it to capture a source + location. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t/overload2.html b/3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t/overload2.html new file mode 100644 index 0000000..cffa2cc --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t/as_single_t/overload2.html @@ -0,0 +1,43 @@ + + + +experimental::as_single_t::as_single_t (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor. +

+
template<
+    typename T>
+constexpr as_single_t(
+    T && completion_token);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t/token_.html b/3party/asio/doc/asio/reference/experimental__as_single_t/token_.html new file mode 100644 index 0000000..a9d4504 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t/token_.html @@ -0,0 +1,39 @@ + + + +experimental::as_single_t::token_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
CompletionToken token_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t__default_constructor_tag.html b/3party/asio/doc/asio/reference/experimental__as_single_t__default_constructor_tag.html new file mode 100644 index 0000000..1905703 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t__default_constructor_tag.html @@ -0,0 +1,53 @@ + + + +experimental::as_single_t::default_constructor_tag + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Tag type used to prevent the "default" constructor from being used + for conversions. +

+
struct default_constructor_tag
+
+
+ + Requirements +
+

+ Header: asio/experimental/as_single.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default.html b/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default.html new file mode 100644 index 0000000..04976e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default.html @@ -0,0 +1,126 @@ + + + +experimental::as_single_t::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Adapts an executor to add the as_single_t + completion token as the default. +

+
template<
+    typename InnerExecutor>
+struct executor_with_default
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_completion_token_type +

+
+

+ Specify as_single_t as the default completion token type. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default [constructor] +

+
+

+ Construct the adapted executor from the inner executor type.
+
Convert the specified executor to the inner executor type, + then use that to construct the adapted executor. +

+
+
+ + Requirements +
+

+ Header: asio/experimental/as_single.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/default_completion_token_type.html b/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/default_completion_token_type.html new file mode 100644 index 0000000..68fdb8b --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/default_completion_token_type.html @@ -0,0 +1,192 @@ + + + +experimental::as_single_t::executor_with_default::default_completion_token_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Specify + as_single_t as the default + completion token type. +

+
typedef as_single_t default_completion_token_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_constructor_tag +

+
+

+ Tag type used to prevent the "default" constructor + from being used for conversions. +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the as_single_t completion token as + the default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use as_single_t as + its default completion token type. +

+
+

+ as_single_t [constructor] +

+
+

+ Default constructor.

Constructor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ token_ +

+
+
+

+ The experimental::as_single_t class is used to indicate + that any arguments to the completion handler should be combined and passed + as a single argument. If there is already one argument, that argument is + passed as-is. If there is more than argument, the arguments are first moved + into a std::tuple and that tuple is then passed to + the completion handler. +

+
+ + Requirements +
+

+ Header: asio/experimental/as_single.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default.html b/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default.html new file mode 100644 index 0000000..108e2b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default.html @@ -0,0 +1,54 @@ + + + +experimental::as_single_t::executor_with_default::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + the adapted executor from the inner executor type. +

+
executor_with_default(
+    const InnerExecutor & ex);
+  » more...
+
+

+ Convert the specified executor to the inner executor type, then use that + to construct the adapted executor. +

+
template<
+    typename OtherExecutor>
+executor_with_default(
+    const OtherExecutor & ex,
+    typename constraint< is_convertible< OtherExecutor, InnerExecutor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload1.html b/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload1.html new file mode 100644 index 0000000..03ed51a --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload1.html @@ -0,0 +1,41 @@ + + + +experimental::as_single_t::executor_with_default::executor_with_default (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct the adapted executor from the inner executor type. +

+
executor_with_default(
+    const InnerExecutor & ex);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload2.html b/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload2.html new file mode 100644 index 0000000..ef5f849 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload2.html @@ -0,0 +1,45 @@ + + + +experimental::as_single_t::executor_with_default::executor_with_default (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Convert the specified executor to the inner executor type, then use that + to construct the adapted executor. +

+
template<
+    typename OtherExecutor>
+executor_with_default(
+    const OtherExecutor & ex,
+    typename constraint< is_convertible< OtherExecutor, InnerExecutor >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_.html new file mode 100644 index 0000000..f92481c --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_.html @@ -0,0 +1,100 @@ + + + +experimental::awaitable_operators::operator && + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Wait for both operations to succeed. +

+
template<
+    typename Executor>
+awaitable< void, Executor > operator &&(
+    awaitable< void, Executor > t,
+    awaitable< void, Executor > u);
+  » more...
+
+template<
+    typename U,
+    typename Executor>
+awaitable< U, Executor > operator &&(
+    awaitable< void, Executor > t,
+    awaitable< U, Executor > u);
+  » more...
+
+template<
+    typename T,
+    typename Executor>
+awaitable< T, Executor > operator &&(
+    awaitable< T, Executor > t,
+    awaitable< void, Executor > u);
+  » more...
+
+template<
+    typename T,
+    typename U,
+    typename Executor>
+awaitable< std::tuple< T, U >, Executor > operator &&(
+    awaitable< T, Executor > t,
+    awaitable< U, Executor > u);
+  » more...
+
+template<
+    typename... T,
+    typename Executor>
+awaitable< std::tuple< T..., std::monostate >, Executor > operator &&(
+    awaitable< std::tuple< T...>, Executor > t,
+    awaitable< void, Executor > u);
+  » more...
+
+template<
+    typename... T,
+    typename U,
+    typename Executor>
+awaitable< std::tuple< T..., U >, Executor > operator &&(
+    awaitable< std::tuple< T...>, Executor > t,
+    awaitable< U, Executor > u);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/experimental/awaitable_operators.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload1.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload1.html new file mode 100644 index 0000000..7682dcb --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload1.html @@ -0,0 +1,48 @@ + + + +experimental::awaitable_operators::operator && (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for both operations to succeed. +

+
template<
+    typename Executor>
+awaitable< void, Executor > operator &&(
+    awaitable< void, Executor > t,
+    awaitable< void, Executor > u);
+
+

+ If one operations fails, the other is cancelled as the AND-condition can + no longer be satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload2.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload2.html new file mode 100644 index 0000000..0be4365 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload2.html @@ -0,0 +1,49 @@ + + + +experimental::awaitable_operators::operator && (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for both operations to succeed. +

+
template<
+    typename U,
+    typename Executor>
+awaitable< U, Executor > operator &&(
+    awaitable< void, Executor > t,
+    awaitable< U, Executor > u);
+
+

+ If one operations fails, the other is cancelled as the AND-condition can + no longer be satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload3.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload3.html new file mode 100644 index 0000000..97d842b --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload3.html @@ -0,0 +1,49 @@ + + + +experimental::awaitable_operators::operator && (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for both operations to succeed. +

+
template<
+    typename T,
+    typename Executor>
+awaitable< T, Executor > operator &&(
+    awaitable< T, Executor > t,
+    awaitable< void, Executor > u);
+
+

+ If one operations fails, the other is cancelled as the AND-condition can + no longer be satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload4.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload4.html new file mode 100644 index 0000000..0d9132b --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload4.html @@ -0,0 +1,50 @@ + + + +experimental::awaitable_operators::operator && (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for both operations to succeed. +

+
template<
+    typename T,
+    typename U,
+    typename Executor>
+awaitable< std::tuple< T, U >, Executor > operator &&(
+    awaitable< T, Executor > t,
+    awaitable< U, Executor > u);
+
+

+ If one operations fails, the other is cancelled as the AND-condition can + no longer be satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload5.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload5.html new file mode 100644 index 0000000..3907936 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload5.html @@ -0,0 +1,49 @@ + + + +experimental::awaitable_operators::operator && (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for both operations to succeed. +

+
template<
+    typename... T,
+    typename Executor>
+awaitable< std::tuple< T..., std::monostate >, Executor > operator &&(
+    awaitable< std::tuple< T...>, Executor > t,
+    awaitable< void, Executor > u);
+
+

+ If one operations fails, the other is cancelled as the AND-condition can + no longer be satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload6.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload6.html new file mode 100644 index 0000000..5a27f8f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload6.html @@ -0,0 +1,50 @@ + + + +experimental::awaitable_operators::operator && (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for both operations to succeed. +

+
template<
+    typename... T,
+    typename U,
+    typename Executor>
+awaitable< std::tuple< T..., U >, Executor > operator &&(
+    awaitable< std::tuple< T...>, Executor > t,
+    awaitable< U, Executor > u);
+
+

+ If one operations fails, the other is cancelled as the AND-condition can + no longer be satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_.html new file mode 100644 index 0000000..adde7e4 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_.html @@ -0,0 +1,99 @@ + + + +experimental::awaitable_operators::operator|| + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Wait for one operation to succeed. +

+
template<
+    typename Executor>
+awaitable< std::variant< std::monostate, std::monostate >, Executor > operator||(
+    awaitable< void, Executor > t,
+    awaitable< void, Executor > u);
+  » more...
+
+template<
+    typename U,
+    typename Executor>
+awaitable< std::variant< std::monostate, U >, Executor > operator||(
+    awaitable< void, Executor > t,
+    awaitable< U, Executor > u);
+  » more...
+
+template<
+    typename T,
+    typename Executor>
+awaitable< std::variant< T, std::monostate >, Executor > operator||(
+    awaitable< T, Executor > t,
+    awaitable< void, Executor > u);
+  » more...
+
+template<
+    typename T,
+    typename U,
+    typename Executor>
+awaitable< std::variant< T, U >, Executor > operator||(
+    awaitable< T, Executor > t,
+    awaitable< U, Executor > u);
+  » more...
+
+template<
+    typename... T,
+    typename Executor>
+awaitable< std::variant< T..., std::monostate >, Executor > operator||(
+    awaitable< std::variant< T...>, Executor > t,
+    awaitable< void, Executor > u);
+  » more...
+
+template<
+    typename... T,
+    typename U,
+    typename Executor>
+awaitable< std::variant< T..., U >, Executor > operator||(
+    awaitable< std::variant< T...>, Executor > t,
+    awaitable< U, Executor > u);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/experimental/awaitable_operators.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload1.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload1.html new file mode 100644 index 0000000..5ea3d76 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload1.html @@ -0,0 +1,48 @@ + + + +experimental::awaitable_operators::operator|| (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for one operation to succeed. +

+
template<
+    typename Executor>
+awaitable< std::variant< std::monostate, std::monostate >, Executor > operator||(
+    awaitable< void, Executor > t,
+    awaitable< void, Executor > u);
+
+

+ If one operations succeeds, the other is cancelled as the OR-condition + is already satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload2.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload2.html new file mode 100644 index 0000000..1a7d489 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload2.html @@ -0,0 +1,49 @@ + + + +experimental::awaitable_operators::operator|| (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for one operation to succeed. +

+
template<
+    typename U,
+    typename Executor>
+awaitable< std::variant< std::monostate, U >, Executor > operator||(
+    awaitable< void, Executor > t,
+    awaitable< U, Executor > u);
+
+

+ If one operations succeeds, the other is cancelled as the OR-condition + is already satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload3.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload3.html new file mode 100644 index 0000000..b7dbefe --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload3.html @@ -0,0 +1,49 @@ + + + +experimental::awaitable_operators::operator|| (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for one operation to succeed. +

+
template<
+    typename T,
+    typename Executor>
+awaitable< std::variant< T, std::monostate >, Executor > operator||(
+    awaitable< T, Executor > t,
+    awaitable< void, Executor > u);
+
+

+ If one operations succeeds, the other is cancelled as the OR-condition + is already satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload4.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload4.html new file mode 100644 index 0000000..24c14e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload4.html @@ -0,0 +1,50 @@ + + + +experimental::awaitable_operators::operator|| (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for one operation to succeed. +

+
template<
+    typename T,
+    typename U,
+    typename Executor>
+awaitable< std::variant< T, U >, Executor > operator||(
+    awaitable< T, Executor > t,
+    awaitable< U, Executor > u);
+
+

+ If one operations succeeds, the other is cancelled as the OR-condition + is already satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload5.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload5.html new file mode 100644 index 0000000..8c77bb5 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload5.html @@ -0,0 +1,49 @@ + + + +experimental::awaitable_operators::operator|| (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for one operation to succeed. +

+
template<
+    typename... T,
+    typename Executor>
+awaitable< std::variant< T..., std::monostate >, Executor > operator||(
+    awaitable< std::variant< T...>, Executor > t,
+    awaitable< void, Executor > u);
+
+

+ If one operations succeeds, the other is cancelled as the OR-condition + is already satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload6.html b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload6.html new file mode 100644 index 0000000..f9f6fcd --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload6.html @@ -0,0 +1,50 @@ + + + +experimental::awaitable_operators::operator|| (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Wait for one operation to succeed. +

+
template<
+    typename... T,
+    typename U,
+    typename Executor>
+awaitable< std::variant< T..., U >, Executor > operator||(
+    awaitable< std::variant< T...>, Executor > t,
+    awaitable< U, Executor > u);
+
+

+ If one operations succeeds, the other is cancelled as the OR-condition + is already satisfied. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel.html b/3party/asio/doc/asio/reference/experimental__basic_channel.html new file mode 100644 index 0000000..3573d73 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel.html @@ -0,0 +1,395 @@ + + + +experimental::basic_channel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A channel for messages. +

+
template<
+    typename Executor,
+    typename Traits,
+    typename... Signatures>
+class basic_channel
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the channel type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the channel. +

+
+

+ traits_type +

+
+

+ The traits type associated with the channel. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ async_receive +

+
+

+ Asynchronously receive a message. +

+
+

+ async_send +

+
+

+ Asynchronously send a message. +

+
+

+ basic_channel [constructor] +

+
+

+ Construct a basic_channel.

Construct and open a basic_channel. +

Move-construct a basic_channel from another. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations waiting on the channel. +

+
+

+ capacity +

+
+

+ Get the capacity of the channel's buffer. +

+
+

+ close +

+
+

+ Close the channel. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the channel is open. +

+
+

+ operator= +

+
+

+ Move-assign a basic_channel from another. +

+
+

+ ready +

+
+

+ Determine whether a message can be received without blocking. +

+
+

+ reset +

+
+

+ Reset the channel to its initial state. +

+
+

+ try_receive +

+
+

+ Try to receive a message without blocking. +

+
+

+ try_send +

+
+

+ Try to send a message without blocking. +

+
+

+ try_send_n +

+
+

+ Try to send a number of messages without blocking. +

+
+

+ ~basic_channel [destructor] +

+
+

+ Destructor. +

+
+

+ The experimental::basic_channel class template is + used for sending messages between different parts of the same application. + A message is defined as a collection of arguments to + be passed to a completion handler, and the set of messages supported by a + channel is specified by its Traits + and Signatures... + template parameters. Messages may be sent and received using asynchronous + or non-blocking synchronous operations. +

+

+ Unless customising the traits, applications will typically use the experimental::channel alias template. For example: +

+
void send_loop(int i, steady_timer& timer,
+    channel<void(error_code, int)>& ch)
+{
+  if (i < 10)
+  {
+    timer.expires_after(chrono::seconds(1));
+    timer.async_wait(
+        [i, &timer, &ch](error_code error)
+        {
+          if (!error)
+          {
+            ch.async_send(error_code(), i,
+                [i, &timer, &ch](error_code error)
+                {
+                  if (!error)
+                  {
+                    send_loop(i + 1, timer, ch);
+                  }
+                });
+          }
+        });
+  }
+  else
+  {
+    ch.close();
+  }
+}
+
+void receive_loop(channel<void(error_code, int)>& ch)
+{
+  ch.async_receive(
+      [&ch](error_code error, int i)
+      {
+        if (!error)
+        {
+          std::cout << "Received " << i << "\n";
+          receive_loop(ch);
+        }
+      });
+}
+
+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+

+ The experimental::basic_channel class template is + not thread-safe, and would typically be used for passing messages between + application code that runs on the same thread or in the same strand. Consider + using experimental::basic_concurrent_channel, and its + alias template experimental::concurrent_channel, + to pass messages between code running in different threads. +

+
+ + Requirements +
+

+ Header: asio/experimental/basic_channel.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/_basic_channel.html b/3party/asio/doc/asio/reference/experimental__basic_channel/_basic_channel.html new file mode 100644 index 0000000..f74743a --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/_basic_channel.html @@ -0,0 +1,40 @@ + + + +experimental::basic_channel::~basic_channel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~basic_channel();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/async_receive.html b/3party/asio/doc/asio/reference/experimental__basic_channel/async_receive.html new file mode 100644 index 0000000..8234900 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/async_receive.html @@ -0,0 +1,52 @@ + + + +experimental::basic_channel::async_receive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Asynchronously + receive a message. +

+
template<
+    typename CompletionToken = DEFAULT>
+auto async_receive(
+    CompletionToken && token = DEFAULT);
+
+
+ + Completion + Signature +
+

+ As determined by the Signatures... template parameter and the channel traits. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/async_send.html b/3party/asio/doc/asio/reference/experimental__basic_channel/async_send.html new file mode 100644 index 0000000..e2218aa --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/async_send.html @@ -0,0 +1,53 @@ + + + +experimental::basic_channel::async_send + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Asynchronously + send a message. +

+
template<
+    typename... Args,
+    typename CompletionToken = DEFAULT>
+auto async_send(
+    Args &&... args,
+    CompletionToken && token);
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel.html b/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel.html new file mode 100644 index 0000000..f362aed --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel.html @@ -0,0 +1,69 @@ + + + +experimental::basic_channel::basic_channel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a experimental::basic_channel. +

+
basic_channel(
+    const executor_type & ex,
+    std::size_t max_buffer_size = 0);
+  » more...
+
+

+ Construct and open a experimental::basic_channel. +

+
template<
+    typename ExecutionContext>
+basic_channel(
+    ExecutionContext & context,
+    std::size_t max_buffer_size = 0,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Move-construct a experimental::basic_channel from another. +

+
basic_channel(
+    basic_channel && other);
+  » more...
+
+template<
+    typename Executor1>
+basic_channel(
+    basic_channel< Executor1, Traits, Signatures...> && other,
+    typename constraint< is_convertible< Executor1, Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload1.html b/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload1.html new file mode 100644 index 0000000..179b687 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload1.html @@ -0,0 +1,63 @@ + + + +experimental::basic_channel::basic_channel (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a experimental::basic_channel. +

+
basic_channel(
+    const executor_type & ex,
+    std::size_t max_buffer_size = 0);
+
+

+ This constructor creates and channel. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the channel will use, by default, to dispatch + handlers for any asynchronous operations performed on the channel. +

+
max_buffer_size
+

+ The maximum number of messages that may be buffered in the channel. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload2.html b/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload2.html new file mode 100644 index 0000000..373a0b2 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload2.html @@ -0,0 +1,67 @@ + + + +experimental::basic_channel::basic_channel (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a experimental::basic_channel. +

+
template<
+    typename ExecutionContext>
+basic_channel(
+    ExecutionContext & context,
+    std::size_t max_buffer_size = 0,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates and opens a channel. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the channel + will use, by default, to dispatch handlers for any asynchronous + operations performed on the channel. +

+
max_buffer_size
+

+ The maximum number of messages that may be buffered in the channel. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload3.html b/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload3.html new file mode 100644 index 0000000..7fc6605 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload3.html @@ -0,0 +1,67 @@ + + + +experimental::basic_channel::basic_channel (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a experimental::basic_channel from another. +

+
basic_channel(
+    basic_channel && other);
+
+

+ This constructor moves a channel from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other experimental::basic_channel 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_channel(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload4.html b/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload4.html new file mode 100644 index 0000000..7b07d1d --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/basic_channel/overload4.html @@ -0,0 +1,70 @@ + + + +experimental::basic_channel::basic_channel (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a experimental::basic_channel from another. +

+
template<
+    typename Executor1>
+basic_channel(
+    basic_channel< Executor1, Traits, Signatures...> && other,
+    typename constraint< is_convertible< Executor1, Executor >::value >::type  = 0);
+
+

+ This constructor moves a channel from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other experimental::basic_channel 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_channel(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/cancel.html b/3party/asio/doc/asio/reference/experimental__basic_channel/cancel.html new file mode 100644 index 0000000..663e899 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/cancel.html @@ -0,0 +1,45 @@ + + + +experimental::basic_channel::cancel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Cancel + all asynchronous operations waiting on the channel. +

+
void cancel();
+
+

+ All outstanding send operations will complete with the error asio::experimental::error::channel_cancelled. Outstanding receive + operations complete with the result as determined by the channel traits. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/capacity.html b/3party/asio/doc/asio/reference/experimental__basic_channel/capacity.html new file mode 100644 index 0000000..519a6ed --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/capacity.html @@ -0,0 +1,41 @@ + + + +experimental::basic_channel::capacity + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the capacity of the channel's buffer. +

+
std::size_t capacity();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/close.html b/3party/asio/doc/asio/reference/experimental__basic_channel/close.html new file mode 100644 index 0000000..b67d049 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/close.html @@ -0,0 +1,41 @@ + + + +experimental::basic_channel::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close + the channel. +

+
void close();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/executor_type.html b/3party/asio/doc/asio/reference/experimental__basic_channel/executor_type.html new file mode 100644 index 0000000..dbe1fca --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/executor_type.html @@ -0,0 +1,51 @@ + + + +experimental::basic_channel::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the channel. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/experimental/basic_channel.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/get_executor.html b/3party/asio/doc/asio/reference/experimental__basic_channel/get_executor.html new file mode 100644 index 0000000..49289b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/get_executor.html @@ -0,0 +1,41 @@ + + + +experimental::basic_channel::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/is_open.html b/3party/asio/doc/asio/reference/experimental__basic_channel/is_open.html new file mode 100644 index 0000000..3ffb558 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/is_open.html @@ -0,0 +1,41 @@ + + + +experimental::basic_channel::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the channel is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_.html b/3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_.html new file mode 100644 index 0000000..96f508f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_.html @@ -0,0 +1,49 @@ + + + +experimental::basic_channel::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a experimental::basic_channel from another. +

+
basic_channel & operator=(
+    basic_channel && other);
+  » more...
+
+template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_channel & >::type operator=(
+    basic_channel< Executor1, Traits, Signatures...> && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_/overload1.html new file mode 100644 index 0000000..aa5e556 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_/overload1.html @@ -0,0 +1,69 @@ + + + +experimental::basic_channel::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a experimental::basic_channel from another. +

+
basic_channel & operator=(
+    basic_channel && other);
+
+

+ This assignment operator moves a channel from one object to another. + Cancels any outstanding asynchronous operations associated with the target + object. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other experimental::basic_channel 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_channel(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_/overload2.html new file mode 100644 index 0000000..af05b52 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/operator_eq_/overload2.html @@ -0,0 +1,71 @@ + + + +experimental::basic_channel::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a experimental::basic_channel from another. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_channel & >::type operator=(
+    basic_channel< Executor1, Traits, Signatures...> && other);
+
+

+ This assignment operator moves a channel from one object to another. + Cancels any outstanding asynchronous operations associated with the target + object. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other experimental::basic_channel 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_channel(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/ready.html b/3party/asio/doc/asio/reference/experimental__basic_channel/ready.html new file mode 100644 index 0000000..dd49c17 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/ready.html @@ -0,0 +1,41 @@ + + + +experimental::basic_channel::ready + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether a message can be received without blocking. +

+
bool ready() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/reset.html b/3party/asio/doc/asio/reference/experimental__basic_channel/reset.html new file mode 100644 index 0000000..f6a5ad6 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/reset.html @@ -0,0 +1,41 @@ + + + +experimental::basic_channel::reset + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Reset + the channel to its initial state. +

+
void reset();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/traits_type.html b/3party/asio/doc/asio/reference/experimental__basic_channel/traits_type.html new file mode 100644 index 0000000..602313c --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/traits_type.html @@ -0,0 +1,51 @@ + + + +experimental::basic_channel::traits_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + traits type associated with the channel. +

+
typedef Traits::template rebind< Signatures...>::other traits_type;
+
+
+ + Requirements +
+

+ Header: asio/experimental/basic_channel.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/try_receive.html b/3party/asio/doc/asio/reference/experimental__basic_channel/try_receive.html new file mode 100644 index 0000000..cd85bf1 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/try_receive.html @@ -0,0 +1,55 @@ + + + +experimental::basic_channel::try_receive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Try + to receive a message without blocking. +

+
template<
+    typename Handler>
+bool try_receive(
+    Handler && handler);
+
+

+ Fails if the buffer is full and there are no waiting receive operations. +

+
+ + Return + Value +
+

+ true on success, false on failure. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/try_send.html b/3party/asio/doc/asio/reference/experimental__basic_channel/try_send.html new file mode 100644 index 0000000..0d6a199 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/try_send.html @@ -0,0 +1,55 @@ + + + +experimental::basic_channel::try_send + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Try + to send a message without blocking. +

+
template<
+    typename... Args>
+bool try_send(
+    Args &&... args);
+
+

+ Fails if the buffer is full and there are no waiting receive operations. +

+
+ + Return + Value +
+

+ true on success, false on failure. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel/try_send_n.html b/3party/asio/doc/asio/reference/experimental__basic_channel/try_send_n.html new file mode 100644 index 0000000..08682b3 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel/try_send_n.html @@ -0,0 +1,53 @@ + + + +experimental::basic_channel::try_send_n + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Try + to send a number of messages without blocking. +

+
template<
+    typename... Args>
+std::size_t try_send_n(
+    std::size_t count,
+    Args &&... args);
+
+
+ + Return + Value +
+

+ The number of messages that were sent. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel__rebind_executor.html b/3party/asio/doc/asio/reference/experimental__basic_channel__rebind_executor.html new file mode 100644 index 0000000..5c0f2b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel__rebind_executor.html @@ -0,0 +1,88 @@ + + + +experimental::basic_channel::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the channel type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The channel type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/experimental/basic_channel.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_channel__rebind_executor/other.html b/3party/asio/doc/asio/reference/experimental__basic_channel__rebind_executor/other.html new file mode 100644 index 0000000..5f84d9f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_channel__rebind_executor/other.html @@ -0,0 +1,391 @@ + + + +experimental::basic_channel::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + channel type when rebound to the specified executor. +

+
typedef basic_channel< Executor1, Traits, Signatures...> other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the channel type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the channel. +

+
+

+ traits_type +

+
+

+ The traits type associated with the channel. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ async_receive +

+
+

+ Asynchronously receive a message. +

+
+

+ async_send +

+
+

+ Asynchronously send a message. +

+
+

+ basic_channel [constructor] +

+
+

+ Construct a basic_channel.

Construct and open a + basic_channel.

Move-construct a basic_channel from + another. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations waiting on the channel. +

+
+

+ capacity +

+
+

+ Get the capacity of the channel's buffer. +

+
+

+ close +

+
+

+ Close the channel. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the channel is open. +

+
+

+ operator= +

+
+

+ Move-assign a basic_channel from another. +

+
+

+ ready +

+
+

+ Determine whether a message can be received without blocking. +

+
+

+ reset +

+
+

+ Reset the channel to its initial state. +

+
+

+ try_receive +

+
+

+ Try to receive a message without blocking. +

+
+

+ try_send +

+
+

+ Try to send a message without blocking. +

+
+

+ try_send_n +

+
+

+ Try to send a number of messages without blocking. +

+
+

+ ~basic_channel [destructor] +

+
+

+ Destructor. +

+
+

+ The experimental::basic_channel class template is + used for sending messages between different parts of the same application. + A message is defined as a collection of arguments + to be passed to a completion handler, and the set of messages supported + by a channel is specified by its Traits + and Signatures... + template parameters. Messages may be sent and received using asynchronous + or non-blocking synchronous operations. +

+

+ Unless customising the traits, applications will typically use the experimental::channel alias template. For example: +

+
void send_loop(int i, steady_timer& timer,
+    channel<void(error_code, int)>& ch)
+{
+  if (i < 10)
+  {
+    timer.expires_after(chrono::seconds(1));
+    timer.async_wait(
+        [i, &timer, &ch](error_code error)
+        {
+          if (!error)
+          {
+            ch.async_send(error_code(), i,
+                [i, &timer, &ch](error_code error)
+                {
+                  if (!error)
+                  {
+                    send_loop(i + 1, timer, ch);
+                  }
+                });
+          }
+        });
+  }
+  else
+  {
+    ch.close();
+  }
+}
+
+void receive_loop(channel<void(error_code, int)>& ch)
+{
+  ch.async_receive(
+      [&ch](error_code error, int i)
+      {
+        if (!error)
+        {
+          std::cout << "Received " << i << "\n";
+          receive_loop(ch);
+        }
+      });
+}
+
+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+

+ The experimental::basic_channel class template is + not thread-safe, and would typically be used for passing messages between + application code that runs on the same thread or in the same strand. Consider + using experimental::basic_concurrent_channel, and + its alias template experimental::concurrent_channel, + to pass messages between code running in different threads. +

+
+ + Requirements +
+

+ Header: asio/experimental/basic_channel.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel.html new file mode 100644 index 0000000..fa55b33 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel.html @@ -0,0 +1,396 @@ + + + +experimental::basic_concurrent_channel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A channel for messages. +

+
template<
+    typename Executor,
+    typename Traits,
+    typename... Signatures>
+class basic_concurrent_channel
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the channel type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the channel. +

+
+

+ traits_type +

+
+

+ The traits type associated with the channel. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ async_receive +

+
+

+ Asynchronously receive a message. +

+
+

+ async_send +

+
+

+ Asynchronously send a message. +

+
+

+ basic_concurrent_channel [constructor] +

+
+

+ Construct a basic_concurrent_channel.

Construct and + open a basic_concurrent_channel.

Move-construct a + basic_concurrent_channel from another. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations waiting on the channel. +

+
+

+ capacity +

+
+

+ Get the capacity of the channel's buffer. +

+
+

+ close +

+
+

+ Close the channel. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the channel is open. +

+
+

+ operator= +

+
+

+ Move-assign a basic_concurrent_channel from another. +

+
+

+ ready +

+
+

+ Determine whether a message can be received without blocking. +

+
+

+ reset +

+
+

+ Reset the channel to its initial state. +

+
+

+ try_receive +

+
+

+ Try to receive a message without blocking. +

+
+

+ try_send +

+
+

+ Try to send a message without blocking. +

+
+

+ try_send_n +

+
+

+ Try to send a number of messages without blocking. +

+
+

+ ~basic_concurrent_channel [destructor] +

+
+

+ Destructor. +

+
+

+ The experimental::basic_concurrent_channel class template + is used for sending messages between different parts of the same application. + A message is defined as a collection of arguments to + be passed to a completion handler, and the set of messages supported by a + channel is specified by its Traits + and Signatures... + template parameters. Messages may be sent and received using asynchronous + or non-blocking synchronous operations. +

+

+ Unless customising the traits, applications will typically use the experimental::concurrent_channel alias template. For + example: +

+
void send_loop(int i, steady_timer& timer,
+    concurrent_channel<void(error_code, int)>& ch)
+{
+  if (i < 10)
+  {
+    timer.expires_after(chrono::seconds(1));
+    timer.async_wait(
+        [i, &timer, &ch](error_code error)
+        {
+          if (!error)
+          {
+            ch.async_send(error_code(), i,
+                [i, &timer, &ch](error_code error)
+                {
+                  if (!error)
+                  {
+                    send_loop(i + 1, timer, ch);
+                  }
+                });
+          }
+        });
+  }
+  else
+  {
+    ch.close();
+  }
+}
+
+void receive_loop(concurent_channel<void(error_code, int)>& ch)
+{
+  ch.async_receive(
+      [&ch](error_code error, int i)
+      {
+        if (!error)
+        {
+          std::cout << "Received " << i << "\n";
+          receive_loop(ch);
+        }
+      });
+}
+
+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Safe. +

+

+ The experimental::basic_concurrent_channel class template + is thread-safe, and would typically be used for passing messages between + application code that run on different threads. Consider using experimental::basic_channel, and its alias template + experimental::channel, to pass messages between code + running in a single thread or on the same strand. +

+
+ + Requirements +
+

+ Header: asio/experimental/basic_concurrent_channel.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/_basic_concurrent_channel.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/_basic_concurrent_channel.html new file mode 100644 index 0000000..bfcbe7e --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/_basic_concurrent_channel.html @@ -0,0 +1,40 @@ + + + +experimental::basic_concurrent_channel::~basic_concurrent_channel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~basic_concurrent_channel();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/async_receive.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/async_receive.html new file mode 100644 index 0000000..2b46b69 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/async_receive.html @@ -0,0 +1,44 @@ + + + +experimental::basic_concurrent_channel::async_receive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Asynchronously + receive a message. +

+
template<
+    typename CompletionToken = DEFAULT>
+auto async_receive(
+    CompletionToken && token = DEFAULT);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/async_send.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/async_send.html new file mode 100644 index 0000000..079458c --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/async_send.html @@ -0,0 +1,46 @@ + + + +experimental::basic_concurrent_channel::async_send + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Asynchronously + send a message. +

+
template<
+    typename... Args,
+    typename CompletionToken = DEFAULT>
+auto async_send(
+    Args &&... args,
+    CompletionToken && token);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel.html new file mode 100644 index 0000000..dd5b343 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel.html @@ -0,0 +1,70 @@ + + + +experimental::basic_concurrent_channel::basic_concurrent_channel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a experimental::basic_concurrent_channel. +

+
basic_concurrent_channel(
+    const executor_type & ex,
+    std::size_t max_buffer_size = 0);
+  » more...
+
+

+ Construct and open a experimental::basic_concurrent_channel. +

+
template<
+    typename ExecutionContext>
+basic_concurrent_channel(
+    ExecutionContext & context,
+    std::size_t max_buffer_size = 0,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Move-construct a experimental::basic_concurrent_channel from + another. +

+
basic_concurrent_channel(
+    basic_concurrent_channel && other);
+  » more...
+
+template<
+    typename Executor1>
+basic_concurrent_channel(
+    basic_concurrent_channel< Executor1, Traits, Signatures...> && other,
+    typename constraint< is_convertible< Executor1, Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload1.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload1.html new file mode 100644 index 0000000..81741b3 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload1.html @@ -0,0 +1,63 @@ + + + +experimental::basic_concurrent_channel::basic_concurrent_channel (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a experimental::basic_concurrent_channel. +

+
basic_concurrent_channel(
+    const executor_type & ex,
+    std::size_t max_buffer_size = 0);
+
+

+ This constructor creates and channel. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the channel will use, by default, to dispatch + handlers for any asynchronous operations performed on the channel. +

+
max_buffer_size
+

+ The maximum number of messages that may be buffered in the channel. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload2.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload2.html new file mode 100644 index 0000000..5fe0938 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload2.html @@ -0,0 +1,67 @@ + + + +experimental::basic_concurrent_channel::basic_concurrent_channel (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct and open a experimental::basic_concurrent_channel. +

+
template<
+    typename ExecutionContext>
+basic_concurrent_channel(
+    ExecutionContext & context,
+    std::size_t max_buffer_size = 0,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates and opens a channel. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the channel + will use, by default, to dispatch handlers for any asynchronous + operations performed on the channel. +

+
max_buffer_size
+

+ The maximum number of messages that may be buffered in the channel. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload3.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload3.html new file mode 100644 index 0000000..12ea633 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload3.html @@ -0,0 +1,68 @@ + + + +experimental::basic_concurrent_channel::basic_concurrent_channel (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a experimental::basic_concurrent_channel from + another. +

+
basic_concurrent_channel(
+    basic_concurrent_channel && other);
+
+

+ This constructor moves a channel from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other experimental::basic_concurrent_channel + 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_concurrent_channel(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload4.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload4.html new file mode 100644 index 0000000..c0ae933 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload4.html @@ -0,0 +1,71 @@ + + + +experimental::basic_concurrent_channel::basic_concurrent_channel (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a experimental::basic_concurrent_channel from + another. +

+
template<
+    typename Executor1>
+basic_concurrent_channel(
+    basic_concurrent_channel< Executor1, Traits, Signatures...> && other,
+    typename constraint< is_convertible< Executor1, Executor >::value >::type  = 0);
+
+

+ This constructor moves a channel from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other experimental::basic_concurrent_channel + 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_concurrent_channel(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/cancel.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/cancel.html new file mode 100644 index 0000000..bbe3293 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/cancel.html @@ -0,0 +1,45 @@ + + + +experimental::basic_concurrent_channel::cancel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Cancel + all asynchronous operations waiting on the channel. +

+
void cancel();
+
+

+ All outstanding send operations will complete with the error asio::experimental::error::channel_cancelled. Outstanding receive + operations complete with the result as determined by the channel traits. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/capacity.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/capacity.html new file mode 100644 index 0000000..97d7e45 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/capacity.html @@ -0,0 +1,41 @@ + + + +experimental::basic_concurrent_channel::capacity + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the capacity of the channel's buffer. +

+
std::size_t capacity();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/close.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/close.html new file mode 100644 index 0000000..fc622bb --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/close.html @@ -0,0 +1,41 @@ + + + +experimental::basic_concurrent_channel::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close + the channel. +

+
void close();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/executor_type.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/executor_type.html new file mode 100644 index 0000000..7d3d5e9 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/executor_type.html @@ -0,0 +1,51 @@ + + + +experimental::basic_concurrent_channel::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the channel. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/experimental/basic_concurrent_channel.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/get_executor.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/get_executor.html new file mode 100644 index 0000000..eb89dc5 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/get_executor.html @@ -0,0 +1,41 @@ + + + +experimental::basic_concurrent_channel::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/is_open.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/is_open.html new file mode 100644 index 0000000..f579190 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/is_open.html @@ -0,0 +1,41 @@ + + + +experimental::basic_concurrent_channel::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the channel is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_.html new file mode 100644 index 0000000..7d291c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_.html @@ -0,0 +1,50 @@ + + + +experimental::basic_concurrent_channel::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a experimental::basic_concurrent_channel from + another. +

+
basic_concurrent_channel & operator=(
+    basic_concurrent_channel && other);
+  » more...
+
+template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_concurrent_channel & >::type operator=(
+    basic_concurrent_channel< Executor1, Traits, Signatures...> && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload1.html new file mode 100644 index 0000000..2e51e4d --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload1.html @@ -0,0 +1,70 @@ + + + +experimental::basic_concurrent_channel::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a experimental::basic_concurrent_channel from + another. +

+
basic_concurrent_channel & operator=(
+    basic_concurrent_channel && other);
+
+

+ This assignment operator moves a channel from one object to another. + Cancels any outstanding asynchronous operations associated with the target + object. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other experimental::basic_concurrent_channel + 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_concurrent_channel(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload2.html new file mode 100644 index 0000000..eca7452 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload2.html @@ -0,0 +1,72 @@ + + + +experimental::basic_concurrent_channel::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a experimental::basic_concurrent_channel from + another. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_concurrent_channel & >::type operator=(
+    basic_concurrent_channel< Executor1, Traits, Signatures...> && other);
+
+

+ This assignment operator moves a channel from one object to another. + Cancels any outstanding asynchronous operations associated with the target + object. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other experimental::basic_concurrent_channel + 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_concurrent_channel(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/ready.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/ready.html new file mode 100644 index 0000000..c8363e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/ready.html @@ -0,0 +1,41 @@ + + + +experimental::basic_concurrent_channel::ready + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether a message can be received without blocking. +

+
bool ready() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/reset.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/reset.html new file mode 100644 index 0000000..d113b12 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/reset.html @@ -0,0 +1,41 @@ + + + +experimental::basic_concurrent_channel::reset + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Reset + the channel to its initial state. +

+
void reset();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/traits_type.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/traits_type.html new file mode 100644 index 0000000..8b796d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/traits_type.html @@ -0,0 +1,51 @@ + + + +experimental::basic_concurrent_channel::traits_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + traits type associated with the channel. +

+
typedef Traits::template rebind< Signatures...>::other traits_type;
+
+
+ + Requirements +
+

+ Header: asio/experimental/basic_concurrent_channel.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_receive.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_receive.html new file mode 100644 index 0000000..d3e9b66 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_receive.html @@ -0,0 +1,55 @@ + + + +experimental::basic_concurrent_channel::try_receive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Try + to receive a message without blocking. +

+
template<
+    typename Handler>
+bool try_receive(
+    Handler && handler);
+
+

+ Fails if the buffer is full and there are no waiting receive operations. +

+
+ + Return + Value +
+

+ true on success, false on failure. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_send.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_send.html new file mode 100644 index 0000000..5773440 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_send.html @@ -0,0 +1,55 @@ + + + +experimental::basic_concurrent_channel::try_send + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Try + to send a message without blocking. +

+
template<
+    typename... Args>
+bool try_send(
+    Args &&... args);
+
+

+ Fails if the buffer is full and there are no waiting receive operations. +

+
+ + Return + Value +
+

+ true on success, false on failure. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_send_n.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_send_n.html new file mode 100644 index 0000000..72407d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel/try_send_n.html @@ -0,0 +1,53 @@ + + + +experimental::basic_concurrent_channel::try_send_n + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Try + to send a number of messages without blocking. +

+
template<
+    typename... Args>
+std::size_t try_send_n(
+    std::size_t count,
+    Args &&... args);
+
+
+ + Return + Value +
+

+ The number of messages that were sent. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel__rebind_executor.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel__rebind_executor.html new file mode 100644 index 0000000..3b0189e --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel__rebind_executor.html @@ -0,0 +1,88 @@ + + + +experimental::basic_concurrent_channel::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the channel type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The channel type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/experimental/basic_concurrent_channel.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel__rebind_executor/other.html b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel__rebind_executor/other.html new file mode 100644 index 0000000..f4ebac9 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__basic_concurrent_channel__rebind_executor/other.html @@ -0,0 +1,392 @@ + + + +experimental::basic_concurrent_channel::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + channel type when rebound to the specified executor. +

+
typedef basic_concurrent_channel< Executor1, Traits, Signatures...> other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the channel type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the channel. +

+
+

+ traits_type +

+
+

+ The traits type associated with the channel. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ async_receive +

+
+

+ Asynchronously receive a message. +

+
+

+ async_send +

+
+

+ Asynchronously send a message. +

+
+

+ basic_concurrent_channel [constructor] +

+
+

+ Construct a basic_concurrent_channel.

Construct + and open a basic_concurrent_channel.

Move-construct + a basic_concurrent_channel from another. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations waiting on the channel. +

+
+

+ capacity +

+
+

+ Get the capacity of the channel's buffer. +

+
+

+ close +

+
+

+ Close the channel. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the channel is open. +

+
+

+ operator= +

+
+

+ Move-assign a basic_concurrent_channel from another. +

+
+

+ ready +

+
+

+ Determine whether a message can be received without blocking. +

+
+

+ reset +

+
+

+ Reset the channel to its initial state. +

+
+

+ try_receive +

+
+

+ Try to receive a message without blocking. +

+
+

+ try_send +

+
+

+ Try to send a message without blocking. +

+
+

+ try_send_n +

+
+

+ Try to send a number of messages without blocking. +

+
+

+ ~basic_concurrent_channel [destructor] +

+
+

+ Destructor. +

+
+

+ The experimental::basic_concurrent_channel class + template is used for sending messages between different parts of the same + application. A message is defined as a collection + of arguments to be passed to a completion handler, and the set of messages + supported by a channel is specified by its Traits + and Signatures... + template parameters. Messages may be sent and received using asynchronous + or non-blocking synchronous operations. +

+

+ Unless customising the traits, applications will typically use the experimental::concurrent_channel alias template. For + example: +

+
void send_loop(int i, steady_timer& timer,
+    concurrent_channel<void(error_code, int)>& ch)
+{
+  if (i < 10)
+  {
+    timer.expires_after(chrono::seconds(1));
+    timer.async_wait(
+        [i, &timer, &ch](error_code error)
+        {
+          if (!error)
+          {
+            ch.async_send(error_code(), i,
+                [i, &timer, &ch](error_code error)
+                {
+                  if (!error)
+                  {
+                    send_loop(i + 1, timer, ch);
+                  }
+                });
+          }
+        });
+  }
+  else
+  {
+    ch.close();
+  }
+}
+
+void receive_loop(concurent_channel<void(error_code, int)>& ch)
+{
+  ch.async_receive(
+      [&ch](error_code error, int i)
+      {
+        if (!error)
+        {
+          std::cout << "Received " << i << "\n";
+          receive_loop(ch);
+        }
+      });
+}
+
+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Safe. +

+

+ The experimental::basic_concurrent_channel class + template is thread-safe, and would typically be used for passing messages + between application code that run on different threads. Consider using + experimental::basic_channel, and its alias template + experimental::channel, to pass messages between code + running in a single thread or on the same strand. +

+
+ + Requirements +
+

+ Header: asio/experimental/basic_concurrent_channel.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__channel_traits.html b/3party/asio/doc/asio/reference/experimental__channel_traits.html new file mode 100644 index 0000000..495490b --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__channel_traits.html @@ -0,0 +1,172 @@ + + + +experimental::channel_traits + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename... Signatures>
+struct channel_traits
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ container +

+
+

+ Determine the container for the specified elements. +

+
+

+ rebind +

+
+

+ Rebind the traits to a new set of signatures. +

+
+

+ receive_cancelled_signature +

+
+

+ The signature of a channel cancellation notification. +

+
+

+ receive_closed_signature +

+
+

+ The signature of a channel closed notification. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ invoke_receive_cancelled [static] +

+
+

+ Invoke the specified handler with a cancellation notification. +

+
+

+ invoke_receive_closed [static] +

+
+

+ Invoke the specified handler with a closed notification. +

+
+
+ + Requirements +
+

+ Header: asio/experimental/channel_traits.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__channel_traits/invoke_receive_cancelled.html b/3party/asio/doc/asio/reference/experimental__channel_traits/invoke_receive_cancelled.html new file mode 100644 index 0000000..566018e --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__channel_traits/invoke_receive_cancelled.html @@ -0,0 +1,44 @@ + + + +experimental::channel_traits::invoke_receive_cancelled + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Invoke + the specified handler with a cancellation notification. +

+
template<
+    typename F>
+static void invoke_receive_cancelled(
+    F f);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__channel_traits/invoke_receive_closed.html b/3party/asio/doc/asio/reference/experimental__channel_traits/invoke_receive_closed.html new file mode 100644 index 0000000..92df2ab --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__channel_traits/invoke_receive_closed.html @@ -0,0 +1,44 @@ + + + +experimental::channel_traits::invoke_receive_closed + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Invoke + the specified handler with a closed notification. +

+
template<
+    typename F>
+static void invoke_receive_closed(
+    F f);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__channel_traits/receive_cancelled_signature.html b/3party/asio/doc/asio/reference/experimental__channel_traits/receive_cancelled_signature.html new file mode 100644 index 0000000..e065beb --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__channel_traits/receive_cancelled_signature.html @@ -0,0 +1,51 @@ + + + +experimental::channel_traits::receive_cancelled_signature + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + signature of a channel cancellation notification. +

+
typedef void receive_cancelled_signature;
+
+
+ + Requirements +
+

+ Header: asio/experimental/channel_traits.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__channel_traits/receive_closed_signature.html b/3party/asio/doc/asio/reference/experimental__channel_traits/receive_closed_signature.html new file mode 100644 index 0000000..e7e0e1f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__channel_traits/receive_closed_signature.html @@ -0,0 +1,51 @@ + + + +experimental::channel_traits::receive_closed_signature + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + signature of a channel closed notification. +

+
typedef void receive_closed_signature;
+
+
+ + Requirements +
+

+ Header: asio/experimental/channel_traits.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__channel_traits__container.html b/3party/asio/doc/asio/reference/experimental__channel_traits__container.html new file mode 100644 index 0000000..cb0de10 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__channel_traits__container.html @@ -0,0 +1,89 @@ + + + +experimental::channel_traits::container + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Determine the container for the specified elements. +

+
template<
+    typename Element>
+struct container
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+
+

+ This nested structure must have a single nested type other + that aliases a container type for the specified element type. +

+
+ + Requirements +
+

+ Header: asio/experimental/channel_traits.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__channel_traits__container/type.html b/3party/asio/doc/asio/reference/experimental__channel_traits__container/type.html new file mode 100644 index 0000000..9e1a524 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__channel_traits__container/type.html @@ -0,0 +1,49 @@ + + + +experimental::channel_traits::container::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
typedef user_defined type;
+
+
+ + Requirements +
+

+ Header: asio/experimental/channel_traits.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__channel_traits__rebind.html b/3party/asio/doc/asio/reference/experimental__channel_traits__rebind.html new file mode 100644 index 0000000..34a6870 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__channel_traits__rebind.html @@ -0,0 +1,89 @@ + + + +experimental::channel_traits::rebind + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebind the traits to a new set of signatures. +

+
template<
+    typename... NewSignatures>
+struct rebind
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+
+

+ This nested structure must have a single nested type other + that aliases a traits type with the specified set of signatures. +

+
+ + Requirements +
+

+ Header: asio/experimental/channel_traits.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__channel_traits__rebind/other.html b/3party/asio/doc/asio/reference/experimental__channel_traits__rebind/other.html new file mode 100644 index 0000000..e4999b2 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__channel_traits__rebind/other.html @@ -0,0 +1,49 @@ + + + +experimental::channel_traits::rebind::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
typedef user_defined other;
+
+
+ + Requirements +
+

+ Header: asio/experimental/channel_traits.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__co_composed.html b/3party/asio/doc/asio/reference/experimental__co_composed.html new file mode 100644 index 0000000..5b6e31c --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__co_composed.html @@ -0,0 +1,190 @@ + + + +experimental::co_composed + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Creates an initiation function object that may be used to launch a coroutine-based + composed asynchronous operation. +

+
template<
+    completion_signature... Signatures,
+    typename Implementation,
+    typename... IoObjectsOrExecutors>
+auto co_composed(
+    Implementation && implementation,
+    IoObjectsOrExecutors &&... io_objects_or_executors);
+
+

+ The experimental::co_composed utility simplifies the + implementation of composed asynchronous operations by automatically adapting + a coroutine to be an initiation function object for use with async_initiate. When awaiting asynchronous + operations, the coroutine automatically uses a conforming intermediate completion + handler. +

+
+ + Parameters +
+
+

+
+
implementation
+

+ A function object that contains the coroutine-based implementation + of the composed asynchronous operation. The first argument to the function + object represents the state of the operation, and may be used to test + for cancellation. The remaining arguments are those passed to async_initiate after the completion + token. +

+
io_objects_or_executors
+

+ Zero or more I/O objects or I/O executors for which outstanding work + must be maintained while the operation is incomplete. +

+
+
+
+ + Per-Operation + Cancellation +
+

+ By default, per-operation cancellation is disabled for composed operations + that use experimental::co_composed. It must be explicitly + enabled by calling the state's reset_cancellation_state + function. +

+
+ + Examples +
+

+ The following example illustrates manual error handling and explicit checks + for cancellation. The completion handler is invoked via a co_yield + to the state's complete function, + which never returns. +

+
template <typename CompletionToken>
+auto async_echo(tcp::socket& socket,
+    CompletionToken&& token)
+{
+  return asio::async_initiate<
+    CompletionToken, void(std::error_code)>(
+      asio::experimental::co_composed(
+        [](auto state, tcp::socket& socket) -> void
+        {
+          state.reset_cancellation_state(
+            asio::enable_terminal_cancellation());
+
+          while (!state.cancelled())
+          {
+            char data[1024];
+            auto [e1, n1] =
+              co_await socket.async_read_some(
+                asio::buffer(data),
+                asio::as_tuple(asio::deferred));
+
+            if (e1)
+              co_yield state.complete(e1);
+
+            if (!!state.cancelled())
+              co_yield state.complete(
+                make_error_code(asio::error::operation_aborted));
+
+            auto [e2, n2] =
+              co_await asio::async_write(socket,
+                asio::buffer(data, n1),
+                asio::as_tuple(asio::deferred));
+
+            if (e2)
+              co_yield state.complete(e2);
+          }
+        }, socket),
+      token, std::ref(socket));
+}
+
+

+ This next example shows exception-based error handling and implicit checks + for cancellation. The completion handler is invoked after returning from + the coroutine via co_return. + Valid co_return values are + specified using completion signatures passed to the co_composed + function. +

+
template <typename CompletionToken>
+auto async_echo(tcp::socket& socket,
+    CompletionToken&& token)
+{
+  return asio::async_initiate<
+    CompletionToken, void(std::error_code)>(
+      asio::experimental::co_composed<
+        void(std::error_code)>(
+          [](auto state, tcp::socket& socket) -> void
+          {
+            try
+            {
+              state.throw_if_cancelled(true);
+              state.reset_cancellation_state(
+                asio::enable_terminal_cancellation());
+
+              for (;;)
+              {
+                char data[1024];
+                std::size_t n = co_await socket.async_read_some(
+                    asio::buffer(data), asio::deferred);
+
+                co_await asio::async_write(socket,
+                    asio::buffer(data, n), asio::deferred);
+              }
+            }
+            catch (const std::system_error& e)
+            {
+              co_return {e.code()};
+            }
+          }, socket),
+      token, std::ref(socket));
+}
+
+
+ + Requirements +
+

+ Header: asio/experimental/co_composed.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__co_spawn.html b/3party/asio/doc/asio/reference/experimental__co_spawn.html new file mode 100644 index 0000000..ad1bf8e --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__co_spawn.html @@ -0,0 +1,101 @@ + + + +experimental::co_spawn + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Spawn a resumable coroutine. +

+
template<
+    typename T,
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void, T, Executor > c,
+    CompletionToken && token);
+  » more...
+
+template<
+    typename T,
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void(), T, Executor > c,
+    CompletionToken && token);
+  » more...
+
+template<
+    typename T,
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void() noexcept, T, Executor > c,
+    CompletionToken && token);
+  » more...
+
+template<
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void, void, Executor > c,
+    CompletionToken && token);
+  » more...
+
+template<
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void(), void, Executor > c,
+    CompletionToken && token);
+  » more...
+
+template<
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void() noexcept, void, Executor > c,
+    CompletionToken && token);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/experimental/co_spawn.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__co_spawn/overload1.html b/3party/asio/doc/asio/reference/experimental__co_spawn/overload1.html new file mode 100644 index 0000000..1be1900 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__co_spawn/overload1.html @@ -0,0 +1,75 @@ + + + +experimental::co_spawn (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a resumable coroutine. +

+
template<
+    typename T,
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void, T, Executor > c,
+    CompletionToken && token);
+
+

+ This function spawns the coroutine for execution on its executor. It binds + the lifetime of the coroutine to the executor. +

+
+ + Parameters +
+
+

+
+
c
+

+ The coroutine +

+
token
+

+ The completion token +

+
+
+
+ + Return + Value +
+

+ Implementation defined +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__co_spawn/overload2.html b/3party/asio/doc/asio/reference/experimental__co_spawn/overload2.html new file mode 100644 index 0000000..c5adf8d --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__co_spawn/overload2.html @@ -0,0 +1,75 @@ + + + +experimental::co_spawn (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a resumable coroutine. +

+
template<
+    typename T,
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void(), T, Executor > c,
+    CompletionToken && token);
+
+

+ This function spawns the coroutine for execution on its executor. It binds + the lifetime of the coroutine to the executor. +

+
+ + Parameters +
+
+

+
+
c
+

+ The coroutine +

+
token
+

+ The completion token +

+
+
+
+ + Return + Value +
+

+ Implementation defined +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__co_spawn/overload3.html b/3party/asio/doc/asio/reference/experimental__co_spawn/overload3.html new file mode 100644 index 0000000..cf0c804 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__co_spawn/overload3.html @@ -0,0 +1,75 @@ + + + +experimental::co_spawn (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a resumable coroutine. +

+
template<
+    typename T,
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void() noexcept, T, Executor > c,
+    CompletionToken && token);
+
+

+ This function spawns the coroutine for execution on its executor. It binds + the lifetime of the coroutine to the executor. +

+
+ + Parameters +
+
+

+
+
c
+

+ The coroutine +

+
token
+

+ The completion token +

+
+
+
+ + Return + Value +
+

+ Implementation defined +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__co_spawn/overload4.html b/3party/asio/doc/asio/reference/experimental__co_spawn/overload4.html new file mode 100644 index 0000000..1509cbf --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__co_spawn/overload4.html @@ -0,0 +1,74 @@ + + + +experimental::co_spawn (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a resumable coroutine. +

+
template<
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void, void, Executor > c,
+    CompletionToken && token);
+
+

+ This function spawns the coroutine for execution on its executor. It binds + the lifetime of the coroutine to the executor. +

+
+ + Parameters +
+
+

+
+
c
+

+ The coroutine +

+
token
+

+ The completion token +

+
+
+
+ + Return + Value +
+

+ Implementation defined +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__co_spawn/overload5.html b/3party/asio/doc/asio/reference/experimental__co_spawn/overload5.html new file mode 100644 index 0000000..d4e0f78 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__co_spawn/overload5.html @@ -0,0 +1,74 @@ + + + +experimental::co_spawn (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a resumable coroutine. +

+
template<
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void(), void, Executor > c,
+    CompletionToken && token);
+
+

+ This function spawns the coroutine for execution on its executor. It binds + the lifetime of the coroutine to the executor. +

+
+ + Parameters +
+
+

+
+
c
+

+ The coroutine +

+
token
+

+ The completion token +

+
+
+
+ + Return + Value +
+

+ Implementation defined +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__co_spawn/overload6.html b/3party/asio/doc/asio/reference/experimental__co_spawn/overload6.html new file mode 100644 index 0000000..c323e4e --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__co_spawn/overload6.html @@ -0,0 +1,74 @@ + + + +experimental::co_spawn (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Spawn a resumable coroutine. +

+
template<
+    typename Executor,
+    typename CompletionToken>
+DEDUCED co_spawn(
+    coro< void() noexcept, void, Executor > c,
+    CompletionToken && token);
+
+

+ This function spawns the coroutine for execution on its executor. It binds + the lifetime of the coroutine to the executor. +

+
+ + Parameters +
+
+

+
+
c
+

+ The coroutine +

+
token
+

+ The completion token +

+
+
+
+ + Return + Value +
+

+ Implementation defined +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro.html b/3party/asio/doc/asio/reference/experimental__coro.html new file mode 100644 index 0000000..96881e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro.html @@ -0,0 +1,244 @@ + + + +experimental::coro + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The main type of a resumable coroutine. +

+
template<
+    typename Yield = void,
+    typename Return = void,
+    typename Executor = any_io_executor,
+    typename Allocator = std::allocator<void>>
+struct coro
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ async_resume +

+
+

+ Resume the coroutine. +

+
+

+ coro [constructor] +

+
+

+ The default constructor, gives an invalid coroutine.

+ Move constructor.

+

+
+

+ get_allocator +

+
+

+ Get the used allocator. +

+
+

+ get_executor +

+
+

+ Get the used executor. +

+
+

+ is_open +

+
+

+ Check whether the coroutine is open, i.e. can be resumed. +

+
+

+ operator bool +

+
+

+ Check whether the coroutine is open, i.e. can be resumed. +

+
+

+ operator co_await +

+
+

+ Operator used for coroutines without input value. +

+
+

+ operator() +

+
+

+ Operator used for coroutines with input value. +

+
+

+ operator= +

+
+

+ Move assignment. +

+
+

+ ~coro [destructor] +

+
+

+ Destructor. Destroys the coroutine, if it holds a valid one. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_noexcept [static] +

+
+

+ Whether or not the coroutine is noexcept. +

+
+

+ Template parameter Yield + specifies type or signature used by co_yield, Return + specifies the type used for co_return, and Executor + specifies the underlying executor type. +

+
+ + Requirements +
+

+ Header: asio/experimental/coro.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/_coro.html b/3party/asio/doc/asio/reference/experimental__coro/_coro.html new file mode 100644 index 0000000..353d561 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/_coro.html @@ -0,0 +1,50 @@ + + + +experimental::coro::~coro + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. + Destroys the coroutine, if it holds a valid one. +

+
~coro();
+
+
+ + Remarks +
+

+ This does not cancel an active coroutine. Destructing a resumable coroutine, + i.e. one with a call to async_resume that has not completed, is undefined + behaviour. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/async_resume.html b/3party/asio/doc/asio/reference/experimental__coro/async_resume.html new file mode 100644 index 0000000..898d5bf --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/async_resume.html @@ -0,0 +1,53 @@ + + + +experimental::coro::async_resume + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Resume + the coroutine. +

+
template<
+    typename CompletionToken>
+requires std::is_void_v< input_type > auto async_resume(
+    CompletionToken && token);
+  » more...
+
+template<
+    typename CompletionToken,
+    detail::convertible_to< input_type > T>
+auto async_resume(
+    T && ip,
+    CompletionToken && token);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/async_resume/overload1.html b/3party/asio/doc/asio/reference/experimental__coro/async_resume/overload1.html new file mode 100644 index 0000000..80f4439 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/async_resume/overload1.html @@ -0,0 +1,70 @@ + + + +experimental::coro::async_resume (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Resume the coroutine. +

+
template<
+    typename CompletionToken>
+requires std::is_void_v< input_type > auto async_resume(
+    CompletionToken && token);
+
+
+ + Parameters +
+
+

+
+
token
+

+ The completion token of the async resume. +

+
+
+
+ + Attention +
+

+ Calling an invalid coroutine with a noexcept signature is undefined behaviour. +

+
+ + Remarks +
+

+ This overload is only available for coroutines without an input value. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/async_resume/overload2.html b/3party/asio/doc/asio/reference/experimental__coro/async_resume/overload2.html new file mode 100644 index 0000000..c8a0705 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/async_resume/overload2.html @@ -0,0 +1,72 @@ + + + +experimental::coro::async_resume (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Resume the coroutine. +

+
template<
+    typename CompletionToken,
+    detail::convertible_to< input_type > T>
+auto async_resume(
+    T && ip,
+    CompletionToken && token);
+
+
+ + Parameters +
+
+

+
+
token
+

+ The completion token of the async resume. +

+
+
+
+ + Attention +
+

+ Calling an invalid coroutine with a noexcept signature is undefined behaviour. +

+
+ + Remarks +
+

+ This overload is only available for coroutines with an input value. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/coro.html b/3party/asio/doc/asio/reference/experimental__coro/coro.html new file mode 100644 index 0000000..41aa4a1 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/coro.html @@ -0,0 +1,55 @@ + + + +experimental::coro::coro + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The default + constructor, gives an invalid coroutine. +

+
coro();
+  » more...
+
+

+ Move constructor. +

+
coro(
+    coro && lhs);
+  » more...
+
+
+
+coro(
+    const coro & );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/coro/overload1.html b/3party/asio/doc/asio/reference/experimental__coro/coro/overload1.html new file mode 100644 index 0000000..0a49308 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/coro/overload1.html @@ -0,0 +1,40 @@ + + + +experimental::coro::coro (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ The default constructor, gives an invalid coroutine. +

+
coro();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/coro/overload2.html b/3party/asio/doc/asio/reference/experimental__coro/coro/overload2.html new file mode 100644 index 0000000..82770f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/coro/overload2.html @@ -0,0 +1,41 @@ + + + +experimental::coro::coro (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
coro(
+    coro && lhs);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/coro/overload3.html b/3party/asio/doc/asio/reference/experimental__coro/coro/overload3.html new file mode 100644 index 0000000..463c665 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/coro/overload3.html @@ -0,0 +1,38 @@ + + + +experimental::coro::coro (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
coro(
+    const coro & );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/get_allocator.html b/3party/asio/doc/asio/reference/experimental__coro/get_allocator.html new file mode 100644 index 0000000..84ee72b --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/get_allocator.html @@ -0,0 +1,41 @@ + + + +experimental::coro::get_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the used allocator. +

+
allocator_type get_allocator() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/get_executor.html b/3party/asio/doc/asio/reference/experimental__coro/get_executor.html new file mode 100644 index 0000000..1b596f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/get_executor.html @@ -0,0 +1,41 @@ + + + +experimental::coro::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the used executor. +

+
executor_type get_executor() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/is_noexcept.html b/3party/asio/doc/asio/reference/experimental__coro/is_noexcept.html new file mode 100644 index 0000000..a4e6a24 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/is_noexcept.html @@ -0,0 +1,41 @@ + + + +experimental::coro::is_noexcept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Whether + or not the coroutine is noexcept. +

+
static constexpr bool is_noexcept = traits::is_noexcept;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/is_open.html b/3party/asio/doc/asio/reference/experimental__coro/is_open.html new file mode 100644 index 0000000..5760d9d --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/is_open.html @@ -0,0 +1,41 @@ + + + +experimental::coro::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Check + whether the coroutine is open, i.e. can be resumed. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/operator_bool.html b/3party/asio/doc/asio/reference/experimental__coro/operator_bool.html new file mode 100644 index 0000000..72e8300 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/operator_bool.html @@ -0,0 +1,42 @@ + + + +experimental::coro::operator bool + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Check + whether the coroutine is open, i.e. can be resumed. +

+
operator bool() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/operator_co_await.html b/3party/asio/doc/asio/reference/experimental__coro/operator_co_await.html new file mode 100644 index 0000000..72e818f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/operator_co_await.html @@ -0,0 +1,42 @@ + + + +experimental::coro::operator co_await + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Operator + used for coroutines without input value. +

+
auto operator co_await();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/operator_eq_.html b/3party/asio/doc/asio/reference/experimental__coro/operator_eq_.html new file mode 100644 index 0000000..d9ba961 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/operator_eq_.html @@ -0,0 +1,47 @@ + + + +experimental::coro::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move + assignment. +

+
coro & operator=(
+    coro && lhs);
+  » more...
+
+coro & operator=(
+    const coro & );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/experimental__coro/operator_eq_/overload1.html new file mode 100644 index 0000000..73b050f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +experimental::coro::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move assignment. +

+
coro & operator=(
+    coro && lhs);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/experimental__coro/operator_eq_/overload2.html new file mode 100644 index 0000000..c1a543d --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/operator_eq_/overload2.html @@ -0,0 +1,38 @@ + + + +experimental::coro::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
coro & operator=(
+    const coro & );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro/operator_lp__rp_.html b/3party/asio/doc/asio/reference/experimental__coro/operator_lp__rp_.html new file mode 100644 index 0000000..99ad659 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro/operator_lp__rp_.html @@ -0,0 +1,70 @@ + + + +experimental::coro::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Operator + used for coroutines with input value. +

+
template<
+    detail::convertible_to< input_type > T>
+auto operator()(
+    T && ip);
+
+
+ + Parameters +
+
+

+
+
ip
+

+ The input value +

+
+
+
+ + Return + Value +
+

+ An awaitable handle. +

+
coro<void> push_values(coro<double(int)> c)
+{
+   std::optional<double> res = co_await c(42);
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro_traits.html b/3party/asio/doc/asio/reference/experimental__coro_traits.html new file mode 100644 index 0000000..9403a94 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro_traits.html @@ -0,0 +1,96 @@ + + + +experimental::coro_traits + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The traits describing the resumable coroutine behaviour. +

+
template<
+    typename Yield,
+    typename Return,
+    typename Executor>
+struct coro_traits
+
+
+ + Data Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ is_noexcept [static] +

+
+

+ Whether or not the coroutine is noexcept. +

+
+

+ Template parameter Yield + specifies type or signature used by co_yield, Return + specifies the type used for co_return, and Executor + specifies the underlying executor type. +

+
+ + Requirements +
+

+ Header: asio/experimental/coro_traits.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__coro_traits/is_noexcept.html b/3party/asio/doc/asio/reference/experimental__coro_traits/is_noexcept.html new file mode 100644 index 0000000..5b5e05f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__coro_traits/is_noexcept.html @@ -0,0 +1,41 @@ + + + +experimental::coro_traits::is_noexcept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Whether + or not the coroutine is noexcept. +

+
static constexpr bool is_noexcept = argument_dependent;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__error__channel_category.html b/3party/asio/doc/asio/reference/experimental__error__channel_category.html new file mode 100644 index 0000000..7303f0a --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__error__channel_category.html @@ -0,0 +1,49 @@ + + + +experimental::error::channel_category + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
static const asio::error_category & channel_category = asio::experimental::error::get_channel_category();
+
+
+ + Requirements +
+

+ Header: asio/experimental/channel_error.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__error__channel_errors.html b/3party/asio/doc/asio/reference/experimental__error__channel_errors.html new file mode 100644 index 0000000..55e7111 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__error__channel_errors.html @@ -0,0 +1,70 @@ + + + +experimental::error::channel_errors + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
enum channel_errors
+
+

+ + +

+
+ + Values +
+
+

+
+
channel_closed
+

+ The channel was closed. +

+
channel_cancelled
+

+ The channel was cancelled. +

+
+
+
+ + Requirements +
+

+ Header: asio/experimental/channel_error.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__error__get_channel_category.html b/3party/asio/doc/asio/reference/experimental__error__get_channel_category.html new file mode 100644 index 0000000..11a7d74 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__error__get_channel_category.html @@ -0,0 +1,49 @@ + + + +experimental::error::get_channel_category + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
const asio::error_category & get_channel_category();
+
+
+ + Requirements +
+

+ Header: asio/experimental/channel_error.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__error__make_error_code.html b/3party/asio/doc/asio/reference/experimental__error__make_error_code.html new file mode 100644 index 0000000..7af8e20 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__error__make_error_code.html @@ -0,0 +1,50 @@ + + + +experimental::error::make_error_code + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
asio::error_code make_error_code(
+    channel_errors e);
+
+
+ + Requirements +
+

+ Header: asio/experimental/channel_error.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__is_async_operation_range.html b/3party/asio/doc/asio/reference/experimental__is_async_operation_range.html new file mode 100644 index 0000000..b61f1db --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__is_async_operation_range.html @@ -0,0 +1,91 @@ + + + +experimental::is_async_operation_range + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Type trait used to determine whether a type is a range of asynchronous operations + that can be used with with make_parallel_group. +

+
template<
+    typename T>
+struct is_async_operation_range
+
+
+ + Data + Members +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ value [static] +

+
+

+ The value member is true if the type may be used as a range of + asynchronous operations. +

+
+
+ + Requirements +
+

+ Header: asio/experimental/parallel_group.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__is_async_operation_range/value.html b/3party/asio/doc/asio/reference/experimental__is_async_operation_range/value.html new file mode 100644 index 0000000..db0d707 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__is_async_operation_range/value.html @@ -0,0 +1,42 @@ + + + +experimental::is_async_operation_range::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + value member is true if the type may be used as a range of asynchronous + operations. +

+
static const bool value;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__is_promise.html b/3party/asio/doc/asio/reference/experimental__is_promise.html new file mode 100644 index 0000000..fb1d884 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__is_promise.html @@ -0,0 +1,51 @@ + + + +experimental::is_promise + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename T>
+struct is_promise
+
+
+ + Requirements +
+

+ Header: asio/experimental/promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__is_promise_lt__promise_lt__Ts_ellipsis__gt__gt_.html b/3party/asio/doc/asio/reference/experimental__is_promise_lt__promise_lt__Ts_ellipsis__gt__gt_.html new file mode 100644 index 0000000..7e6ce4b --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__is_promise_lt__promise_lt__Ts_ellipsis__gt__gt_.html @@ -0,0 +1,52 @@ + + + +experimental::is_promise< promise< Ts...>> + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename... Ts>
+struct is_promise< promise< Ts...>>
+
+
+ + Requirements +
+

+ Header: asio/experimental/promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__is_promise_v.html b/3party/asio/doc/asio/reference/experimental__is_promise_v.html new file mode 100644 index 0000000..5ba5c53 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__is_promise_v.html @@ -0,0 +1,49 @@ + + + +experimental::is_promise_v + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
constexpr bool is_promise_v =is_promise<T>::value;
+
+
+ + Requirements +
+

+ Header: asio/experimental/promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__make_parallel_group.html b/3party/asio/doc/asio/reference/experimental__make_parallel_group.html new file mode 100644 index 0000000..0606806 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__make_parallel_group.html @@ -0,0 +1,73 @@ + + + +experimental::make_parallel_group + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Create a group of operations that may be launched in parallel. +

+
template<
+    typename... Ops>
+parallel_group< Ops...> make_parallel_group(
+    Ops... ops);
+  » more...
+
+template<
+    typename Range>
+ranged_parallel_group< typename std::decay< Range >::type > make_parallel_group(
+    Range && range,
+    typename constraint< is_async_operation_range< typename std::decay< Range >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename Allocator,
+    typename Range>
+ranged_parallel_group< typename std::decay< Range >::type, Allocator > make_parallel_group(
+    allocator_arg_t ,
+    const Allocator & allocator,
+    Range && range,
+    typename constraint< is_async_operation_range< typename std::decay< Range >::type >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/experimental/parallel_group.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__make_parallel_group/overload1.html b/3party/asio/doc/asio/reference/experimental__make_parallel_group/overload1.html new file mode 100644 index 0000000..08edf61 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__make_parallel_group/overload1.html @@ -0,0 +1,79 @@ + + + +experimental::make_parallel_group (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a group of operations that may be launched in parallel. +

+
template<
+    typename... Ops>
+parallel_group< Ops...> make_parallel_group(
+    Ops... ops);
+
+

+ For example: +

+
asio::experimental::make_parallel_group(
+   [&](auto token)
+   {
+     return in.async_read_some(asio::buffer(data), token);
+   },
+   [&](auto token)
+   {
+     return timer.async_wait(token);
+   }
+ ).async_wait(
+   asio::experimental::wait_for_all(),
+   [](
+       std::array<std::size_t, 2> completion_order,
+       std::error_code ec1, std::size_t n1,
+       std::error_code ec2
+   )
+   {
+     switch (completion_order[0])
+     {
+     case 0:
+       {
+         std::cout << "descriptor finished: " << ec1 << ", " << n1 << "\n";
+       }
+       break;
+     case 1:
+       {
+         std::cout << "timer finished: " << ec2 << "\n";
+       }
+       break;
+     }
+   }
+ );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__make_parallel_group/overload2.html b/3party/asio/doc/asio/reference/experimental__make_parallel_group/overload2.html new file mode 100644 index 0000000..af3685f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__make_parallel_group/overload2.html @@ -0,0 +1,100 @@ + + + +experimental::make_parallel_group (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a group of operations that may be launched in parallel. +

+
template<
+    typename Range>
+ranged_parallel_group< typename std::decay< Range >::type > make_parallel_group(
+    Range && range,
+    typename constraint< is_async_operation_range< typename std::decay< Range >::type >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
range
+

+ A range containing the operations to be launched. +

+
+
+

+ For example: +

+
using op_type = decltype(
+    socket1.async_read_some(
+      asio::buffer(data1),
+      asio::deferred
+    )
+  );
+
+std::vector<op_type> ops;
+
+ops.push_back(
+    socket1.async_read_some(
+      asio::buffer(data1),
+      asio::deferred
+    )
+  );
+
+ops.push_back(
+    socket2.async_read_some(
+      asio::buffer(data2),
+      asio::deferred
+    )
+  );
+
+asio::experimental::make_parallel_group(ops).async_wait(
+    asio::experimental::wait_for_all(),
+    [](
+        std::vector<std::size_t> completion_order,
+        std::vector<std::error_code> e,
+        std::vector<std::size_t> n
+      )
+    {
+      for (std::size_t i = 0; i < completion_order.size(); ++i)
+      {
+        std::size_t idx = completion_order[i];
+        std::cout << "socket " << idx << " finished: ";
+        std::cout << e[idx] << ", " << n[idx] << "\n";
+      }
+    }
+  );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__make_parallel_group/overload3.html b/3party/asio/doc/asio/reference/experimental__make_parallel_group/overload3.html new file mode 100644 index 0000000..26c7b21 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__make_parallel_group/overload3.html @@ -0,0 +1,111 @@ + + + +experimental::make_parallel_group (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a group of operations that may be launched in parallel. +

+
template<
+    typename Allocator,
+    typename Range>
+ranged_parallel_group< typename std::decay< Range >::type, Allocator > make_parallel_group(
+    allocator_arg_t ,
+    const Allocator & allocator,
+    Range && range,
+    typename constraint< is_async_operation_range< typename std::decay< Range >::type >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
allocator
+

+ Specifies the allocator to be used with the result vectors. +

+
range
+

+ A range containing the operations to be launched. +

+
+
+

+ For example: +

+
using op_type = decltype(
+    socket1.async_read_some(
+      asio::buffer(data1),
+      asio::deferred
+    )
+  );
+
+std::vector<op_type> ops;
+
+ops.push_back(
+    socket1.async_read_some(
+      asio::buffer(data1),
+      asio::deferred
+    )
+  );
+
+ops.push_back(
+    socket2.async_read_some(
+      asio::buffer(data2),
+      asio::deferred
+    )
+  );
+
+asio::experimental::make_parallel_group(
+    std::allocator_arg_t,
+    my_allocator,
+    ops
+  ).async_wait(
+    asio::experimental::wait_for_all(),
+    [](
+        std::vector<std::size_t> completion_order,
+        std::vector<std::error_code> e,
+        std::vector<std::size_t> n
+      )
+    {
+      for (std::size_t i = 0; i < completion_order.size(); ++i)
+      {
+        std::size_t idx = completion_order[i];
+        std::cout << "socket " << idx << " finished: ";
+        std::cout << e[idx] << ", " << n[idx] << "\n";
+      }
+    }
+  );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__parallel_group.html b/3party/asio/doc/asio/reference/experimental__parallel_group.html new file mode 100644 index 0000000..9542996 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__parallel_group.html @@ -0,0 +1,141 @@ + + + +experimental::parallel_group + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A group of asynchronous operations that may be launched in parallel. +

+
template<
+    typename... Ops>
+class parallel_group
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ signature +

+
+

+ The completion signature for the group of operations. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ async_wait +

+
+

+ Initiate an asynchronous wait for the group of operations. +

+
+

+ parallel_group [constructor] +

+
+

+ Constructor. +

+
+

+ See the documentation for experimental::make_parallel_group for a usage + example. +

+
+ + Requirements +
+

+ Header: asio/experimental/parallel_group.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__parallel_group/async_wait.html b/3party/asio/doc/asio/reference/experimental__parallel_group/async_wait.html new file mode 100644 index 0000000..c7552dd --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__parallel_group/async_wait.html @@ -0,0 +1,92 @@ + + + +experimental::parallel_group::async_wait + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Initiate + an asynchronous wait for the group of operations. +

+
template<
+    typename CancellationCondition,
+    typename CompletionToken>
+DEDUCED async_wait(
+    CancellationCondition cancellation_condition,
+    CompletionToken && token);
+
+

+ Launches the group and asynchronously waits for completion. +

+
+ + Parameters +
+
+

+
+
cancellation_condition
+

+ A function object, called on completion of an operation within the + group, that is used to determine whether to cancel the remaining + operations. The function object is passed the arguments of the completed + operation's handler. To trigger cancellation of the remaining operations, + it must return a cancellation_type value + other than asio::cancellation_type::none. +

+
token
+

+ A completion + token whose signature is comprised of a std::array<std::size_t, N> indicating the completion order + of the operations, followed by all operations' completion handler + arguments. +

+
+
+

+ The library provides the following cancellation_condition + types: +

+ +
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__parallel_group/parallel_group.html b/3party/asio/doc/asio/reference/experimental__parallel_group/parallel_group.html new file mode 100644 index 0000000..c845c85 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__parallel_group/parallel_group.html @@ -0,0 +1,41 @@ + + + +experimental::parallel_group::parallel_group + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
parallel_group(
+    Ops... ops);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__parallel_group/signature.html b/3party/asio/doc/asio/reference/experimental__parallel_group/signature.html new file mode 100644 index 0000000..45881b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__parallel_group/signature.html @@ -0,0 +1,94 @@ + + + +experimental::parallel_group::signature + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + completion signature for the group of operations. +

+
typedef detail::parallel_group_signature< sizeof...(Ops), typename completion_signature_of< Ops >::type...>::type signature;
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+
+

+ Class template completion_signature_of + is a trait with a member type alias type + that denotes the completion signature of the asynchronous operation initiated + by the expression T(Args..., token) + operation, where token + is an unspecified completion token type. If the asynchronous operation + does not have exactly one completion signature, the instantion of the trait + is well-formed but the member type alias type + is omitted. If the expression T(Args..., token) is not an asynchronous operation then + use of the trait is ill-formed. +

+
+ + Requirements +
+

+ Header: asio/experimental/parallel_group.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise.html b/3party/asio/doc/asio/reference/experimental__promise.html new file mode 100644 index 0000000..a268e09 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise.html @@ -0,0 +1,169 @@ + + + +experimental::promise + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A disposable handle for an eager operation. +

+
template<
+    typename Signature = void(),
+    typename Executor = asio::any_io_executor,
+    typename Allocator = std::allocator<void>>
+struct promise
+
+
+ + Member Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ cancel +

+
+

+ Cancel the promise. Usually done through the destructor. +

+
+

+ completed +

+
+

+ Check if the promise is completed already. +

+
+

+ operator() +

+
+

+ Wait for the promise to become ready. +

+
+

+ promise [constructor] +

+
+
+

+ ~promise [destructor] +

+
+

+ Destruct the promise and cancel the operation. +

+
+

+ Signature The signature of the operation. +

+

+ Executor The executor to be used by the promise (taken from the operation). +

+

+ Allocator The allocator used for the promise. Can be set through use_allocator. +

+

+ A promise can be used to initiate an asynchronous option that can be completed + later. If the promise gets destroyed before completion, the operation gets + a cancel signal and the result is ignored. +

+

+ A promise fulfills the requirements of async_operation. +

+
+ + Examples +
+

+ Reading and writing from one coroutine. +

+
awaitable<void> read_write_some(asio::ip::tcp::socket & sock,
+    asio::mutable_buffer read_buf, asio::const_buffer to_write)
+{
+  auto p = asio::async_read(read_buf, asio::use_awaitable);
+  co_await asio::async_write_some(to_write, asio::deferred);
+  co_await p;
+}
+
+
+ + Requirements +
+

+ Header: asio/experimental/promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise/_promise.html b/3party/asio/doc/asio/reference/experimental__promise/_promise.html new file mode 100644 index 0000000..042bc0f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise/_promise.html @@ -0,0 +1,44 @@ + + + +experimental::promise::~promise + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destruct + the promise and cancel the operation. +

+
~promise();
+
+

+ It is safe to destruct a promise of a promise that didn't complete. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise/cancel.html b/3party/asio/doc/asio/reference/experimental__promise/cancel.html new file mode 100644 index 0000000..6df7698 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise/cancel.html @@ -0,0 +1,42 @@ + + + +experimental::promise::cancel + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Cancel + the promise. Usually done through the destructor. +

+
void cancel(
+    cancellation_type level = cancellation_type::all);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise/completed.html b/3party/asio/doc/asio/reference/experimental__promise/completed.html new file mode 100644 index 0000000..3a6b636 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise/completed.html @@ -0,0 +1,41 @@ + + + +experimental::promise::completed + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Check + if the promise is completed already. +

+
bool completed() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise/operator_lp__rp_.html b/3party/asio/doc/asio/reference/experimental__promise/operator_lp__rp_.html new file mode 100644 index 0000000..7ea42fc --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise/operator_lp__rp_.html @@ -0,0 +1,44 @@ + + + +experimental::promise::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Wait + for the promise to become ready. +

+
template<
+    typename CompletionToken>
+DEDUCED operator()(
+    CompletionToken && token);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise/promise.html b/3party/asio/doc/asio/reference/experimental__promise/promise.html new file mode 100644 index 0000000..cdca2c4 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise/promise.html @@ -0,0 +1,48 @@ + + + +experimental::promise::promise + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
promise();
+  » more...
+
+promise(
+    const promise & );
+  » more...
+
+promise(
+    promise && );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise/promise/overload1.html b/3party/asio/doc/asio/reference/experimental__promise/promise/overload1.html new file mode 100644 index 0000000..60c8990 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise/promise/overload1.html @@ -0,0 +1,37 @@ + + + +experimental::promise::promise (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+ + +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise/promise/overload2.html b/3party/asio/doc/asio/reference/experimental__promise/promise/overload2.html new file mode 100644 index 0000000..fc963ff --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise/promise/overload2.html @@ -0,0 +1,38 @@ + + + +experimental::promise::promise (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
promise(
+    const promise & );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise/promise/overload3.html b/3party/asio/doc/asio/reference/experimental__promise/promise/overload3.html new file mode 100644 index 0000000..293d197 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise/promise/overload3.html @@ -0,0 +1,38 @@ + + + +experimental::promise::promise (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
promise(
+    promise && );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise_value_type.html b/3party/asio/doc/asio/reference/experimental__promise_value_type.html new file mode 100644 index 0000000..711f16c --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise_value_type.html @@ -0,0 +1,51 @@ + + + +experimental::promise_value_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename... Ts>
+struct promise_value_type
+
+
+ + Requirements +
+

+ Header: asio/experimental/promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise_value_type_lt__T__gt_.html b/3party/asio/doc/asio/reference/experimental__promise_value_type_lt__T__gt_.html new file mode 100644 index 0000000..ef4bc54 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise_value_type_lt__T__gt_.html @@ -0,0 +1,52 @@ + + + +experimental::promise_value_type< T > + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename T>
+struct promise_value_type< T >
+
+
+ + Requirements +
+

+ Header: asio/experimental/promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__promise_value_type_lt__gt_.html b/3party/asio/doc/asio/reference/experimental__promise_value_type_lt__gt_.html new file mode 100644 index 0000000..8b49efd --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__promise_value_type_lt__gt_.html @@ -0,0 +1,50 @@ + + + +experimental::promise_value_type<> + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<>
+struct promise_value_type<>
+
+
+ + Requirements +
+

+ Header: asio/experimental/promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__ranged_parallel_group.html b/3party/asio/doc/asio/reference/experimental__ranged_parallel_group.html new file mode 100644 index 0000000..ec769fc --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__ranged_parallel_group.html @@ -0,0 +1,142 @@ + + + +experimental::ranged_parallel_group + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A range-based group of asynchronous operations that may be launched in parallel. +

+
template<
+    typename Range,
+    typename Allocator = std::allocator<void>>
+class ranged_parallel_group
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ signature +

+
+

+ The completion signature for the group of operations. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ async_wait +

+
+

+ Initiate an asynchronous wait for the group of operations. +

+
+

+ ranged_parallel_group [constructor] +

+
+

+ Constructor. +

+
+

+ See the documentation for experimental::make_parallel_group for a usage + example. +

+
+ + Requirements +
+

+ Header: asio/experimental/parallel_group.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__ranged_parallel_group/async_wait.html b/3party/asio/doc/asio/reference/experimental__ranged_parallel_group/async_wait.html new file mode 100644 index 0000000..559753d --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__ranged_parallel_group/async_wait.html @@ -0,0 +1,92 @@ + + + +experimental::ranged_parallel_group::async_wait + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Initiate + an asynchronous wait for the group of operations. +

+
template<
+    typename CancellationCondition,
+    typename CompletionToken>
+DEDUCED async_wait(
+    CancellationCondition cancellation_condition,
+    CompletionToken && token);
+
+

+ Launches the group and asynchronously waits for completion. +

+
+ + Parameters +
+
+

+
+
cancellation_condition
+

+ A function object, called on completion of an operation within the + group, that is used to determine whether to cancel the remaining + operations. The function object is passed the arguments of the completed + operation's handler. To trigger cancellation of the remaining operations, + it must return a cancellation_type value + other than asio::cancellation_type::none. +

+
token
+

+ A completion + token whose signature is comprised of a std::vector<std::size_t, Allocator> indicating the completion order + of the operations, followed by a vector for each of the completion + signature's arguments. +

+
+
+

+ The library provides the following cancellation_condition + types: +

+ +
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__ranged_parallel_group/ranged_parallel_group.html b/3party/asio/doc/asio/reference/experimental__ranged_parallel_group/ranged_parallel_group.html new file mode 100644 index 0000000..1a1f770 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__ranged_parallel_group/ranged_parallel_group.html @@ -0,0 +1,42 @@ + + + +experimental::ranged_parallel_group::ranged_parallel_group + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
ranged_parallel_group(
+    Range range,
+    const Allocator & allocator = Allocator());
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__ranged_parallel_group/signature.html b/3party/asio/doc/asio/reference/experimental__ranged_parallel_group/signature.html new file mode 100644 index 0000000..444808b --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__ranged_parallel_group/signature.html @@ -0,0 +1,51 @@ + + + +experimental::ranged_parallel_group::signature + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + completion signature for the group of operations. +

+
typedef detail::ranged_parallel_group_signature< typename completion_signature_of< typename std::decay< decltype(*std::declval< typename Range::iterator >))>::type >::type, Allocator >::type signature;
+
+
+ + Requirements +
+

+ Header: asio/experimental/parallel_group.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro.html b/3party/asio/doc/asio/reference/experimental__use_coro.html new file mode 100644 index 0000000..e8b1cd5 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro.html @@ -0,0 +1,56 @@ + + + +experimental::use_coro + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + object that represents the currently executing resumable coroutine. +

+
constexpr use_coro_t use_coro;
+
+

+ See the documentation for asio::use_coro_t for a usage example. +

+
+ + Requirements +
+

+ Header: asio/experimental/use_coro.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro_t.html b/3party/asio/doc/asio/reference/experimental__use_coro_t.html new file mode 100644 index 0000000..59fdeaf --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro_t.html @@ -0,0 +1,203 @@ + + + +experimental::use_coro_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + that creates another coro for the task completion. +

+
template<
+    typename Allocator = std::allocator<void>>
+struct use_coro_t
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocator_type +

+
+

+ The allocator type. The allocator is used when constructing the + std::promise object for a given asynchronous operation. +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the use_coro_t completion token as the + default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use use_coro_t as its + default completion token type. +

+
+

+ get_allocator +

+
+

+ Obtain allocator. +

+
+

+ rebind +

+
+

+ Specify an alternate allocator. +

+
+

+ use_coro_t [constructor] +

+
+

+ Default constructor.

Constructor used to specify + file name, line, and function name. +

+
+

+ The use_coro_t class, with + its value use_coro, is used + to represent an operation that can be awaited by the current resumable coroutine. + This completion token may be passed as a handler to an asynchronous operation. + For example: +

+
coro<void> my_coroutine(tcp::socket my_socket)
+{
+  std::size_t n = co_await my_socket.async_read_some(buffer, use_coro);
+  ...
+}
+
+

+ When used with co_await, 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. +

+

+ Note that this token is not the most efficient (use asio::deferred + for that) but does provide type erasure, as it will always return a coro. +

+
+ + Requirements +
+

+ Header: asio/experimental/use_coro.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro_t/allocator_type.html b/3party/asio/doc/asio/reference/experimental__use_coro_t/allocator_type.html new file mode 100644 index 0000000..aa63aa9 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro_t/allocator_type.html @@ -0,0 +1,52 @@ + + + +experimental::use_coro_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/experimental/use_coro.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro_t/as_default_on.html b/3party/asio/doc/asio/reference/experimental__use_coro_t/as_default_on.html new file mode 100644 index 0000000..3d9708a --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro_t/as_default_on.html @@ -0,0 +1,45 @@ + + + +experimental::use_coro_t::as_default_on + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Function + helper to adapt an I/O object to use use_coro_t + as its default completion token type. +

+
template<
+    typename T>
+static decay< T >::type::template rebind_executor< executor_with_default< typename decay< T >::type::executor_type > >::other as_default_on(
+    T && object);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro_t/get_allocator.html b/3party/asio/doc/asio/reference/experimental__use_coro_t/get_allocator.html new file mode 100644 index 0000000..8e18e83 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro_t/get_allocator.html @@ -0,0 +1,41 @@ + + + +experimental::use_coro_t::get_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + allocator. +

+
allocator_type get_allocator() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro_t/rebind.html b/3party/asio/doc/asio/reference/experimental__use_coro_t/rebind.html new file mode 100644 index 0000000..987b3c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro_t/rebind.html @@ -0,0 +1,44 @@ + + + +experimental::use_coro_t::rebind + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Specify + an alternate allocator. +

+
template<
+    typename OtherAllocator>
+use_coro_t< OtherAllocator > rebind(
+    const OtherAllocator & allocator) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t.html b/3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t.html new file mode 100644 index 0000000..98b199b --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t.html @@ -0,0 +1,51 @@ + + + +experimental::use_coro_t::use_coro_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr use_coro_t();
+  » more...
+
+

+ Constructor used to specify file name, line, and function name. +

+
constexpr use_coro_t(
+    const char * file_name,
+    int line,
+    const char * function_name);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t/overload1.html b/3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t/overload1.html new file mode 100644 index 0000000..749e067 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t/overload1.html @@ -0,0 +1,40 @@ + + + +experimental::use_coro_t::use_coro_t (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr use_coro_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t/overload2.html b/3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t/overload2.html new file mode 100644 index 0000000..a1028a2 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro_t/use_coro_t/overload2.html @@ -0,0 +1,43 @@ + + + +experimental::use_coro_t::use_coro_t (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor used to specify file name, line, and function name. +

+
constexpr use_coro_t(
+    const char * file_name,
+    int line,
+    const char * function_name);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default.html b/3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default.html new file mode 100644 index 0000000..bf1795f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default.html @@ -0,0 +1,124 @@ + + + +experimental::use_coro_t::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Adapts an executor to add the use_coro_t + completion token as the default. +

+
template<
+    typename InnerExecutor>
+struct executor_with_default
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_completion_token_type +

+
+

+ Specify use_coro_t as the default completion token type. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default [constructor] +

+
+

+ Construct the adapted executor from the inner executor type. +

+
+
+ + Requirements +
+

+ Header: asio/experimental/use_coro.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default/default_completion_token_type.html b/3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default/default_completion_token_type.html new file mode 100644 index 0000000..a002f8b --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default/default_completion_token_type.html @@ -0,0 +1,200 @@ + + + +experimental::use_coro_t::executor_with_default::default_completion_token_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Specify + use_coro_t as the default + completion token type. +

+
typedef use_coro_t default_completion_token_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocator_type +

+
+

+ The allocator type. The allocator is used when constructing the + std::promise object for a given asynchronous operation. +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the use_coro_t completion token as + the default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use use_coro_t as its + default completion token type. +

+
+

+ get_allocator +

+
+

+ Obtain allocator. +

+
+

+ rebind +

+
+

+ Specify an alternate allocator. +

+
+

+ use_coro_t [constructor] +

+
+

+ Default constructor.

Constructor used to specify + file name, line, and function name. +

+
+

+ The use_coro_t class, with + its value use_coro, is + used to represent an operation that can be awaited by the current resumable + coroutine. This completion token may be passed as a handler to an asynchronous + operation. For example: +

+
coro<void> my_coroutine(tcp::socket my_socket)
+{
+  std::size_t n = co_await my_socket.async_read_some(buffer, use_coro);
+  ...
+}
+
+

+ When used with co_await, 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. +

+

+ Note that this token is not the most efficient (use asio::deferred + for that) but does provide type erasure, as it will always return a coro. +

+
+ + Requirements +
+

+ Header: asio/experimental/use_coro.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default/executor_with_default.html b/3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default/executor_with_default.html new file mode 100644 index 0000000..fbfc2e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_coro_t__executor_with_default/executor_with_default.html @@ -0,0 +1,45 @@ + + + +experimental::use_coro_t::executor_with_default::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + the adapted executor from the inner executor type. +

+
template<
+    typename InnerExecutor1>
+executor_with_default(
+    const InnerExecutor1 & ex,
+    typename constraint< conditional< !is_same< InnerExecutor1, executor_with_default >::value, is_convertible< InnerExecutor1, InnerExecutor >, false_type >::type::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise.html b/3party/asio/doc/asio/reference/experimental__use_promise.html new file mode 100644 index 0000000..5d75ef2 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise.html @@ -0,0 +1,49 @@ + + + +experimental::use_promise + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
constexpr use_promise_t use_promise;
+
+
+ + Requirements +
+

+ Header: asio/experimental/use_promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t.html b/3party/asio/doc/asio/reference/experimental__use_promise_t.html new file mode 100644 index 0000000..b5fd999 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t.html @@ -0,0 +1,176 @@ + + + +experimental::use_promise_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename Allocator = std::allocator<void>>
+struct use_promise_t
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocator_type +

+
+

+ The allocator type. The allocator is used when constructing the + promise object for a given asynchronous operation. +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the use_promise_t completion token as + the default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use use_promise_t as + its default completion token type. +

+
+

+ get_allocator +

+
+

+ Obtain allocator. +

+
+

+ rebind +

+
+

+ Specify an alternate allocator. +

+
+

+ use_promise_t [constructor] +

+
+

+ Construct using default-constructed allocator.

Construct + using specified allocator. +

+
+
+ + Requirements +
+

+ Header: asio/experimental/use_promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t/allocator_type.html b/3party/asio/doc/asio/reference/experimental__use_promise_t/allocator_type.html new file mode 100644 index 0000000..8ff1302 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t/allocator_type.html @@ -0,0 +1,52 @@ + + + +experimental::use_promise_t::allocator_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + allocator type. The allocator is used when constructing the promise object for a given asynchronous + operation. +

+
typedef Allocator allocator_type;
+
+
+ + Requirements +
+

+ Header: asio/experimental/use_promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t/as_default_on.html b/3party/asio/doc/asio/reference/experimental__use_promise_t/as_default_on.html new file mode 100644 index 0000000..7898b03 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t/as_default_on.html @@ -0,0 +1,45 @@ + + + +experimental::use_promise_t::as_default_on + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Function + helper to adapt an I/O object to use use_promise_t + as its default completion token type. +

+
template<
+    typename T>
+static decay< T >::type::template rebind_executor< executor_with_default< typename decay< T >::type::executor_type > >::other as_default_on(
+    T && object);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t/get_allocator.html b/3party/asio/doc/asio/reference/experimental__use_promise_t/get_allocator.html new file mode 100644 index 0000000..b157088 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t/get_allocator.html @@ -0,0 +1,41 @@ + + + +experimental::use_promise_t::get_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + allocator. +

+
allocator_type get_allocator() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t/rebind.html b/3party/asio/doc/asio/reference/experimental__use_promise_t/rebind.html new file mode 100644 index 0000000..71f7af0 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t/rebind.html @@ -0,0 +1,44 @@ + + + +experimental::use_promise_t::rebind + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Specify + an alternate allocator. +

+
template<
+    typename OtherAllocator>
+use_promise_t< OtherAllocator > rebind(
+    const OtherAllocator & allocator) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t.html b/3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t.html new file mode 100644 index 0000000..883d9f4 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t.html @@ -0,0 +1,49 @@ + + + +experimental::use_promise_t::use_promise_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + using default-constructed allocator. +

+
constexpr use_promise_t();
+  » more...
+
+

+ Construct using specified allocator. +

+
explicit use_promise_t(
+    const Allocator & allocator);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t/overload1.html b/3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t/overload1.html new file mode 100644 index 0000000..39c53c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t/overload1.html @@ -0,0 +1,40 @@ + + + +experimental::use_promise_t::use_promise_t (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct using default-constructed allocator. +

+
constexpr use_promise_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t/overload2.html b/3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t/overload2.html new file mode 100644 index 0000000..3c8ae2f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t/use_promise_t/overload2.html @@ -0,0 +1,41 @@ + + + +experimental::use_promise_t::use_promise_t (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct using specified allocator. +

+
use_promise_t(
+    const Allocator & allocator);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default.html b/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default.html new file mode 100644 index 0000000..98d6cd6 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default.html @@ -0,0 +1,126 @@ + + + +experimental::use_promise_t::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Adapts an executor to add the use_promise_t + completion token as the default. +

+
template<
+    typename InnerExecutor>
+struct executor_with_default
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_completion_token_type +

+
+

+ Specify use_promise_t as the default completion token type. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default [constructor] +

+
+

+ Construct the adapted executor from the inner executor type.
+
Convert the specified executor to the inner executor type, + then use that to construct the adapted executor. +

+
+
+ + Requirements +
+

+ Header: asio/experimental/use_promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/default_completion_token_type.html b/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/default_completion_token_type.html new file mode 100644 index 0000000..1e150c8 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/default_completion_token_type.html @@ -0,0 +1,177 @@ + + + +experimental::use_promise_t::executor_with_default::default_completion_token_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Specify + use_promise_t as the default + completion token type. +

+
typedef use_promise_t< Allocator > default_completion_token_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocator_type +

+
+

+ The allocator type. The allocator is used when constructing the + promise object for a given asynchronous operation. +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the use_promise_t completion token + as the default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use use_promise_t as + its default completion token type. +

+
+

+ get_allocator +

+
+

+ Obtain allocator. +

+
+

+ rebind +

+
+

+ Specify an alternate allocator. +

+
+

+ use_promise_t [constructor] +

+
+

+ Construct using default-constructed allocator.

+ Construct using specified allocator. +

+
+
+ + Requirements +
+

+ Header: asio/experimental/use_promise.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default.html b/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default.html new file mode 100644 index 0000000..703172a --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default.html @@ -0,0 +1,54 @@ + + + +experimental::use_promise_t::executor_with_default::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + the adapted executor from the inner executor type. +

+
executor_with_default(
+    const InnerExecutor & ex);
+  » more...
+
+

+ Convert the specified executor to the inner executor type, then use that + to construct the adapted executor. +

+
template<
+    typename OtherExecutor>
+executor_with_default(
+    const OtherExecutor & ex,
+    typename constraint< is_convertible< OtherExecutor, InnerExecutor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload1.html b/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload1.html new file mode 100644 index 0000000..dfdde83 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload1.html @@ -0,0 +1,41 @@ + + + +experimental::use_promise_t::executor_with_default::executor_with_default (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct the adapted executor from the inner executor type. +

+
executor_with_default(
+    const InnerExecutor & ex);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload2.html b/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload2.html new file mode 100644 index 0000000..130d9cd --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload2.html @@ -0,0 +1,45 @@ + + + +experimental::use_promise_t::executor_with_default::executor_with_default (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Convert the specified executor to the inner executor type, then use that + to construct the adapted executor. +

+
template<
+    typename OtherExecutor>
+executor_with_default(
+    const OtherExecutor & ex,
+    typename constraint< is_convertible< OtherExecutor, InnerExecutor >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_all.html b/3party/asio/doc/asio/reference/experimental__wait_for_all.html new file mode 100644 index 0000000..72d8e20 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_all.html @@ -0,0 +1,84 @@ + + + +experimental::wait_for_all + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Wait for all operations to complete. +

+
class wait_for_all
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+
+
+ + Requirements +
+

+ Header: asio/experimental/cancellation_condition.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_all/operator_lp__rp_.html b/3party/asio/doc/asio/reference/experimental__wait_for_all/operator_lp__rp_.html new file mode 100644 index 0000000..1ccac0f --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_all/operator_lp__rp_.html @@ -0,0 +1,42 @@ + + + +experimental::wait_for_all::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename... Args>
+constexpr cancellation_type_t operator()(
+    Args && ...) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one.html b/3party/asio/doc/asio/reference/experimental__wait_for_one.html new file mode 100644 index 0000000..974540d --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one.html @@ -0,0 +1,95 @@ + + + +experimental::wait_for_one + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Wait until an operation completes, then cancel the others. +

+
class wait_for_one
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+
+

+ wait_for_one [constructor] +

+
+
+
+ + Requirements +
+

+ Header: asio/experimental/cancellation_condition.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one/operator_lp__rp_.html b/3party/asio/doc/asio/reference/experimental__wait_for_one/operator_lp__rp_.html new file mode 100644 index 0000000..9aa3777 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one/operator_lp__rp_.html @@ -0,0 +1,42 @@ + + + +experimental::wait_for_one::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename... Args>
+constexpr cancellation_type_t operator()(
+    Args && ...) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one/wait_for_one.html b/3party/asio/doc/asio/reference/experimental__wait_for_one/wait_for_one.html new file mode 100644 index 0000000..0541886 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one/wait_for_one.html @@ -0,0 +1,40 @@ + + + +experimental::wait_for_one::wait_for_one + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
constexpr wait_for_one(
+    cancellation_type_t cancel_type = cancellation_type::all);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_error.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_error.html new file mode 100644 index 0000000..3b7e7b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_error.html @@ -0,0 +1,98 @@ + + + +experimental::wait_for_one_error + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Wait until an operation completes with an error, then cancel the others. +

+
class wait_for_one_error
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+
+

+ wait_for_one_error [constructor] +

+
+
+

+ If no operation completes with an error, waits for completion of all operations. +

+
+ + Requirements +
+

+ Header: asio/experimental/cancellation_condition.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_.html new file mode 100644 index 0000000..372a297 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_.html @@ -0,0 +1,56 @@ + + + +experimental::wait_for_one_error::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
constexpr cancellation_type_t operator()() const;
+  » more...
+
+template<
+    typename E,
+    typename... Args>
+constexpr constraint< !is_same< typename decay< E >::type, asio::error_code >::value &&!is_same< typename decay< E >::type, std::exception_ptr >::value, cancellation_type_t >::type operator()(
+    const E & ,
+    Args && ...) const;
+  » more...
+
+template<
+    typename E,
+    typename... Args>
+constexpr constraint< is_same< typename decay< E >::type, asio::error_code >::value||is_same< typename decay< E >::type, std::exception_ptr >::value, cancellation_type_t >::type operator()(
+    const E & e,
+    Args && ...) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload1.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload1.html new file mode 100644 index 0000000..60b6eb2 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload1.html @@ -0,0 +1,37 @@ + + + +experimental::wait_for_one_error::operator() (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
constexpr cancellation_type_t operator()() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload2.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload2.html new file mode 100644 index 0000000..43160d7 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload2.html @@ -0,0 +1,42 @@ + + + +experimental::wait_for_one_error::operator() (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename E,
+    typename... Args>
+constexpr constraint< !is_same< typename decay< E >::type, asio::error_code >::value &&!is_same< typename decay< E >::type, std::exception_ptr >::value, cancellation_type_t >::type operator()(
+    const E & ,
+    Args && ...) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload3.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload3.html new file mode 100644 index 0000000..bb7fef5 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload3.html @@ -0,0 +1,42 @@ + + + +experimental::wait_for_one_error::operator() (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename E,
+    typename... Args>
+constexpr constraint< is_same< typename decay< E >::type, asio::error_code >::value||is_same< typename decay< E >::type, std::exception_ptr >::value, cancellation_type_t >::type operator()(
+    const E & e,
+    Args && ...) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_error/wait_for_one_error.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_error/wait_for_one_error.html new file mode 100644 index 0000000..80bbd77 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_error/wait_for_one_error.html @@ -0,0 +1,40 @@ + + + +experimental::wait_for_one_error::wait_for_one_error + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
constexpr wait_for_one_error(
+    cancellation_type_t cancel_type = cancellation_type::all);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_success.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_success.html new file mode 100644 index 0000000..1b6c43e --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_success.html @@ -0,0 +1,98 @@ + + + +experimental::wait_for_one_success + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Wait until an operation completes without an error, then cancel the others. +

+
class wait_for_one_success
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator() +

+
+
+

+ wait_for_one_success [constructor] +

+
+
+

+ If no operation completes without an error, waits for completion of all operations. +

+
+ + Requirements +
+

+ Header: asio/experimental/cancellation_condition.hpp +

+

+ Convenience header: None +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_.html new file mode 100644 index 0000000..7c34bad --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_.html @@ -0,0 +1,56 @@ + + + +experimental::wait_for_one_success::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
constexpr cancellation_type_t operator()() const;
+  » more...
+
+template<
+    typename E,
+    typename... Args>
+constexpr constraint< !is_same< typename decay< E >::type, asio::error_code >::value &&!is_same< typename decay< E >::type, std::exception_ptr >::value, cancellation_type_t >::type operator()(
+    const E & ,
+    Args && ...) const;
+  » more...
+
+template<
+    typename E,
+    typename... Args>
+constexpr constraint< is_same< typename decay< E >::type, asio::error_code >::value||is_same< typename decay< E >::type, std::exception_ptr >::value, cancellation_type_t >::type operator()(
+    const E & e,
+    Args && ...) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload1.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload1.html new file mode 100644 index 0000000..fd62e71 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload1.html @@ -0,0 +1,37 @@ + + + +experimental::wait_for_one_success::operator() (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
constexpr cancellation_type_t operator()() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload2.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload2.html new file mode 100644 index 0000000..2ee06b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload2.html @@ -0,0 +1,42 @@ + + + +experimental::wait_for_one_success::operator() (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename E,
+    typename... Args>
+constexpr constraint< !is_same< typename decay< E >::type, asio::error_code >::value &&!is_same< typename decay< E >::type, std::exception_ptr >::value, cancellation_type_t >::type operator()(
+    const E & ,
+    Args && ...) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload3.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload3.html new file mode 100644 index 0000000..7efc8b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload3.html @@ -0,0 +1,42 @@ + + + +experimental::wait_for_one_success::operator() (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename E,
+    typename... Args>
+constexpr constraint< is_same< typename decay< E >::type, asio::error_code >::value||is_same< typename decay< E >::type, std::exception_ptr >::value, cancellation_type_t >::type operator()(
+    const E & e,
+    Args && ...) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/experimental__wait_for_one_success/wait_for_one_success.html b/3party/asio/doc/asio/reference/experimental__wait_for_one_success/wait_for_one_success.html new file mode 100644 index 0000000..496589d --- /dev/null +++ b/3party/asio/doc/asio/reference/experimental__wait_for_one_success/wait_for_one_success.html @@ -0,0 +1,40 @@ + + + +experimental::wait_for_one_success::wait_for_one_success + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
constexpr wait_for_one_success(
+    cancellation_type_t cancel_type = cancellation_type::all);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base.html b/3party/asio/doc/asio/reference/file_base.html new file mode 100644 index 0000000..7112836 --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base.html @@ -0,0 +1,267 @@ + + + +file_base + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The file_base + class is used as a base for the basic_stream_file and basic_random_access_file class templates + so that we have a common place to define flags. +

+
class file_base
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ flags +

+
+

+ A bitmask type (C++ Std [lib.bitmask.types]). +

+
+

+ seek_basis +

+
+

+ Basis for seeking in a file. +

+
+
+ + Protected + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ ~file_base + [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ append + [static] +

+
+

+ Open the file in append mode. +

+
+

+ create + [static] +

+
+

+ Create the file if it does not exist. +

+
+

+ exclusive + [static] +

+
+

+ Ensure a new file is created. Must be combined with create. +

+
+

+ read_only + [static] +

+
+

+ Open the file for reading. +

+
+

+ read_write + [static] +

+
+

+ Open the file for reading and writing. +

+
+

+ sync_all_on_write [static] +

+
+

+ Open the file so that write operations automatically synchronise + the file data and metadata to disk. +

+
+

+ truncate + [static] +

+
+

+ Open the file with any existing contents truncated. +

+
+

+ write_only + [static] +

+
+

+ Open the file for writing. +

+
+
+ + Requirements +
+

+ Header: asio/file_base.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base/_file_base.html b/3party/asio/doc/asio/reference/file_base/_file_base.html new file mode 100644 index 0000000..d49ffeb --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base/_file_base.html @@ -0,0 +1,41 @@ + + + +file_base::~file_base + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Protected destructor + to prevent deletion through this type. +

+
~file_base();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base/append.html b/3party/asio/doc/asio/reference/file_base/append.html new file mode 100644 index 0000000..1894dc8 --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base/append.html @@ -0,0 +1,40 @@ + + + +file_base::append + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Open the file in append mode. +

+
static const flags append = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base/create.html b/3party/asio/doc/asio/reference/file_base/create.html new file mode 100644 index 0000000..0ff5809 --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base/create.html @@ -0,0 +1,41 @@ + + + +file_base::create + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Create the file if it does + not exist. +

+
static const flags create = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base/exclusive.html b/3party/asio/doc/asio/reference/file_base/exclusive.html new file mode 100644 index 0000000..d1c2a8c --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base/exclusive.html @@ -0,0 +1,41 @@ + + + +file_base::exclusive + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Ensure a new file is + created. Must be combined with create. +

+
static const flags exclusive = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base/flags.html b/3party/asio/doc/asio/reference/file_base/flags.html new file mode 100644 index 0000000..a299114 --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base/flags.html @@ -0,0 +1,50 @@ + + + +file_base::flags + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A bitmask type (C++ Std [lib.bitmask.types]). +

+
typedef unspecified flags;
+
+
+ + Requirements +
+

+ Header: asio/file_base.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base/read_only.html b/3party/asio/doc/asio/reference/file_base/read_only.html new file mode 100644 index 0000000..3bc9795 --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base/read_only.html @@ -0,0 +1,40 @@ + + + +file_base::read_only + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Open the file for reading. +

+
static const flags read_only = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base/read_write.html b/3party/asio/doc/asio/reference/file_base/read_write.html new file mode 100644 index 0000000..113b987 --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base/read_write.html @@ -0,0 +1,41 @@ + + + +file_base::read_write + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Open the file for + reading and writing. +

+
static const flags read_write = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base/seek_basis.html b/3party/asio/doc/asio/reference/file_base/seek_basis.html new file mode 100644 index 0000000..2dc5ded --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base/seek_basis.html @@ -0,0 +1,67 @@ + + + +file_base::seek_basis + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Basis for seeking + in a file. +

+
enum seek_basis
+
+

+ + + +

+
+ + Values +
+
+

+
+
seek_set
+

+ Seek to an absolute position. +

+
seek_cur
+

+ Seek to an offset relative to the current file position. +

+
seek_end
+

+ Seek to an offset relative to the end of the file. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base/sync_all_on_write.html b/3party/asio/doc/asio/reference/file_base/sync_all_on_write.html new file mode 100644 index 0000000..ca547ae --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base/sync_all_on_write.html @@ -0,0 +1,42 @@ + + + +file_base::sync_all_on_write + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Open + the file so that write operations automatically synchronise the file data + and metadata to disk. +

+
static const flags sync_all_on_write = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base/truncate.html b/3party/asio/doc/asio/reference/file_base/truncate.html new file mode 100644 index 0000000..fe7596e --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base/truncate.html @@ -0,0 +1,41 @@ + + + +file_base::truncate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Open the file with any + existing contents truncated. +

+
static const flags truncate = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/file_base/write_only.html b/3party/asio/doc/asio/reference/file_base/write_only.html new file mode 100644 index 0000000..6232c55 --- /dev/null +++ b/3party/asio/doc/asio/reference/file_base/write_only.html @@ -0,0 +1,41 @@ + + + +file_base::write_only + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Open the file for + writing. +

+
static const flags write_only = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__basic_endpoint.html b/3party/asio/doc/asio/reference/generic__basic_endpoint.html new file mode 100644 index 0000000..d620135 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint.html @@ -0,0 +1,332 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html new file mode 100644 index 0000000..818ec74 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html @@ -0,0 +1,67 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html new file mode 100644 index 0000000..b9a14bc --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html @@ -0,0 +1,40 @@ + + + +generic::basic_endpoint::basic_endpoint (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
basic_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html new file mode 100644 index 0000000..bada3bd --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html new file mode 100644 index 0000000..819b0c7 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html new file mode 100644 index 0000000..fd5bdce --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/capacity.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/capacity.html new file mode 100644 index 0000000..10ba1cc --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/capacity.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/data.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/data.html new file mode 100644 index 0000000..7218751 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/data.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/data/overload1.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/data/overload1.html new file mode 100644 index 0000000..481475e --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/data/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/data/overload2.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/data/overload2.html new file mode 100644 index 0000000..b586907 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/data/overload2.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/data_type.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/data_type.html new file mode 100644 index 0000000..6744ac4 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/data_type.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_eq_.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_eq_.html new file mode 100644 index 0000000..ec09be2 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_eq_.html @@ -0,0 +1,42 @@ + + + +generic::basic_endpoint::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign + from another endpoint. +

+
basic_endpoint & operator=(
+    const basic_endpoint & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_eq__eq_.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_eq__eq_.html new file mode 100644 index 0000000..5aecf95 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_gt_.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_gt_.html new file mode 100644 index 0000000..d6ab4e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_gt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_gt__eq_.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_gt__eq_.html new file mode 100644 index 0000000..4b1b9be --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_gt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_lt_.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_lt_.html new file mode 100644 index 0000000..f90d744 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_lt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_lt__eq_.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_lt__eq_.html new file mode 100644 index 0000000..fef4435 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_lt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_not__eq_.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_not__eq_.html new file mode 100644 index 0000000..675357c --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/protocol.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/protocol.html new file mode 100644 index 0000000..0fb8739 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/protocol.html @@ -0,0 +1,41 @@ + + + +generic::basic_endpoint::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + protocol associated with the endpoint. +

+
protocol_type protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__basic_endpoint/protocol_type.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/protocol_type.html new file mode 100644 index 0000000..331687a --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/resize.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/resize.html new file mode 100644 index 0000000..48bbc73 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/resize.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/generic__basic_endpoint/size.html b/3party/asio/doc/asio/reference/generic__basic_endpoint/size.html new file mode 100644 index 0000000..e37b6aa --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__basic_endpoint/size.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/generic__datagram_protocol.html b/3party/asio/doc/asio/reference/generic__datagram_protocol.html new file mode 100644 index 0000000..70a0920 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__datagram_protocol.html @@ -0,0 +1,252 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol.html b/3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol.html new file mode 100644 index 0000000..14f8172 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html b/3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html new file mode 100644 index 0000000..be923bf --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html b/3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html new file mode 100644 index 0000000..d6a4c4e --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html @@ -0,0 +1,56 @@ + + + +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/3party/asio/doc/asio/reference/generic__datagram_protocol/endpoint.html b/3party/asio/doc/asio/reference/generic__datagram_protocol/endpoint.html new file mode 100644 index 0000000..3ca58f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__datagram_protocol/endpoint.html @@ -0,0 +1,329 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/generic__datagram_protocol/family.html b/3party/asio/doc/asio/reference/generic__datagram_protocol/family.html new file mode 100644 index 0000000..bd80c88 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__datagram_protocol/family.html @@ -0,0 +1,41 @@ + + + +generic::datagram_protocol::family + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol family. +

+
int family() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__datagram_protocol/operator_eq__eq_.html b/3party/asio/doc/asio/reference/generic__datagram_protocol/operator_eq__eq_.html new file mode 100644 index 0000000..0d0c9ad --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__datagram_protocol/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__datagram_protocol/operator_not__eq_.html b/3party/asio/doc/asio/reference/generic__datagram_protocol/operator_not__eq_.html new file mode 100644 index 0000000..59d5f27 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__datagram_protocol/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__datagram_protocol/protocol.html b/3party/asio/doc/asio/reference/generic__datagram_protocol/protocol.html new file mode 100644 index 0000000..07505ba --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__datagram_protocol/protocol.html @@ -0,0 +1,41 @@ + + + +generic::datagram_protocol::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol. +

+
int protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__datagram_protocol/socket.html b/3party/asio/doc/asio/reference/generic__datagram_protocol/socket.html new file mode 100644 index 0000000..a3bd569 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__datagram_protocol/socket.html @@ -0,0 +1,925 @@ + + + +generic::datagram_protocol::socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + generic socket type. +

+
typedef basic_datagram_socket< datagram_protocol > socket;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, send_to, receive, + receive_from, connect, and shutdown + operations are thread safe with respect to each other, if the underlying + operating system calls are also thread safe. This means that it is permitted + to perform concurrent calls to these synchronous operations on a single + socket object. Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/generic/datagram_protocol.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__datagram_protocol/type.html b/3party/asio/doc/asio/reference/generic__datagram_protocol/type.html new file mode 100644 index 0000000..38af3f0 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__datagram_protocol/type.html @@ -0,0 +1,41 @@ + + + +generic::datagram_protocol::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the type of the protocol. +

+
int type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__raw_protocol.html b/3party/asio/doc/asio/reference/generic__raw_protocol.html new file mode 100644 index 0000000..fc662ca --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__raw_protocol.html @@ -0,0 +1,252 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/generic__raw_protocol/endpoint.html b/3party/asio/doc/asio/reference/generic__raw_protocol/endpoint.html new file mode 100644 index 0000000..7627d8a --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__raw_protocol/endpoint.html @@ -0,0 +1,329 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/generic__raw_protocol/family.html b/3party/asio/doc/asio/reference/generic__raw_protocol/family.html new file mode 100644 index 0000000..9c96316 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__raw_protocol/family.html @@ -0,0 +1,41 @@ + + + +generic::raw_protocol::family + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol family. +

+
int family() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__raw_protocol/operator_eq__eq_.html b/3party/asio/doc/asio/reference/generic__raw_protocol/operator_eq__eq_.html new file mode 100644 index 0000000..b742e20 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__raw_protocol/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__raw_protocol/operator_not__eq_.html b/3party/asio/doc/asio/reference/generic__raw_protocol/operator_not__eq_.html new file mode 100644 index 0000000..f9cbcfd --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__raw_protocol/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__raw_protocol/protocol.html b/3party/asio/doc/asio/reference/generic__raw_protocol/protocol.html new file mode 100644 index 0000000..11fcfde --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__raw_protocol/protocol.html @@ -0,0 +1,41 @@ + + + +generic::raw_protocol::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol. +

+
int protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol.html b/3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol.html new file mode 100644 index 0000000..ba377e0 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload1.html b/3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload1.html new file mode 100644 index 0000000..3ed34b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload2.html b/3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload2.html new file mode 100644 index 0000000..62f64ca --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload2.html @@ -0,0 +1,56 @@ + + + +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/3party/asio/doc/asio/reference/generic__raw_protocol/socket.html b/3party/asio/doc/asio/reference/generic__raw_protocol/socket.html new file mode 100644 index 0000000..860202b --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__raw_protocol/socket.html @@ -0,0 +1,924 @@ + + + +generic::raw_protocol::socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + generic socket type. +

+
typedef basic_raw_socket< raw_protocol > socket;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, send_to, receive, + receive_from, connect, and shutdown + operations are thread safe with respect to each other, if the underlying + operating system calls are also thread safe. This means that it is permitted + to perform concurrent calls to these synchronous operations on a single + socket object. Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/generic/raw_protocol.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__raw_protocol/type.html b/3party/asio/doc/asio/reference/generic__raw_protocol/type.html new file mode 100644 index 0000000..0f46821 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__raw_protocol/type.html @@ -0,0 +1,41 @@ + + + +generic::raw_protocol::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the type of the protocol. +

+
int type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__seq_packet_protocol.html b/3party/asio/doc/asio/reference/generic__seq_packet_protocol.html new file mode 100644 index 0000000..d8e4dbc --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__seq_packet_protocol.html @@ -0,0 +1,248 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/generic__seq_packet_protocol/endpoint.html b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/endpoint.html new file mode 100644 index 0000000..c7e69a1 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/endpoint.html @@ -0,0 +1,329 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/generic__seq_packet_protocol/family.html b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/family.html new file mode 100644 index 0000000..a297a7c --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/family.html @@ -0,0 +1,41 @@ + + + +generic::seq_packet_protocol::family + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol family. +

+
int family() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html new file mode 100644 index 0000000..1a2196f --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__seq_packet_protocol/operator_not__eq_.html b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/operator_not__eq_.html new file mode 100644 index 0000000..1fd311f --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__seq_packet_protocol/protocol.html b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/protocol.html new file mode 100644 index 0000000..4a5f6d7 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/protocol.html @@ -0,0 +1,41 @@ + + + +generic::seq_packet_protocol::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol. +

+
int protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html new file mode 100644 index 0000000..0587997 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html new file mode 100644 index 0000000..e771a03 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html new file mode 100644 index 0000000..45476f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/generic__seq_packet_protocol/socket.html b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/socket.html new file mode 100644 index 0000000..2d3e0ea --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/socket.html @@ -0,0 +1,878 @@ + + + +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 +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, receive, connect, + and shutdown operations + are thread safe with respect to each other, if the underlying operating + system calls are also thread safe. This means that it is permitted to perform + concurrent calls to these synchronous operations on a single socket object. + Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/generic/seq_packet_protocol.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__seq_packet_protocol/type.html b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/type.html new file mode 100644 index 0000000..c73ae1c --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__seq_packet_protocol/type.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/generic__stream_protocol.html b/3party/asio/doc/asio/reference/generic__stream_protocol.html new file mode 100644 index 0000000..ee479f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol.html @@ -0,0 +1,263 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/generic__stream_protocol/endpoint.html b/3party/asio/doc/asio/reference/generic__stream_protocol/endpoint.html new file mode 100644 index 0000000..0324945 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol/endpoint.html @@ -0,0 +1,329 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/generic__stream_protocol/family.html b/3party/asio/doc/asio/reference/generic__stream_protocol/family.html new file mode 100644 index 0000000..d621c8e --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol/family.html @@ -0,0 +1,41 @@ + + + +generic::stream_protocol::family + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol family. +

+
int family() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__stream_protocol/iostream.html b/3party/asio/doc/asio/reference/generic__stream_protocol/iostream.html new file mode 100644 index 0000000..7499406 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol/iostream.html @@ -0,0 +1,325 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/generic__stream_protocol/operator_eq__eq_.html b/3party/asio/doc/asio/reference/generic__stream_protocol/operator_eq__eq_.html new file mode 100644 index 0000000..1cb5ed7 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__stream_protocol/operator_not__eq_.html b/3party/asio/doc/asio/reference/generic__stream_protocol/operator_not__eq_.html new file mode 100644 index 0000000..01954ba --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__stream_protocol/protocol.html b/3party/asio/doc/asio/reference/generic__stream_protocol/protocol.html new file mode 100644 index 0000000..8b3ba62 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol/protocol.html @@ -0,0 +1,41 @@ + + + +generic::stream_protocol::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol. +

+
int protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__stream_protocol/socket.html b/3party/asio/doc/asio/reference/generic__stream_protocol/socket.html new file mode 100644 index 0000000..70b70e0 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol/socket.html @@ -0,0 +1,927 @@ + + + +generic::stream_protocol::socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + generic socket type. +

+
typedef basic_stream_socket< stream_protocol > socket;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, receive, connect, + and shutdown operations + are thread safe with respect to each other, if the underlying operating + system calls are also thread safe. This means that it is permitted to perform + concurrent calls to these synchronous operations on a single socket object. + Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/generic/stream_protocol.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol.html b/3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol.html new file mode 100644 index 0000000..c3ff70c --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload1.html b/3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload1.html new file mode 100644 index 0000000..3cd5d03 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload2.html b/3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload2.html new file mode 100644 index 0000000..923a650 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload2.html @@ -0,0 +1,56 @@ + + + +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/3party/asio/doc/asio/reference/generic__stream_protocol/type.html b/3party/asio/doc/asio/reference/generic__stream_protocol/type.html new file mode 100644 index 0000000..3baf9a6 --- /dev/null +++ b/3party/asio/doc/asio/reference/generic__stream_protocol/type.html @@ -0,0 +1,41 @@ + + + +generic::stream_protocol::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the type of the protocol. +

+
int type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/get_associated_allocator.html b/3party/asio/doc/asio/reference/get_associated_allocator.html new file mode 100644 index 0000000..fe6dcf6 --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_allocator.html @@ -0,0 +1,64 @@ + + + +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>
+auto get_associated_allocator(
+    const T & t,
+    const Allocator & a);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/associated_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/get_associated_allocator/overload1.html b/3party/asio/doc/asio/reference/get_associated_allocator/overload1.html new file mode 100644 index 0000000..f5e42bc --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_allocator/overload1.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/get_associated_allocator/overload2.html b/3party/asio/doc/asio/reference/get_associated_allocator/overload2.html new file mode 100644 index 0000000..6ce83c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_allocator/overload2.html @@ -0,0 +1,54 @@ + + + +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>
+auto get_associated_allocator(
+    const T & t,
+    const Allocator & a);
+
+
+ + Return + Value +
+

+ associated_allocator<T, Allocator>::get(t, + a) +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/get_associated_cancellation_slot.html b/3party/asio/doc/asio/reference/get_associated_cancellation_slot.html new file mode 100644 index 0000000..b9c430c --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_cancellation_slot.html @@ -0,0 +1,64 @@ + + + +get_associated_cancellation_slot + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Helper function to obtain an object's associated cancellation_slot. +

+
template<
+    typename T>
+associated_cancellation_slot< T >::type get_associated_cancellation_slot(
+    const T & t);
+  » more...
+
+template<
+    typename T,
+    typename CancellationSlot>
+auto get_associated_cancellation_slot(
+    const T & t,
+    const CancellationSlot & st);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/associated_cancellation_slot.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/get_associated_cancellation_slot/overload1.html b/3party/asio/doc/asio/reference/get_associated_cancellation_slot/overload1.html new file mode 100644 index 0000000..bc833e0 --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_cancellation_slot/overload1.html @@ -0,0 +1,51 @@ + + + +get_associated_cancellation_slot (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Helper function to obtain an object's associated cancellation_slot. +

+
template<
+    typename T>
+associated_cancellation_slot< T >::type get_associated_cancellation_slot(
+    const T & t);
+
+
+ + Return + Value +
+

+ associated_cancellation_slot<T>::get(t) +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/get_associated_cancellation_slot/overload2.html b/3party/asio/doc/asio/reference/get_associated_cancellation_slot/overload2.html new file mode 100644 index 0000000..042723e --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_cancellation_slot/overload2.html @@ -0,0 +1,54 @@ + + + +get_associated_cancellation_slot (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Helper function to obtain an object's associated cancellation_slot. +

+
template<
+    typename T,
+    typename CancellationSlot>
+auto get_associated_cancellation_slot(
+    const T & t,
+    const CancellationSlot & st);
+
+
+ + Return + Value +
+

+ associated_cancellation_slot<T, CancellationSlot>get(t, + st) +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/get_associated_executor.html b/3party/asio/doc/asio/reference/get_associated_executor.html new file mode 100644 index 0000000..40d0195 --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_executor.html @@ -0,0 +1,74 @@ + + + +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>
+auto get_associated_executor(
+    const T & t,
+    const Executor & ex,
+    typename constraint< is_executor< Executor >::value||execution::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 constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/associated_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/get_associated_executor/overload1.html b/3party/asio/doc/asio/reference/get_associated_executor/overload1.html new file mode 100644 index 0000000..74d2d15 --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_executor/overload1.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/get_associated_executor/overload2.html b/3party/asio/doc/asio/reference/get_associated_executor/overload2.html new file mode 100644 index 0000000..07764c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_executor/overload2.html @@ -0,0 +1,55 @@ + + + +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>
+auto get_associated_executor(
+    const T & t,
+    const Executor & ex,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+
+ + Return + Value +
+

+ associated_executor<T, Executor>::get(t, + ex) +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/get_associated_executor/overload3.html b/3party/asio/doc/asio/reference/get_associated_executor/overload3.html new file mode 100644 index 0000000..4b2dbb7 --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_executor/overload3.html @@ -0,0 +1,55 @@ + + + +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 constraint< 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/3party/asio/doc/asio/reference/get_associated_immediate_executor.html b/3party/asio/doc/asio/reference/get_associated_immediate_executor.html new file mode 100644 index 0000000..fc52471 --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_immediate_executor.html @@ -0,0 +1,68 @@ + + + +get_associated_immediate_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Helper function to obtain an object's associated executor. +

+
template<
+    typename T,
+    typename Executor>
+auto get_associated_immediate_executor(
+    const T & t,
+    const Executor & ex,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+template<
+    typename T,
+    typename ExecutionContext>
+associated_immediate_executor< T, typename ExecutionContext::executor_type >::type get_associated_immediate_executor(
+    const T & t,
+    ExecutionContext & ctx,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/associated_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/get_associated_immediate_executor/overload1.html b/3party/asio/doc/asio/reference/get_associated_immediate_executor/overload1.html new file mode 100644 index 0000000..f657719 --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_immediate_executor/overload1.html @@ -0,0 +1,55 @@ + + + +get_associated_immediate_executor (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Helper function to obtain an object's associated executor. +

+
template<
+    typename T,
+    typename Executor>
+auto get_associated_immediate_executor(
+    const T & t,
+    const Executor & ex,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+
+ + Return + Value +
+

+ associated_immediate_executor<T, Executor>::get(t, + ex) +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/get_associated_immediate_executor/overload2.html b/3party/asio/doc/asio/reference/get_associated_immediate_executor/overload2.html new file mode 100644 index 0000000..4c064f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/get_associated_immediate_executor/overload2.html @@ -0,0 +1,54 @@ + + + +get_associated_immediate_executor (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Helper function to obtain an object's associated executor. +

+
template<
+    typename T,
+    typename ExecutionContext>
+associated_immediate_executor< T, typename ExecutionContext::executor_type >::type get_associated_immediate_executor(
+    const T & t,
+    ExecutionContext & ctx,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ + Return + Value +
+

+ associated_immediate_executor<T, typename ExecutionContext::executor_type>get(t, ctx.get_executor()) +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/high_resolution_timer.html b/3party/asio/doc/asio/reference/high_resolution_timer.html new file mode 100644 index 0000000..8dec371 --- /dev/null +++ b/3party/asio/doc/asio/reference/high_resolution_timer.html @@ -0,0 +1,448 @@ + + + +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 +

+
+

+ rebind_executor +

+
+

+ Rebinds the timer type to another executor. +

+
+

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

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

+
+

+ operator= +

+
+

+ Move-assign a basic_waitable_timer from another. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the timer. +

+
+

+ ~basic_waitable_timer [destructor] +

+
+

+ 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(my_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(my_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/3party/asio/doc/asio/reference/immediate_executor_binder.html b/3party/asio/doc/asio/reference/immediate_executor_binder.html new file mode 100644 index 0000000..fed8be5 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder.html @@ -0,0 +1,244 @@ + + + +immediate_executor_binder + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A call wrapper type to bind a immediate executor of type Executor + to an object of type T. +

+
template<
+    typename T,
+    typename Executor>
+class immediate_executor_binder
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ argument_type +

+
+

+ The type of the function's argument. +

+
+

+ first_argument_type +

+
+

+ The type of the function's first argument. +

+
+

+ immediate_executor_type +

+
+

+ The type of the associated immediate executor. +

+
+

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

+
+

+ get +

+
+

+ Obtain a reference to the target object. +

+
+

+ get_immediate_executor +

+
+

+ Obtain the associated immediate executor. +

+
+

+ immediate_executor_binder [constructor] +

+
+

+ Construct a immediate executor wrapper for the specified object. +

Copy constructor.

Construct a copy, + but specify a different immediate executor.

Construct + a copy of a different immediate executor wrapper type.
+
Construct a copy of a different immediate executor wrapper + type, but specify a different immediate executor.

+ Move constructor.

Move construct the target object, + but specify a different immediate executor.

Move + construct from a different immediate executor wrapper type.
+
Move construct from a different immediate executor wrapper + type, but specify a different immediate executor. +

+
+

+ operator() +

+
+
+

+ ~immediate_executor_binder [destructor] +

+
+

+ Destructor. +

+
+
+ + Requirements +
+

+ Header: asio/bind_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/_immediate_executor_binder.html b/3party/asio/doc/asio/reference/immediate_executor_binder/_immediate_executor_binder.html new file mode 100644 index 0000000..14ba03c --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/_immediate_executor_binder.html @@ -0,0 +1,40 @@ + + + +immediate_executor_binder::~immediate_executor_binder + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~immediate_executor_binder();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/argument_type.html b/3party/asio/doc/asio/reference/immediate_executor_binder/argument_type.html new file mode 100644 index 0000000..f0161cc --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/argument_type.html @@ -0,0 +1,73 @@ + + + +immediate_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_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/first_argument_type.html b/3party/asio/doc/asio/reference/immediate_executor_binder/first_argument_type.html new file mode 100644 index 0000000..80fcd73 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/first_argument_type.html @@ -0,0 +1,73 @@ + + + +immediate_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_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/get.html b/3party/asio/doc/asio/reference/immediate_executor_binder/get.html new file mode 100644 index 0000000..72380a2 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/get.html @@ -0,0 +1,45 @@ + + + +immediate_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/3party/asio/doc/asio/reference/immediate_executor_binder/get/overload1.html b/3party/asio/doc/asio/reference/immediate_executor_binder/get/overload1.html new file mode 100644 index 0000000..4303534 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/get/overload1.html @@ -0,0 +1,40 @@ + + + +immediate_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/3party/asio/doc/asio/reference/immediate_executor_binder/get/overload2.html b/3party/asio/doc/asio/reference/immediate_executor_binder/get/overload2.html new file mode 100644 index 0000000..19737a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/get/overload2.html @@ -0,0 +1,40 @@ + + + +immediate_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/3party/asio/doc/asio/reference/immediate_executor_binder/get_immediate_executor.html b/3party/asio/doc/asio/reference/immediate_executor_binder/get_immediate_executor.html new file mode 100644 index 0000000..41f77e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/get_immediate_executor.html @@ -0,0 +1,41 @@ + + + +immediate_executor_binder::get_immediate_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the associated immediate executor. +

+
immediate_executor_type get_immediate_executor() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder.html b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder.html new file mode 100644 index 0000000..90b5f28 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder.html @@ -0,0 +1,120 @@ + + + +immediate_executor_binder::immediate_executor_binder + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a immediate executor wrapper for the specified object. +

+
template<
+    typename U>
+immediate_executor_binder(
+    const immediate_executor_type & e,
+    U && u);
+  » more...
+
+

+ Copy constructor. +

+
immediate_executor_binder(
+    const immediate_executor_binder & other);
+  » more...
+
+

+ Construct a copy, but specify a different immediate executor. +

+
immediate_executor_binder(
+    const immediate_executor_type & e,
+    const immediate_executor_binder & other);
+  » more...
+
+

+ Construct a copy of a different immediate executor wrapper type. +

+
template<
+    typename U,
+    typename OtherExecutor>
+immediate_executor_binder(
+    const immediate_executor_binder< U, OtherExecutor > & other);
+  » more...
+
+

+ Construct a copy of a different immediate executor wrapper type, but specify + a different immediate executor. +

+
template<
+    typename U,
+    typename OtherExecutor>
+immediate_executor_binder(
+    const immediate_executor_type & e,
+    const immediate_executor_binder< U, OtherExecutor > & other);
+  » more...
+
+

+ Move constructor. +

+
immediate_executor_binder(
+    immediate_executor_binder && other);
+  » more...
+
+

+ Move construct the target object, but specify a different immediate executor. +

+
immediate_executor_binder(
+    const immediate_executor_type & e,
+    immediate_executor_binder && other);
+  » more...
+
+

+ Move construct from a different immediate executor wrapper type. +

+
template<
+    typename U,
+    typename OtherExecutor>
+immediate_executor_binder(
+    immediate_executor_binder< U, OtherExecutor > && other);
+  » more...
+
+

+ Move construct from a different immediate executor wrapper type, but specify + a different immediate executor. +

+
template<
+    typename U,
+    typename OtherExecutor>
+immediate_executor_binder(
+    const immediate_executor_type & e,
+    immediate_executor_binder< U, OtherExecutor > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload1.html b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload1.html new file mode 100644 index 0000000..c9b6d0b --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload1.html @@ -0,0 +1,48 @@ + + + +immediate_executor_binder::immediate_executor_binder (1 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a immediate executor wrapper for the specified object. +

+
template<
+    typename U>
+immediate_executor_binder(
+    const immediate_executor_type & e,
+    U && u);
+
+

+ This constructor is only valid if the type T + is constructible from type U. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload2.html b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload2.html new file mode 100644 index 0000000..4140ee7 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload2.html @@ -0,0 +1,41 @@ + + + +immediate_executor_binder::immediate_executor_binder (2 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
immediate_executor_binder(
+    const immediate_executor_binder & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload3.html b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload3.html new file mode 100644 index 0000000..10d338c --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload3.html @@ -0,0 +1,42 @@ + + + +immediate_executor_binder::immediate_executor_binder (3 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a copy, but specify a different immediate executor. +

+
immediate_executor_binder(
+    const immediate_executor_type & e,
+    const immediate_executor_binder & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload4.html b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload4.html new file mode 100644 index 0000000..c0e4927 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload4.html @@ -0,0 +1,50 @@ + + + +immediate_executor_binder::immediate_executor_binder (4 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a copy of a different immediate executor wrapper type. +

+
template<
+    typename U,
+    typename OtherExecutor>
+immediate_executor_binder(
+    const immediate_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/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload5.html b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload5.html new file mode 100644 index 0000000..62c806e --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload5.html @@ -0,0 +1,50 @@ + + + +immediate_executor_binder::immediate_executor_binder (5 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a copy of a different immediate executor wrapper type, but + specify a different immediate executor. +

+
template<
+    typename U,
+    typename OtherExecutor>
+immediate_executor_binder(
+    const immediate_executor_type & e,
+    const immediate_executor_binder< U, OtherExecutor > & other);
+
+

+ This constructor is only valid if the type T + is constructible from type U. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload6.html b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload6.html new file mode 100644 index 0000000..f05c238 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload6.html @@ -0,0 +1,41 @@ + + + +immediate_executor_binder::immediate_executor_binder (6 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
immediate_executor_binder(
+    immediate_executor_binder && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload7.html b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload7.html new file mode 100644 index 0000000..bfa369e --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload7.html @@ -0,0 +1,42 @@ + + + +immediate_executor_binder::immediate_executor_binder (7 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move construct the target object, but specify a different immediate executor. +

+
immediate_executor_binder(
+    const immediate_executor_type & e,
+    immediate_executor_binder && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload8.html b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload8.html new file mode 100644 index 0000000..cf6b66b --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload8.html @@ -0,0 +1,44 @@ + + + +immediate_executor_binder::immediate_executor_binder (8 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move construct from a different immediate executor wrapper type. +

+
template<
+    typename U,
+    typename OtherExecutor>
+immediate_executor_binder(
+    immediate_executor_binder< U, OtherExecutor > && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload9.html b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload9.html new file mode 100644 index 0000000..45ff4a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload9.html @@ -0,0 +1,46 @@ + + + +immediate_executor_binder::immediate_executor_binder (9 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move construct from a different immediate executor wrapper type, but + specify a different immediate executor. +

+
template<
+    typename U,
+    typename OtherExecutor>
+immediate_executor_binder(
+    const immediate_executor_type & e,
+    immediate_executor_binder< U, OtherExecutor > && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_type.html b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_type.html new file mode 100644 index 0000000..8000a11 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/immediate_executor_type.html @@ -0,0 +1,51 @@ + + + +immediate_executor_binder::immediate_executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the associated immediate executor. +

+
typedef Executor immediate_executor_type;
+
+
+ + Requirements +
+

+ Header: asio/bind_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_.html b/3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_.html new file mode 100644 index 0000000..33fd8df --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_.html @@ -0,0 +1,49 @@ + + + +immediate_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/3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_/overload1.html b/3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_/overload1.html new file mode 100644 index 0000000..307afbc --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_/overload1.html @@ -0,0 +1,40 @@ + + + +immediate_executor_binder::operator() (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename... Args>
+auto operator()(
+    Args && ...);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_/overload2.html b/3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_/overload2.html new file mode 100644 index 0000000..ad38117 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/operator_lp__rp_/overload2.html @@ -0,0 +1,40 @@ + + + +immediate_executor_binder::operator() (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename... Args>
+auto operator()(
+    Args && ...) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/result_type.html b/3party/asio/doc/asio/reference/immediate_executor_binder/result_type.html new file mode 100644 index 0000000..ea59782 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/result_type.html @@ -0,0 +1,73 @@ + + + +immediate_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_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/second_argument_type.html b/3party/asio/doc/asio/reference/immediate_executor_binder/second_argument_type.html new file mode 100644 index 0000000..2046328 --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/second_argument_type.html @@ -0,0 +1,73 @@ + + + +immediate_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_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/immediate_executor_binder/target_type.html b/3party/asio/doc/asio/reference/immediate_executor_binder/target_type.html new file mode 100644 index 0000000..de5eaaa --- /dev/null +++ b/3party/asio/doc/asio/reference/immediate_executor_binder/target_type.html @@ -0,0 +1,51 @@ + + + +immediate_executor_binder::target_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the target object. +

+
typedef T target_type;
+
+
+ + Requirements +
+

+ Header: asio/bind_immediate_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/invalid_service_owner.html b/3party/asio/doc/asio/reference/invalid_service_owner.html new file mode 100644 index 0000000..0d9cd38 --- /dev/null +++ b/3party/asio/doc/asio/reference/invalid_service_owner.html @@ -0,0 +1,84 @@ + + + +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 [constructor] +

+
+
+
+ + Requirements +
+

+ Header: asio/execution_context.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/invalid_service_owner/invalid_service_owner.html b/3party/asio/doc/asio/reference/invalid_service_owner/invalid_service_owner.html new file mode 100644 index 0000000..2173035 --- /dev/null +++ b/3party/asio/doc/asio/reference/invalid_service_owner/invalid_service_owner.html @@ -0,0 +1,39 @@ + + + +invalid_service_owner::invalid_service_owner + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
invalid_service_owner();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context.html b/3party/asio/doc/asio/reference/io_context.html new file mode 100644 index 0000000..8dea3f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context.html @@ -0,0 +1,729 @@ + + + +io_context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides core I/O functionality. +

+
class io_context :
+  public execution_context
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_executor_type +

+
+

+ Executor implementation type 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. +

+
+

+ executor_type +

+
+

+ Executor used to submit functions to an io_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] +

+
+

+ 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 + overload.) 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] +

+
+

+ 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 using the make_work_guard function to create + 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/3party/asio/doc/asio/reference/io_context/_io_context.html b/3party/asio/doc/asio/reference/io_context/_io_context.html new file mode 100644 index 0000000..9e0dead --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/_io_context.html @@ -0,0 +1,89 @@ + + + +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/3party/asio/doc/asio/reference/io_context/add_service.html b/3party/asio/doc/asio/reference/io_context/add_service.html new file mode 100644 index 0000000..7bd69d4 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/add_service.html @@ -0,0 +1,108 @@ + + + +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/3party/asio/doc/asio/reference/io_context/count_type.html b/3party/asio/doc/asio/reference/io_context/count_type.html new file mode 100644 index 0000000..1b7cf8c --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/count_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/io_context/destroy.html b/3party/asio/doc/asio/reference/io_context/destroy.html new file mode 100644 index 0000000..be35625 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/destroy.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/io_context/dispatch.html b/3party/asio/doc/asio/reference/io_context/dispatch.html new file mode 100644 index 0000000..6b9096a --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/dispatch.html @@ -0,0 +1,97 @@ + + + +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/3party/asio/doc/asio/reference/io_context/executor_type.html b/3party/asio/doc/asio/reference/io_context/executor_type.html new file mode 100644 index 0000000..c2c820e --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/executor_type.html @@ -0,0 +1,304 @@ + + + +io_context::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Executor + used to submit functions to an io_context. +

+
typedef basic_executor_type< std::allocator< void >, 0 > executor_type;
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_executor_type [constructor] +

+
+

+ Copy constructor.

Move constructor. +

+
+

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

+
+

+ execute +

+
+

+ Execution function. +

+
+

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

+
+

+ operator= +

+
+

+ Assignment operator.

Move assignment operator. +

+
+

+ post +

+
+

+ Request the io_context to invoke the given function object. +

+
+

+ query +

+
+

+ Query the current value of the context property.

+ Query the current value of the blocking property.

+ Query the current value of the relationship property.
+
Query the current value of the allocator property. +

+
+

+ query [static] +

+
+

+ Query the current value of the mapping property.

+ Query the current value of the outstanding_work property. +

+
+

+ require +

+
+

+ Obtain an executor with the blocking.possibly property.
+
Obtain an executor with the blocking.never property. +

Obtain an executor with the relationship.fork property. +

Obtain an executor with the relationship.continuation + property.

Obtain an executor with the outstanding_work.tracked + property.

Obtain an executor with the outstanding_work.untracked + property.

Obtain an executor with the specified + allocator property.

Obtain an executor with the + default allocator property. +

+
+

+ running_in_this_thread +

+
+

+ Determine whether the io_context is running in the current thread. +

+
+

+ ~basic_executor_type [destructor] +

+
+

+ Destructor. +

+
+
+ + 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/3party/asio/doc/asio/reference/io_context/fork_event.html b/3party/asio/doc/asio/reference/io_context/fork_event.html new file mode 100644 index 0000000..37a082f --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/fork_event.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/io_context/get_executor.html b/3party/asio/doc/asio/reference/io_context/get_executor.html new file mode 100644 index 0000000..847e570 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/get_executor.html @@ -0,0 +1,41 @@ + + + +io_context::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtains the + executor associated with the io_context. +

+
executor_type get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context/has_service.html b/3party/asio/doc/asio/reference/io_context/has_service.html new file mode 100644 index 0000000..7c857af --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/has_service.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/io_context/io_context.html b/3party/asio/doc/asio/reference/io_context/io_context.html new file mode 100644 index 0000000..bdda064 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/io_context.html @@ -0,0 +1,45 @@ + + + +io_context::io_context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
io_context();
+  » more...
+
+explicit io_context(
+    int concurrency_hint);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context/io_context/overload1.html b/3party/asio/doc/asio/reference/io_context/io_context/overload1.html new file mode 100644 index 0000000..21fad6a --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/io_context/overload1.html @@ -0,0 +1,40 @@ + + + +io_context::io_context (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor. +

+
io_context();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context/io_context/overload2.html b/3party/asio/doc/asio/reference/io_context/io_context/overload2.html new file mode 100644 index 0000000..5ce292a --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/io_context/overload2.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/io_context/make_service.html b/3party/asio/doc/asio/reference/io_context/make_service.html new file mode 100644 index 0000000..66bf496 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/make_service.html @@ -0,0 +1,94 @@ + + + +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/3party/asio/doc/asio/reference/io_context/notify_fork.html b/3party/asio/doc/asio/reference/io_context/notify_fork.html new file mode 100644 index 0000000..e68e17d --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/notify_fork.html @@ -0,0 +1,117 @@ + + + +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/3party/asio/doc/asio/reference/io_context/poll.html b/3party/asio/doc/asio/reference/io_context/poll.html new file mode 100644 index 0000000..ce24d41 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/poll.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/io_context/poll/overload1.html b/3party/asio/doc/asio/reference/io_context/poll/overload1.html new file mode 100644 index 0000000..2503c65 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/poll/overload1.html @@ -0,0 +1,55 @@ + + + +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/3party/asio/doc/asio/reference/io_context/poll/overload2.html b/3party/asio/doc/asio/reference/io_context/poll/overload2.html new file mode 100644 index 0000000..556529b --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/poll/overload2.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/io_context/poll_one.html b/3party/asio/doc/asio/reference/io_context/poll_one.html new file mode 100644 index 0000000..f2e707d --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/poll_one.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/io_context/poll_one/overload1.html b/3party/asio/doc/asio/reference/io_context/poll_one/overload1.html new file mode 100644 index 0000000..a9e0d91 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/poll_one/overload1.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/io_context/poll_one/overload2.html b/3party/asio/doc/asio/reference/io_context/poll_one/overload2.html new file mode 100644 index 0000000..0021323 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/poll_one/overload2.html @@ -0,0 +1,67 @@ + + + +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/3party/asio/doc/asio/reference/io_context/post.html b/3party/asio/doc/asio/reference/io_context/post.html new file mode 100644 index 0000000..2c06ab1 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/post.html @@ -0,0 +1,96 @@ + + + +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/3party/asio/doc/asio/reference/io_context/reset.html b/3party/asio/doc/asio/reference/io_context/reset.html new file mode 100644 index 0000000..6b77a5b --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/reset.html @@ -0,0 +1,61 @@ + + + +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/3party/asio/doc/asio/reference/io_context/restart.html b/3party/asio/doc/asio/reference/io_context/restart.html new file mode 100644 index 0000000..8bbd424 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/restart.html @@ -0,0 +1,61 @@ + + + +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/3party/asio/doc/asio/reference/io_context/run.html b/3party/asio/doc/asio/reference/io_context/run.html new file mode 100644 index 0000000..057cbb8 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/run.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/io_context/run/overload1.html b/3party/asio/doc/asio/reference/io_context/run/overload1.html new file mode 100644 index 0000000..90276fa --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/run/overload1.html @@ -0,0 +1,87 @@ + + + +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/3party/asio/doc/asio/reference/io_context/run/overload2.html b/3party/asio/doc/asio/reference/io_context/run/overload2.html new file mode 100644 index 0000000..248256f --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/run/overload2.html @@ -0,0 +1,101 @@ + + + +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/3party/asio/doc/asio/reference/io_context/run_for.html b/3party/asio/doc/asio/reference/io_context/run_for.html new file mode 100644 index 0000000..2f3fe8c --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/run_for.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/io_context/run_one.html b/3party/asio/doc/asio/reference/io_context/run_one.html new file mode 100644 index 0000000..9b1dedf --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/run_one.html @@ -0,0 +1,50 @@ + + + +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 overload.) 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/3party/asio/doc/asio/reference/io_context/run_one/overload1.html b/3party/asio/doc/asio/reference/io_context/run_one/overload1.html new file mode 100644 index 0000000..df191fa --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/run_one/overload1.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/io_context/run_one/overload2.html b/3party/asio/doc/asio/reference/io_context/run_one/overload2.html new file mode 100644 index 0000000..fd39f84 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/run_one/overload2.html @@ -0,0 +1,79 @@ + + + +io_context::run_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 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/3party/asio/doc/asio/reference/io_context/run_one_for.html b/3party/asio/doc/asio/reference/io_context/run_one_for.html new file mode 100644 index 0000000..1bbdfa8 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/run_one_for.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/io_context/run_one_until.html b/3party/asio/doc/asio/reference/io_context/run_one_until.html new file mode 100644 index 0000000..41fa639 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/run_one_until.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/io_context/run_until.html b/3party/asio/doc/asio/reference/io_context/run_until.html new file mode 100644 index 0000000..84db894 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/run_until.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/io_context/shutdown.html b/3party/asio/doc/asio/reference/io_context/shutdown.html new file mode 100644 index 0000000..c504552 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/shutdown.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/io_context/stop.html b/3party/asio/doc/asio/reference/io_context/stop.html new file mode 100644 index 0000000..958c080 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/stop.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/io_context/stopped.html b/3party/asio/doc/asio/reference/io_context/stopped.html new file mode 100644 index 0000000..2019e71 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/stopped.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/io_context/use_service.html b/3party/asio/doc/asio/reference/io_context/use_service.html new file mode 100644 index 0000000..ba513ad --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/use_service.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/io_context/use_service/overload1.html b/3party/asio/doc/asio/reference/io_context/use_service/overload1.html new file mode 100644 index 0000000..6d29b9b --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/use_service/overload1.html @@ -0,0 +1,50 @@ + + + +io_context::use_service (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
template<
+    typename Service>
+friend Service & use_service(
+    io_context & ioc);
+
+
+ + Requirements +
+

+ Header: asio/io_context.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context/use_service/overload2.html b/3party/asio/doc/asio/reference/io_context/use_service/overload2.html new file mode 100644 index 0000000..39021b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/use_service/overload2.html @@ -0,0 +1,85 @@ + + + +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/3party/asio/doc/asio/reference/io_context/wrap.html b/3party/asio/doc/asio/reference/io_context/wrap.html new file mode 100644 index 0000000..05042e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context/wrap.html @@ -0,0 +1,94 @@ + + + +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/3party/asio/doc/asio/reference/io_context__basic_executor_type.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type.html new file mode 100644 index 0000000..2fe346b --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type.html @@ -0,0 +1,308 @@ + + + +io_context::basic_executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Executor implementation type used to submit functions to an io_context. +

+
template<
+    typename Allocator,
+    uintptr_t Bits>
+class basic_executor_type
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_executor_type [constructor] +

+
+

+ Copy constructor.

Move constructor. +

+
+

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

+
+

+ execute +

+
+

+ Execution function. +

+
+

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

+
+

+ operator= +

+
+

+ Assignment operator.

Move assignment operator. +

+
+

+ post +

+
+

+ Request the io_context to invoke the given function object. +

+
+

+ query +

+
+

+ Query the current value of the context property.

+ Query the current value of the blocking property.

+ Query the current value of the relationship property.

+ Query the current value of the allocator property. +

+
+

+ query [static] +

+
+

+ Query the current value of the mapping property.

+ Query the current value of the outstanding_work property. +

+
+

+ require +

+
+

+ Obtain an executor with the blocking.possibly property.
+
Obtain an executor with the blocking.never property.
+
Obtain an executor with the relationship.fork property. +

Obtain an executor with the relationship.continuation + property.

Obtain an executor with the outstanding_work.tracked + property.

Obtain an executor with the outstanding_work.untracked + property.

Obtain an executor with the specified allocator + property.

Obtain an executor with the default allocator + property. +

+
+

+ running_in_this_thread +

+
+

+ Determine whether the io_context is running in the current thread. +

+
+

+ ~basic_executor_type [destructor] +

+
+

+ Destructor. +

+
+
+ + 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/3party/asio/doc/asio/reference/io_context__basic_executor_type/_basic_executor_type.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/_basic_executor_type.html new file mode 100644 index 0000000..39a9763 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/_basic_executor_type.html @@ -0,0 +1,40 @@ + + + +io_context::basic_executor_type::~basic_executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~basic_executor_type();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type.html new file mode 100644 index 0000000..0fe9e49 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type.html @@ -0,0 +1,50 @@ + + + +io_context::basic_executor_type::basic_executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Copy + constructor. +

+
basic_executor_type(
+    const basic_executor_type & other);
+  » more...
+
+

+ Move constructor. +

+
basic_executor_type(
+    basic_executor_type && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type/overload1.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type/overload1.html new file mode 100644 index 0000000..2985d9d --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type/overload1.html @@ -0,0 +1,41 @@ + + + +io_context::basic_executor_type::basic_executor_type (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
basic_executor_type(
+    const basic_executor_type & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type/overload2.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type/overload2.html new file mode 100644 index 0000000..ee699c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/basic_executor_type/overload2.html @@ -0,0 +1,41 @@ + + + +io_context::basic_executor_type::basic_executor_type (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
basic_executor_type(
+    basic_executor_type && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/context.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/context.html new file mode 100644 index 0000000..74c06f2 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/context.html @@ -0,0 +1,41 @@ + + + +io_context::basic_executor_type::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the underlying execution context. +

+
io_context & context() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/defer.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/defer.html new file mode 100644 index 0000000..5b8c03a --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/defer.html @@ -0,0 +1,80 @@ + + + +io_context::basic_executor_type::defer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Request + the io_context + to invoke the given function object. +

+
template<
+    typename Function,
+    typename OtherAllocator>
+void defer(
+    Function && f,
+    const OtherAllocator & 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/3party/asio/doc/asio/reference/io_context__basic_executor_type/dispatch.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/dispatch.html new file mode 100644 index 0000000..6277641 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/dispatch.html @@ -0,0 +1,76 @@ + + + +io_context::basic_executor_type::dispatch + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Request + the io_context + to invoke the given function object. +

+
template<
+    typename Function,
+    typename OtherAllocator>
+void dispatch(
+    Function && f,
+    const OtherAllocator & 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/3party/asio/doc/asio/reference/io_context__basic_executor_type/execute.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/execute.html new file mode 100644 index 0000000..85bf5ba --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/execute.html @@ -0,0 +1,44 @@ + + + +io_context::basic_executor_type::execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Execution + function. +

+
template<
+    typename Function>
+void execute(
+    Function && f) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/on_work_finished.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/on_work_finished.html new file mode 100644 index 0000000..581c7b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/on_work_finished.html @@ -0,0 +1,49 @@ + + + +io_context::basic_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/3party/asio/doc/asio/reference/io_context__basic_executor_type/on_work_started.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/on_work_started.html new file mode 100644 index 0000000..d9d5363 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/on_work_started.html @@ -0,0 +1,47 @@ + + + +io_context::basic_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/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_.html new file mode 100644 index 0000000..c68e631 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_.html @@ -0,0 +1,50 @@ + + + +io_context::basic_executor_type::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assignment + operator. +

+
basic_executor_type & operator=(
+    const basic_executor_type & other);
+  » more...
+
+

+ Move assignment operator. +

+
basic_executor_type & operator=(
+    basic_executor_type && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_/overload1.html new file mode 100644 index 0000000..537763d --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +io_context::basic_executor_type::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator. +

+
basic_executor_type & operator=(
+    const basic_executor_type & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_/overload2.html new file mode 100644 index 0000000..9698974 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq_/overload2.html @@ -0,0 +1,41 @@ + + + +io_context::basic_executor_type::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move assignment operator. +

+
basic_executor_type & operator=(
+    basic_executor_type && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq__eq_.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq__eq_.html new file mode 100644 index 0000000..1ca4939 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_eq__eq_.html @@ -0,0 +1,56 @@ + + + +io_context::basic_executor_type::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + two executors for equality. +

+
friend bool operator==(
+    const basic_executor_type & a,
+    const basic_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/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_not__eq_.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_not__eq_.html new file mode 100644 index 0000000..9c00997 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/operator_not__eq_.html @@ -0,0 +1,56 @@ + + + +io_context::basic_executor_type::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + two executors for inequality. +

+
friend bool operator!=(
+    const basic_executor_type & a,
+    const basic_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/3party/asio/doc/asio/reference/io_context__basic_executor_type/post.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/post.html new file mode 100644 index 0000000..249a371 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/post.html @@ -0,0 +1,76 @@ + + + +io_context::basic_executor_type::post + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Request + the io_context + to invoke the given function object. +

+
template<
+    typename Function,
+    typename OtherAllocator>
+void post(
+    Function && f,
+    const OtherAllocator & 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/3party/asio/doc/asio/reference/io_context__basic_executor_type/query.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query.html new file mode 100644 index 0000000..25c4526 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query.html @@ -0,0 +1,74 @@ + + + +io_context::basic_executor_type::query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Query + the current value of the context + property. +

+
io_context & query(
+    execution::context_t ) const;
+  » more...
+
+

+ Query the current value of the blocking + property. +

+
constexpr execution::blocking_t query(
+    execution::blocking_t ) const;
+  » more...
+
+

+ Query the current value of the relationship + property. +

+
constexpr execution::relationship_t query(
+    execution::relationship_t ) const;
+  » more...
+
+

+ Query the current value of the allocator + property. +

+
template<
+    typename OtherAllocator>
+constexpr Allocator query(
+    execution::allocator_t< OtherAllocator > ) const;
+  » more...
+
+constexpr Allocator query(
+    execution::allocator_t< void > ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload1.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload1.html new file mode 100644 index 0000000..a73387b --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload1.html @@ -0,0 +1,54 @@ + + + +io_context::basic_executor_type::query (1 of 5 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the context + property. +

+
io_context & query(
+    execution::context_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_io_context.get_executor();
+asio::io_context& ctx = asio::query(
+    ex, asio::execution::context);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload2.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload2.html new file mode 100644 index 0000000..8201fdd --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload2.html @@ -0,0 +1,55 @@ + + + +io_context::basic_executor_type::query (2 of 5 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the blocking + property. +

+
constexpr execution::blocking_t query(
+    execution::blocking_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_io_context.get_executor();
+if (asio::query(ex, asio::execution::blocking)
+      == asio::execution::blocking.always)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload3.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload3.html new file mode 100644 index 0000000..dac0b31 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload3.html @@ -0,0 +1,55 @@ + + + +io_context::basic_executor_type::query (3 of 5 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the relationship + property. +

+
constexpr execution::relationship_t query(
+    execution::relationship_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_io_context.get_executor();
+if (asio::query(ex, asio::execution::relationship)
+      == asio::execution::relationship.continuation)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload4.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload4.html new file mode 100644 index 0000000..8b9291b --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload4.html @@ -0,0 +1,56 @@ + + + +io_context::basic_executor_type::query (4 of 5 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the allocator + property. +

+
template<
+    typename OtherAllocator>
+constexpr Allocator query(
+    execution::allocator_t< OtherAllocator > ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_io_context.get_executor();
+auto alloc = asio::query(ex,
+    asio::execution::allocator);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload5.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload5.html new file mode 100644 index 0000000..e3b684f --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query/overload5.html @@ -0,0 +1,54 @@ + + + +io_context::basic_executor_type::query (5 of 5 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the allocator + property. +

+
constexpr Allocator query(
+    execution::allocator_t< void > ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_io_context.get_executor();
+auto alloc = asio::query(ex,
+    asio::execution::allocator);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static.html new file mode 100644 index 0000000..8ec250e --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static.html @@ -0,0 +1,52 @@ + + + +io_context::basic_executor_type::query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Query + the current value of the mapping + property. +

+
static constexpr execution::mapping_t query(
+    execution::mapping_t );
+  » more...
+
+

+ Query the current value of the outstanding_work + property. +

+
static constexpr execution::outstanding_work_t query(
+    execution::outstanding_work_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static/overload1.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static/overload1.html new file mode 100644 index 0000000..d8400d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static/overload1.html @@ -0,0 +1,55 @@ + + + +io_context::basic_executor_type::query (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the mapping + property. +

+
static constexpr execution::mapping_t query(
+    execution::mapping_t );
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_io_context.get_executor();
+if (asio::query(ex, asio::execution::mapping)
+      == asio::execution::mapping.thread)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static/overload2.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static/overload2.html new file mode 100644 index 0000000..f90b2b6 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/query__static/overload2.html @@ -0,0 +1,55 @@ + + + +io_context::basic_executor_type::query (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the outstanding_work + property. +

+
static constexpr execution::outstanding_work_t query(
+    execution::outstanding_work_t );
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_io_context.get_executor();
+if (asio::query(ex, asio::execution::outstanding_work)
+      == asio::execution::outstanding_work.tracked)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/require.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require.html new file mode 100644 index 0000000..c9afebf --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require.html @@ -0,0 +1,102 @@ + + + +io_context::basic_executor_type::require + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an executor with the blocking.possibly + property. +

+
constexpr basic_executor_type require(
+    execution::blocking_t::possibly_t ) const;
+  » more...
+
+

+ Obtain an executor with the blocking.never + property. +

+
constexpr basic_executor_type require(
+    execution::blocking_t::never_t ) const;
+  » more...
+
+

+ Obtain an executor with the relationship.fork + property. +

+
constexpr basic_executor_type require(
+    execution::relationship_t::fork_t ) const;
+  » more...
+
+

+ Obtain an executor with the relationship.continuation + property. +

+
constexpr basic_executor_type require(
+    execution::relationship_t::continuation_t ) const;
+  » more...
+
+

+ Obtain an executor with the outstanding_work.tracked + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::outstanding_work_t::tracked_t ) const;
+  » more...
+
+

+ Obtain an executor with the outstanding_work.untracked + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::outstanding_work_t::untracked_t ) const;
+  » more...
+
+

+ Obtain an executor with the specified allocator + property. +

+
template<
+    typename OtherAllocator>
+constexpr basic_executor_type< OtherAllocator, Bits > require(
+    execution::allocator_t< OtherAllocator > a) const;
+  » more...
+
+

+ Obtain an executor with the default allocator + property. +

+
constexpr basic_executor_type< std::allocator< void >, Bits > require(
+    execution::allocator_t< void > ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload1.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload1.html new file mode 100644 index 0000000..102be96 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload1.html @@ -0,0 +1,54 @@ + + + +io_context::basic_executor_type::require (1 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the blocking.possibly + property. +

+
constexpr basic_executor_type require(
+    execution::blocking_t::possibly_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_io_context.get_executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::blocking.possibly);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload2.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload2.html new file mode 100644 index 0000000..203314d --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload2.html @@ -0,0 +1,54 @@ + + + +io_context::basic_executor_type::require (2 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the blocking.never + property. +

+
constexpr basic_executor_type require(
+    execution::blocking_t::never_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_io_context.get_executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::blocking.never);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload3.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload3.html new file mode 100644 index 0000000..fd75d46 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload3.html @@ -0,0 +1,54 @@ + + + +io_context::basic_executor_type::require (3 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the relationship.fork + property. +

+
constexpr basic_executor_type require(
+    execution::relationship_t::fork_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_io_context.get_executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::relationship.fork);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload4.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload4.html new file mode 100644 index 0000000..dc146f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload4.html @@ -0,0 +1,54 @@ + + + +io_context::basic_executor_type::require (4 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the relationship.continuation + property. +

+
constexpr basic_executor_type require(
+    execution::relationship_t::continuation_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_io_context.get_executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::relationship.continuation);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload5.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload5.html new file mode 100644 index 0000000..4d46384 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload5.html @@ -0,0 +1,54 @@ + + + +io_context::basic_executor_type::require (5 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the outstanding_work.tracked + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::outstanding_work_t::tracked_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_io_context.get_executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::outstanding_work.tracked);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload6.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload6.html new file mode 100644 index 0000000..079477d --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload6.html @@ -0,0 +1,54 @@ + + + +io_context::basic_executor_type::require (6 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the outstanding_work.untracked + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::outstanding_work_t::untracked_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_io_context.get_executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::outstanding_work.untracked);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload7.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload7.html new file mode 100644 index 0000000..7b6b0a3 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload7.html @@ -0,0 +1,56 @@ + + + +io_context::basic_executor_type::require (7 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the specified allocator + property. +

+
template<
+    typename OtherAllocator>
+constexpr basic_executor_type< OtherAllocator, Bits > require(
+    execution::allocator_t< OtherAllocator > a) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_io_context.get_executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::allocator(my_allocator));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload8.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload8.html new file mode 100644 index 0000000..b1c4970 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/require/overload8.html @@ -0,0 +1,54 @@ + + + +io_context::basic_executor_type::require (8 of 8 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the default allocator + property. +

+
constexpr basic_executor_type< std::allocator< void >, Bits > require(
+    execution::allocator_t< void > ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_io_context.get_executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::allocator);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__basic_executor_type/running_in_this_thread.html b/3party/asio/doc/asio/reference/io_context__basic_executor_type/running_in_this_thread.html new file mode 100644 index 0000000..fad7669 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__basic_executor_type/running_in_this_thread.html @@ -0,0 +1,52 @@ + + + +io_context::basic_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/3party/asio/doc/asio/reference/io_context__service.html b/3party/asio/doc/asio/reference/io_context__service.html new file mode 100644 index 0000000..4cde01a --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__service.html @@ -0,0 +1,136 @@ + + + +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. +

+
+
+ + Protected + Member Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ service [constructor] +

+
+

+ Constructor. +

+
+

+ ~service [destructor] +

+
+

+ Destructor. +

+
+
+ + Requirements +
+

+ Header: asio/io_context.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__service/_service.html b/3party/asio/doc/asio/reference/io_context__service/_service.html new file mode 100644 index 0000000..f553bcd --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__service/_service.html @@ -0,0 +1,40 @@ + + + +io_context::service::~service + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
virtual ~service();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__service/get_io_context.html b/3party/asio/doc/asio/reference/io_context__service/get_io_context.html new file mode 100644 index 0000000..fcebe4f --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__service/get_io_context.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/io_context__service/service.html b/3party/asio/doc/asio/reference/io_context__service/service.html new file mode 100644 index 0000000..1d41859 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__service/service.html @@ -0,0 +1,55 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand.html b/3party/asio/doc/asio/reference/io_context__strand.html new file mode 100644 index 0000000..4b72dcd --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand.html @@ -0,0 +1,348 @@ + + + +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. +

+
+

+ 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] +

+
+

+ Constructor. +

+
+

+ wrap +

+
+

+ (Deprecated: Use asio::bind_executor().) Create a new handler that + automatically dispatches the wrapped handler on the strand. +

+
+

+ ~strand [destructor] +

+
+

+ 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/3party/asio/doc/asio/reference/io_context__strand/_strand.html b/3party/asio/doc/asio/reference/io_context__strand/_strand.html new file mode 100644 index 0000000..ea2609b --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/_strand.html @@ -0,0 +1,47 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/context.html b/3party/asio/doc/asio/reference/io_context__strand/context.html new file mode 100644 index 0000000..95e487d --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/context.html @@ -0,0 +1,41 @@ + + + +io_context::strand::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the underlying execution context. +

+
asio::io_context & context() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/io_context__strand/defer.html b/3party/asio/doc/asio/reference/io_context__strand/defer.html new file mode 100644 index 0000000..2ddc70d --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/defer.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/dispatch.html b/3party/asio/doc/asio/reference/io_context__strand/dispatch.html new file mode 100644 index 0000000..6a2e549 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/dispatch.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/dispatch/overload1.html b/3party/asio/doc/asio/reference/io_context__strand/dispatch/overload1.html new file mode 100644 index 0000000..ddfd9c5 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/dispatch/overload1.html @@ -0,0 +1,76 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/dispatch/overload2.html b/3party/asio/doc/asio/reference/io_context__strand/dispatch/overload2.html new file mode 100644 index 0000000..9c91f29 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/dispatch/overload2.html @@ -0,0 +1,80 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/on_work_finished.html b/3party/asio/doc/asio/reference/io_context__strand/on_work_finished.html new file mode 100644 index 0000000..6adadf3 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/on_work_finished.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/on_work_started.html b/3party/asio/doc/asio/reference/io_context__strand/on_work_started.html new file mode 100644 index 0000000..9cd67db --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/on_work_started.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/operator_eq__eq_.html b/3party/asio/doc/asio/reference/io_context__strand/operator_eq__eq_.html new file mode 100644 index 0000000..554f0f2 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/operator_eq__eq_.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/operator_not__eq_.html b/3party/asio/doc/asio/reference/io_context__strand/operator_not__eq_.html new file mode 100644 index 0000000..d165e1e --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/operator_not__eq_.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/post.html b/3party/asio/doc/asio/reference/io_context__strand/post.html new file mode 100644 index 0000000..94b5516 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/post.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/post/overload1.html b/3party/asio/doc/asio/reference/io_context__strand/post/overload1.html new file mode 100644 index 0000000..4addbbd --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/post/overload1.html @@ -0,0 +1,74 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/post/overload2.html b/3party/asio/doc/asio/reference/io_context__strand/post/overload2.html new file mode 100644 index 0000000..4f8dfa0 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/post/overload2.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/running_in_this_thread.html b/3party/asio/doc/asio/reference/io_context__strand/running_in_this_thread.html new file mode 100644 index 0000000..d4deba6 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/running_in_this_thread.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/strand.html b/3party/asio/doc/asio/reference/io_context__strand/strand.html new file mode 100644 index 0000000..43ce88e --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/strand.html @@ -0,0 +1,59 @@ + + + +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/3party/asio/doc/asio/reference/io_context__strand/wrap.html b/3party/asio/doc/asio/reference/io_context__strand/wrap.html new file mode 100644 index 0000000..45299c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__strand/wrap.html @@ -0,0 +1,94 @@ + + + +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/3party/asio/doc/asio/reference/io_context__work.html b/3party/asio/doc/asio/reference/io_context__work.html new file mode 100644 index 0000000..8829212 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__work.html @@ -0,0 +1,126 @@ + + + +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. +

+
+

+ work [constructor] +

+
+

+ Constructor notifies the io_context that work is starting.
+
Copy constructor notifies the io_context that work is starting. +

+
+

+ ~work [destructor] +

+
+

+ 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/3party/asio/doc/asio/reference/io_context__work/_work.html b/3party/asio/doc/asio/reference/io_context__work/_work.html new file mode 100644 index 0000000..fae672f --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__work/_work.html @@ -0,0 +1,47 @@ + + + +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/3party/asio/doc/asio/reference/io_context__work/get_io_context.html b/3party/asio/doc/asio/reference/io_context__work/get_io_context.html new file mode 100644 index 0000000..c719cc6 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__work/get_io_context.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/io_context__work/work.html b/3party/asio/doc/asio/reference/io_context__work/work.html new file mode 100644 index 0000000..727f015 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__work/work.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/io_context__work/work/overload1.html b/3party/asio/doc/asio/reference/io_context__work/work/overload1.html new file mode 100644 index 0000000..5739a42 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__work/work/overload1.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/io_context__work/work/overload2.html b/3party/asio/doc/asio/reference/io_context__work/work/overload2.html new file mode 100644 index 0000000..0cec985 --- /dev/null +++ b/3party/asio/doc/asio/reference/io_context__work/work/overload2.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/io_service.html b/3party/asio/doc/asio/reference/io_service.html new file mode 100644 index 0000000..6fe88fb --- /dev/null +++ b/3party/asio/doc/asio/reference/io_service.html @@ -0,0 +1,728 @@ + + + +io_service + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for backwards compatibility. +

+
typedef io_context io_service;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_executor_type +

+
+

+ Executor implementation type 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. +

+
+

+ executor_type +

+
+

+ Executor used to submit functions to an io_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] +

+
+

+ 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 + overload.) 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] +

+
+

+ 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 using the make_work_guard function to create + 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/3party/asio/doc/asio/reference/ip__address.html b/3party/asio/doc/asio/reference/ip__address.html new file mode 100644 index 0000000..7fab74e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address.html @@ -0,0 +1,377 @@ + + + +ip::address + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Implements version-independent IP addresses. +

+
class address
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ address + [constructor] +

+
+

+ Default constructor.

Construct an address from an + IPv4 address.

Construct an address from an IPv6 address. +

Copy constructor. +

+
+

+ from_string [static] +

+
+

+ (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/3party/asio/doc/asio/reference/ip__address/address.html b/3party/asio/doc/asio/reference/ip__address/address.html new file mode 100644 index 0000000..880a73f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/address.html @@ -0,0 +1,62 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/address/overload1.html b/3party/asio/doc/asio/reference/ip__address/address/overload1.html new file mode 100644 index 0000000..6743ff1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/address/overload1.html @@ -0,0 +1,40 @@ + + + +ip::address::address (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
address();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address/address/overload2.html b/3party/asio/doc/asio/reference/ip__address/address/overload2.html new file mode 100644 index 0000000..2a8676c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/address/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/address/overload3.html b/3party/asio/doc/asio/reference/ip__address/address/overload3.html new file mode 100644 index 0000000..c77314a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/address/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/address/overload4.html b/3party/asio/doc/asio/reference/ip__address/address/overload4.html new file mode 100644 index 0000000..010cd11 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/address/overload4.html @@ -0,0 +1,41 @@ + + + +ip::address::address (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
address(
+    const address & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address/from_string.html b/3party/asio/doc/asio/reference/ip__address/from_string.html new file mode 100644 index 0000000..b923d65 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/from_string.html @@ -0,0 +1,59 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/from_string/overload1.html b/3party/asio/doc/asio/reference/ip__address/from_string/overload1.html new file mode 100644 index 0000000..824316d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/from_string/overload1.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/from_string/overload2.html b/3party/asio/doc/asio/reference/ip__address/from_string/overload2.html new file mode 100644 index 0000000..8dac16c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/from_string/overload2.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/from_string/overload3.html b/3party/asio/doc/asio/reference/ip__address/from_string/overload3.html new file mode 100644 index 0000000..e025529 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/from_string/overload3.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/from_string/overload4.html b/3party/asio/doc/asio/reference/ip__address/from_string/overload4.html new file mode 100644 index 0000000..547ae5b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/from_string/overload4.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/is_loopback.html b/3party/asio/doc/asio/reference/ip__address/is_loopback.html new file mode 100644 index 0000000..d67876e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/is_loopback.html @@ -0,0 +1,41 @@ + + + +ip::address::is_loopback + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine whether + the address is a loopback address. +

+
bool is_loopback() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address/is_multicast.html b/3party/asio/doc/asio/reference/ip__address/is_multicast.html new file mode 100644 index 0000000..174d15f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/is_multicast.html @@ -0,0 +1,41 @@ + + + +ip::address::is_multicast + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the address is a multicast address. +

+
bool is_multicast() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address/is_unspecified.html b/3party/asio/doc/asio/reference/ip__address/is_unspecified.html new file mode 100644 index 0000000..0b7a6c1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/is_unspecified.html @@ -0,0 +1,41 @@ + + + +ip::address::is_unspecified + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the address is unspecified. +

+
bool is_unspecified() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address/is_v4.html b/3party/asio/doc/asio/reference/ip__address/is_v4.html new file mode 100644 index 0000000..a2e081d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/is_v4.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/is_v6.html b/3party/asio/doc/asio/reference/ip__address/is_v6.html new file mode 100644 index 0000000..2329d7c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/is_v6.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/make_address.html b/3party/asio/doc/asio/reference/ip__address/make_address.html new file mode 100644 index 0000000..2fa463a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/make_address.html @@ -0,0 +1,67 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/make_address/overload1.html b/3party/asio/doc/asio/reference/ip__address/make_address/overload1.html new file mode 100644 index 0000000..e7088eb --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/make_address/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/make_address/overload2.html b/3party/asio/doc/asio/reference/ip__address/make_address/overload2.html new file mode 100644 index 0000000..9bd37ad --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/make_address/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/make_address/overload3.html b/3party/asio/doc/asio/reference/ip__address/make_address/overload3.html new file mode 100644 index 0000000..3cf891b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/make_address/overload3.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/make_address/overload4.html b/3party/asio/doc/asio/reference/ip__address/make_address/overload4.html new file mode 100644 index 0000000..6ce1381 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/make_address/overload4.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/make_address/overload5.html b/3party/asio/doc/asio/reference/ip__address/make_address/overload5.html new file mode 100644 index 0000000..94bb825 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/make_address/overload5.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/make_address/overload6.html b/3party/asio/doc/asio/reference/ip__address/make_address/overload6.html new file mode 100644 index 0000000..6d7ef57 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/make_address/overload6.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/operator_eq_.html b/3party/asio/doc/asio/reference/ip__address/operator_eq_.html new file mode 100644 index 0000000..1159834 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/operator_eq_.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/ip__address/operator_eq_/overload1.html new file mode 100644 index 0000000..7e0cbdc --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +ip::address::operator= (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assign from another address. +

+
address & operator=(
+    const address & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/ip__address/operator_eq_/overload2.html new file mode 100644 index 0000000..7794a5c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/operator_eq_/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/operator_eq_/overload3.html b/3party/asio/doc/asio/reference/ip__address/operator_eq_/overload3.html new file mode 100644 index 0000000..b87e0c8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/operator_eq_/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__address/operator_eq__eq_.html new file mode 100644 index 0000000..ebfddab --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/operator_gt_.html b/3party/asio/doc/asio/reference/ip__address/operator_gt_.html new file mode 100644 index 0000000..f2b490b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/operator_gt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/operator_gt__eq_.html b/3party/asio/doc/asio/reference/ip__address/operator_gt__eq_.html new file mode 100644 index 0000000..bacfeb6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/operator_gt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/operator_lt_.html b/3party/asio/doc/asio/reference/ip__address/operator_lt_.html new file mode 100644 index 0000000..e0d00b3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/operator_lt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/operator_lt__eq_.html b/3party/asio/doc/asio/reference/ip__address/operator_lt__eq_.html new file mode 100644 index 0000000..cc0a5eb --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/operator_lt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/operator_lt__lt_.html b/3party/asio/doc/asio/reference/ip__address/operator_lt__lt_.html new file mode 100644 index 0000000..874a4ee --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/operator_lt__lt_.html @@ -0,0 +1,74 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__address/operator_not__eq_.html new file mode 100644 index 0000000..ff54c3a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/to_string.html b/3party/asio/doc/asio/reference/ip__address/to_string.html new file mode 100644 index 0000000..01dd308 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/to_string.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/to_string/overload1.html b/3party/asio/doc/asio/reference/ip__address/to_string/overload1.html new file mode 100644 index 0000000..9469e21 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/to_string/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/to_string/overload2.html b/3party/asio/doc/asio/reference/ip__address/to_string/overload2.html new file mode 100644 index 0000000..6ddb16f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/to_string/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/to_v4.html b/3party/asio/doc/asio/reference/ip__address/to_v4.html new file mode 100644 index 0000000..f799ae6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/to_v4.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address/to_v6.html b/3party/asio/doc/asio/reference/ip__address/to_v6.html new file mode 100644 index 0000000..20095b6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address/to_v6.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4.html b/3party/asio/doc/asio/reference/ip__address_v4.html new file mode 100644 index 0000000..2f5661a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4.html @@ -0,0 +1,531 @@ + + + +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 [constructor] +

+
+

+ Default constructor.

Construct an address from raw + bytes.

Construct an address from an unsigned integer + in host byte order.

Copy constructor. +

+
+

+ any + [static] +

+
+

+ Obtain an address object that represents any address. +

+
+

+ broadcast [static] +

+
+

+ 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 [static] +

+
+

+ (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 [static] +

+
+

+ Obtain an address object that represents the loopback address. +

+
+

+ netmask [static] +

+
+

+ (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 +

+
+

+ (Deprecated: Use to_uint().) 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/3party/asio/doc/asio/reference/ip__address_v4/address_v4.html b/3party/asio/doc/asio/reference/ip__address_v4/address_v4.html new file mode 100644 index 0000000..eaf4703 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/address_v4.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload1.html b/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload1.html new file mode 100644 index 0000000..0f5bf5d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload1.html @@ -0,0 +1,50 @@ + + + +ip::address_v4::address_v4 (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
address_v4();
+
+

+ Initialises the address_v4 + object such that: * to_bytes() yields {0, 0, 0, + 0}; + and +

+
  • + to_uint() + == 0. +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload2.html b/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload2.html new file mode 100644 index 0000000..13c641a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload2.html @@ -0,0 +1,60 @@ + + + +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);
+
+

+ Initialises the address_v4 + object such that to_bytes() == bytes. +

+
+ + Exceptions +
+
+

+
+
out_of_range
+

+ Thrown if any element in bytes + is not in the range 0 - 0xFF. + Note that no range checking is required for platforms where std::numeric_limits<unsigned char>::max() is 0xFF. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload3.html b/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload3.html new file mode 100644 index 0000000..4d670a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload3.html @@ -0,0 +1,45 @@ + + + +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);
+
+

+ Initialises the address_v4 + object such that to_uint() == addr. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload4.html b/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload4.html new file mode 100644 index 0000000..03af750 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/address_v4/overload4.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/any.html b/3party/asio/doc/asio/reference/ip__address_v4/any.html new file mode 100644 index 0000000..1e897a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/any.html @@ -0,0 +1,54 @@ + + + +ip::address_v4::any + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an address object + that represents any address. +

+
static address_v4 any();
+
+

+ This functions returns an address that represents the "any" address + 0.0.0.0. +

+
+ + Return + Value +
+

+ A default-constructed address_v4 + object. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/broadcast.html b/3party/asio/doc/asio/reference/ip__address_v4/broadcast.html new file mode 100644 index 0000000..0b3887b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/broadcast.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/broadcast/overload1.html b/3party/asio/doc/asio/reference/ip__address_v4/broadcast/overload1.html new file mode 100644 index 0000000..254847e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/broadcast/overload1.html @@ -0,0 +1,52 @@ + + + +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();
+
+

+ This function returns an address that represents the broadcast address + 255.255.255.255. +

+
+ + Return + Value +
+

+ address_v4(0xFFFFFFFF). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/broadcast/overload2.html b/3party/asio/doc/asio/reference/ip__address_v4/broadcast/overload2.html new file mode 100644 index 0000000..d3a42cd --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/broadcast/overload2.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/bytes_type.html b/3party/asio/doc/asio/reference/ip__address_v4/bytes_type.html new file mode 100644 index 0000000..73d3267 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/bytes_type.html @@ -0,0 +1,59 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/from_string.html b/3party/asio/doc/asio/reference/ip__address_v4/from_string.html new file mode 100644 index 0000000..f57b5c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/from_string.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload1.html b/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload1.html new file mode 100644 index 0000000..62716a3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload2.html b/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload2.html new file mode 100644 index 0000000..f2e8c11 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload3.html b/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload3.html new file mode 100644 index 0000000..98411db --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload3.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload4.html b/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload4.html new file mode 100644 index 0000000..df8195a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/from_string/overload4.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/is_class_a.html b/3party/asio/doc/asio/reference/ip__address_v4/is_class_a.html new file mode 100644 index 0000000..bbb27c8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/is_class_a.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/is_class_b.html b/3party/asio/doc/asio/reference/ip__address_v4/is_class_b.html new file mode 100644 index 0000000..4513bc7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/is_class_b.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/is_class_c.html b/3party/asio/doc/asio/reference/ip__address_v4/is_class_c.html new file mode 100644 index 0000000..feae4d9 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/is_class_c.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/is_loopback.html b/3party/asio/doc/asio/reference/ip__address_v4/is_loopback.html new file mode 100644 index 0000000..974164f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/is_loopback.html @@ -0,0 +1,54 @@ + + + +ip::address_v4::is_loopback + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the address is a loopback address. +

+
bool is_loopback() const;
+
+

+ This function tests whether the address is in the address block 127.0.0.0/8, which + corresponds to the address range 127.0.0.0 - + 127.255.255.255. +

+
+ + Return + Value +
+

+ (to_uint() & 0xFF000000) == 0x7F000000. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/is_multicast.html b/3party/asio/doc/asio/reference/ip__address_v4/is_multicast.html new file mode 100644 index 0000000..baa46d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/is_multicast.html @@ -0,0 +1,55 @@ + + + +ip::address_v4::is_multicast + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the address is a multicast address. +

+
bool is_multicast() const;
+
+

+ This function tests whether the address is in the multicast address block + 224.0.0.0/4, + which corresponds to the address range 224.0.0.0 - + 239.255.255.255. +

+
+ + Return + Value +
+

+ (to_uint() & 0xF0000000) == 0xE0000000. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/is_unspecified.html b/3party/asio/doc/asio/reference/ip__address_v4/is_unspecified.html new file mode 100644 index 0000000..77c0303 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/is_unspecified.html @@ -0,0 +1,53 @@ + + + +ip::address_v4::is_unspecified + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the address is unspecified. +

+
bool is_unspecified() const;
+
+

+ This function tests whether the address is the unspecified address 0.0.0.0. +

+
+ + Return + Value +
+

+ to_uint() + == 0. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/loopback.html b/3party/asio/doc/asio/reference/ip__address_v4/loopback.html new file mode 100644 index 0000000..d3d5cf7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/loopback.html @@ -0,0 +1,52 @@ + + + +ip::address_v4::loopback + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an address + object that represents the loopback address. +

+
static address_v4 loopback();
+
+

+ This function returns an address that represents the well-known loopback + address 127.0.0.1. +

+
+ + Return Value +
+

+ address_v4(0x7F000001). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4.html b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4.html new file mode 100644 index 0000000..458ce42 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4.html @@ -0,0 +1,88 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload1.html b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload1.html new file mode 100644 index 0000000..7fbc332 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload1.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload2.html b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload2.html new file mode 100644 index 0000000..587b3c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload3.html b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload3.html new file mode 100644 index 0000000..2d77e73 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload4.html b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload4.html new file mode 100644 index 0000000..c41bb9d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload4.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload5.html b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload5.html new file mode 100644 index 0000000..77edfab --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload5.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload6.html b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload6.html new file mode 100644 index 0000000..d4dd614 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload6.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload7.html b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload7.html new file mode 100644 index 0000000..6bad7db --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload7.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload8.html b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload8.html new file mode 100644 index 0000000..1d14998 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload8.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload9.html b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload9.html new file mode 100644 index 0000000..2d81931 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload9.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_network_v4.html b/3party/asio/doc/asio/reference/ip__address_v4/make_network_v4.html new file mode 100644 index 0000000..4c8839e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_network_v4.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload1.html b/3party/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload1.html new file mode 100644 index 0000000..58067bc --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload2.html b/3party/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload2.html new file mode 100644 index 0000000..2e29612 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/netmask.html b/3party/asio/doc/asio/reference/ip__address_v4/netmask.html new file mode 100644 index 0000000..4e5ee13 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/netmask.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/operator_eq_.html b/3party/asio/doc/asio/reference/ip__address_v4/operator_eq_.html new file mode 100644 index 0000000..34e26d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/operator_eq_.html @@ -0,0 +1,42 @@ + + + +ip::address_v4::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign + from another address. +

+
address_v4 & operator=(
+    const address_v4 & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__address_v4/operator_eq__eq_.html new file mode 100644 index 0000000..9817e22 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/operator_gt_.html b/3party/asio/doc/asio/reference/ip__address_v4/operator_gt_.html new file mode 100644 index 0000000..276e193 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/operator_gt_.html @@ -0,0 +1,64 @@ + + + +ip::address_v4::operator> + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + addresses for ordering. +

+
friend bool operator>(
+    const address_v4 & a1,
+    const address_v4 & a2);
+
+

+ Compares two addresses in host byte order. +

+
+ + Return + Value +
+

+ a1.to_uint() > a2.to_uint(). +

+
+ + Requirements +
+

+ Header: asio/ip/address_v4.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/operator_gt__eq_.html b/3party/asio/doc/asio/reference/ip__address_v4/operator_gt__eq_.html new file mode 100644 index 0000000..cd39a56 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/operator_gt__eq_.html @@ -0,0 +1,64 @@ + + + +ip::address_v4::operator>= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + addresses for ordering. +

+
friend bool operator>=(
+    const address_v4 & a1,
+    const address_v4 & a2);
+
+

+ Compares two addresses in host byte order. +

+
+ + Return + Value +
+

+ a1.to_uint() >= a2.to_uint(). +

+
+ + Requirements +
+

+ Header: asio/ip/address_v4.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/operator_lt_.html b/3party/asio/doc/asio/reference/ip__address_v4/operator_lt_.html new file mode 100644 index 0000000..ce08cb5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/operator_lt_.html @@ -0,0 +1,64 @@ + + + +ip::address_v4::operator< + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + addresses for ordering. +

+
friend bool operator<(
+    const address_v4 & a1,
+    const address_v4 & a2);
+
+

+ Compares two addresses in host byte order. +

+
+ + Return + Value +
+

+ a1.to_uint() < a2.to_uint(). +

+
+ + Requirements +
+

+ Header: asio/ip/address_v4.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__eq_.html b/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__eq_.html new file mode 100644 index 0000000..a9e99a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__eq_.html @@ -0,0 +1,64 @@ + + + +ip::address_v4::operator<= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + addresses for ordering. +

+
friend bool operator<=(
+    const address_v4 & a1,
+    const address_v4 & a2);
+
+

+ Compares two addresses in host byte order. +

+
+ + Return + Value +
+

+ a1.to_uint() <= a2.to_uint(). +

+
+ + Requirements +
+

+ Header: asio/ip/address_v4.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_.html b/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_.html new file mode 100644 index 0000000..c800269 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload1.html b/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload1.html new file mode 100644 index 0000000..988f72b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload1.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload2.html b/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload2.html new file mode 100644 index 0000000..36c526f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload2.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__address_v4/operator_not__eq_.html new file mode 100644 index 0000000..d287138 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/to_bytes.html b/3party/asio/doc/asio/reference/ip__address_v4/to_bytes.html new file mode 100644 index 0000000..a3cf808 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/to_bytes.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/to_string.html b/3party/asio/doc/asio/reference/ip__address_v4/to_string.html new file mode 100644 index 0000000..af4430a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/to_string.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/to_string/overload1.html b/3party/asio/doc/asio/reference/ip__address_v4/to_string/overload1.html new file mode 100644 index 0000000..ce11fdd --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/to_string/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/to_string/overload2.html b/3party/asio/doc/asio/reference/ip__address_v4/to_string/overload2.html new file mode 100644 index 0000000..769d3b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/to_string/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/to_uint.html b/3party/asio/doc/asio/reference/ip__address_v4/to_uint.html new file mode 100644 index 0000000..0123351 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/to_uint.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4/to_ulong.html b/3party/asio/doc/asio/reference/ip__address_v4/to_ulong.html new file mode 100644 index 0000000..da0858f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/to_ulong.html @@ -0,0 +1,42 @@ + + + +ip::address_v4::to_ulong + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +(Deprecated: + Use to_uint().) + Get the address as an unsigned long in host byte order. +

+
unsigned long to_ulong() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v4/uint_type.html b/3party/asio/doc/asio/reference/ip__address_v4/uint_type.html new file mode 100644 index 0000000..fcb3877 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4/uint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4_iterator.html b/3party/asio/doc/asio/reference/ip__address_v4_iterator.html new file mode 100644 index 0000000..e79cf04 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4_iterator.html @@ -0,0 +1,296 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v4_range.html b/3party/asio/doc/asio/reference/ip__address_v4_range.html new file mode 100644 index 0000000..e21ef40 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v4_range.html @@ -0,0 +1,206 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6.html b/3party/asio/doc/asio/reference/ip__address_v6.html new file mode 100644 index 0000000..a1b2b4b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6.html @@ -0,0 +1,578 @@ + + + +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 [constructor] +

+
+

+ Default constructor.

Construct an address from raw + bytes and scope ID.

Copy constructor. +

+
+

+ any + [static] +

+
+

+ Obtain an address object that represents any address. +

+
+

+ from_string [static] +

+
+

+ (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 [static] +

+
+

+ 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 [static] +

+
+

+ (Deprecated: No replacement.) Create an IPv4-compatible IPv6 address. +

+
+

+ v4_mapped [static] +

+
+

+ (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/3party/asio/doc/asio/reference/ip__address_v6/address_v6.html b/3party/asio/doc/asio/reference/ip__address_v6/address_v6.html new file mode 100644 index 0000000..4f4cb8a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/address_v6.html @@ -0,0 +1,57 @@ + + + +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,
+    scope_id_type scope_id = 0);
+  » more...
+
+

+ Copy constructor. +

+
address_v6(
+    const address_v6 & other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload1.html b/3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload1.html new file mode 100644 index 0000000..c506814 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload1.html @@ -0,0 +1,48 @@ + + + +ip::address_v6::address_v6 (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
address_v6();
+
+

+ Initialises the address_v6 + object such that: * to_bytes() yields {0, 0, ..., 0}; and +

+
  • + scope_id() + == 0. +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload2.html b/3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload2.html new file mode 100644 index 0000000..8c20286 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload2.html @@ -0,0 +1,65 @@ + + + +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,
+    scope_id_type scope_id = 0);
+
+

+ Initialises the address_v6 + object such that: * to_bytes() == bytes; and +

+
  • + this->scope_id() + == scope_id. +
+
+ + Exceptions +
+
+

+
+
out_of_range
+

+ Thrown if any element in bytes + is not in the range 0 - 0xFF. + Note that no range checking is required for platforms where std::numeric_limits<unsigned char>::max() is 0xFF. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload3.html b/3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload3.html new file mode 100644 index 0000000..60e8fc5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/address_v6/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/any.html b/3party/asio/doc/asio/reference/ip__address_v6/any.html new file mode 100644 index 0000000..c0c6168 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/any.html @@ -0,0 +1,54 @@ + + + +ip::address_v6::any + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an address object + that represents any address. +

+
static address_v6 any();
+
+

+ This functions returns an address that represents the "any" address + ::. +

+
+ + Return + Value +
+

+ A default-constructed address_v6 + object. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/bytes_type.html b/3party/asio/doc/asio/reference/ip__address_v6/bytes_type.html new file mode 100644 index 0000000..857d90a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/bytes_type.html @@ -0,0 +1,59 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/from_string.html b/3party/asio/doc/asio/reference/ip__address_v6/from_string.html new file mode 100644 index 0000000..56e6ad0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/from_string.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload1.html b/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload1.html new file mode 100644 index 0000000..f2d66b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload2.html b/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload2.html new file mode 100644 index 0000000..3a2e2d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload3.html b/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload3.html new file mode 100644 index 0000000..68e3f5b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload3.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload4.html b/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload4.html new file mode 100644 index 0000000..4c9a357 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/from_string/overload4.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/is_link_local.html b/3party/asio/doc/asio/reference/ip__address_v6/is_link_local.html new file mode 100644 index 0000000..d0ddf93 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_link_local.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/is_loopback.html b/3party/asio/doc/asio/reference/ip__address_v6/is_loopback.html new file mode 100644 index 0000000..77419a7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_loopback.html @@ -0,0 +1,44 @@ + + + +ip::address_v6::is_loopback + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the address is a loopback address. +

+
bool is_loopback() const;
+
+

+ This function tests whether the address is the loopback address ::1. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/is_multicast.html b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast.html new file mode 100644 index 0000000..7e1de25 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_global.html b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_global.html new file mode 100644 index 0000000..6bb16d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_global.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_link_local.html b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_link_local.html new file mode 100644 index 0000000..f25be12 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_link_local.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_node_local.html b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_node_local.html new file mode 100644 index 0000000..e54ecb0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_node_local.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_org_local.html b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_org_local.html new file mode 100644 index 0000000..fb6770b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_org_local.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_site_local.html b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_site_local.html new file mode 100644 index 0000000..f3532ab --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_multicast_site_local.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/is_site_local.html b/3party/asio/doc/asio/reference/ip__address_v6/is_site_local.html new file mode 100644 index 0000000..1a30c13 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_site_local.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/is_unspecified.html b/3party/asio/doc/asio/reference/ip__address_v6/is_unspecified.html new file mode 100644 index 0000000..5d716b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_unspecified.html @@ -0,0 +1,44 @@ + + + +ip::address_v6::is_unspecified + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the address is unspecified. +

+
bool is_unspecified() const;
+
+

+ This function tests whether the address is the loopback address ::. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/is_v4_compatible.html b/3party/asio/doc/asio/reference/ip__address_v6/is_v4_compatible.html new file mode 100644 index 0000000..95b82e0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_v4_compatible.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/is_v4_mapped.html b/3party/asio/doc/asio/reference/ip__address_v6/is_v4_mapped.html new file mode 100644 index 0000000..1293028 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/is_v4_mapped.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/loopback.html b/3party/asio/doc/asio/reference/ip__address_v6/loopback.html new file mode 100644 index 0000000..3ebcc1a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/loopback.html @@ -0,0 +1,45 @@ + + + +ip::address_v6::loopback + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an address + object that represents the loopback address. +

+
static address_v6 loopback();
+
+

+ This function returns an address that represents the well-known loopback + address ::1. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6.html b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6.html new file mode 100644 index 0000000..6f0f986 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6.html @@ -0,0 +1,85 @@ + + + +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,
+    scope_id_type 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/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload1.html b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload1.html new file mode 100644 index 0000000..6afb442 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload1.html @@ -0,0 +1,42 @@ + + + +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,
+    scope_id_type scope_id = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload2.html b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload2.html new file mode 100644 index 0000000..64e2383 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload3.html b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload3.html new file mode 100644 index 0000000..f41d811 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload3.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload4.html b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload4.html new file mode 100644 index 0000000..407e41b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload4.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload5.html b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload5.html new file mode 100644 index 0000000..140614f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload5.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload6.html b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload6.html new file mode 100644 index 0000000..39a3707 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload6.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload7.html b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload7.html new file mode 100644 index 0000000..b59ce65 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload7.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload8.html b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload8.html new file mode 100644 index 0000000..2c0f150 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload8.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/make_network_v6.html b/3party/asio/doc/asio/reference/ip__address_v6/make_network_v6.html new file mode 100644 index 0000000..4e67ff7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/make_network_v6.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/operator_eq_.html b/3party/asio/doc/asio/reference/ip__address_v6/operator_eq_.html new file mode 100644 index 0000000..79fa3e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/operator_eq_.html @@ -0,0 +1,42 @@ + + + +ip::address_v6::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign + from another address. +

+
address_v6 & operator=(
+    const address_v6 & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__address_v6/operator_eq__eq_.html new file mode 100644 index 0000000..c3bc7ee --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/operator_gt_.html b/3party/asio/doc/asio/reference/ip__address_v6/operator_gt_.html new file mode 100644 index 0000000..f63fb0a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/operator_gt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/operator_gt__eq_.html b/3party/asio/doc/asio/reference/ip__address_v6/operator_gt__eq_.html new file mode 100644 index 0000000..ac4eca3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/operator_gt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/operator_lt_.html b/3party/asio/doc/asio/reference/ip__address_v6/operator_lt_.html new file mode 100644 index 0000000..8f7591a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/operator_lt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__eq_.html b/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__eq_.html new file mode 100644 index 0000000..499294e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_.html b/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_.html new file mode 100644 index 0000000..a898e91 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload1.html b/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload1.html new file mode 100644 index 0000000..5617cee --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload1.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload2.html b/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload2.html new file mode 100644 index 0000000..9cd1485 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload2.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__address_v6/operator_not__eq_.html new file mode 100644 index 0000000..8f802ae --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/scope_id.html b/3party/asio/doc/asio/reference/ip__address_v6/scope_id.html new file mode 100644 index 0000000..085552e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/scope_id.html @@ -0,0 +1,46 @@ + + + +ip::address_v6::scope_id + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The scope ID + of the address. +

+
scope_id_type scope_id() const;
+  » more...
+
+void scope_id(
+    scope_id_type id);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/scope_id/overload1.html b/3party/asio/doc/asio/reference/ip__address_v6/scope_id/overload1.html new file mode 100644 index 0000000..cb4a0d7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/scope_id/overload1.html @@ -0,0 +1,43 @@ + + + +ip::address_v6::scope_id (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ The scope ID of the address. +

+
scope_id_type scope_id() const;
+
+

+ Returns the scope ID associated with the IPv6 address. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/scope_id/overload2.html b/3party/asio/doc/asio/reference/ip__address_v6/scope_id/overload2.html new file mode 100644 index 0000000..23d081b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/scope_id/overload2.html @@ -0,0 +1,57 @@ + + + +ip::address_v6::scope_id (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ The scope ID of the address. +

+
void scope_id(
+    scope_id_type id);
+
+

+ Modifies the scope ID associated with the IPv6 address. +

+
+ + Parameters +
+
+

+
+
id
+

+ The new scope ID. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__address_v6/to_bytes.html b/3party/asio/doc/asio/reference/ip__address_v6/to_bytes.html new file mode 100644 index 0000000..ecd9416 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/to_bytes.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/to_string.html b/3party/asio/doc/asio/reference/ip__address_v6/to_string.html new file mode 100644 index 0000000..6a4de84 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/to_string.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/to_string/overload1.html b/3party/asio/doc/asio/reference/ip__address_v6/to_string/overload1.html new file mode 100644 index 0000000..d1ecde0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/to_string/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/to_string/overload2.html b/3party/asio/doc/asio/reference/ip__address_v6/to_string/overload2.html new file mode 100644 index 0000000..ccfbc1c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/to_string/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/to_v4.html b/3party/asio/doc/asio/reference/ip__address_v6/to_v4.html new file mode 100644 index 0000000..570ac6e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/to_v4.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/v4_compatible.html b/3party/asio/doc/asio/reference/ip__address_v6/v4_compatible.html new file mode 100644 index 0000000..3cccc76 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/v4_compatible.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6/v4_mapped.html b/3party/asio/doc/asio/reference/ip__address_v6/v4_mapped.html new file mode 100644 index 0000000..56c9986 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6/v4_mapped.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6_iterator.html b/3party/asio/doc/asio/reference/ip__address_v6_iterator.html new file mode 100644 index 0000000..375da75 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6_iterator.html @@ -0,0 +1,296 @@ + + + +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/3party/asio/doc/asio/reference/ip__address_v6_range.html b/3party/asio/doc/asio/reference/ip__address_v6_range.html new file mode 100644 index 0000000..b97c268 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__address_v6_range.html @@ -0,0 +1,194 @@ + + + +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/3party/asio/doc/asio/reference/ip__bad_address_cast.html b/3party/asio/doc/asio/reference/ip__bad_address_cast.html new file mode 100644 index 0000000..876580e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__bad_address_cast.html @@ -0,0 +1,112 @@ + + + +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 [constructor] +

+
+

+ Default constructor. +

+
+

+ what +

+
+

+ Get the message associated with the exception. +

+
+

+ ~bad_address_cast [destructor] +

+
+

+ Destructor. +

+
+
+ + Requirements +
+

+ Header: asio/ip/bad_address_cast.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__bad_address_cast/_bad_address_cast.html b/3party/asio/doc/asio/reference/ip__bad_address_cast/_bad_address_cast.html new file mode 100644 index 0000000..ffe93f2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__bad_address_cast/_bad_address_cast.html @@ -0,0 +1,40 @@ + + + +ip::bad_address_cast::~bad_address_cast + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
virtual ~bad_address_cast();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__bad_address_cast/bad_address_cast.html b/3party/asio/doc/asio/reference/ip__bad_address_cast/bad_address_cast.html new file mode 100644 index 0000000..a0e61cb --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__bad_address_cast/bad_address_cast.html @@ -0,0 +1,41 @@ + + + +ip::bad_address_cast::bad_address_cast + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
bad_address_cast();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__bad_address_cast/what.html b/3party/asio/doc/asio/reference/ip__bad_address_cast/what.html new file mode 100644 index 0000000..4422eda --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__bad_address_cast/what.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html new file mode 100644 index 0000000..498a9db --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html @@ -0,0 +1,299 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html new file mode 100644 index 0000000..6b586ac --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html new file mode 100644 index 0000000..5db2748 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html new file mode 100644 index 0000000..1e301d0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html new file mode 100644 index 0000000..cc5deac --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html new file mode 100644 index 0000000..c6bc6c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html new file mode 100644 index 0000000..607b126 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html @@ -0,0 +1,41 @@ + + + +ip::basic_address_iterator< address_v4 >::operator * + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Dereference the iterator. +

+
const address_v4 & operator *() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html new file mode 100644 index 0000000..9fe5019 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html @@ -0,0 +1,41 @@ + + + +ip::basic_address_iterator< address_v4 >::operator-> + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Dereference the iterator. +

+
const address_v4 * operator->() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html new file mode 100644 index 0000000..3daebc1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html new file mode 100644 index 0000000..23bb4db --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html new file mode 100644 index 0000000..e1c33f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html new file mode 100644 index 0000000..b14e43d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html new file mode 100644 index 0000000..b569437 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html new file mode 100644 index 0000000..d7e59e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html new file mode 100644 index 0000000..f889cf7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html new file mode 100644 index 0000000..9dab7a3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html new file mode 100644 index 0000000..252ab3a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html new file mode 100644 index 0000000..45fc488 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html new file mode 100644 index 0000000..1b93785 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html @@ -0,0 +1,532 @@ + + + +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 [constructor] +

+
+

+ Default constructor.

Construct an address from + raw bytes.

Construct an address from an unsigned + integer in host byte order.

Copy constructor. +

+
+

+ any + [static] +

+
+

+ Obtain an address object that represents any address. +

+
+

+ broadcast [static] +

+
+

+ 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 [static] +

+
+

+ (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 [static] +

+
+

+ Obtain an address object that represents the loopback address. +

+
+

+ netmask [static] +

+
+

+ (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 +

+
+

+ (Deprecated: Use to_uint().) 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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html new file mode 100644 index 0000000..a7a2e48 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html @@ -0,0 +1,531 @@ + + + +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 [constructor] +

+
+

+ Default constructor.

Construct an address from + raw bytes.

Construct an address from an unsigned + integer in host byte order.

Copy constructor. +

+
+

+ any + [static] +

+
+

+ Obtain an address object that represents any address. +

+
+

+ broadcast [static] +

+
+

+ 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 [static] +

+
+

+ (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 [static] +

+
+

+ Obtain an address object that represents the loopback address. +

+
+

+ netmask [static] +

+
+

+ (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 +

+
+

+ (Deprecated: Use to_uint().) 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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html new file mode 100644 index 0000000..ea57c80 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html @@ -0,0 +1,299 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html new file mode 100644 index 0000000..46606f2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html new file mode 100644 index 0000000..77353d1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html new file mode 100644 index 0000000..a5146f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html new file mode 100644 index 0000000..b54c9e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html new file mode 100644 index 0000000..462dad8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html new file mode 100644 index 0000000..6dbf6a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html @@ -0,0 +1,41 @@ + + + +ip::basic_address_iterator< address_v6 >::operator * + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Dereference the iterator. +

+
const address_v6 & operator *() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html new file mode 100644 index 0000000..0108a64 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html @@ -0,0 +1,41 @@ + + + +ip::basic_address_iterator< address_v6 >::operator-> + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Dereference the iterator. +

+
const address_v6 * operator->() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html new file mode 100644 index 0000000..85dac98 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html new file mode 100644 index 0000000..1a3ff01 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html new file mode 100644 index 0000000..470a0d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html new file mode 100644 index 0000000..a9b0fe4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html new file mode 100644 index 0000000..1248c2d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html new file mode 100644 index 0000000..4d6ebd3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html new file mode 100644 index 0000000..ab15d69 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html new file mode 100644 index 0000000..808b561 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html new file mode 100644 index 0000000..c9a05ef --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html new file mode 100644 index 0000000..0ece214 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html new file mode 100644 index 0000000..218be69 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html @@ -0,0 +1,579 @@ + + + +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 [constructor] +

+
+

+ Default constructor.

Construct an address from + raw bytes and scope ID.

Copy constructor. +

+
+

+ any + [static] +

+
+

+ Obtain an address object that represents any address. +

+
+

+ from_string [static] +

+
+

+ (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 [static] +

+
+

+ 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 [static] +

+
+

+ (Deprecated: No replacement.) Create an IPv4-compatible IPv6 + address. +

+
+

+ v4_mapped [static] +

+
+

+ (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/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html new file mode 100644 index 0000000..de52ff5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html @@ -0,0 +1,578 @@ + + + +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 [constructor] +

+
+

+ Default constructor.

Construct an address from + raw bytes and scope ID.

Copy constructor. +

+
+

+ any + [static] +

+
+

+ Obtain an address object that represents any address. +

+
+

+ from_string [static] +

+
+

+ (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 [static] +

+
+

+ 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 [static] +

+
+

+ (Deprecated: No replacement.) Create an IPv4-compatible IPv6 + address. +

+
+

+ v4_mapped [static] +

+
+

+ (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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_.html new file mode 100644 index 0000000..2979ef5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_.html @@ -0,0 +1,209 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html new file mode 100644 index 0000000..e80bd7e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html new file mode 100644 index 0000000..751462d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html new file mode 100644 index 0000000..ae4900e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html new file mode 100644 index 0000000..ee72a59 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html new file mode 100644 index 0000000..86d524e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html new file mode 100644 index 0000000..f531d96 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html @@ -0,0 +1,41 @@ + + + +ip::basic_address_range< address_v4 >::empty + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine whether the range is empty. +

+
bool empty() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html new file mode 100644 index 0000000..bb2ec7a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html new file mode 100644 index 0000000..fcea313 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html new file mode 100644 index 0000000..bce56b6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html @@ -0,0 +1,296 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html new file mode 100644 index 0000000..b181462 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html new file mode 100644 index 0000000..f15b5ae --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_.html new file mode 100644 index 0000000..505cdac --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_.html @@ -0,0 +1,197 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html new file mode 100644 index 0000000..f326e9e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html new file mode 100644 index 0000000..50144ed --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html new file mode 100644 index 0000000..35cff16 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html new file mode 100644 index 0000000..54f4af2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html new file mode 100644 index 0000000..4f68074 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html new file mode 100644 index 0000000..f0c1ca7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html @@ -0,0 +1,41 @@ + + + +ip::basic_address_range< address_v6 >::empty + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine whether the range is empty. +

+
bool empty() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html new file mode 100644 index 0000000..9825295 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html new file mode 100644 index 0000000..dc998c7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html new file mode 100644 index 0000000..c626cf4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html @@ -0,0 +1,296 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html new file mode 100644 index 0000000..5ef9b58 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint.html b/3party/asio/doc/asio/reference/ip__basic_endpoint.html new file mode 100644 index 0000000..ee6f1fd --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint.html @@ -0,0 +1,395 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_endpoint/address.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/address.html new file mode 100644 index 0000000..5bc3972 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/address.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/address/overload1.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/address/overload1.html new file mode 100644 index 0000000..3048d6d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/address/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/address/overload2.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/address/overload2.html new file mode 100644 index 0000000..e702751 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/address/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint.html new file mode 100644 index 0000000..37855ad --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint.html @@ -0,0 +1,76 @@ + + + +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,
+    port_type 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,
+    port_type port_num);
+  » more...
+
+

+ Copy constructor. +

+
basic_endpoint(
+    const basic_endpoint & other);
+  » more...
+
+

+ Move constructor. +

+
basic_endpoint(
+    basic_endpoint && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html new file mode 100644 index 0000000..9f8a738 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html @@ -0,0 +1,40 @@ + + + +ip::basic_endpoint::basic_endpoint (1 of 5 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
basic_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html new file mode 100644 index 0000000..6fb5510 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html @@ -0,0 +1,58 @@ + + + +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,
+    port_type 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/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html new file mode 100644 index 0000000..60fc8eb --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html @@ -0,0 +1,44 @@ + + + +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,
+    port_type port_num);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html new file mode 100644 index 0000000..aad279b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html new file mode 100644 index 0000000..9005d83 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html @@ -0,0 +1,41 @@ + + + +ip::basic_endpoint::basic_endpoint (5 of 5 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
basic_endpoint(
+    basic_endpoint && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_endpoint/capacity.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/capacity.html new file mode 100644 index 0000000..edbb708 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/capacity.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/data.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/data.html new file mode 100644 index 0000000..c882dac --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/data.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/data/overload1.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/data/overload1.html new file mode 100644 index 0000000..af62ada --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/data/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/data/overload2.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/data/overload2.html new file mode 100644 index 0000000..28d2419 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/data/overload2.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/data_type.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/data_type.html new file mode 100644 index 0000000..1d45139 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/data_type.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_.html new file mode 100644 index 0000000..43c2f30 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload1.html new file mode 100644 index 0000000..4d2df65 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload2.html new file mode 100644 index 0000000..d840b9b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq__eq_.html new file mode 100644 index 0000000..c71b382 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_gt_.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_gt_.html new file mode 100644 index 0000000..40da3ec --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_gt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_gt__eq_.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_gt__eq_.html new file mode 100644 index 0000000..4c36f09 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_gt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt_.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt_.html new file mode 100644 index 0000000..ed21b5a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__eq_.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__eq_.html new file mode 100644 index 0000000..dfd5bf7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__lt_.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__lt_.html new file mode 100644 index 0000000..050b842 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__lt_.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_not__eq_.html new file mode 100644 index 0000000..9b2d853 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/port.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/port.html new file mode 100644 index 0000000..5eb8e1a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/port.html @@ -0,0 +1,51 @@ + + + +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. +

+
port_type port() const;
+  » more...
+
+

+ Set the port associated with the endpoint. The port number is always in + the host's byte order. +

+
void port(
+    port_type port_num);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_endpoint/port/overload1.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/port/overload1.html new file mode 100644 index 0000000..6f91885 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/port/overload1.html @@ -0,0 +1,41 @@ + + + +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. +

+
port_type port() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_endpoint/port/overload2.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/port/overload2.html new file mode 100644 index 0000000..e17918b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/port/overload2.html @@ -0,0 +1,42 @@ + + + +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(
+    port_type port_num);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_endpoint/protocol.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/protocol.html new file mode 100644 index 0000000..16bb992 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/protocol.html @@ -0,0 +1,41 @@ + + + +ip::basic_endpoint::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + protocol associated with the endpoint. +

+
protocol_type protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_endpoint/protocol_type.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/protocol_type.html new file mode 100644 index 0000000..f18998d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/resize.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/resize.html new file mode 100644 index 0000000..26874e1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/resize.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_endpoint/size.html b/3party/asio/doc/asio/reference/ip__basic_endpoint/size.html new file mode 100644 index 0000000..cfb874a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_endpoint/size.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver.html b/3party/asio/doc/asio/reference/ip__basic_resolver.html new file mode 100644 index 0000000..42cb76c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver.html @@ -0,0 +1,424 @@ + + + +ip::basic_resolver + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides endpoint resolution functionality. +

+
template<
+    typename InternetProtocol,
+    typename Executor>
+class basic_resolver :
+  public ip::resolver_base
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the resolver type to another executor. +

+
+

+ 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] +

+
+

+ Construct with executor.

Construct with execution + context.

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

+
+

+ 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 [destructor] +

+
+

+ Destroys the resolver. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ address_configured [static] +

+
+

+ 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 [static] +

+
+

+ If used with v4_mapped, return all matching IPv6 and IPv4 addresses. +

+
+

+ canonical_name [static] +

+
+

+ Determine the canonical name of the host specified in the query. +

+
+

+ numeric_host [static] +

+
+

+ Host name should be treated as a numeric string defining an IPv4 + or IPv6 address and no name resolution should be attempted. +

+
+

+ numeric_service [static] +

+
+

+ Service name should be treated as a numeric string defining a port + number and no name resolution should be attempted. +

+
+

+ passive [static] +

+
+

+ Indicate that returned endpoint is intended for use as a locally + bound socket endpoint. +

+
+

+ v4_mapped [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver/_basic_resolver.html b/3party/asio/doc/asio/reference/ip__basic_resolver/_basic_resolver.html new file mode 100644 index 0000000..7d00c2a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/_basic_resolver.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/address_configured.html b/3party/asio/doc/asio/reference/ip__basic_resolver/address_configured.html new file mode 100644 index 0000000..08afd82 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/address_configured.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/all_matching.html b/3party/asio/doc/asio/reference/ip__basic_resolver/all_matching.html new file mode 100644 index 0000000..eafb5cb --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/all_matching.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve.html b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve.html new file mode 100644 index 0000000..2afe437 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve.html @@ -0,0 +1,96 @@ + + + +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 ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    const query & q,
+    ResolveToken && token = DEFAULT);
+  » more...
+
+

+ Asynchronously perform forward resolution of a query to a list of entries. +

+
template<
+    typename ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    string_view host,
+    string_view service,
+    ResolveToken && token = DEFAULT);
+  » more...
+
+template<
+    typename ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    string_view host,
+    string_view service,
+    resolver_base::flags resolve_flags,
+    ResolveToken && token = DEFAULT);
+  » more...
+
+template<
+    typename ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    const protocol_type & protocol,
+    string_view host,
+    string_view service,
+    ResolveToken && token = DEFAULT);
+  » more...
+
+template<
+    typename ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    const protocol_type & protocol,
+    string_view host,
+    string_view service,
+    resolver_base::flags resolve_flags,
+    ResolveToken && token = DEFAULT);
+  » more...
+
+

+ Asynchronously perform reverse resolution of an endpoint to a list of entries. +

+
template<
+    typename ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    const endpoint_type & e,
+    ResolveToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload1.html new file mode 100644 index 0000000..e1c09e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload1.html @@ -0,0 +1,96 @@ + + + +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 ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    const query & q,
+    ResolveToken && token = DEFAULT);
+
+

+ This function is used to asynchronously resolve a query into a list of + endpoint entries. It is an initiating function for an asynchronous + operation, and always returns immediately. +

+
+ + Parameters +
+
+

+
+
q
+

+ A query object that determines what endpoints will be returned. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the resolve completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+

+ A successful resolve operation is guaranteed to pass a non-empty range + to the handler. +

+
+ + Completion + Signature +
+
void(asio::error_code, results_type)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload2.html new file mode 100644 index 0000000..de5df60 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload2.html @@ -0,0 +1,123 @@ + + + +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 ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    string_view host,
+    string_view service,
+    ResolveToken && token = DEFAULT);
+
+

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

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the resolve completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+

+ A successful resolve operation is guaranteed to pass a non-empty range + to the handler. +

+
+ + Completion + Signature +
+
void(asio::error_code, results_type)
+
+
+ + 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/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload3.html b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload3.html new file mode 100644 index 0000000..1b61e87 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload3.html @@ -0,0 +1,132 @@ + + + +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 ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    string_view host,
+    string_view service,
+    resolver_base::flags resolve_flags,
+    ResolveToken && token = DEFAULT);
+
+

+ This function is used to resolve host and service names into a list of + endpoint entries. It is an initiating function for an asynchronous + operation, and always returns immediately. +

+
+ + 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. + See the ip::resolver_base documentation + for the set of available flags. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the resolve completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+

+ A successful resolve operation is guaranteed to pass a non-empty range + to the handler. +

+
+ + Completion + Signature +
+
void(asio::error_code, results_type)
+
+
+ + 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/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload4.html b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload4.html new file mode 100644 index 0000000..012f89f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload4.html @@ -0,0 +1,130 @@ + + + +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 ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    const protocol_type & protocol,
+    string_view host,
+    string_view service,
+    ResolveToken && token = DEFAULT);
+
+

+ This function is used to resolve host and service names into a list of + endpoint entries. It is an initiating function for an asynchronous + operation, and always returns immediately. +

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

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the resolve completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+

+ A successful resolve operation is guaranteed to pass a non-empty range + to the handler. +

+
+ + Completion + Signature +
+
void(asio::error_code, results_type)
+
+
+ + 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/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload5.html b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload5.html new file mode 100644 index 0000000..c73427c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload5.html @@ -0,0 +1,138 @@ + + + +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 ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    const protocol_type & protocol,
+    string_view host,
+    string_view service,
+    resolver_base::flags resolve_flags,
+    ResolveToken && token = DEFAULT);
+
+

+ This function is used to resolve host and service names into a list of + endpoint entries. It is an initiating function for an asynchronous + operation, and always returns immediately. +

+
+ + 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. + See the ip::resolver_base documentation + for the set of available flags. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the resolve completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+

+ A successful resolve operation is guaranteed to pass a non-empty range + to the handler. +

+
+ + Completion + Signature +
+
void(asio::error_code, results_type)
+
+
+ + 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/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload6.html b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload6.html new file mode 100644 index 0000000..ba38c13 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload6.html @@ -0,0 +1,96 @@ + + + +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 ResolveToken = DEFAULT>
+DEDUCED async_resolve(
+    const endpoint_type & e,
+    ResolveToken && token = DEFAULT);
+
+

+ This function is used to asynchronously resolve an endpoint into a list + of endpoint entries. It is an initiating function for an asynchronous + operation, and always returns immediately. +

+
+ + Parameters +
+
+

+
+
e
+

+ An endpoint object that determines what endpoints will be returned. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the resolve completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion 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 completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+

+ A successful resolve operation is guaranteed to pass a non-empty range + to the handler. +

+
+ + Completion + Signature +
+
void(asio::error_code, results_type)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver.html b/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver.html new file mode 100644 index 0000000..61a90a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver.html @@ -0,0 +1,67 @@ + + + +ip::basic_resolver::basic_resolver + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + with executor. +

+
explicit basic_resolver(
+    const executor_type & ex);
+  » more...
+
+

+ Construct with execution context. +

+
template<
+    typename ExecutionContext>
+explicit basic_resolver(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct a ip::basic_resolver from another. +

+
basic_resolver(
+    basic_resolver && other);
+  » more...
+
+template<
+    typename Executor1>
+basic_resolver(
+    basic_resolver< InternetProtocol, Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html new file mode 100644 index 0000000..1b084db --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html @@ -0,0 +1,58 @@ + + + +ip::basic_resolver::basic_resolver (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct with executor. +

+
basic_resolver(
+    const executor_type & ex);
+
+

+ This constructor creates a ip::basic_resolver. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the resolver will use, by default, to dispatch + handlers for any asynchronous operations performed on the resolver. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html new file mode 100644 index 0000000..db54b1e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html @@ -0,0 +1,62 @@ + + + +ip::basic_resolver::basic_resolver (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct with execution context. +

+
template<
+    typename ExecutionContext>
+basic_resolver(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a ip::basic_resolver. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the resolver + will use, by default, to dispatch handlers for any asynchronous + operations performed on the resolver. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload3.html b/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload3.html new file mode 100644 index 0000000..f5504fa --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload3.html @@ -0,0 +1,67 @@ + + + +ip::basic_resolver::basic_resolver (3 of 4 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload4.html b/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload4.html new file mode 100644 index 0000000..b69f571 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload4.html @@ -0,0 +1,70 @@ + + + +ip::basic_resolver::basic_resolver (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a ip::basic_resolver from another. +

+
template<
+    typename Executor1>
+basic_resolver(
+    basic_resolver< InternetProtocol, Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value >::type  = 0);
+
+

+ 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/cancel.html b/3party/asio/doc/asio/reference/ip__basic_resolver/cancel.html new file mode 100644 index 0000000..01f3228 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/cancel.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/canonical_name.html b/3party/asio/doc/asio/reference/ip__basic_resolver/canonical_name.html new file mode 100644 index 0000000..7a1db97 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/canonical_name.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/endpoint_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver/endpoint_type.html new file mode 100644 index 0000000..8bfaa64 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/endpoint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/executor_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver/executor_type.html new file mode 100644 index 0000000..d5c86d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/executor_type.html @@ -0,0 +1,51 @@ + + + +ip::basic_resolver::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/ip/basic_resolver.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/flags.html b/3party/asio/doc/asio/reference/ip__basic_resolver/flags.html new file mode 100644 index 0000000..dc5bcbd --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/flags.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/get_executor.html b/3party/asio/doc/asio/reference/ip__basic_resolver/get_executor.html new file mode 100644 index 0000000..5b96fe9 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/get_executor.html @@ -0,0 +1,41 @@ + + + +ip::basic_resolver::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
executor_type get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/iterator.html b/3party/asio/doc/asio/reference/ip__basic_resolver/iterator.html new file mode 100644 index 0000000..9dd64f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/iterator.html @@ -0,0 +1,386 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver/numeric_host.html b/3party/asio/doc/asio/reference/ip__basic_resolver/numeric_host.html new file mode 100644 index 0000000..adccdc5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/numeric_host.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/numeric_service.html b/3party/asio/doc/asio/reference/ip__basic_resolver/numeric_service.html new file mode 100644 index 0000000..b8b361f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/numeric_service.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_.html b/3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_.html new file mode 100644 index 0000000..20d2f3e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_.html @@ -0,0 +1,50 @@ + + + +ip::basic_resolver::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a ip::basic_resolver + from another. +

+
basic_resolver & operator=(
+    basic_resolver && other);
+  » more...
+
+template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_resolver & >::type operator=(
+    basic_resolver< InternetProtocol, Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_/overload1.html new file mode 100644 index 0000000..c0d075a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_/overload1.html @@ -0,0 +1,69 @@ + + + +ip::basic_resolver::operator= (1 of 2 overloads) + + + + + + + + + +
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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_/overload2.html new file mode 100644 index 0000000..71444e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/operator_eq_/overload2.html @@ -0,0 +1,71 @@ + + + +ip::basic_resolver::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a ip::basic_resolver from another. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_resolver & >::type operator=(
+    basic_resolver< InternetProtocol, Executor1 > && 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver/passive.html b/3party/asio/doc/asio/reference/ip__basic_resolver/passive.html new file mode 100644 index 0000000..9c195f4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/passive.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/protocol_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver/protocol_type.html new file mode 100644 index 0000000..fa563c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/query.html b/3party/asio/doc/asio/reference/ip__basic_resolver/query.html new file mode 100644 index 0000000..1cda4ad --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/query.html @@ -0,0 +1,305 @@ + + + +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 [constructor] +

+
+

+ 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 [static] +

+
+

+ 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 [static] +

+
+

+ If used with v4_mapped, return all matching IPv6 and IPv4 addresses. +

+
+

+ canonical_name [static] +

+
+

+ Determine the canonical name of the host specified in the query. +

+
+

+ numeric_host [static] +

+
+

+ Host name should be treated as a numeric string defining an IPv4 + or IPv6 address and no name resolution should be attempted. +

+
+

+ numeric_service [static] +

+
+

+ Service name should be treated as a numeric string defining a + port number and no name resolution should be attempted. +

+
+

+ passive [static] +

+
+

+ Indicate that returned endpoint is intended for use as a locally + bound socket endpoint. +

+
+

+ v4_mapped [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve.html new file mode 100644 index 0000000..d8aae87 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve.html @@ -0,0 +1,116 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload1.html new file mode 100644 index 0000000..aa192ae --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload1.html @@ -0,0 +1,80 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload10.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload10.html new file mode 100644 index 0000000..f5edbe9 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload10.html @@ -0,0 +1,116 @@ + + + +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. + See the ip::resolver_base documentation + for the set of available flags. +

+
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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload11.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload11.html new file mode 100644 index 0000000..08c30ed --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload11.html @@ -0,0 +1,80 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload12.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload12.html new file mode 100644 index 0000000..352a4ab --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload12.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload2.html new file mode 100644 index 0000000..91a4540 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload2.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload3.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload3.html new file mode 100644 index 0000000..8fc20b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload3.html @@ -0,0 +1,109 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload4.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload4.html new file mode 100644 index 0000000..06a76e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload4.html @@ -0,0 +1,102 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload5.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload5.html new file mode 100644 index 0000000..6bfb7ce --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload5.html @@ -0,0 +1,117 @@ + + + +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. + See the ip::resolver_base documentation + for the set of available flags. +

+
+
+
+ + 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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload6.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload6.html new file mode 100644 index 0000000..a523306 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload6.html @@ -0,0 +1,110 @@ + + + +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. + See the ip::resolver_base documentation + for the set of available flags. +

+
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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload7.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload7.html new file mode 100644 index 0000000..868e0c7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload7.html @@ -0,0 +1,115 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload8.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload8.html new file mode 100644 index 0000000..99219a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload8.html @@ -0,0 +1,108 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload9.html b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload9.html new file mode 100644 index 0000000..5475137 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/resolve/overload9.html @@ -0,0 +1,123 @@ + + + +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. + See the ip::resolver_base documentation + for the set of available flags. +

+
+
+
+ + 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/3party/asio/doc/asio/reference/ip__basic_resolver/results_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver/results_type.html new file mode 100644 index 0000000..d01ad18 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/results_type.html @@ -0,0 +1,564 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver/v4_mapped.html b/3party/asio/doc/asio/reference/ip__basic_resolver/v4_mapped.html new file mode 100644 index 0000000..b79dcc7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver/v4_mapped.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver__rebind_executor.html b/3party/asio/doc/asio/reference/ip__basic_resolver__rebind_executor.html new file mode 100644 index 0000000..bf3e96f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver__rebind_executor.html @@ -0,0 +1,88 @@ + + + +ip::basic_resolver::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the resolver type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The resolver type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/ip/basic_resolver.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver__rebind_executor/other.html b/3party/asio/doc/asio/reference/ip__basic_resolver__rebind_executor/other.html new file mode 100644 index 0000000..17aea43 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver__rebind_executor/other.html @@ -0,0 +1,419 @@ + + + +ip::basic_resolver::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + resolver type when rebound to the specified executor. +

+
typedef basic_resolver< InternetProtocol, Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the resolver type to another executor. +

+
+

+ 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] +

+
+

+ Construct with executor.

Construct with execution + context.

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

+
+

+ 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 [destructor] +

+
+

+ Destroys the resolver. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ address_configured [static] +

+
+

+ 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 [static] +

+
+

+ If used with v4_mapped, return all matching IPv6 and IPv4 addresses. +

+
+

+ canonical_name [static] +

+
+

+ Determine the canonical name of the host specified in the query. +

+
+

+ numeric_host [static] +

+
+

+ Host name should be treated as a numeric string defining an IPv4 + or IPv6 address and no name resolution should be attempted. +

+
+

+ numeric_service [static] +

+
+

+ Service name should be treated as a numeric string defining a + port number and no name resolution should be attempted. +

+
+

+ passive [static] +

+
+

+ Indicate that returned endpoint is intended for use as a locally + bound socket endpoint. +

+
+

+ v4_mapped [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_entry.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry.html new file mode 100644 index 0000000..edb81c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry.html @@ -0,0 +1,202 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html new file mode 100644 index 0000000..8a38714 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html new file mode 100644 index 0000000..034c64f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html @@ -0,0 +1,40 @@ + + + +ip::basic_resolver_entry::basic_resolver_entry (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
basic_resolver_entry();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html new file mode 100644 index 0000000..edfa264 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint.html new file mode 100644 index 0000000..c69740e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint.html @@ -0,0 +1,41 @@ + + + +ip::basic_resolver_entry::endpoint + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the endpoint associated with the entry. +

+
endpoint_type endpoint() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint_type.html new file mode 100644 index 0000000..b235078 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name.html new file mode 100644 index 0000000..91ee5a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload1.html new file mode 100644 index 0000000..e4672a7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload2.html new file mode 100644 index 0000000..14a9177 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html new file mode 100644 index 0000000..c5a9015 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_entry/protocol_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/protocol_type.html new file mode 100644 index 0000000..4af8672 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name.html new file mode 100644 index 0000000..57d8ab2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload1.html new file mode 100644 index 0000000..d1de274 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload2.html new file mode 100644 index 0000000..f6fe5fc --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator.html new file mode 100644 index 0000000..6002495 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator.html @@ -0,0 +1,388 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html new file mode 100644 index 0000000..e31ba7c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html @@ -0,0 +1,56 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html new file mode 100644 index 0000000..ca07f3a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html new file mode 100644 index 0000000..154de93 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html new file mode 100644 index 0000000..63a4d2b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/dereference.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/dereference.html new file mode 100644 index 0000000..20a7cd7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/dereference.html @@ -0,0 +1,39 @@ + + + +ip::basic_resolver_iterator::dereference + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
const basic_resolver_entry< InternetProtocol > & dereference() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html new file mode 100644 index 0000000..f8d4b44 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/equal.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/equal.html new file mode 100644 index 0000000..45de090 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/equal.html @@ -0,0 +1,40 @@ + + + +ip::basic_resolver_iterator::equal + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
bool equal(
+    const basic_resolver_iterator & other) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/increment.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/increment.html new file mode 100644 index 0000000..a94d3d0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/increment.html @@ -0,0 +1,39 @@ + + + +ip::basic_resolver_iterator::increment + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
void increment();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/index_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/index_.html new file mode 100644 index 0000000..56d23ec --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/index_.html @@ -0,0 +1,39 @@ + + + +ip::basic_resolver_iterator::index_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
std::size_t index_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html new file mode 100644 index 0000000..c6841a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator__star_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator__star_.html new file mode 100644 index 0000000..7dabe86 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator__star_.html @@ -0,0 +1,42 @@ + + + +ip::basic_resolver_iterator::operator * + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Dereference + an iterator. +

+
const basic_resolver_entry< InternetProtocol > & operator *() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_arrow_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_arrow_.html new file mode 100644 index 0000000..24893fe --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_arrow_.html @@ -0,0 +1,41 @@ + + + +ip::basic_resolver_iterator::operator-> + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Dereference + an iterator. +

+
const basic_resolver_entry< InternetProtocol > * operator->() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_.html new file mode 100644 index 0000000..a7d6596 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html new file mode 100644 index 0000000..a011533 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html new file mode 100644 index 0000000..ee2e28e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html new file mode 100644 index 0000000..949d302 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html new file mode 100644 index 0000000..8b72e4d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html new file mode 100644 index 0000000..94366a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html new file mode 100644 index 0000000..c8aca68 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html @@ -0,0 +1,40 @@ + + + +ip::basic_resolver_iterator::operator++ (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Increment operator (prefix). +

+
basic_resolver_iterator & operator++();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html new file mode 100644 index 0000000..8d29a24 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/pointer.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/pointer.html new file mode 100644 index 0000000..88371a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/pointer.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/reference.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/reference.html new file mode 100644 index 0000000..d1d4b15 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/reference.html @@ -0,0 +1,200 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/value_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/value_type.html new file mode 100644 index 0000000..b8f9baf --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/value_type.html @@ -0,0 +1,200 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/values_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/values_.html new file mode 100644 index 0000000..0f18ebe --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_iterator/values_.html @@ -0,0 +1,39 @@ + + + +ip::basic_resolver_iterator::values_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
values_ptr_type values_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_query.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query.html new file mode 100644 index 0000000..c620d48 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query.html @@ -0,0 +1,308 @@ + + + +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 [constructor] +

+
+

+ 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 [static] +

+
+

+ 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 [static] +

+
+

+ If used with v4_mapped, return all matching IPv6 and IPv4 addresses. +

+
+

+ canonical_name [static] +

+
+

+ Determine the canonical name of the host specified in the query. +

+
+

+ numeric_host [static] +

+
+

+ Host name should be treated as a numeric string defining an IPv4 + or IPv6 address and no name resolution should be attempted. +

+
+

+ numeric_service [static] +

+
+

+ Service name should be treated as a numeric string defining a port + number and no name resolution should be attempted. +

+
+

+ passive [static] +

+
+

+ Indicate that returned endpoint is intended for use as a locally + bound socket endpoint. +

+
+

+ v4_mapped [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_query/address_configured.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/address_configured.html new file mode 100644 index 0000000..bcfdf1f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/address_configured.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/all_matching.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/all_matching.html new file mode 100644 index 0000000..e60f5d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/all_matching.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query.html new file mode 100644 index 0000000..44ca224 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html new file mode 100644 index 0000000..13544c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html new file mode 100644 index 0000000..9f393e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html @@ -0,0 +1,81 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html new file mode 100644 index 0000000..d7716a4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html @@ -0,0 +1,93 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html new file mode 100644 index 0000000..5d75b0d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html @@ -0,0 +1,99 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/canonical_name.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/canonical_name.html new file mode 100644 index 0000000..0b2a86b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/canonical_name.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/flags.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/flags.html new file mode 100644 index 0000000..886ec9e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/flags.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/hints.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/hints.html new file mode 100644 index 0000000..39d0085 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/hints.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/host_name.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/host_name.html new file mode 100644 index 0000000..a724505 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/host_name.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/numeric_host.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/numeric_host.html new file mode 100644 index 0000000..f5c9d44 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/numeric_host.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/numeric_service.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/numeric_service.html new file mode 100644 index 0000000..c7c30cc --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/numeric_service.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/passive.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/passive.html new file mode 100644 index 0000000..7716122 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/passive.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/protocol_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/protocol_type.html new file mode 100644 index 0000000..0be8d92 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/service_name.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/service_name.html new file mode 100644 index 0000000..8499263 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/service_name.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_query/v4_mapped.html b/3party/asio/doc/asio/reference/ip__basic_resolver_query/v4_mapped.html new file mode 100644 index 0000000..7fd67a6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_query/v4_mapped.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results.html new file mode 100644 index 0000000..4253d91 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results.html @@ -0,0 +1,567 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results.html new file mode 100644 index 0000000..173fbe8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results.html @@ -0,0 +1,56 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html new file mode 100644 index 0000000..1d837ed --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html new file mode 100644 index 0000000..4a799a6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html new file mode 100644 index 0000000..902e4c1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/begin.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/begin.html new file mode 100644 index 0000000..8d368ee --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/begin.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/cbegin.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/cbegin.html new file mode 100644 index 0000000..dfe8199 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/cbegin.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/cend.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/cend.html new file mode 100644 index 0000000..4652fa3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/cend.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/const_iterator.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/const_iterator.html new file mode 100644 index 0000000..0ab38b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/const_iterator.html @@ -0,0 +1,386 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_results/const_reference.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/const_reference.html new file mode 100644 index 0000000..2a10a15 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/const_reference.html @@ -0,0 +1,200 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_results/dereference.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/dereference.html new file mode 100644 index 0000000..9d00013 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/dereference.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/difference_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/difference_type.html new file mode 100644 index 0000000..f211a16 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/difference_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/empty.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/empty.html new file mode 100644 index 0000000..3188bf3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/empty.html @@ -0,0 +1,41 @@ + + + +ip::basic_resolver_results::empty + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the results range is empty. +

+
bool empty() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_results/end.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/end.html new file mode 100644 index 0000000..ffad9bb --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/end.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/endpoint_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/endpoint_type.html new file mode 100644 index 0000000..7317817 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/endpoint_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/equal.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/equal.html new file mode 100644 index 0000000..9713ee5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/equal.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/increment.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/increment.html new file mode 100644 index 0000000..46bffd8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/increment.html @@ -0,0 +1,42 @@ + + + +ip::basic_resolver_results::increment + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from ip::basic_resolver. +

+

+ +

+
void increment();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_results/index_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/index_.html new file mode 100644 index 0000000..a9289b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/index_.html @@ -0,0 +1,42 @@ + + + +ip::basic_resolver_results::index_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from ip::basic_resolver. +

+

+ +

+
std::size_t index_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__basic_resolver_results/iterator.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/iterator.html new file mode 100644 index 0000000..ddcf5f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/iterator.html @@ -0,0 +1,386 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_results/iterator_category.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/iterator_category.html new file mode 100644 index 0000000..9b6ef28 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/iterator_category.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/max_size.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/max_size.html new file mode 100644 index 0000000..36fbb37 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/max_size.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator__star_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator__star_.html new file mode 100644 index 0000000..bae6f57 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator__star_.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_arrow_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_arrow_.html new file mode 100644 index 0000000..1826494 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_arrow_.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_.html new file mode 100644 index 0000000..49f3416 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html new file mode 100644 index 0000000..3973a68 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html new file mode 100644 index 0000000..a115acc --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_.html new file mode 100644 index 0000000..fdf8960 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html new file mode 100644 index 0000000..fde0f84 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html new file mode 100644 index 0000000..74b6414 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html @@ -0,0 +1,55 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_.html new file mode 100644 index 0000000..9357baf --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html new file mode 100644 index 0000000..77b162e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html new file mode 100644 index 0000000..eb1796a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html @@ -0,0 +1,55 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_.html new file mode 100644 index 0000000..2a025b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html new file mode 100644 index 0000000..792ba2b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html new file mode 100644 index 0000000..e66425b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/pointer.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/pointer.html new file mode 100644 index 0000000..571170c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/pointer.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/protocol_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/protocol_type.html new file mode 100644 index 0000000..e45dea6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/reference.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/reference.html new file mode 100644 index 0000000..03bff03 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/reference.html @@ -0,0 +1,200 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_results/size.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/size.html new file mode 100644 index 0000000..43bdd26 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/size.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/size_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/size_type.html new file mode 100644 index 0000000..5aba95b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/size_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/swap.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/swap.html new file mode 100644 index 0000000..2ffc288 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/swap.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__basic_resolver_results/value_type.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/value_type.html new file mode 100644 index 0000000..b501330 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/value_type.html @@ -0,0 +1,200 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__basic_resolver_results/values_.html b/3party/asio/doc/asio/reference/ip__basic_resolver_results/values_.html new file mode 100644 index 0000000..c54dba1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__basic_resolver_results/values_.html @@ -0,0 +1,42 @@ + + + +ip::basic_resolver_results::values_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from ip::basic_resolver. +

+

+ +

+
values_ptr_type values_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__host_name.html b/3party/asio/doc/asio/reference/ip__host_name.html new file mode 100644 index 0000000..a1c5a6e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__host_name.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/ip__host_name/overload1.html b/3party/asio/doc/asio/reference/ip__host_name/overload1.html new file mode 100644 index 0000000..f5ceb58 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__host_name/overload1.html @@ -0,0 +1,40 @@ + + + +ip::host_name (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get the current host name. +

+
std::string host_name();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__host_name/overload2.html b/3party/asio/doc/asio/reference/ip__host_name/overload2.html new file mode 100644 index 0000000..5d11c1c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__host_name/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__icmp.html b/3party/asio/doc/asio/reference/ip__icmp.html new file mode 100644 index 0000000..acfac46 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__icmp.html @@ -0,0 +1,262 @@ + + + +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 + [static] +

+
+

+ Construct to represent the IPv4 ICMP protocol. +

+
+

+ v6 + [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__icmp/endpoint.html b/3party/asio/doc/asio/reference/ip__icmp/endpoint.html new file mode 100644 index 0000000..4ddfde1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__icmp/endpoint.html @@ -0,0 +1,391 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__icmp/family.html b/3party/asio/doc/asio/reference/ip__icmp/family.html new file mode 100644 index 0000000..c00c1b2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__icmp/family.html @@ -0,0 +1,41 @@ + + + +ip::icmp::family + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an identifier for the + protocol family. +

+
int family() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__icmp/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__icmp/operator_eq__eq_.html new file mode 100644 index 0000000..8235877 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__icmp/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__icmp/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__icmp/operator_not__eq_.html new file mode 100644 index 0000000..431b8f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__icmp/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__icmp/protocol.html b/3party/asio/doc/asio/reference/ip__icmp/protocol.html new file mode 100644 index 0000000..9c1f3be --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__icmp/protocol.html @@ -0,0 +1,41 @@ + + + +ip::icmp::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an identifier for + the protocol. +

+
int protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__icmp/resolver.html b/3party/asio/doc/asio/reference/ip__icmp/resolver.html new file mode 100644 index 0000000..61e02d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__icmp/resolver.html @@ -0,0 +1,418 @@ + + + +ip::icmp::resolver + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The ICMP resolver type. +

+
typedef basic_resolver< icmp > resolver;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the resolver type to another executor. +

+
+

+ 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] +

+
+

+ Construct with executor.

Construct with execution + context.

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

+
+

+ 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 [destructor] +

+
+

+ Destroys the resolver. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ address_configured [static] +

+
+

+ 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 [static] +

+
+

+ If used with v4_mapped, return all matching IPv6 and IPv4 addresses. +

+
+

+ canonical_name [static] +

+
+

+ Determine the canonical name of the host specified in the query. +

+
+

+ numeric_host [static] +

+
+

+ Host name should be treated as a numeric string defining an IPv4 + or IPv6 address and no name resolution should be attempted. +

+
+

+ numeric_service [static] +

+
+

+ Service name should be treated as a numeric string defining a + port number and no name resolution should be attempted. +

+
+

+ passive [static] +

+
+

+ Indicate that returned endpoint is intended for use as a locally + bound socket endpoint. +

+
+

+ v4_mapped [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__icmp/socket.html b/3party/asio/doc/asio/reference/ip__icmp/socket.html new file mode 100644 index 0000000..e60222c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__icmp/socket.html @@ -0,0 +1,923 @@ + + + +ip::icmp::socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The ICMP socket type. +

+
typedef basic_raw_socket< icmp > socket;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, send_to, receive, + receive_from, connect, and shutdown + operations are thread safe with respect to each other, if the underlying + operating system calls are also thread safe. This means that it is permitted + to perform concurrent calls to these synchronous operations on a single + socket object. Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/ip/icmp.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__icmp/type.html b/3party/asio/doc/asio/reference/ip__icmp/type.html new file mode 100644 index 0000000..8199b92 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__icmp/type.html @@ -0,0 +1,41 @@ + + + +ip::icmp::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an identifier for the type + of the protocol. +

+
int type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__icmp/v4.html b/3party/asio/doc/asio/reference/ip__icmp/v4.html new file mode 100644 index 0000000..f3f1eb1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__icmp/v4.html @@ -0,0 +1,41 @@ + + + +ip::icmp::v4 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct to represent the IPv4 ICMP + protocol. +

+
static icmp v4();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__icmp/v6.html b/3party/asio/doc/asio/reference/ip__icmp/v6.html new file mode 100644 index 0000000..21d8e47 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__icmp/v6.html @@ -0,0 +1,41 @@ + + + +ip::icmp::v6 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct to represent the IPv6 ICMP + protocol. +

+
static icmp v6();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__multicast__enable_loopback.html b/3party/asio/doc/asio/reference/ip__multicast__enable_loopback.html new file mode 100644 index 0000000..167f60b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__multicast__enable_loopback.html @@ -0,0 +1,77 @@ + + + +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(my_context);
+...
+asio::ip::multicast::enable_loopback option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/ip__multicast__hops.html b/3party/asio/doc/asio/reference/ip__multicast__hops.html new file mode 100644 index 0000000..5399988 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__multicast__hops.html @@ -0,0 +1,76 @@ + + + +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(my_context);
+...
+asio::ip::multicast::hops option(4);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/ip__multicast__join_group.html b/3party/asio/doc/asio/reference/ip__multicast__join_group.html new file mode 100644 index 0000000..5a534d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__multicast__join_group.html @@ -0,0 +1,69 @@ + + + +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(my_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/3party/asio/doc/asio/reference/ip__multicast__leave_group.html b/3party/asio/doc/asio/reference/ip__multicast__leave_group.html new file mode 100644 index 0000000..4351e34 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__multicast__leave_group.html @@ -0,0 +1,69 @@ + + + +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(my_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/3party/asio/doc/asio/reference/ip__multicast__outbound_interface.html b/3party/asio/doc/asio/reference/ip__multicast__outbound_interface.html new file mode 100644 index 0000000..5c59688 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__multicast__outbound_interface.html @@ -0,0 +1,69 @@ + + + +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(my_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/3party/asio/doc/asio/reference/ip__network_v4.html b/3party/asio/doc/asio/reference/ip__network_v4.html new file mode 100644 index 0000000..d58df91 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4.html @@ -0,0 +1,327 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__network_v4/address.html b/3party/asio/doc/asio/reference/ip__network_v4/address.html new file mode 100644 index 0000000..cb20be8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/address.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/broadcast.html b/3party/asio/doc/asio/reference/ip__network_v4/broadcast.html new file mode 100644 index 0000000..d73f157 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/broadcast.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/canonical.html b/3party/asio/doc/asio/reference/ip__network_v4/canonical.html new file mode 100644 index 0000000..3db471c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/canonical.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/hosts.html b/3party/asio/doc/asio/reference/ip__network_v4/hosts.html new file mode 100644 index 0000000..30e9d07 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/hosts.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/is_host.html b/3party/asio/doc/asio/reference/ip__network_v4/is_host.html new file mode 100644 index 0000000..2ee835d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/is_host.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/is_subnet_of.html b/3party/asio/doc/asio/reference/ip__network_v4/is_subnet_of.html new file mode 100644 index 0000000..66aa305 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/is_subnet_of.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4.html b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4.html new file mode 100644 index 0000000..916edd1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4.html @@ -0,0 +1,66 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload1.html b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload1.html new file mode 100644 index 0000000..7612e8d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload2.html b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload2.html new file mode 100644 index 0000000..f875ac1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload3.html b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload3.html new file mode 100644 index 0000000..be3498e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload3.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload4.html b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload4.html new file mode 100644 index 0000000..a5b2e28 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload4.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload5.html b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload5.html new file mode 100644 index 0000000..510c4f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload5.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload6.html b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload6.html new file mode 100644 index 0000000..af44830 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload6.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/netmask.html b/3party/asio/doc/asio/reference/ip__network_v4/netmask.html new file mode 100644 index 0000000..eac093f --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/netmask.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/network.html b/3party/asio/doc/asio/reference/ip__network_v4/network.html new file mode 100644 index 0000000..6436bfc --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/network.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/network_v4.html b/3party/asio/doc/asio/reference/ip__network_v4/network_v4.html new file mode 100644 index 0000000..9b1e8ec --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/network_v4.html @@ -0,0 +1,65 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload1.html b/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload1.html new file mode 100644 index 0000000..d11945e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload1.html @@ -0,0 +1,40 @@ + + + +ip::network_v4::network_v4 (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
network_v4();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload2.html b/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload2.html new file mode 100644 index 0000000..455e5b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload3.html b/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload3.html new file mode 100644 index 0000000..80618e9 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload3.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload4.html b/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload4.html new file mode 100644 index 0000000..2eff1b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/network_v4/overload4.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/operator_eq_.html b/3party/asio/doc/asio/reference/ip__network_v4/operator_eq_.html new file mode 100644 index 0000000..b1704ac --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/operator_eq_.html @@ -0,0 +1,42 @@ + + + +ip::network_v4::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign + from another network. +

+
network_v4 & operator=(
+    const network_v4 & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__network_v4/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__network_v4/operator_eq__eq_.html new file mode 100644 index 0000000..1b47713 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__network_v4/operator_not__eq_.html new file mode 100644 index 0000000..d817c0b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/prefix_length.html b/3party/asio/doc/asio/reference/ip__network_v4/prefix_length.html new file mode 100644 index 0000000..417ce32 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/prefix_length.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/to_string.html b/3party/asio/doc/asio/reference/ip__network_v4/to_string.html new file mode 100644 index 0000000..f3d6820 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/to_string.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/to_string/overload1.html b/3party/asio/doc/asio/reference/ip__network_v4/to_string/overload1.html new file mode 100644 index 0000000..ff264bd --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/to_string/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v4/to_string/overload2.html b/3party/asio/doc/asio/reference/ip__network_v4/to_string/overload2.html new file mode 100644 index 0000000..a3d10b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v4/to_string/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6.html b/3party/asio/doc/asio/reference/ip__network_v6.html new file mode 100644 index 0000000..4512ae7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6.html @@ -0,0 +1,299 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__network_v6/address.html b/3party/asio/doc/asio/reference/ip__network_v6/address.html new file mode 100644 index 0000000..f0c6924 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/address.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/canonical.html b/3party/asio/doc/asio/reference/ip__network_v6/canonical.html new file mode 100644 index 0000000..ba03faf --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/canonical.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/hosts.html b/3party/asio/doc/asio/reference/ip__network_v6/hosts.html new file mode 100644 index 0000000..95b6c58 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/hosts.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/is_host.html b/3party/asio/doc/asio/reference/ip__network_v6/is_host.html new file mode 100644 index 0000000..a5962ee --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/is_host.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/is_subnet_of.html b/3party/asio/doc/asio/reference/ip__network_v6/is_subnet_of.html new file mode 100644 index 0000000..c6f261a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/is_subnet_of.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6.html b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6.html new file mode 100644 index 0000000..23ba694 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6.html @@ -0,0 +1,66 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload1.html b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload1.html new file mode 100644 index 0000000..fd5b3e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload2.html b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload2.html new file mode 100644 index 0000000..9fccc09 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload2.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload3.html b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload3.html new file mode 100644 index 0000000..ae71b0d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload3.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload4.html b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload4.html new file mode 100644 index 0000000..0d9ec76 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload4.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload5.html b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload5.html new file mode 100644 index 0000000..ee00c78 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload5.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload6.html b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload6.html new file mode 100644 index 0000000..6f8f2fd --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload6.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/network.html b/3party/asio/doc/asio/reference/ip__network_v6/network.html new file mode 100644 index 0000000..5442453 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/network.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/network_v6.html b/3party/asio/doc/asio/reference/ip__network_v6/network_v6.html new file mode 100644 index 0000000..015e91b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/network_v6.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload1.html b/3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload1.html new file mode 100644 index 0000000..41aae1d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload1.html @@ -0,0 +1,40 @@ + + + +ip::network_v6::network_v6 (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
network_v6();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload2.html b/3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload2.html new file mode 100644 index 0000000..7bb1b6e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload3.html b/3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload3.html new file mode 100644 index 0000000..a87c63b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/network_v6/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/operator_eq_.html b/3party/asio/doc/asio/reference/ip__network_v6/operator_eq_.html new file mode 100644 index 0000000..b609422 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/operator_eq_.html @@ -0,0 +1,42 @@ + + + +ip::network_v6::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign + from another network. +

+
network_v6 & operator=(
+    const network_v6 & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__network_v6/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__network_v6/operator_eq__eq_.html new file mode 100644 index 0000000..e0a0625 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__network_v6/operator_not__eq_.html new file mode 100644 index 0000000..ddf01bf --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/prefix_length.html b/3party/asio/doc/asio/reference/ip__network_v6/prefix_length.html new file mode 100644 index 0000000..836307b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/prefix_length.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/to_string.html b/3party/asio/doc/asio/reference/ip__network_v6/to_string.html new file mode 100644 index 0000000..5e0d0df --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/to_string.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/to_string/overload1.html b/3party/asio/doc/asio/reference/ip__network_v6/to_string/overload1.html new file mode 100644 index 0000000..119c877 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/to_string/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/ip__network_v6/to_string/overload2.html b/3party/asio/doc/asio/reference/ip__network_v6/to_string/overload2.html new file mode 100644 index 0000000..d91daf4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__network_v6/to_string/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__port_type.html b/3party/asio/doc/asio/reference/ip__port_type.html new file mode 100644 index 0000000..c3bd5f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__port_type.html @@ -0,0 +1,52 @@ + + + +ip::port_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Type used for storing port numbers. +

+
typedef uint_least16_t port_type;
+
+
+ + Requirements +
+

+ Header: asio/ip/basic_endpoint.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__resolver_base.html b/3party/asio/doc/asio/reference/ip__resolver_base.html new file mode 100644 index 0000000..2fbc4b8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_base.html @@ -0,0 +1,238 @@ + + + +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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ address_configured [static] +

+
+

+ 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 [static] +

+
+

+ If used with v4_mapped, return all matching IPv6 and IPv4 addresses. +

+
+

+ canonical_name [static] +

+
+

+ Determine the canonical name of the host specified in the query. +

+
+

+ numeric_host [static] +

+
+

+ Host name should be treated as a numeric string defining an IPv4 + or IPv6 address and no name resolution should be attempted. +

+
+

+ numeric_service [static] +

+
+

+ Service name should be treated as a numeric string defining a port + number and no name resolution should be attempted. +

+
+

+ passive [static] +

+
+

+ Indicate that returned endpoint is intended for use as a locally + bound socket endpoint. +

+
+

+ v4_mapped [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__resolver_base/_resolver_base.html b/3party/asio/doc/asio/reference/ip__resolver_base/_resolver_base.html new file mode 100644 index 0000000..a42daa5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_base/_resolver_base.html @@ -0,0 +1,41 @@ + + + +ip::resolver_base::~resolver_base + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Protected + destructor to prevent deletion through this type. +

+
~resolver_base();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__resolver_base/address_configured.html b/3party/asio/doc/asio/reference/ip__resolver_base/address_configured.html new file mode 100644 index 0000000..8dc14c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_base/address_configured.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_base/all_matching.html b/3party/asio/doc/asio/reference/ip__resolver_base/all_matching.html new file mode 100644 index 0000000..55d1ff8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_base/all_matching.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_base/canonical_name.html b/3party/asio/doc/asio/reference/ip__resolver_base/canonical_name.html new file mode 100644 index 0000000..529f8f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_base/canonical_name.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_base/flags.html b/3party/asio/doc/asio/reference/ip__resolver_base/flags.html new file mode 100644 index 0000000..c1d94c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_base/flags.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_base/numeric_host.html b/3party/asio/doc/asio/reference/ip__resolver_base/numeric_host.html new file mode 100644 index 0000000..9d6e3b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_base/numeric_host.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_base/numeric_service.html b/3party/asio/doc/asio/reference/ip__resolver_base/numeric_service.html new file mode 100644 index 0000000..29a79f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_base/numeric_service.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_base/passive.html b/3party/asio/doc/asio/reference/ip__resolver_base/passive.html new file mode 100644 index 0000000..40a13c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_base/passive.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_base/v4_mapped.html b/3party/asio/doc/asio/reference/ip__resolver_base/v4_mapped.html new file mode 100644 index 0000000..996db93 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_base/v4_mapped.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_query_base.html b/3party/asio/doc/asio/reference/ip__resolver_query_base.html new file mode 100644 index 0000000..975323a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_query_base.html @@ -0,0 +1,239 @@ + + + +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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ address_configured [static] +

+
+

+ 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 [static] +

+
+

+ If used with v4_mapped, return all matching IPv6 and IPv4 addresses. +

+
+

+ canonical_name [static] +

+
+

+ Determine the canonical name of the host specified in the query. +

+
+

+ numeric_host [static] +

+
+

+ Host name should be treated as a numeric string defining an IPv4 + or IPv6 address and no name resolution should be attempted. +

+
+

+ numeric_service [static] +

+
+

+ Service name should be treated as a numeric string defining a port + number and no name resolution should be attempted. +

+
+

+ passive [static] +

+
+

+ Indicate that returned endpoint is intended for use as a locally + bound socket endpoint. +

+
+

+ v4_mapped [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html b/3party/asio/doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html new file mode 100644 index 0000000..ba0ffef --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_query_base/address_configured.html b/3party/asio/doc/asio/reference/ip__resolver_query_base/address_configured.html new file mode 100644 index 0000000..44fe1ed --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_query_base/address_configured.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_query_base/all_matching.html b/3party/asio/doc/asio/reference/ip__resolver_query_base/all_matching.html new file mode 100644 index 0000000..fcf762d --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_query_base/all_matching.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_query_base/canonical_name.html b/3party/asio/doc/asio/reference/ip__resolver_query_base/canonical_name.html new file mode 100644 index 0000000..9911bf4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_query_base/canonical_name.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_query_base/flags.html b/3party/asio/doc/asio/reference/ip__resolver_query_base/flags.html new file mode 100644 index 0000000..7878dd8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_query_base/flags.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_query_base/numeric_host.html b/3party/asio/doc/asio/reference/ip__resolver_query_base/numeric_host.html new file mode 100644 index 0000000..e7b370c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_query_base/numeric_host.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_query_base/numeric_service.html b/3party/asio/doc/asio/reference/ip__resolver_query_base/numeric_service.html new file mode 100644 index 0000000..746b1b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_query_base/numeric_service.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_query_base/passive.html b/3party/asio/doc/asio/reference/ip__resolver_query_base/passive.html new file mode 100644 index 0000000..5067f7e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_query_base/passive.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/ip__resolver_query_base/v4_mapped.html b/3party/asio/doc/asio/reference/ip__resolver_query_base/v4_mapped.html new file mode 100644 index 0000000..05509f2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__resolver_query_base/v4_mapped.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ip__scope_id_type.html b/3party/asio/doc/asio/reference/ip__scope_id_type.html new file mode 100644 index 0000000..23f5e3b --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__scope_id_type.html @@ -0,0 +1,52 @@ + + + +ip::scope_id_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Type used for storing IPv6 scope IDs. +

+
typedef uint_least32_t scope_id_type;
+
+
+ + Requirements +
+

+ Header: asio/ip/address_v6.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__tcp.html b/3party/asio/doc/asio/reference/ip__tcp.html new file mode 100644 index 0000000..1fd4fba --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp.html @@ -0,0 +1,298 @@ + + + +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 + [static] +

+
+

+ Construct to represent the IPv4 TCP protocol. +

+
+

+ v6 + [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__tcp/acceptor.html b/3party/asio/doc/asio/reference/ip__tcp/acceptor.html new file mode 100644 index 0000000..6a86b1a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/acceptor.html @@ -0,0 +1,781 @@ + + + +ip::tcp::acceptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The TCP acceptor type. +

+
typedef basic_socket_acceptor< tcp > acceptor;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the acceptor type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the acceptor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous accept operations + are thread safe, if the underlying operating system calls are also thread + safe. This means that it is permitted to perform concurrent calls to synchronous + accept operations on a + single socket object. Other synchronous operations, such as open or close, + are not thread safe. +

+
+ + Example +
+

+ Opening a socket acceptor with the SO_REUSEADDR option enabled: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/ip__tcp/endpoint.html b/3party/asio/doc/asio/reference/ip__tcp/endpoint.html new file mode 100644 index 0000000..abbf819 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/endpoint.html @@ -0,0 +1,392 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__tcp/family.html b/3party/asio/doc/asio/reference/ip__tcp/family.html new file mode 100644 index 0000000..ee99d97 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/family.html @@ -0,0 +1,41 @@ + + + +ip::tcp::family + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an identifier for the + protocol family. +

+
int family() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__tcp/iostream.html b/3party/asio/doc/asio/reference/ip__tcp/iostream.html new file mode 100644 index 0000000..bb56767 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/iostream.html @@ -0,0 +1,324 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__tcp/no_delay.html b/3party/asio/doc/asio/reference/ip__tcp/no_delay.html new file mode 100644 index 0000000..1d9ec99 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/no_delay.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::ip::tcp::no_delay option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/ip__tcp/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__tcp/operator_eq__eq_.html new file mode 100644 index 0000000..f152fc1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__tcp/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__tcp/operator_not__eq_.html new file mode 100644 index 0000000..c92da97 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__tcp/protocol.html b/3party/asio/doc/asio/reference/ip__tcp/protocol.html new file mode 100644 index 0000000..fd8a141 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/protocol.html @@ -0,0 +1,41 @@ + + + +ip::tcp::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an identifier for + the protocol. +

+
int protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__tcp/resolver.html b/3party/asio/doc/asio/reference/ip__tcp/resolver.html new file mode 100644 index 0000000..dbb65e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/resolver.html @@ -0,0 +1,418 @@ + + + +ip::tcp::resolver + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The TCP resolver type. +

+
typedef basic_resolver< tcp > resolver;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the resolver type to another executor. +

+
+

+ 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] +

+
+

+ Construct with executor.

Construct with execution + context.

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

+
+

+ 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 [destructor] +

+
+

+ Destroys the resolver. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ address_configured [static] +

+
+

+ 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 [static] +

+
+

+ If used with v4_mapped, return all matching IPv6 and IPv4 addresses. +

+
+

+ canonical_name [static] +

+
+

+ Determine the canonical name of the host specified in the query. +

+
+

+ numeric_host [static] +

+
+

+ Host name should be treated as a numeric string defining an IPv4 + or IPv6 address and no name resolution should be attempted. +

+
+

+ numeric_service [static] +

+
+

+ Service name should be treated as a numeric string defining a + port number and no name resolution should be attempted. +

+
+

+ passive [static] +

+
+

+ Indicate that returned endpoint is intended for use as a locally + bound socket endpoint. +

+
+

+ v4_mapped [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__tcp/socket.html b/3party/asio/doc/asio/reference/ip__tcp/socket.html new file mode 100644 index 0000000..ae6c51c --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/socket.html @@ -0,0 +1,926 @@ + + + +ip::tcp::socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The TCP socket type. +

+
typedef basic_stream_socket< tcp > socket;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, receive, connect, + and shutdown operations + are thread safe with respect to each other, if the underlying operating + system calls are also thread safe. This means that it is permitted to perform + concurrent calls to these synchronous operations on a single socket object. + Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/ip/tcp.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__tcp/type.html b/3party/asio/doc/asio/reference/ip__tcp/type.html new file mode 100644 index 0000000..20f788e --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/type.html @@ -0,0 +1,41 @@ + + + +ip::tcp::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an identifier for the type + of the protocol. +

+
int type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__tcp/v4.html b/3party/asio/doc/asio/reference/ip__tcp/v4.html new file mode 100644 index 0000000..036c7d7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/v4.html @@ -0,0 +1,40 @@ + + + +ip::tcp::v4 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct to represent the IPv4 TCP protocol. +

+
static tcp v4();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__tcp/v6.html b/3party/asio/doc/asio/reference/ip__tcp/v6.html new file mode 100644 index 0000000..827f1b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__tcp/v6.html @@ -0,0 +1,40 @@ + + + +ip::tcp::v6 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct to represent the IPv6 TCP protocol. +

+
static tcp v6();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__udp.html b/3party/asio/doc/asio/reference/ip__udp.html new file mode 100644 index 0000000..989dab3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__udp.html @@ -0,0 +1,262 @@ + + + +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 + [static] +

+
+

+ Construct to represent the IPv4 UDP protocol. +

+
+

+ v6 + [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__udp/endpoint.html b/3party/asio/doc/asio/reference/ip__udp/endpoint.html new file mode 100644 index 0000000..2abeac5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__udp/endpoint.html @@ -0,0 +1,392 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__udp/family.html b/3party/asio/doc/asio/reference/ip__udp/family.html new file mode 100644 index 0000000..b7b1e66 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__udp/family.html @@ -0,0 +1,41 @@ + + + +ip::udp::family + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an identifier for the + protocol family. +

+
int family() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__udp/operator_eq__eq_.html b/3party/asio/doc/asio/reference/ip__udp/operator_eq__eq_.html new file mode 100644 index 0000000..a9e4e6a --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__udp/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__udp/operator_not__eq_.html b/3party/asio/doc/asio/reference/ip__udp/operator_not__eq_.html new file mode 100644 index 0000000..8d059a9 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__udp/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ip__udp/protocol.html b/3party/asio/doc/asio/reference/ip__udp/protocol.html new file mode 100644 index 0000000..8085ba0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__udp/protocol.html @@ -0,0 +1,41 @@ + + + +ip::udp::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an identifier for + the protocol. +

+
int protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__udp/resolver.html b/3party/asio/doc/asio/reference/ip__udp/resolver.html new file mode 100644 index 0000000..cc0b4bd --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__udp/resolver.html @@ -0,0 +1,418 @@ + + + +ip::udp::resolver + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The UDP resolver type. +

+
typedef basic_resolver< udp > resolver;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the resolver type to another executor. +

+
+

+ 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] +

+
+

+ Construct with executor.

Construct with execution + context.

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

+
+

+ 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 [destructor] +

+
+

+ Destroys the resolver. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ address_configured [static] +

+
+

+ 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 [static] +

+
+

+ If used with v4_mapped, return all matching IPv6 and IPv4 addresses. +

+
+

+ canonical_name [static] +

+
+

+ Determine the canonical name of the host specified in the query. +

+
+

+ numeric_host [static] +

+
+

+ Host name should be treated as a numeric string defining an IPv4 + or IPv6 address and no name resolution should be attempted. +

+
+

+ numeric_service [static] +

+
+

+ Service name should be treated as a numeric string defining a + port number and no name resolution should be attempted. +

+
+

+ passive [static] +

+
+

+ Indicate that returned endpoint is intended for use as a locally + bound socket endpoint. +

+
+

+ v4_mapped [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ip__udp/socket.html b/3party/asio/doc/asio/reference/ip__udp/socket.html new file mode 100644 index 0000000..9b81811 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__udp/socket.html @@ -0,0 +1,924 @@ + + + +ip::udp::socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The UDP socket type. +

+
typedef basic_datagram_socket< udp > socket;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, send_to, receive, + receive_from, connect, and shutdown + operations are thread safe with respect to each other, if the underlying + operating system calls are also thread safe. This means that it is permitted + to perform concurrent calls to these synchronous operations on a single + socket object. Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/ip/udp.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__udp/type.html b/3party/asio/doc/asio/reference/ip__udp/type.html new file mode 100644 index 0000000..b1229dd --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__udp/type.html @@ -0,0 +1,41 @@ + + + +ip::udp::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain an identifier for the type + of the protocol. +

+
int type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__udp/v4.html b/3party/asio/doc/asio/reference/ip__udp/v4.html new file mode 100644 index 0000000..582f6dc --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__udp/v4.html @@ -0,0 +1,40 @@ + + + +ip::udp::v4 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct to represent the IPv4 UDP protocol. +

+
static udp v4();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__udp/v6.html b/3party/asio/doc/asio/reference/ip__udp/v6.html new file mode 100644 index 0000000..4660582 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__udp/v6.html @@ -0,0 +1,40 @@ + + + +ip::udp::v6 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct to represent the IPv6 UDP protocol. +

+
static udp v6();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ip__unicast__hops.html b/3party/asio/doc/asio/reference/ip__unicast__hops.html new file mode 100644 index 0000000..1b243da --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__unicast__hops.html @@ -0,0 +1,76 @@ + + + +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(my_context);
+...
+asio::ip::unicast::hops option(4);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/ip__v4_mapped_t.html b/3party/asio/doc/asio/reference/ip__v4_mapped_t.html new file mode 100644 index 0000000..1c0dd57 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__v4_mapped_t.html @@ -0,0 +1,67 @@ + + + +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/3party/asio/doc/asio/reference/ip__v6_only.html b/3party/asio/doc/asio/reference/ip__v6_only.html new file mode 100644 index 0000000..cef85a1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ip__v6_only.html @@ -0,0 +1,77 @@ + + + +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/IPV6_V6ONLY socket option. +

+
+ + Examples +
+

+ Setting the option: +

+
asio::ip::tcp::socket socket(my_context);
+...
+asio::ip::v6_only option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/is_applicable_property.html b/3party/asio/doc/asio/reference/is_applicable_property.html new file mode 100644 index 0000000..857941d --- /dev/null +++ b/3party/asio/doc/asio/reference/is_applicable_property.html @@ -0,0 +1,53 @@ + + + +is_applicable_property + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
template<
+    typename T,
+    typename Property,
+    typename  = void>
+struct is_applicable_property
+
+
+ + Requirements +
+

+ Header: asio/is_applicable_property.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/is_async_operation.html b/3party/asio/doc/asio/reference/is_async_operation.html new file mode 100644 index 0000000..d6bca3d --- /dev/null +++ b/3party/asio/doc/asio/reference/is_async_operation.html @@ -0,0 +1,66 @@ + + + +is_async_operation + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The is_async_operation + trait detects whether a type T + and arguments Args... may + be used to initiate an asynchronous operation. +

+
template<
+    typename T,
+    typename... Args>
+struct is_async_operation
+
+

+ Class template is_async_operation + is a trait is derived from true_type + if the expression T(Args..., token) + initiates an asynchronous operation, where token + is an unspecified completion token type. Otherwise, is_async_operation + is derived from false_type. +

+
+ + Requirements +
+

+ Header: asio/async_result.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/is_const_buffer_sequence.html b/3party/asio/doc/asio/reference/is_const_buffer_sequence.html new file mode 100644 index 0000000..1a5fee0 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_const_buffer_sequence.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/is_contiguous_iterator.html b/3party/asio/doc/asio/reference/is_contiguous_iterator.html new file mode 100644 index 0000000..533d068 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_contiguous_iterator.html @@ -0,0 +1,56 @@ + + + +is_contiguous_iterator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The is_contiguous_iterator + class is a traits class that may be used to determine whether a type is a + contiguous iterator. +

+
template<
+    typename T>
+struct is_contiguous_iterator
+
+
+ + Requirements +
+

+ Header: asio/is_contiguous_iterator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/is_deferred.html b/3party/asio/doc/asio/reference/is_deferred.html new file mode 100644 index 0000000..044dfb4 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_deferred.html @@ -0,0 +1,55 @@ + + + +is_deferred + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Trait for detecting objects that are usable as deferred operations. +

+
template<
+    typename T>
+struct is_deferred :
+  public false_type
+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/is_dynamic_buffer.html b/3party/asio/doc/asio/reference/is_dynamic_buffer.html new file mode 100644 index 0000000..5244dc1 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_dynamic_buffer.html @@ -0,0 +1,60 @@ + + + +is_dynamic_buffer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Trait to determine whether a type satisfies the DynamicBuffer requirements. +

+
template<
+    typename T>
+struct is_dynamic_buffer
+
+

+ If ASIO_NO_DYNAMIC_BUFFER_V1 + is not defined, determines whether the type satisfies the DynamicBuffer_v1 + requirements. Otherwise, if ASIO_NO_DYNAMIC_BUFFER_V1 + is defined, determines whether the type satisfies the DynamicBuffer_v2 requirements. +

+
+ + Requirements +
+

+ Header: asio/buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/is_dynamic_buffer_v1.html b/3party/asio/doc/asio/reference/is_dynamic_buffer_v1.html new file mode 100644 index 0000000..6a4329e --- /dev/null +++ b/3party/asio/doc/asio/reference/is_dynamic_buffer_v1.html @@ -0,0 +1,54 @@ + + + +is_dynamic_buffer_v1 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Trait to determine whether a type satisfies the DynamicBuffer_v1 requirements. +

+
template<
+    typename T>
+struct is_dynamic_buffer_v1
+
+
+ + Requirements +
+

+ Header: asio/buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/is_dynamic_buffer_v2.html b/3party/asio/doc/asio/reference/is_dynamic_buffer_v2.html new file mode 100644 index 0000000..c5a890c --- /dev/null +++ b/3party/asio/doc/asio/reference/is_dynamic_buffer_v2.html @@ -0,0 +1,54 @@ + + + +is_dynamic_buffer_v2 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Trait to determine whether a type satisfies the DynamicBuffer_v2 requirements. +

+
template<
+    typename T>
+struct is_dynamic_buffer_v2
+
+
+ + Requirements +
+

+ Header: asio/buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/is_endpoint_sequence.html b/3party/asio/doc/asio/reference/is_endpoint_sequence.html new file mode 100644 index 0000000..86504fb --- /dev/null +++ b/3party/asio/doc/asio/reference/is_endpoint_sequence.html @@ -0,0 +1,92 @@ + + + +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 [static] +

+
+

+ 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/3party/asio/doc/asio/reference/is_endpoint_sequence/value.html b/3party/asio/doc/asio/reference/is_endpoint_sequence/value.html new file mode 100644 index 0000000..cb692f0 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_endpoint_sequence/value.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/is_executor.html b/3party/asio/doc/asio/reference/is_executor.html new file mode 100644 index 0000000..22f4dae --- /dev/null +++ b/3party/asio/doc/asio/reference/is_executor.html @@ -0,0 +1,61 @@ + + + +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/3party/asio/doc/asio/reference/is_match_condition.html b/3party/asio/doc/asio/reference/is_match_condition.html new file mode 100644 index 0000000..86e6940 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_match_condition.html @@ -0,0 +1,90 @@ + + + +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 [static] +

+
+

+ 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/3party/asio/doc/asio/reference/is_match_condition/value.html b/3party/asio/doc/asio/reference/is_match_condition/value.html new file mode 100644 index 0000000..a9988e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_match_condition/value.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/is_mutable_buffer_sequence.html b/3party/asio/doc/asio/reference/is_mutable_buffer_sequence.html new file mode 100644 index 0000000..8aed017 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_mutable_buffer_sequence.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/is_nothrow_prefer.html b/3party/asio/doc/asio/reference/is_nothrow_prefer.html new file mode 100644 index 0000000..1af5f90 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_nothrow_prefer.html @@ -0,0 +1,63 @@ + + + +is_nothrow_prefer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a prefer + expression will not throw. +

+
template<
+    typename T,
+    typename... Properties>
+struct is_nothrow_prefer
+
+

+ Class template is_nothrow_prefer + is a trait that is derived from true_type + if the expression asio::prefer(std::declval<T>(), + std::declval<Properties>()...) + is noexcept; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/prefer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/is_nothrow_query.html b/3party/asio/doc/asio/reference/is_nothrow_query.html new file mode 100644 index 0000000..89e8b64 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_nothrow_query.html @@ -0,0 +1,63 @@ + + + +is_nothrow_query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a query + expression will not throw. +

+
template<
+    typename T,
+    typename Property>
+struct is_nothrow_query
+
+

+ Class template is_nothrow_query + is a trait that is derived from true_type + if the expression asio::query(std::declval<T>(), + std::declval<Property>()) + is noexcept; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/query.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/is_nothrow_require.html b/3party/asio/doc/asio/reference/is_nothrow_require.html new file mode 100644 index 0000000..1587a5b --- /dev/null +++ b/3party/asio/doc/asio/reference/is_nothrow_require.html @@ -0,0 +1,63 @@ + + + +is_nothrow_require + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a require + expression will not throw. +

+
template<
+    typename T,
+    typename... Properties>
+struct is_nothrow_require
+
+

+ Class template is_nothrow_require + is a trait that is derived from true_type + if the expression asio::require(std::declval<T>(), + std::declval<Properties>()...) + is noexcept; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/require.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/is_nothrow_require_concept.html b/3party/asio/doc/asio/reference/is_nothrow_require_concept.html new file mode 100644 index 0000000..9245387 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_nothrow_require_concept.html @@ -0,0 +1,63 @@ + + + +is_nothrow_require_concept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines whether a require_concept + expression will not throw. +

+
template<
+    typename T,
+    typename Property>
+struct is_nothrow_require_concept
+
+

+ Class template is_nothrow_require_concept + is a trait that is derived from true_type + if the expression asio::require_concept(std::declval<T>(), + std::declval<Property>()) + is noexcept; otherwise false_type. +

+
+ + Requirements +
+

+ Header: asio/require_concept.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/is_read_buffered.html b/3party/asio/doc/asio/reference/is_read_buffered.html new file mode 100644 index 0000000..da7808a --- /dev/null +++ b/3party/asio/doc/asio/reference/is_read_buffered.html @@ -0,0 +1,92 @@ + + + +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 [static] +

+
+

+ 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/3party/asio/doc/asio/reference/is_read_buffered/value.html b/3party/asio/doc/asio/reference/is_read_buffered/value.html new file mode 100644 index 0000000..9e4c01d --- /dev/null +++ b/3party/asio/doc/asio/reference/is_read_buffered/value.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/is_write_buffered.html b/3party/asio/doc/asio/reference/is_write_buffered.html new file mode 100644 index 0000000..3fd61f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_write_buffered.html @@ -0,0 +1,92 @@ + + + +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 [static] +

+
+

+ 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/3party/asio/doc/asio/reference/is_write_buffered/value.html b/3party/asio/doc/asio/reference/is_write_buffered/value.html new file mode 100644 index 0000000..bb0ecf5 --- /dev/null +++ b/3party/asio/doc/asio/reference/is_write_buffered/value.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint.html b/3party/asio/doc/asio/reference/local__basic_endpoint.html new file mode 100644 index 0000000..3094cf7 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint.html @@ -0,0 +1,372 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint.html b/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint.html new file mode 100644 index 0000000..c58462c --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint.html @@ -0,0 +1,60 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload1.html b/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload1.html new file mode 100644 index 0000000..c62b56b --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload1.html @@ -0,0 +1,40 @@ + + + +local::basic_endpoint::basic_endpoint (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
basic_endpoint();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload2.html b/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload2.html new file mode 100644 index 0000000..45870f1 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload3.html b/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload3.html new file mode 100644 index 0000000..2724f91 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload4.html b/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload4.html new file mode 100644 index 0000000..92abacc --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload4.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/capacity.html b/3party/asio/doc/asio/reference/local__basic_endpoint/capacity.html new file mode 100644 index 0000000..0893e8e --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/capacity.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/data.html b/3party/asio/doc/asio/reference/local__basic_endpoint/data.html new file mode 100644 index 0000000..9d8060b --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/data.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/data/overload1.html b/3party/asio/doc/asio/reference/local__basic_endpoint/data/overload1.html new file mode 100644 index 0000000..e69ac09 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/data/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/data/overload2.html b/3party/asio/doc/asio/reference/local__basic_endpoint/data/overload2.html new file mode 100644 index 0000000..00262aa --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/data/overload2.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/data_type.html b/3party/asio/doc/asio/reference/local__basic_endpoint/data_type.html new file mode 100644 index 0000000..2afa48e --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/data_type.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/operator_eq_.html b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_eq_.html new file mode 100644 index 0000000..2d7b229 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_eq_.html @@ -0,0 +1,42 @@ + + + +local::basic_endpoint::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assign + from another endpoint. +

+
basic_endpoint & operator=(
+    const basic_endpoint & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__basic_endpoint/operator_eq__eq_.html b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_eq__eq_.html new file mode 100644 index 0000000..d497af3 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/operator_gt_.html b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_gt_.html new file mode 100644 index 0000000..2114b78 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_gt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/operator_gt__eq_.html b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_gt__eq_.html new file mode 100644 index 0000000..298ccab --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_gt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt_.html b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt_.html new file mode 100644 index 0000000..22ebb15 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt__eq_.html b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt__eq_.html new file mode 100644 index 0000000..bb30be5 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt__lt_.html b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt__lt_.html new file mode 100644 index 0000000..bdeb928 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_lt__lt_.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/operator_not__eq_.html b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_not__eq_.html new file mode 100644 index 0000000..605453d --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/path.html b/3party/asio/doc/asio/reference/local__basic_endpoint/path.html new file mode 100644 index 0000000..64c73b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/path.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/path/overload1.html b/3party/asio/doc/asio/reference/local__basic_endpoint/path/overload1.html new file mode 100644 index 0000000..0417ab8 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/path/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/path/overload2.html b/3party/asio/doc/asio/reference/local__basic_endpoint/path/overload2.html new file mode 100644 index 0000000..8e44854 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/path/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/path/overload3.html b/3party/asio/doc/asio/reference/local__basic_endpoint/path/overload3.html new file mode 100644 index 0000000..ce17f51 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/path/overload3.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/protocol.html b/3party/asio/doc/asio/reference/local__basic_endpoint/protocol.html new file mode 100644 index 0000000..4055dd7 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/protocol.html @@ -0,0 +1,41 @@ + + + +local::basic_endpoint::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + protocol associated with the endpoint. +

+
protocol_type protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__basic_endpoint/protocol_type.html b/3party/asio/doc/asio/reference/local__basic_endpoint/protocol_type.html new file mode 100644 index 0000000..09d7fa5 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/protocol_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/resize.html b/3party/asio/doc/asio/reference/local__basic_endpoint/resize.html new file mode 100644 index 0000000..82cc457 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/resize.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/local__basic_endpoint/size.html b/3party/asio/doc/asio/reference/local__basic_endpoint/size.html new file mode 100644 index 0000000..203f9dc --- /dev/null +++ b/3party/asio/doc/asio/reference/local__basic_endpoint/size.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/local__connect_pair.html b/3party/asio/doc/asio/reference/local__connect_pair.html new file mode 100644 index 0000000..00ebce2 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__connect_pair.html @@ -0,0 +1,69 @@ + + + +local::connect_pair + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Create a pair of connected sockets. +

+
template<
+    typename Protocol,
+    typename Executor1,
+    typename Executor2>
+void connect_pair(
+    basic_socket< Protocol, Executor1 > & socket1,
+    basic_socket< Protocol, Executor2 > & socket2);
+  » more...
+
+template<
+    typename Protocol,
+    typename Executor1,
+    typename Executor2>
+void connect_pair(
+    basic_socket< Protocol, Executor1 > & socket1,
+    basic_socket< Protocol, Executor2 > & socket2,
+    asio::error_code & ec);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/local/connect_pair.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__connect_pair/overload1.html b/3party/asio/doc/asio/reference/local__connect_pair/overload1.html new file mode 100644 index 0000000..b1aa868 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__connect_pair/overload1.html @@ -0,0 +1,46 @@ + + + +local::connect_pair (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a pair of connected sockets. +

+
template<
+    typename Protocol,
+    typename Executor1,
+    typename Executor2>
+void connect_pair(
+    basic_socket< Protocol, Executor1 > & socket1,
+    basic_socket< Protocol, Executor2 > & socket2);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__connect_pair/overload2.html b/3party/asio/doc/asio/reference/local__connect_pair/overload2.html new file mode 100644 index 0000000..c86c080 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__connect_pair/overload2.html @@ -0,0 +1,47 @@ + + + +local::connect_pair (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a pair of connected sockets. +

+
template<
+    typename Protocol,
+    typename Executor1,
+    typename Executor2>
+void connect_pair(
+    basic_socket< Protocol, Executor1 > & socket1,
+    basic_socket< Protocol, Executor2 > & socket2,
+    asio::error_code & ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__datagram_protocol.html b/3party/asio/doc/asio/reference/local__datagram_protocol.html new file mode 100644 index 0000000..8b4b77e --- /dev/null +++ b/3party/asio/doc/asio/reference/local__datagram_protocol.html @@ -0,0 +1,175 @@ + + + +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/3party/asio/doc/asio/reference/local__datagram_protocol/endpoint.html b/3party/asio/doc/asio/reference/local__datagram_protocol/endpoint.html new file mode 100644 index 0000000..e2131a6 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__datagram_protocol/endpoint.html @@ -0,0 +1,369 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/local__datagram_protocol/family.html b/3party/asio/doc/asio/reference/local__datagram_protocol/family.html new file mode 100644 index 0000000..59722fc --- /dev/null +++ b/3party/asio/doc/asio/reference/local__datagram_protocol/family.html @@ -0,0 +1,41 @@ + + + +local::datagram_protocol::family + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol family. +

+
int family() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__datagram_protocol/protocol.html b/3party/asio/doc/asio/reference/local__datagram_protocol/protocol.html new file mode 100644 index 0000000..286b2fa --- /dev/null +++ b/3party/asio/doc/asio/reference/local__datagram_protocol/protocol.html @@ -0,0 +1,41 @@ + + + +local::datagram_protocol::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol. +

+
int protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__datagram_protocol/socket.html b/3party/asio/doc/asio/reference/local__datagram_protocol/socket.html new file mode 100644 index 0000000..7f0b129 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__datagram_protocol/socket.html @@ -0,0 +1,925 @@ + + + +local::datagram_protocol::socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + UNIX domain socket type. +

+
typedef basic_datagram_socket< datagram_protocol > socket;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, send_to, receive, + receive_from, connect, and shutdown + operations are thread safe with respect to each other, if the underlying + operating system calls are also thread safe. This means that it is permitted + to perform concurrent calls to these synchronous operations on a single + socket object. Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/local/datagram_protocol.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__datagram_protocol/type.html b/3party/asio/doc/asio/reference/local__datagram_protocol/type.html new file mode 100644 index 0000000..d981f87 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__datagram_protocol/type.html @@ -0,0 +1,41 @@ + + + +local::datagram_protocol::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the type of the protocol. +

+
int type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__seq_packet_protocol.html b/3party/asio/doc/asio/reference/local__seq_packet_protocol.html new file mode 100644 index 0000000..4d6b1e8 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__seq_packet_protocol.html @@ -0,0 +1,188 @@ + + + +local::seq_packet_protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Encapsulates the flags needed for seq_packet UNIX sockets. +

+
class seq_packet_protocol
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ acceptor +

+
+

+ The UNIX domain acceptor type. +

+
+

+ 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::seq_packet_protocol class contains + flags necessary for sequenced packet UNIX domain sockets. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Safe. +

+
+ + Requirements +
+

+ Header: asio/local/seq_packet_protocol.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__seq_packet_protocol/acceptor.html b/3party/asio/doc/asio/reference/local__seq_packet_protocol/acceptor.html new file mode 100644 index 0000000..268472d --- /dev/null +++ b/3party/asio/doc/asio/reference/local__seq_packet_protocol/acceptor.html @@ -0,0 +1,782 @@ + + + +local::seq_packet_protocol::acceptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + UNIX domain acceptor type. +

+
typedef basic_socket_acceptor< seq_packet_protocol > acceptor;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the acceptor type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the acceptor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous accept operations + are thread safe, if the underlying operating system calls are also thread + safe. This means that it is permitted to perform concurrent calls to synchronous + accept operations on a + single socket object. Other synchronous operations, such as open or close, + are not thread safe. +

+
+ + Example +
+

+ Opening a socket acceptor with the SO_REUSEADDR option enabled: +

+
asio::ip::tcp::acceptor acceptor(my_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/seq_packet_protocol.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__seq_packet_protocol/endpoint.html b/3party/asio/doc/asio/reference/local__seq_packet_protocol/endpoint.html new file mode 100644 index 0000000..b30bd28 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__seq_packet_protocol/endpoint.html @@ -0,0 +1,369 @@ + + + +local::seq_packet_protocol::endpoint + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of a UNIX domain 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 [constructor] +

+
+

+ 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/seq_packet_protocol.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__seq_packet_protocol/family.html b/3party/asio/doc/asio/reference/local__seq_packet_protocol/family.html new file mode 100644 index 0000000..f02610c --- /dev/null +++ b/3party/asio/doc/asio/reference/local__seq_packet_protocol/family.html @@ -0,0 +1,41 @@ + + + +local::seq_packet_protocol::family + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol family. +

+
int family() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__seq_packet_protocol/protocol.html b/3party/asio/doc/asio/reference/local__seq_packet_protocol/protocol.html new file mode 100644 index 0000000..10a2476 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__seq_packet_protocol/protocol.html @@ -0,0 +1,41 @@ + + + +local::seq_packet_protocol::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol. +

+
int protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__seq_packet_protocol/socket.html b/3party/asio/doc/asio/reference/local__seq_packet_protocol/socket.html new file mode 100644 index 0000000..bc7f39d --- /dev/null +++ b/3party/asio/doc/asio/reference/local__seq_packet_protocol/socket.html @@ -0,0 +1,878 @@ + + + +local::seq_packet_protocol::socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + UNIX domain socket type. +

+
typedef basic_seq_packet_socket< seq_packet_protocol > socket;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, receive, connect, + and shutdown operations + are thread safe with respect to each other, if the underlying operating + system calls are also thread safe. This means that it is permitted to perform + concurrent calls to these synchronous operations on a single socket object. + Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/local/seq_packet_protocol.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__seq_packet_protocol/type.html b/3party/asio/doc/asio/reference/local__seq_packet_protocol/type.html new file mode 100644 index 0000000..4c87f55 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__seq_packet_protocol/type.html @@ -0,0 +1,41 @@ + + + +local::seq_packet_protocol::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the type of the protocol. +

+
int type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__stream_protocol.html b/3party/asio/doc/asio/reference/local__stream_protocol.html new file mode 100644 index 0000000..ef721d0 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__stream_protocol.html @@ -0,0 +1,199 @@ + + + +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/3party/asio/doc/asio/reference/local__stream_protocol/acceptor.html b/3party/asio/doc/asio/reference/local__stream_protocol/acceptor.html new file mode 100644 index 0000000..53087d1 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__stream_protocol/acceptor.html @@ -0,0 +1,782 @@ + + + +local::stream_protocol::acceptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + UNIX domain acceptor type. +

+
typedef basic_socket_acceptor< stream_protocol > acceptor;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the acceptor type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the acceptor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous accept operations + are thread safe, if the underlying operating system calls are also thread + safe. This means that it is permitted to perform concurrent calls to synchronous + accept operations on a + single socket object. Other synchronous operations, such as open or close, + are not thread safe. +

+
+ + Example +
+

+ Opening a socket acceptor with the SO_REUSEADDR option enabled: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/local__stream_protocol/endpoint.html b/3party/asio/doc/asio/reference/local__stream_protocol/endpoint.html new file mode 100644 index 0000000..850cddf --- /dev/null +++ b/3party/asio/doc/asio/reference/local__stream_protocol/endpoint.html @@ -0,0 +1,369 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/local__stream_protocol/family.html b/3party/asio/doc/asio/reference/local__stream_protocol/family.html new file mode 100644 index 0000000..d0d68c8 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__stream_protocol/family.html @@ -0,0 +1,41 @@ + + + +local::stream_protocol::family + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol family. +

+
int family() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__stream_protocol/iostream.html b/3party/asio/doc/asio/reference/local__stream_protocol/iostream.html new file mode 100644 index 0000000..6e9ffb7 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__stream_protocol/iostream.html @@ -0,0 +1,325 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/local__stream_protocol/protocol.html b/3party/asio/doc/asio/reference/local__stream_protocol/protocol.html new file mode 100644 index 0000000..b3b6746 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__stream_protocol/protocol.html @@ -0,0 +1,41 @@ + + + +local::stream_protocol::protocol + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the protocol. +

+
int protocol() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__stream_protocol/socket.html b/3party/asio/doc/asio/reference/local__stream_protocol/socket.html new file mode 100644 index 0000000..4342379 --- /dev/null +++ b/3party/asio/doc/asio/reference/local__stream_protocol/socket.html @@ -0,0 +1,927 @@ + + + +local::stream_protocol::socket + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + UNIX domain socket type. +

+
typedef basic_stream_socket< stream_protocol > socket;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the socket type to another executor. +

+
+

+ 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 [constructor] +

+
+

+ 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_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 [destructor] +

+
+

+ Destroys the socket. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length + of the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

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

+

+ Synchronous send, receive, connect, + and shutdown operations + are thread safe with respect to each other, if the underlying operating + system calls are also thread safe. This means that it is permitted to perform + concurrent calls to these synchronous operations on a single socket object. + Other synchronous operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/local/stream_protocol.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/local__stream_protocol/type.html b/3party/asio/doc/asio/reference/local__stream_protocol/type.html new file mode 100644 index 0000000..1611e1b --- /dev/null +++ b/3party/asio/doc/asio/reference/local__stream_protocol/type.html @@ -0,0 +1,41 @@ + + + +local::stream_protocol::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an identifier for the type of the protocol. +

+
int type() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/make_strand.html b/3party/asio/doc/asio/reference/make_strand.html new file mode 100644 index 0000000..c6f2655 --- /dev/null +++ b/3party/asio/doc/asio/reference/make_strand.html @@ -0,0 +1,73 @@ + + + +make_strand + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The asio::make_strand function creates a strand object for an executor or + execution context. +

+

+ Create a strand + object for an executor. +

+
template<
+    typename Executor>
+strand< Executor > make_strand(
+    const Executor & ex,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+

+ Create a strand + object for an execution context. +

+
template<
+    typename ExecutionContext>
+strand< typename ExecutionContext::executor_type > make_strand(
+    ExecutionContext & ctx,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/strand.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/make_strand/overload1.html b/3party/asio/doc/asio/reference/make_strand/overload1.html new file mode 100644 index 0000000..a289695 --- /dev/null +++ b/3party/asio/doc/asio/reference/make_strand/overload1.html @@ -0,0 +1,66 @@ + + + +make_strand (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a strand + object for an executor. +

+
template<
+    typename Executor>
+strand< Executor > make_strand(
+    const Executor & ex,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ex
+

+ An executor. +

+
+
+
+ + Return + Value +
+

+ A strand constructed with the specified executor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/make_strand/overload2.html b/3party/asio/doc/asio/reference/make_strand/overload2.html new file mode 100644 index 0000000..a7c7db4 --- /dev/null +++ b/3party/asio/doc/asio/reference/make_strand/overload2.html @@ -0,0 +1,67 @@ + + + +make_strand (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a strand + object for an execution context. +

+
template<
+    typename ExecutionContext>
+strand< typename ExecutionContext::executor_type > make_strand(
+    ExecutionContext & ctx,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ctx
+

+ An execution context, from which an executor will be obtained. +

+
+
+
+ + Return + Value +
+

+ A strand constructed with the execution context's executor, obtained by + performing ctx.get_executor(). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/make_work_guard.html b/3party/asio/doc/asio/reference/make_work_guard.html new file mode 100644 index 0000000..9ab07e0 --- /dev/null +++ b/3party/asio/doc/asio/reference/make_work_guard.html @@ -0,0 +1,91 @@ + + + +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 constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext>
+executor_work_guard< typename ExecutionContext::executor_type > make_work_guard(
+    ExecutionContext & ctx,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+template<
+    typename T>
+executor_work_guard< typename constraint< !is_executor< T >::value &&!execution::is_executor< T >::value &&!is_convertible< T &, execution_context & >::value, associated_executor< T > >::type::type > make_work_guard(
+    const T & t);
+  » 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 constraint< is_executor< Executor >::value||execution::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 constraint< !is_executor< T >::value >::type  = 0,
+    typename constraint< !execution::is_executor< T >::value >::type  = 0,
+    typename constraint< !is_convertible< T &, execution_context & >::value >::type  = 0,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/executor_work_guard.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/make_work_guard/overload1.html b/3party/asio/doc/asio/reference/make_work_guard/overload1.html new file mode 100644 index 0000000..848323d --- /dev/null +++ b/3party/asio/doc/asio/reference/make_work_guard/overload1.html @@ -0,0 +1,65 @@ + + + +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 constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ex
+

+ An executor. +

+
+
+
+ + Return + Value +
+

+ A work guard constructed with the specified executor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/make_work_guard/overload2.html b/3party/asio/doc/asio/reference/make_work_guard/overload2.html new file mode 100644 index 0000000..eecb403 --- /dev/null +++ b/3party/asio/doc/asio/reference/make_work_guard/overload2.html @@ -0,0 +1,66 @@ + + + +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 constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ctx
+

+ An execution context, from which an executor will be obtained. +

+
+
+
+ + Return + Value +
+

+ A work guard constructed with the execution context's executor, obtained + by performing ctx.get_executor(). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/make_work_guard/overload3.html b/3party/asio/doc/asio/reference/make_work_guard/overload3.html new file mode 100644 index 0000000..4a545f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/make_work_guard/overload3.html @@ -0,0 +1,66 @@ + + + +make_work_guard (3 of 5 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create an executor_work_guard object. +

+
template<
+    typename T>
+executor_work_guard< typename constraint< !is_executor< T >::value &&!execution::is_executor< T >::value &&!is_convertible< T &, execution_context & >::value, associated_executor< T > >::type::type > make_work_guard(
+    const T & t);
+
+
+ + Parameters +
+
+

+
+
t
+

+ An arbitrary object, such as a completion handler, for which the + associated executor will be obtained. +

+
+
+
+ + Return + Value +
+

+ A work guard constructed with the associated executor of the object t, which is obtained as if by calling + get_associated_executor(t). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/make_work_guard/overload4.html b/3party/asio/doc/asio/reference/make_work_guard/overload4.html new file mode 100644 index 0000000..9dab2e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/make_work_guard/overload4.html @@ -0,0 +1,75 @@ + + + +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 constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
t
+

+ An arbitrary object, such as a completion handler, for which the + associated executor will be obtained. +

+
ex
+

+ An executor to be used as the candidate object when determining the + associated executor. +

+
+
+
+ + Return + Value +
+

+ A work guard constructed with the associated executor of the object t, which is obtained as if by calling + get_associated_executor(t, + ex). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/make_work_guard/overload5.html b/3party/asio/doc/asio/reference/make_work_guard/overload5.html new file mode 100644 index 0000000..233e6e5 --- /dev/null +++ b/3party/asio/doc/asio/reference/make_work_guard/overload5.html @@ -0,0 +1,78 @@ + + + +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 constraint< !is_executor< T >::value >::type  = 0,
+    typename constraint< !execution::is_executor< T >::value >::type  = 0,
+    typename constraint< !is_convertible< T &, execution_context & >::value >::type  = 0,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
t
+

+ An arbitrary object, such as a completion handler, for which the + associated executor will be obtained. +

+
ctx
+

+ An execution context, from which an executor is obtained to use as + the candidate object for determining the associated executor. +

+
+
+
+ + Return + Value +
+

+ A work guard constructed with the associated executor of the object t, which is obtained as if by calling + get_associated_executor(t, + ctx.get_executor()). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/multiple_exceptions.html b/3party/asio/doc/asio/reference/multiple_exceptions.html new file mode 100644 index 0000000..8419857 --- /dev/null +++ b/3party/asio/doc/asio/reference/multiple_exceptions.html @@ -0,0 +1,114 @@ + + + +multiple_exceptions + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Exception thrown when there are multiple pending exceptions to rethrow. +

+
class multiple_exceptions :
+  public std::exception
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ first_exception +

+
+

+ Obtain a pointer to the first exception. +

+
+

+ multiple_exceptions [constructor] +

+
+

+ Constructor. +

+
+

+ what +

+
+

+ Obtain message associated with exception. +

+
+
+ + Requirements +
+

+ Header: asio/multiple_exceptions.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/multiple_exceptions/first_exception.html b/3party/asio/doc/asio/reference/multiple_exceptions/first_exception.html new file mode 100644 index 0000000..23081fd --- /dev/null +++ b/3party/asio/doc/asio/reference/multiple_exceptions/first_exception.html @@ -0,0 +1,41 @@ + + + +multiple_exceptions::first_exception + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + a pointer to the first exception. +

+
std::exception_ptr first_exception() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/multiple_exceptions/multiple_exceptions.html b/3party/asio/doc/asio/reference/multiple_exceptions/multiple_exceptions.html new file mode 100644 index 0000000..2b57405 --- /dev/null +++ b/3party/asio/doc/asio/reference/multiple_exceptions/multiple_exceptions.html @@ -0,0 +1,41 @@ + + + +multiple_exceptions::multiple_exceptions + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
multiple_exceptions(
+    std::exception_ptr first);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/multiple_exceptions/what.html b/3party/asio/doc/asio/reference/multiple_exceptions/what.html new file mode 100644 index 0000000..9acfa47 --- /dev/null +++ b/3party/asio/doc/asio/reference/multiple_exceptions/what.html @@ -0,0 +1,41 @@ + + + +multiple_exceptions::what + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain message + associated with exception. +

+
virtual const char * what() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_buffer.html b/3party/asio/doc/asio/reference/mutable_buffer.html new file mode 100644 index 0000000..6a4dcd6 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffer.html @@ -0,0 +1,184 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/mutable_buffer/data.html b/3party/asio/doc/asio/reference/mutable_buffer/data.html new file mode 100644 index 0000000..1d48f7d --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffer/data.html @@ -0,0 +1,41 @@ + + + +mutable_buffer::data + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get a pointer to the + beginning of the memory range. +

+
void * data() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer.html b/3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer.html new file mode 100644 index 0000000..d434633 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload1.html b/3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload1.html new file mode 100644 index 0000000..c6da695 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload1.html @@ -0,0 +1,40 @@ + + + +mutable_buffer::mutable_buffer (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an empty buffer. +

+
mutable_buffer();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload2.html b/3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload2.html new file mode 100644 index 0000000..169042f --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffer/operator_plus_.html b/3party/asio/doc/asio/reference/mutable_buffer/operator_plus_.html new file mode 100644 index 0000000..d24adef --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffer/operator_plus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload1.html b/3party/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload1.html new file mode 100644 index 0000000..279467a --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload2.html b/3party/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload2.html new file mode 100644 index 0000000..fa1f4d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffer/operator_plus__eq_.html b/3party/asio/doc/asio/reference/mutable_buffer/operator_plus__eq_.html new file mode 100644 index 0000000..05c107d --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffer/operator_plus__eq_.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffer/size.html b/3party/asio/doc/asio/reference/mutable_buffer/size.html new file mode 100644 index 0000000..3befe61 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffer/size.html @@ -0,0 +1,41 @@ + + + +mutable_buffer::size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the size of the + memory range. +

+
std::size_t size() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_buffers_1.html b/3party/asio/doc/asio/reference/mutable_buffers_1.html new file mode 100644 index 0000000..8faa887 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1.html @@ -0,0 +1,237 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/mutable_buffers_1/begin.html b/3party/asio/doc/asio/reference/mutable_buffers_1/begin.html new file mode 100644 index 0000000..2e56b04 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/begin.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/const_iterator.html b/3party/asio/doc/asio/reference/mutable_buffers_1/const_iterator.html new file mode 100644 index 0000000..589c712 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/const_iterator.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/data.html b/3party/asio/doc/asio/reference/mutable_buffers_1/data.html new file mode 100644 index 0000000..d7e2fda --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/data.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/end.html b/3party/asio/doc/asio/reference/mutable_buffers_1/end.html new file mode 100644 index 0000000..89b303a --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/end.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1.html b/3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1.html new file mode 100644 index 0000000..a092392 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html b/3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html new file mode 100644 index 0000000..63c5d14 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html b/3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html new file mode 100644 index 0000000..0bdc750 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_.html b/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_.html new file mode 100644 index 0000000..4421a8a --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload1.html b/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload1.html new file mode 100644 index 0000000..5d7403d --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload1.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload2.html b/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload2.html new file mode 100644 index 0000000..e31f3ff --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload2.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus__eq_.html b/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus__eq_.html new file mode 100644 index 0000000..4d54556 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/operator_plus__eq_.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/size.html b/3party/asio/doc/asio/reference/mutable_buffers_1/size.html new file mode 100644 index 0000000..fb26b07 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/size.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/mutable_buffers_1/value_type.html b/3party/asio/doc/asio/reference/mutable_buffers_1/value_type.html new file mode 100644 index 0000000..91887f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_buffers_1/value_type.html @@ -0,0 +1,183 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/mutable_registered_buffer.html b/3party/asio/doc/asio/reference/mutable_registered_buffer.html new file mode 100644 index 0000000..859ae2c --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_registered_buffer.html @@ -0,0 +1,193 @@ + + + +mutable_registered_buffer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Holds a registered buffer over modifiable data. +

+
class mutable_registered_buffer
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ buffer +

+
+

+ Get the underlying mutable buffer. +

+
+

+ data +

+
+

+ Get a pointer to the beginning of the memory range. +

+
+

+ id +

+
+

+ Get the registered buffer identifier. +

+
+

+ mutable_registered_buffer [constructor] +

+
+

+ Default constructor creates an invalid registered 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 registered buffer that is offset from the + start of another. +

+

+ Create a new modifiable buffer that is offset from the start of + another. +

+
+

+ Satisfies the MutableBufferSequence + type requirements. +

+
+ + Requirements +
+

+ Header: asio/registered_buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_registered_buffer/buffer.html b/3party/asio/doc/asio/reference/mutable_registered_buffer/buffer.html new file mode 100644 index 0000000..71593d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_registered_buffer/buffer.html @@ -0,0 +1,41 @@ + + + +mutable_registered_buffer::buffer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the underlying mutable buffer. +

+
const mutable_buffer & buffer() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_registered_buffer/data.html b/3party/asio/doc/asio/reference/mutable_registered_buffer/data.html new file mode 100644 index 0000000..51a05e1 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_registered_buffer/data.html @@ -0,0 +1,49 @@ + + + +mutable_registered_buffer::data + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + a pointer to the beginning of the memory range. +

+
void * data() const;
+
+
+ + Return + Value +
+

+ buffer().data(). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_registered_buffer/id.html b/3party/asio/doc/asio/reference/mutable_registered_buffer/id.html new file mode 100644 index 0000000..9b2ea4b --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_registered_buffer/id.html @@ -0,0 +1,41 @@ + + + +mutable_registered_buffer::id + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the registered buffer identifier. +

+
const registered_buffer_id & id() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_registered_buffer/mutable_registered_buffer.html b/3party/asio/doc/asio/reference/mutable_registered_buffer/mutable_registered_buffer.html new file mode 100644 index 0000000..5e590ae --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_registered_buffer/mutable_registered_buffer.html @@ -0,0 +1,41 @@ + + + +mutable_registered_buffer::mutable_registered_buffer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor creates an invalid registered buffer. +

+
mutable_registered_buffer();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_.html b/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_.html new file mode 100644 index 0000000..c5d3bee --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_.html @@ -0,0 +1,52 @@ + + + +mutable_registered_buffer::operator+ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Create + a new modifiable registered buffer that is offset from the start of another. +

+
mutable_registered_buffer operator+(
+    const mutable_registered_buffer & b,
+    std::size_t n);
+  » more...
+
+

+ Create a new modifiable buffer that is offset from the start of another. +

+
mutable_registered_buffer operator+(
+    std::size_t n,
+    const mutable_registered_buffer & b);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_/overload1.html b/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_/overload1.html new file mode 100644 index 0000000..bc3769a --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_/overload1.html @@ -0,0 +1,43 @@ + + + +mutable_registered_buffer::operator+ (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a new modifiable registered buffer that is offset from the start + of another. +

+
mutable_registered_buffer operator+(
+    const mutable_registered_buffer & b,
+    std::size_t n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_/overload2.html b/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_/overload2.html new file mode 100644 index 0000000..1aa8f94 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus_/overload2.html @@ -0,0 +1,42 @@ + + + +mutable_registered_buffer::operator+ (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Create a new modifiable buffer that is offset from the start of another. +

+
mutable_registered_buffer operator+(
+    std::size_t n,
+    const mutable_registered_buffer & b);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus__eq_.html b/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus__eq_.html new file mode 100644 index 0000000..e91a2d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_registered_buffer/operator_plus__eq_.html @@ -0,0 +1,42 @@ + + + +mutable_registered_buffer::operator+= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move + the start of the buffer by the specified number of bytes. +

+
mutable_registered_buffer & operator+=(
+    std::size_t n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/mutable_registered_buffer/size.html b/3party/asio/doc/asio/reference/mutable_registered_buffer/size.html new file mode 100644 index 0000000..e8777cc --- /dev/null +++ b/3party/asio/doc/asio/reference/mutable_registered_buffer/size.html @@ -0,0 +1,49 @@ + + + +mutable_registered_buffer::size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the size of the memory range. +

+
std::size_t size() const;
+
+
+ + Return + Value +
+

+ buffer().size(). +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/null_buffers.html b/3party/asio/doc/asio/reference/null_buffers.html new file mode 100644 index 0000000..3b5a42f --- /dev/null +++ b/3party/asio/doc/asio/reference/null_buffers.html @@ -0,0 +1,151 @@ + + + +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/3party/asio/doc/asio/reference/null_buffers/begin.html b/3party/asio/doc/asio/reference/null_buffers/begin.html new file mode 100644 index 0000000..7a52d8a --- /dev/null +++ b/3party/asio/doc/asio/reference/null_buffers/begin.html @@ -0,0 +1,41 @@ + + + +null_buffers::begin + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get a random-access iterator + to the first element. +

+
const_iterator begin() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/null_buffers/const_iterator.html b/3party/asio/doc/asio/reference/null_buffers/const_iterator.html new file mode 100644 index 0000000..e365678 --- /dev/null +++ b/3party/asio/doc/asio/reference/null_buffers/const_iterator.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/null_buffers/end.html b/3party/asio/doc/asio/reference/null_buffers/end.html new file mode 100644 index 0000000..d70d89d --- /dev/null +++ b/3party/asio/doc/asio/reference/null_buffers/end.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/null_buffers/value_type.html b/3party/asio/doc/asio/reference/null_buffers/value_type.html new file mode 100644 index 0000000..1ad5c2c --- /dev/null +++ b/3party/asio/doc/asio/reference/null_buffers/value_type.html @@ -0,0 +1,183 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/operator_lt__lt_.html b/3party/asio/doc/asio/reference/operator_lt__lt_.html new file mode 100644 index 0000000..e314ca1 --- /dev/null +++ b/3party/asio/doc/asio/reference/operator_lt__lt_.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/operator_pipe_.html b/3party/asio/doc/asio/reference/operator_pipe_.html new file mode 100644 index 0000000..7e7fec4 --- /dev/null +++ b/3party/asio/doc/asio/reference/operator_pipe_.html @@ -0,0 +1,57 @@ + + + +operator| + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Pipe operator used to chain deferred operations. +

+
template<
+    typename Head,
+    typename Tail>
+auto operator|(
+    Head head,
+    Tail && tail) const;
+
+
+ + Requirements +
+

+ Header: asio/deferred.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/placeholders__bytes_transferred.html b/3party/asio/doc/asio/reference/placeholders__bytes_transferred.html new file mode 100644 index 0000000..dcb7345 --- /dev/null +++ b/3party/asio/doc/asio/reference/placeholders__bytes_transferred.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/placeholders__endpoint.html b/3party/asio/doc/asio/reference/placeholders__endpoint.html new file mode 100644 index 0000000..c8245b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/placeholders__endpoint.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/placeholders__error.html b/3party/asio/doc/asio/reference/placeholders__error.html new file mode 100644 index 0000000..b060981 --- /dev/null +++ b/3party/asio/doc/asio/reference/placeholders__error.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/placeholders__iterator.html b/3party/asio/doc/asio/reference/placeholders__iterator.html new file mode 100644 index 0000000..3111a52 --- /dev/null +++ b/3party/asio/doc/asio/reference/placeholders__iterator.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/placeholders__results.html b/3party/asio/doc/asio/reference/placeholders__results.html new file mode 100644 index 0000000..e4dde51 --- /dev/null +++ b/3party/asio/doc/asio/reference/placeholders__results.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/placeholders__signal_number.html b/3party/asio/doc/asio/reference/placeholders__signal_number.html new file mode 100644 index 0000000..90fab96 --- /dev/null +++ b/3party/asio/doc/asio/reference/placeholders__signal_number.html @@ -0,0 +1,54 @@ + + + +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/3party/asio/doc/asio/reference/posix__basic_descriptor.html b/3party/asio/doc/asio/reference/posix__basic_descriptor.html new file mode 100644 index 0000000..3b34a95 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor.html @@ -0,0 +1,416 @@ + + + +posix::basic_descriptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides POSIX descriptor functionality. +

+
template<
+    typename Executor = any_io_executor>
+class basic_descriptor :
+  public posix::descriptor_base
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the descriptor type to another executor. +

+
+

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

+
+

+ basic_descriptor [constructor] +

+
+

+ Construct a descriptor without opening it.

Construct + a descriptor on an existing native descriptor.

Move-construct + a descriptor from another.

Move-construct a basic_descriptor + from a descriptor of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the descriptor. +

+
+

+ close +

+
+

+ Close the descriptor. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a basic_descriptor from a descriptor of another executor type. +

+
+

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

+
+

+ ~basic_descriptor [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+

+ The posix::basic_descriptor class template + provides the ability to wrap a POSIX descriptor. +

+
+ + Thread Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/posix/basic_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/_basic_descriptor.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/_basic_descriptor.html new file mode 100644 index 0000000..5ccb5c7 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/_basic_descriptor.html @@ -0,0 +1,45 @@ + + + +posix::basic_descriptor::~basic_descriptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Protected + destructor to prevent deletion through this type. +

+
~basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/assign.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/assign.html new file mode 100644 index 0000000..28dc04d --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/assign.html @@ -0,0 +1,48 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/assign/overload1.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/assign/overload1.html new file mode 100644 index 0000000..6e87329 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/assign/overload1.html @@ -0,0 +1,41 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/assign/overload2.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/assign/overload2.html new file mode 100644 index 0000000..81a3df8 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/assign/overload2.html @@ -0,0 +1,42 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/async_wait.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/async_wait.html new file mode 100644 index 0000000..32b40e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/async_wait.html @@ -0,0 +1,135 @@ + + + +posix::basic_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 WaitToken = DEFAULT>
+DEDUCED async_wait(
+    wait_type w,
+    WaitToken && token = DEFAULT);
+
+

+ This function is used to perform an asynchronous wait for a descriptor + to enter a ready to read, write or error condition state. It is an initiating + function for an asynchronous + operation, and always returns immediately. +

+
+ + Parameters +
+
+

+
+
w
+

+ Specifies the desired descriptor state. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the wait completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void wait_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Wait succeeded.
+  }
+}
+
+...
+
+asio::posix::stream_descriptor descriptor(my_context);
+...
+descriptor.async_wait(
+    asio::posix::stream_descriptor::wait_read,
+    wait_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor.html new file mode 100644 index 0000000..2a25c2d --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor.html @@ -0,0 +1,84 @@ + + + +posix::basic_descriptor::basic_descriptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a descriptor without opening it. +

+
explicit basic_descriptor(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_descriptor(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a descriptor on an existing native descriptor. +

+
basic_descriptor(
+    const executor_type & ex,
+    const native_handle_type & native_descriptor);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_descriptor(
+    ExecutionContext & context,
+    const native_handle_type & native_descriptor,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct a descriptor from another. +

+
basic_descriptor(
+    basic_descriptor && other);
+  » more...
+
+

+ Move-construct a posix::basic_descriptor from a descriptor + of another executor type. +

+
template<
+    typename Executor1>
+basic_descriptor(
+    basic_descriptor< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload1.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload1.html new file mode 100644 index 0000000..e316712 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload1.html @@ -0,0 +1,58 @@ + + + +posix::basic_descriptor::basic_descriptor (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a descriptor without opening it. +

+
basic_descriptor(
+    const executor_type & ex);
+
+

+ This constructor creates a descriptor without opening it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the descriptor will use, by default, to dispatch + handlers for any asynchronous operations performed on the descriptor. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload2.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload2.html new file mode 100644 index 0000000..651abe9 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload2.html @@ -0,0 +1,62 @@ + + + +posix::basic_descriptor::basic_descriptor (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a descriptor without opening it. +

+
template<
+    typename ExecutionContext>
+basic_descriptor(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates a descriptor without opening it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the descriptor + will use, by default, to dispatch handlers for any asynchronous + operations performed on the descriptor. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload3.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload3.html new file mode 100644 index 0000000..b48a91a --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload3.html @@ -0,0 +1,77 @@ + + + +posix::basic_descriptor::basic_descriptor (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a descriptor on an existing native descriptor. +

+
basic_descriptor(
+    const executor_type & ex,
+    const native_handle_type & native_descriptor);
+
+

+ This constructor creates a descriptor object to hold an existing native + descriptor. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the descriptor will use, by default, 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/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload4.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload4.html new file mode 100644 index 0000000..79cf659 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload4.html @@ -0,0 +1,81 @@ + + + +posix::basic_descriptor::basic_descriptor (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a descriptor on an existing native descriptor. +

+
template<
+    typename ExecutionContext>
+basic_descriptor(
+    ExecutionContext & context,
+    const native_handle_type & native_descriptor,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a descriptor object to hold an existing native + descriptor. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the descriptor + will use, by default, 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/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload5.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload5.html new file mode 100644 index 0000000..396d6f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload5.html @@ -0,0 +1,66 @@ + + + +posix::basic_descriptor::basic_descriptor (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a descriptor from another. +

+
basic_descriptor(
+    basic_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 basic_descriptor(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload6.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload6.html new file mode 100644 index 0000000..36c6d4f --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload6.html @@ -0,0 +1,71 @@ + + + +posix::basic_descriptor::basic_descriptor (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a posix::basic_descriptor from a descriptor + of another executor type. +

+
template<
+    typename Executor1>
+basic_descriptor(
+    basic_descriptor< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves a descriptor from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other posix::basic_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 basic_descriptor(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/bytes_readable.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/bytes_readable.html new file mode 100644 index 0000000..a97afe8 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/bytes_readable.html @@ -0,0 +1,67 @@ + + + +posix::basic_descriptor::bytes_readable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::descriptor_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::posix::stream_descriptor descriptor(my_context);
+...
+asio::descriptor_base::bytes_readable command(true);
+descriptor.io_control(command);
+std::size_t bytes_readable = command.get();
+
+
+ + Requirements +
+

+ Header: asio/posix/basic_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/cancel.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/cancel.html new file mode 100644 index 0000000..19cb459 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/cancel.html @@ -0,0 +1,46 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/cancel/overload1.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/cancel/overload1.html new file mode 100644 index 0000000..40809e0 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/cancel/overload1.html @@ -0,0 +1,58 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/cancel/overload2.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/cancel/overload2.html new file mode 100644 index 0000000..dfb8470 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/cancel/overload2.html @@ -0,0 +1,59 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/close.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/close.html new file mode 100644 index 0000000..2841801 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/close.html @@ -0,0 +1,46 @@ + + + +posix::basic_descriptor::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close + the descriptor. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/close/overload1.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/close/overload1.html new file mode 100644 index 0000000..f7dd736 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/close/overload1.html @@ -0,0 +1,59 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/close/overload2.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/close/overload2.html new file mode 100644 index 0000000..0d417a1 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/close/overload2.html @@ -0,0 +1,60 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/executor_type.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/executor_type.html new file mode 100644 index 0000000..448d296 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/executor_type.html @@ -0,0 +1,51 @@ + + + +posix::basic_descriptor::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/posix/basic_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/get_executor.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/get_executor.html new file mode 100644 index 0000000..e5b9e98 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/get_executor.html @@ -0,0 +1,41 @@ + + + +posix::basic_descriptor::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/io_control.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/io_control.html new file mode 100644 index 0000000..4c3207e --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/io_control.html @@ -0,0 +1,52 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/io_control/overload1.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/io_control/overload1.html new file mode 100644 index 0000000..c398706 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/io_control/overload1.html @@ -0,0 +1,85 @@ + + + +posix::basic_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(my_context);
+...
+asio::posix::stream_descriptor::bytes_readable command;
+descriptor.io_control(command);
+std::size_t bytes_readable = command.get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/io_control/overload2.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/io_control/overload2.html new file mode 100644 index 0000000..571660e --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/io_control/overload2.html @@ -0,0 +1,82 @@ + + + +posix::basic_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(my_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/3party/asio/doc/asio/reference/posix__basic_descriptor/is_open.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/is_open.html new file mode 100644 index 0000000..760f282 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/is_open.html @@ -0,0 +1,41 @@ + + + +posix::basic_descriptor::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the descriptor is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer.html new file mode 100644 index 0000000..c6b805a --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer.html @@ -0,0 +1,48 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer/overload1.html new file mode 100644 index 0000000..221970f --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer/overload1.html @@ -0,0 +1,54 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer/overload2.html new file mode 100644 index 0000000..df4a3e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer/overload2.html @@ -0,0 +1,54 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer_type.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer_type.html new file mode 100644 index 0000000..7704c76 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/lowest_layer_type.html @@ -0,0 +1,413 @@ + + + +posix::basic_descriptor::lowest_layer_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +A + descriptor is always the lowest layer. +

+
typedef basic_descriptor lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the descriptor type to another executor. +

+
+

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

+
+

+ basic_descriptor [constructor] +

+
+

+ Construct a descriptor without opening it.

Construct + a descriptor on an existing native descriptor.

+ Move-construct a descriptor from another.

Move-construct + a basic_descriptor from a descriptor of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the descriptor. +

+
+

+ close +

+
+

+ Close the descriptor. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a basic_descriptor from a descriptor of another executor type. +

+
+

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

+
+

+ ~basic_descriptor [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+

+ The posix::basic_descriptor class template + provides the ability to wrap a POSIX descriptor. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/posix/basic_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/native_handle.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_handle.html new file mode 100644 index 0000000..81fd4b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_handle.html @@ -0,0 +1,46 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/native_handle_type.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_handle_type.html new file mode 100644 index 0000000..df5d65e --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_handle_type.html @@ -0,0 +1,51 @@ + + + +posix::basic_descriptor::native_handle_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + native representation of a descriptor. +

+
typedef implementation_defined native_handle_type;
+
+
+ + Requirements +
+

+ Header: asio/posix/basic_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking.html new file mode 100644 index 0000000..cf807ea --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking.html @@ -0,0 +1,54 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload1.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload1.html new file mode 100644 index 0000000..06ff3d7 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload1.html @@ -0,0 +1,64 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload2.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload2.html new file mode 100644 index 0000000..c848f24 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload2.html @@ -0,0 +1,79 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload3.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload3.html new file mode 100644 index 0000000..2325856 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/native_non_blocking/overload3.html @@ -0,0 +1,70 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking.html new file mode 100644 index 0000000..192338b --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking.html @@ -0,0 +1,54 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload1.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload1.html new file mode 100644 index 0000000..49aca60 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload1.html @@ -0,0 +1,60 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload2.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload2.html new file mode 100644 index 0000000..6f9885f --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload2.html @@ -0,0 +1,79 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload3.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload3.html new file mode 100644 index 0000000..0c3b466 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/non_blocking/overload3.html @@ -0,0 +1,71 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_.html new file mode 100644 index 0000000..ea756ac --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_.html @@ -0,0 +1,53 @@ + + + +posix::basic_descriptor::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a descriptor from another. +

+
basic_descriptor & operator=(
+    basic_descriptor && other);
+  » more...
+
+

+ Move-assign a posix::basic_descriptor from a descriptor + of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_descriptor & >::type operator=(
+    basic_descriptor< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_/overload1.html new file mode 100644 index 0000000..a7e6fe2 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_/overload1.html @@ -0,0 +1,66 @@ + + + +posix::basic_descriptor::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a descriptor from another. +

+
basic_descriptor & operator=(
+    basic_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 basic_descriptor(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_/overload2.html new file mode 100644 index 0000000..b597551 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/operator_eq_/overload2.html @@ -0,0 +1,70 @@ + + + +posix::basic_descriptor::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a posix::basic_descriptor from a descriptor + of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_descriptor & >::type operator=(
+    basic_descriptor< Executor1 > && other);
+
+

+ This assignment operator moves a descriptor from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other posix::basic_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 basic_descriptor(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/release.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/release.html new file mode 100644 index 0000000..32ab953 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/release.html @@ -0,0 +1,50 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/wait.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/wait.html new file mode 100644 index 0000000..7e7676b --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/wait.html @@ -0,0 +1,49 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_descriptor/wait/overload1.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/wait/overload1.html new file mode 100644 index 0000000..2bf2f6e --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/wait/overload1.html @@ -0,0 +1,70 @@ + + + +posix::basic_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(my_context);
+...
+descriptor.wait(asio::posix::stream_descriptor::wait_read);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/wait/overload2.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/wait/overload2.html new file mode 100644 index 0000000..f1eb839 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/wait/overload2.html @@ -0,0 +1,76 @@ + + + +posix::basic_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(my_context);
+...
+asio::error_code ec;
+descriptor.wait(asio::posix::stream_descriptor::wait_read, ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor/wait_type.html b/3party/asio/doc/asio/reference/posix__basic_descriptor/wait_type.html new file mode 100644 index 0000000..77d87dc --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor/wait_type.html @@ -0,0 +1,73 @@ + + + +posix::basic_descriptor::wait_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::descriptor_base. +

+

+ +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/3party/asio/doc/asio/reference/posix__basic_descriptor__rebind_executor.html b/3party/asio/doc/asio/reference/posix__basic_descriptor__rebind_executor.html new file mode 100644 index 0000000..72ca10e --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor__rebind_executor.html @@ -0,0 +1,88 @@ + + + +posix::basic_descriptor::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the descriptor type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The descriptor type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/posix/basic_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_descriptor__rebind_executor/other.html b/3party/asio/doc/asio/reference/posix__basic_descriptor__rebind_executor/other.html new file mode 100644 index 0000000..e7e39ca --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_descriptor__rebind_executor/other.html @@ -0,0 +1,413 @@ + + + +posix::basic_descriptor::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + descriptor type when rebound to the specified executor. +

+
typedef basic_descriptor< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the descriptor type to another executor. +

+
+

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

+
+

+ basic_descriptor [constructor] +

+
+

+ Construct a descriptor without opening it.

Construct + a descriptor on an existing native descriptor.

+ Move-construct a descriptor from another.

Move-construct + a basic_descriptor from a descriptor of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the descriptor. +

+
+

+ close +

+
+

+ Close the descriptor. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a basic_descriptor from a descriptor of another executor type. +

+
+

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

+
+

+ ~basic_descriptor [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+

+ The posix::basic_descriptor class template + provides the ability to wrap a POSIX descriptor. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/posix/basic_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor.html new file mode 100644 index 0000000..820a720 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor.html @@ -0,0 +1,441 @@ + + + +posix::basic_stream_descriptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides stream-oriented descriptor functionality. +

+
template<
+    typename Executor = any_io_executor>
+class basic_stream_descriptor :
+  public posix::basic_descriptor< Executor >
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the descriptor type to another executor. +

+
+

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

+
+

+ basic_stream_descriptor [constructor] +

+
+

+ Construct a stream descriptor without opening it.

+ Construct a stream descriptor on an existing native descriptor. +

Move-construct a stream descriptor from another. +

Move-construct a basic_stream_descriptor from a descriptor + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the descriptor. +

+
+

+ close +

+
+

+ Close the descriptor. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a basic_stream_descriptor from a descriptor of another executor + type. +

+
+

+ read_some +

+
+

+ Read some data from the descriptor. +

+
+

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

+
+

+ write_some +

+
+

+ Write some data to the descriptor. +

+
+

+ The posix::basic_stream_descriptor class template + provides asynchronous and blocking stream-oriented descriptor functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+

+ Synchronous read_some and + write_some operations are + thread safe with respect to each other, if the underlying operating system + calls are also thread safe. This means that it is permitted to perform concurrent + calls to these synchronous operations on a single descriptor object. Other + synchronous operations, such as close, + are not thread safe. +

+
+ + Requirements +
+

+ Header: asio/posix/basic_stream_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign.html new file mode 100644 index 0000000..fe8ed16 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign.html @@ -0,0 +1,48 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign/overload1.html new file mode 100644 index 0000000..ddfbbf8 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign/overload1.html @@ -0,0 +1,44 @@ + + + +posix::basic_stream_descriptor::assign (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_descriptor. +

+

+ Assign an existing native descriptor to the descriptor. +

+
void assign(
+    const native_handle_type & native_descriptor);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign/overload2.html new file mode 100644 index 0000000..d680200 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/assign/overload2.html @@ -0,0 +1,45 @@ + + + +posix::basic_stream_descriptor::assign (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_read_some.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_read_some.html new file mode 100644 index 0000000..6685c87 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_read_some.html @@ -0,0 +1,142 @@ + + + +posix::basic_stream_descriptor::async_read_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous read. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_some(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read data from the stream descriptor. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_wait.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_wait.html new file mode 100644 index 0000000..a708b15 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_wait.html @@ -0,0 +1,138 @@ + + + +posix::basic_stream_descriptor::async_wait + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_descriptor. +

+

+ +Asynchronously + wait for the descriptor to become ready to read, ready to write, or to + have pending error conditions. +

+
template<
+    typename WaitToken = DEFAULT>
+DEDUCED async_wait(
+    wait_type w,
+    WaitToken && token = DEFAULT);
+
+

+ This function is used to perform an asynchronous wait for a descriptor + to enter a ready to read, write or error condition state. It is an initiating + function for an asynchronous + operation, and always returns immediately. +

+
+ + Parameters +
+
+

+
+
w
+

+ Specifies the desired descriptor state. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the wait completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Example +
+
void wait_handler(const asio::error_code& error)
+{
+  if (!error)
+  {
+    // Wait succeeded.
+  }
+}
+
+...
+
+asio::posix::stream_descriptor descriptor(my_context);
+...
+descriptor.async_wait(
+    asio::posix::stream_descriptor::wait_read,
+    wait_handler);
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_write_some.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_write_some.html new file mode 100644 index 0000000..1671dd2 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/async_write_some.html @@ -0,0 +1,142 @@ + + + +posix::basic_stream_descriptor::async_write_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous write. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_some(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write data to the stream descriptor. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor.html new file mode 100644 index 0000000..7e9868e --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor.html @@ -0,0 +1,84 @@ + + + +posix::basic_stream_descriptor::basic_stream_descriptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a stream descriptor without opening it. +

+
explicit basic_stream_descriptor(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_stream_descriptor(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a stream descriptor on an existing native descriptor. +

+
basic_stream_descriptor(
+    const executor_type & ex,
+    const native_handle_type & native_descriptor);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_stream_descriptor(
+    ExecutionContext & context,
+    const native_handle_type & native_descriptor,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct a stream descriptor from another. +

+
basic_stream_descriptor(
+    basic_stream_descriptor && other);
+  » more...
+
+

+ Move-construct a posix::basic_stream_descriptor from a + descriptor of another executor type. +

+
template<
+    typename Executor1>
+basic_stream_descriptor(
+    basic_stream_descriptor< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload1.html new file mode 100644 index 0000000..f3b7e75 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload1.html @@ -0,0 +1,60 @@ + + + +posix::basic_stream_descriptor::basic_stream_descriptor (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a stream descriptor without opening it. +

+
basic_stream_descriptor(
+    const executor_type & ex);
+
+

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

+
+
ex
+

+ The I/O executor that the descriptor will use, by default, to dispatch + handlers for any asynchronous operations performed on the descriptor. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload2.html new file mode 100644 index 0000000..3cfc380 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload2.html @@ -0,0 +1,64 @@ + + + +posix::basic_stream_descriptor::basic_stream_descriptor (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a stream descriptor without opening it. +

+
template<
+    typename ExecutionContext>
+basic_stream_descriptor(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

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

+
+
context
+

+ An execution context which provides the I/O executor that the descriptor + will use, by default, to dispatch handlers for any asynchronous + operations performed on the descriptor. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload3.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload3.html new file mode 100644 index 0000000..b92ba44 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload3.html @@ -0,0 +1,77 @@ + + + +posix::basic_stream_descriptor::basic_stream_descriptor (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a stream descriptor on an existing native descriptor. +

+
basic_stream_descriptor(
+    const executor_type & ex,
+    const native_handle_type & native_descriptor);
+
+

+ This constructor creates a stream descriptor object to hold an existing + native descriptor. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the descriptor will use, by default, 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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload4.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload4.html new file mode 100644 index 0000000..47d39a1 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload4.html @@ -0,0 +1,81 @@ + + + +posix::basic_stream_descriptor::basic_stream_descriptor (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a stream descriptor on an existing native descriptor. +

+
template<
+    typename ExecutionContext>
+basic_stream_descriptor(
+    ExecutionContext & context,
+    const native_handle_type & native_descriptor,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a stream descriptor object to hold an existing + native descriptor. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the descriptor + will use, by default, 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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload5.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload5.html new file mode 100644 index 0000000..b5ee661 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload5.html @@ -0,0 +1,66 @@ + + + +posix::basic_stream_descriptor::basic_stream_descriptor (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a stream descriptor from another. +

+
basic_stream_descriptor(
+    basic_stream_descriptor && other);
+
+

+ This constructor moves a stream descriptor from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_stream_descriptor(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload6.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload6.html new file mode 100644 index 0000000..9837c66 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload6.html @@ -0,0 +1,71 @@ + + + +posix::basic_stream_descriptor::basic_stream_descriptor (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a posix::basic_stream_descriptor from + a descriptor of another executor type. +

+
template<
+    typename Executor1>
+basic_stream_descriptor(
+    basic_stream_descriptor< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves a descriptor from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other posix::basic_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 basic_stream_descriptor(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/bytes_readable.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/bytes_readable.html new file mode 100644 index 0000000..e84842f --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/bytes_readable.html @@ -0,0 +1,67 @@ + + + +posix::basic_stream_descriptor::bytes_readable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::descriptor_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::posix::stream_descriptor descriptor(my_context);
+...
+asio::descriptor_base::bytes_readable command(true);
+descriptor.io_control(command);
+std::size_t bytes_readable = command.get();
+
+
+ + Requirements +
+

+ Header: asio/posix/basic_stream_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel.html new file mode 100644 index 0000000..fc2f014 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel.html @@ -0,0 +1,46 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel/overload1.html new file mode 100644 index 0000000..f70a7f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel/overload1.html @@ -0,0 +1,61 @@ + + + +posix::basic_stream_descriptor::cancel (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel/overload2.html new file mode 100644 index 0000000..9ef726b --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/cancel/overload2.html @@ -0,0 +1,62 @@ + + + +posix::basic_stream_descriptor::cancel (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close.html new file mode 100644 index 0000000..1c6ccda --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close.html @@ -0,0 +1,46 @@ + + + +posix::basic_stream_descriptor::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close + the descriptor. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close/overload1.html new file mode 100644 index 0000000..bfc712b --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close/overload1.html @@ -0,0 +1,62 @@ + + + +posix::basic_stream_descriptor::close (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close/overload2.html new file mode 100644 index 0000000..bb4cc21 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/close/overload2.html @@ -0,0 +1,63 @@ + + + +posix::basic_stream_descriptor::close (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/executor_type.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/executor_type.html new file mode 100644 index 0000000..bb8d9a2 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/executor_type.html @@ -0,0 +1,51 @@ + + + +posix::basic_stream_descriptor::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/posix/basic_stream_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/get_executor.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/get_executor.html new file mode 100644 index 0000000..13c98d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/get_executor.html @@ -0,0 +1,44 @@ + + + +posix::basic_stream_descriptor::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_descriptor. +

+

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control.html new file mode 100644 index 0000000..5e121c4 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control.html @@ -0,0 +1,52 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control/overload1.html new file mode 100644 index 0000000..49d21fc --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control/overload1.html @@ -0,0 +1,88 @@ + + + +posix::basic_stream_descriptor::io_control (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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(my_context);
+...
+asio::posix::stream_descriptor::bytes_readable command;
+descriptor.io_control(command);
+std::size_t bytes_readable = command.get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control/overload2.html new file mode 100644 index 0000000..e05aae1 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/io_control/overload2.html @@ -0,0 +1,85 @@ + + + +posix::basic_stream_descriptor::io_control (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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(my_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/is_open.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/is_open.html new file mode 100644 index 0000000..1488240 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/is_open.html @@ -0,0 +1,44 @@ + + + +posix::basic_stream_descriptor::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_descriptor. +

+

+ +Determine + whether the descriptor is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer.html new file mode 100644 index 0000000..c550445 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer.html @@ -0,0 +1,48 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer/overload1.html new file mode 100644 index 0000000..090796e --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer/overload1.html @@ -0,0 +1,57 @@ + + + +posix::basic_stream_descriptor::lowest_layer (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer/overload2.html new file mode 100644 index 0000000..1c58e7a --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer/overload2.html @@ -0,0 +1,57 @@ + + + +posix::basic_stream_descriptor::lowest_layer (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer_type.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer_type.html new file mode 100644 index 0000000..8cc0d7d --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/lowest_layer_type.html @@ -0,0 +1,416 @@ + + + +posix::basic_stream_descriptor::lowest_layer_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_descriptor. +

+

+ +A + descriptor is always the lowest layer. +

+
typedef basic_descriptor lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the descriptor type to another executor. +

+
+

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

+
+

+ basic_descriptor [constructor] +

+
+

+ Construct a descriptor without opening it.

Construct + a descriptor on an existing native descriptor.

+ Move-construct a descriptor from another.

Move-construct + a basic_descriptor from a descriptor of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the descriptor. +

+
+

+ close +

+
+

+ Close the descriptor. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a basic_descriptor from a descriptor of another executor type. +

+
+

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

+
+

+ ~basic_descriptor [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+

+ The posix::basic_descriptor class template + provides the ability to wrap a POSIX descriptor. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/posix/basic_stream_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_handle.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_handle.html new file mode 100644 index 0000000..b9a1bfc --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_handle.html @@ -0,0 +1,49 @@ + + + +posix::basic_stream_descriptor::native_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_handle_type.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_handle_type.html new file mode 100644 index 0000000..9c49c04 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_handle_type.html @@ -0,0 +1,413 @@ + + + +posix::basic_stream_descriptor::native_handle_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + native representation of a descriptor. +

+
typedef basic_descriptor< Executor >::native_handle_type native_handle_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the descriptor type to another executor. +

+
+

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

+
+

+ basic_descriptor [constructor] +

+
+

+ Construct a descriptor without opening it.

Construct + a descriptor on an existing native descriptor.

+ Move-construct a descriptor from another.

Move-construct + a basic_descriptor from a descriptor of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the descriptor. +

+
+

+ close +

+
+

+ Close the descriptor. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a basic_descriptor from a descriptor of another executor type. +

+
+

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

+
+

+ ~basic_descriptor [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+

+ The posix::basic_descriptor class template + provides the ability to wrap a POSIX descriptor. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/posix/basic_stream_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking.html new file mode 100644 index 0000000..d6996f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking.html @@ -0,0 +1,54 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload1.html new file mode 100644 index 0000000..8a228b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload1.html @@ -0,0 +1,67 @@ + + + +posix::basic_stream_descriptor::native_non_blocking (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload2.html new file mode 100644 index 0000000..310a6fa --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload2.html @@ -0,0 +1,82 @@ + + + +posix::basic_stream_descriptor::native_non_blocking (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload3.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload3.html new file mode 100644 index 0000000..3655313 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/native_non_blocking/overload3.html @@ -0,0 +1,73 @@ + + + +posix::basic_stream_descriptor::native_non_blocking (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking.html new file mode 100644 index 0000000..fc9724a --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking.html @@ -0,0 +1,54 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload1.html new file mode 100644 index 0000000..bed3643 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload1.html @@ -0,0 +1,63 @@ + + + +posix::basic_stream_descriptor::non_blocking (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload2.html new file mode 100644 index 0000000..a7b9214 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload2.html @@ -0,0 +1,82 @@ + + + +posix::basic_stream_descriptor::non_blocking (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload3.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload3.html new file mode 100644 index 0000000..d9529fb --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload3.html @@ -0,0 +1,74 @@ + + + +posix::basic_stream_descriptor::non_blocking (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_.html new file mode 100644 index 0000000..3784f2f --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_.html @@ -0,0 +1,53 @@ + + + +posix::basic_stream_descriptor::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a stream descriptor from another. +

+
basic_stream_descriptor & operator=(
+    basic_stream_descriptor && other);
+  » more...
+
+

+ Move-assign a posix::basic_stream_descriptor from a + descriptor of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_stream_descriptor & >::type operator=(
+    basic_stream_descriptor< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_/overload1.html new file mode 100644 index 0000000..44fd47d --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_/overload1.html @@ -0,0 +1,67 @@ + + + +posix::basic_stream_descriptor::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a stream descriptor from another. +

+
basic_stream_descriptor & operator=(
+    basic_stream_descriptor && other);
+
+

+ This assignment operator moves a stream descriptor from one object to + another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_stream_descriptor(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_/overload2.html new file mode 100644 index 0000000..5e7dbae --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_/overload2.html @@ -0,0 +1,70 @@ + + + +posix::basic_stream_descriptor::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a posix::basic_stream_descriptor from + a descriptor of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_stream_descriptor & >::type operator=(
+    basic_stream_descriptor< Executor1 > && other);
+
+

+ This assignment operator moves a descriptor from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other posix::basic_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 basic_stream_descriptor(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some.html new file mode 100644 index 0000000..91b56ee --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some.html @@ -0,0 +1,52 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some/overload1.html new file mode 100644 index 0000000..c288df2 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some/overload1.html @@ -0,0 +1,107 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some/overload2.html new file mode 100644 index 0000000..2c82f08 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/read_some/overload2.html @@ -0,0 +1,84 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/release.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/release.html new file mode 100644 index 0000000..f69926d --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/release.html @@ -0,0 +1,53 @@ + + + +posix::basic_stream_descriptor::release + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait.html new file mode 100644 index 0000000..02558c3 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait.html @@ -0,0 +1,49 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait/overload1.html new file mode 100644 index 0000000..f73aa97 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait/overload1.html @@ -0,0 +1,73 @@ + + + +posix::basic_stream_descriptor::wait (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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(my_context);
+...
+descriptor.wait(asio::posix::stream_descriptor::wait_read);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait/overload2.html new file mode 100644 index 0000000..467c552 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait/overload2.html @@ -0,0 +1,79 @@ + + + +posix::basic_stream_descriptor::wait (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::basic_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(my_context);
+...
+asio::error_code ec;
+descriptor.wait(asio::posix::stream_descriptor::wait_read, ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait_type.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait_type.html new file mode 100644 index 0000000..76faa59 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/wait_type.html @@ -0,0 +1,73 @@ + + + +posix::basic_stream_descriptor::wait_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from posix::descriptor_base. +

+

+ +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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some.html new file mode 100644 index 0000000..0365fd0 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some.html @@ -0,0 +1,52 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some/overload1.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some/overload1.html new file mode 100644 index 0000000..9115aee --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some/overload1.html @@ -0,0 +1,106 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some/overload2.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some/overload2.html new file mode 100644 index 0000000..1bf1470 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor/write_some/overload2.html @@ -0,0 +1,83 @@ + + + +posix::basic_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/3party/asio/doc/asio/reference/posix__basic_stream_descriptor__rebind_executor.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor__rebind_executor.html new file mode 100644 index 0000000..74c23bf --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor__rebind_executor.html @@ -0,0 +1,88 @@ + + + +posix::basic_stream_descriptor::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the descriptor type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The descriptor type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/posix/basic_stream_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__basic_stream_descriptor__rebind_executor/other.html b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor__rebind_executor/other.html new file mode 100644 index 0000000..05b8714 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__basic_stream_descriptor__rebind_executor/other.html @@ -0,0 +1,438 @@ + + + +posix::basic_stream_descriptor::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + descriptor type when rebound to the specified executor. +

+
typedef basic_stream_descriptor< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the descriptor type to another executor. +

+
+

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

+
+

+ basic_stream_descriptor [constructor] +

+
+

+ Construct a stream descriptor without opening it.

+ Construct a stream descriptor on an existing native descriptor. +

Move-construct a stream descriptor from another. +

Move-construct a basic_stream_descriptor from a + descriptor of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the descriptor. +

+
+

+ close +

+
+

+ Close the descriptor. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a basic_stream_descriptor from a descriptor of another executor + type. +

+
+

+ read_some +

+
+

+ Read some data from the descriptor. +

+
+

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

+
+

+ write_some +

+
+

+ Write some data to the descriptor. +

+
+

+ The posix::basic_stream_descriptor class + template provides asynchronous and blocking stream-oriented descriptor + functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+

+ Synchronous read_some and + write_some operations are + thread safe with respect to each other, if the underlying operating system + calls are also thread safe. This means that it is permitted to perform + concurrent calls to these synchronous operations on a single descriptor + object. Other synchronous operations, such as close, + are not thread safe. +

+
+ + Requirements +
+

+ Header: asio/posix/basic_stream_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__descriptor.html b/3party/asio/doc/asio/reference/posix__descriptor.html new file mode 100644 index 0000000..066edfb --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__descriptor.html @@ -0,0 +1,414 @@ + + + +posix::descriptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of posix::basic_descriptor. +

+
typedef basic_descriptor descriptor;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the descriptor type to another executor. +

+
+

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

+
+

+ basic_descriptor [constructor] +

+
+

+ Construct a descriptor without opening it.

Construct + a descriptor on an existing native descriptor.

Move-construct + a descriptor from another.

Move-construct a basic_descriptor + from a descriptor of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the descriptor. +

+
+

+ close +

+
+

+ Close the descriptor. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a basic_descriptor from a descriptor of another executor type. +

+
+

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

+
+

+ ~basic_descriptor [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+

+ The posix::basic_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/3party/asio/doc/asio/reference/posix__descriptor_base.html b/3party/asio/doc/asio/reference/posix__descriptor_base.html new file mode 100644 index 0000000..12ed767 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__descriptor_base.html @@ -0,0 +1,138 @@ + + + +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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Requirements +
+

+ Header: asio/posix/descriptor_base.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__descriptor_base/_descriptor_base.html b/3party/asio/doc/asio/reference/posix__descriptor_base/_descriptor_base.html new file mode 100644 index 0000000..ebde48c --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__descriptor_base/_descriptor_base.html @@ -0,0 +1,41 @@ + + + +posix::descriptor_base::~descriptor_base + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Protected + destructor to prevent deletion through this type. +

+
~descriptor_base();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/posix__descriptor_base/bytes_readable.html b/3party/asio/doc/asio/reference/posix__descriptor_base/bytes_readable.html new file mode 100644 index 0000000..fc40a5a --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__descriptor_base/bytes_readable.html @@ -0,0 +1,64 @@ + + + +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(my_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/3party/asio/doc/asio/reference/posix__descriptor_base/wait_type.html b/3party/asio/doc/asio/reference/posix__descriptor_base/wait_type.html new file mode 100644 index 0000000..679a151 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__descriptor_base/wait_type.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/posix__stream_descriptor.html b/3party/asio/doc/asio/reference/posix__stream_descriptor.html new file mode 100644 index 0000000..5f4ec95 --- /dev/null +++ b/3party/asio/doc/asio/reference/posix__stream_descriptor.html @@ -0,0 +1,437 @@ + + + +posix::stream_descriptor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of a stream-oriented descriptor. +

+
typedef basic_stream_descriptor stream_descriptor;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the descriptor type to another executor. +

+
+

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

+
+

+ basic_stream_descriptor [constructor] +

+
+

+ Construct a stream descriptor without opening it.

+ Construct a stream descriptor on an existing native descriptor. +

Move-construct a stream descriptor from another. +

Move-construct a basic_stream_descriptor from a descriptor + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the descriptor. +

+
+

+ close +

+
+

+ Close the descriptor. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a basic_stream_descriptor from a descriptor of another executor + type. +

+
+

+ read_some +

+
+

+ Read some data from the descriptor. +

+
+

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

+
+

+ write_some +

+
+

+ Write some data to the descriptor. +

+
+

+ The posix::basic_stream_descriptor class template + provides asynchronous and blocking stream-oriented descriptor functionality. +

+
+ + Thread Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+

+ Synchronous read_some and + write_some operations are + thread safe with respect to each other, if the underlying operating system + calls are also thread safe. This means that it is permitted to perform concurrent + calls to these synchronous operations on a single descriptor object. Other + synchronous operations, such as close, + are not thread safe. +

+
+ + Requirements +
+

+ Header: asio/posix/stream_descriptor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/post.html b/3party/asio/doc/asio/reference/post.html new file mode 100644 index 0000000..bf41d26 --- /dev/null +++ b/3party/asio/doc/asio/reference/post.html @@ -0,0 +1,74 @@ + + + +post + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+

+post +

+

+ +

+

+ Submits a completion token or function object for execution. +

+
template<
+    typename NullaryToken>
+DEDUCED post(
+    NullaryToken && token);
+  » more...
+
+template<
+    typename Executor,
+    typename NullaryToken = DEFAULT>
+DEDUCED post(
+    const Executor & ex,
+    NullaryToken && token = DEFAULT,
+    typename constraint< (execution::is_executor< Executor >::value &&can_require< Executor, execution::blocking_t::never_t >::value)||is_executor< Executor >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext,
+    typename NullaryToken = DEFAULT>
+DEDUCED post(
+    ExecutionContext & ctx,
+    NullaryToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/post.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/post/overload1.html b/3party/asio/doc/asio/reference/post/overload1.html new file mode 100644 index 0000000..80ab0d5 --- /dev/null +++ b/3party/asio/doc/asio/reference/post/overload1.html @@ -0,0 +1,137 @@ + + + +post (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Submits a completion token or function object for execution. +

+
template<
+    typename NullaryToken>
+DEDUCED post(
+    NullaryToken && 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(). +

+

+ The use of post(), + rather than defer, + indicates the caller's preference that the function object be eagerly queued + for execution. +

+
+ + Parameters +
+
+

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler. The + function signature of the completion handler must be: +

+
void handler();
+
+
+
+
+
+ + Return + Value +
+

+ This function returns async_initiate<NullaryToken, void()>(Init{}, token), + where Init is a function + object type defined as: +

+
class Init
+{
+public:
+  template <typename CompletionHandler>
+    void operator()(CompletionHandler&& completion_handler) const;
+};
+
+

+ The function call operator of Init: +

+
    +
  • +

    + Obtains the handler's associated executor object ex + of type Ex by performing +

    +
    auto ex = get_associated_executor(handler);
    +
    +
  • +
  • +

    + Obtains the handler's associated allocator object alloc + by performing +

    +
    auto alloc = get_associated_allocator(handler);
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is true, performs +

    +
    prefer(
    +    require(ex, execution::blocking.never),
    +    execution::relationship.fork,
    +    execution::allocator(alloc)
    +  ).execute(std::forward<CompletionHandler>(completion_handler));
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is false, performs +

    +
    ex.post(
    +    std::forward<CompletionHandler>(completion_handler),
    +    alloc);
    +
    +
  • +
+
+ + Completion + Signature +
+
void()
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/post/overload2.html b/3party/asio/doc/asio/reference/post/overload2.html new file mode 100644 index 0000000..115742e --- /dev/null +++ b/3party/asio/doc/asio/reference/post/overload2.html @@ -0,0 +1,175 @@ + + + +post (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Submits a completion token or function object for execution. +

+
template<
+    typename Executor,
+    typename NullaryToken = DEFAULT>
+DEDUCED post(
+    const Executor & ex,
+    NullaryToken && token = DEFAULT,
+    typename constraint< (execution::is_executor< Executor >::value &&can_require< Executor, execution::blocking_t::never_t >::value)||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(). +

+

+ The use of post(), + rather than defer, + indicates the caller's preference that the function object be eagerly queued + for execution. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The target executor. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler. The + function signature of the completion handler must be: +

+
void handler();
+
+
+
+
+
+ + Return + Value +
+

+ This function returns async_initiate<NullaryToken, void()>(Init{ex}, token), + where Init is a function + object type defined as: +

+
class Init
+{
+public:
+  using executor_type = Executor;
+  explicit Init(const Executor& ex) : ex_(ex) {}
+  executor_type get_executor() const noexcept { return ex_; }
+  template <typename CompletionHandler>
+    void operator()(CompletionHandler&& completion_handler) const;
+private:
+  Executor ex_; // exposition only
+};
+
+

+ The function call operator of Init: +

+
    +
  • +

    + Obtains the handler's associated executor object ex1 + of type Ex1 by performing +

    +
    auto ex1 = get_associated_executor(handler, ex);
    +
    +
  • +
  • +

    + Obtains the handler's associated allocator object alloc + by performing +

    +
    auto alloc = get_associated_allocator(handler);
    +
    +
  • +
  • +

    + If execution::is_executor<Ex1>::value is true, constructs a function + object f with a member + executor_ that is initialised + with prefer(ex1, execution::outstanding_work.tracked), + a member handler_ that + is a decay-copy of completion_handler, + and a function call operator that performs: +

    +
    auto a = get_associated_allocator(handler_);
    +prefer(executor_, execution::allocator(a)).execute(std::move(handler_));
    +
    +
  • +
  • +

    + If execution::is_executor<Ex1>::value is false, constructs a function + object f with a member + work_ that is initialised + with make_work_guard(ex1), a member handler_ + that is a decay-copy of completion_handler, + and a function call operator that performs: +

    +
    auto a = get_associated_allocator(handler_);
    +work_.get_executor().dispatch(std::move(handler_), a);
    +work_.reset();
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is true, performs +

    +
    prefer(
    +    require(ex, execution::blocking.never),
    +    execution::relationship.fork,
    +    execution::allocator(alloc)
    +  ).execute(std::move(f));
    +
    +
  • +
  • +

    + If execution::is_executor<Ex>::value is false, performs +

    +
    ex.post(std::move(f), alloc);
    +
    +
  • +
+
+ + Completion + Signature +
+
void()
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/post/overload3.html b/3party/asio/doc/asio/reference/post/overload3.html new file mode 100644 index 0000000..7476937 --- /dev/null +++ b/3party/asio/doc/asio/reference/post/overload3.html @@ -0,0 +1,84 @@ + + + +post (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Submits a completion token or function object for execution. +

+
template<
+    typename ExecutionContext,
+    typename NullaryToken = DEFAULT>
+DEDUCED post(
+    ExecutionContext & ctx,
+    NullaryToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ + Parameters +
+
+

+
+
ctx
+

+ An execution context, from which the target executor is obtained. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler. The + function signature of the completion handler must be: +

+
void handler();
+
+
+
+
+
+ + Return + Value +
+

+ post(ctx.get_executor(), + forward<NullaryToken>(token)). +

+
+ + Completion + Signature +
+
void()
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/prefer.html b/3party/asio/doc/asio/reference/prefer.html new file mode 100644 index 0000000..3f784f0 --- /dev/null +++ b/3party/asio/doc/asio/reference/prefer.html @@ -0,0 +1,118 @@ + + + +prefer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+

+prefer +

+

+ +

+

+ A customisation point that attempts to apply a property to an object. +

+
constexpr unspecified prefer = unspecified;
+
+

+ The name prefer denotes a + customisation point object. The expression asio::prefer(E, + P0, Pn...) + for some subexpressions E + and P0, and where Pn... represents + N subexpressions (where + N is 0 or more, and with + types T = + decay_t<decltype(E)> + and Prop0 = + decay_t<decltype(P0)>) + is expression-equivalent to: +

+
    +
  • + If is_applicable_property_v<T, Prop0> && + Prop0::is_preferable is not a well-formed + constant expression with value true, + asio::prefer(E, P0, Pn...) + is ill-formed. +
  • +
  • + Otherwise, E if N == 0 and the expression Prop0::template static_query_v<T> == Prop0::value() is a well-formed constant expression + with value true. +
  • +
  • + Otherwise, (E).require(P0) if N + == 0 + and the expression (E).require(P0) is a valid expression. +
  • +
  • + Otherwise, require(E, P0) + if N == + 0 and the expression require(E, P0) + is a valid expression with overload resolution performed in a context + that does not include the declaration of the require + customization point object. +
  • +
  • + Otherwise, (E).prefer(P0) if N + == 0 + and the expression (E).prefer(P0) is a valid expression. +
  • +
  • + Otherwise, prefer(E, P0) + if N == + 0 and the expression prefer(E, P0) + is a valid expression with overload resolution performed in a context + that does not include the declaration of the prefer + customization point object. +
  • +
  • + Otherwise, E if N == 0. +
  • +
  • + Otherwise, asio::prefer(asio::prefer(E, P0), Pn...) + if N > + 0 and the expression asio::prefer(asio::prefer(E, P0), Pn...) + is a valid expression. +
  • +
  • + Otherwise, asio::prefer(E, P0, Pn...) + is ill-formed. +
  • +
+
+ + Requirements +
+

+ Header: asio/prefer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/prefer_result.html b/3party/asio/doc/asio/reference/prefer_result.html new file mode 100644 index 0000000..16c935a --- /dev/null +++ b/3party/asio/doc/asio/reference/prefer_result.html @@ -0,0 +1,95 @@ + + + +prefer_result + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines the result type of a prefer + expression. +

+
template<
+    typename T,
+    typename... Properties>
+struct prefer_result
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ The result of the prefer expression. +

+
+

+ Class template prefer_result + is a trait that determines the result type of the expression asio::prefer(std::declval<T>(), + std::declval<Properties>()...). +

+
+ + Requirements +
+

+ Header: asio/prefer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/prefer_result/type.html b/3party/asio/doc/asio/reference/prefer_result/type.html new file mode 100644 index 0000000..cc42913 --- /dev/null +++ b/3party/asio/doc/asio/reference/prefer_result/type.html @@ -0,0 +1,50 @@ + + + +prefer_result::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The result of the prefer expression. +

+
typedef automatically_determined type;
+
+
+ + Requirements +
+

+ Header: asio/prefer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/prepend.html b/3party/asio/doc/asio/reference/prepend.html new file mode 100644 index 0000000..8cbb3b3 --- /dev/null +++ b/3party/asio/doc/asio/reference/prepend.html @@ -0,0 +1,58 @@ + + + +prepend + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Completion token type used to specify that the completion handler arguments + should be passed additional values before the results of the operation. +

+
template<
+    typename CompletionToken,
+    typename... Values>
+constexpr prepend_t< typename decay< CompletionToken >::type, typename decay< Values >::type...> prepend(
+    CompletionToken && completion_token,
+    Values &&... values);
+
+
+ + Requirements +
+

+ Header: asio/prepend.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/prepend_t.html b/3party/asio/doc/asio/reference/prepend_t.html new file mode 100644 index 0000000..32afa2b --- /dev/null +++ b/3party/asio/doc/asio/reference/prepend_t.html @@ -0,0 +1,135 @@ + + + +prepend_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Completion token type used to specify that the completion handler arguments + should be passed additional values before the results of the operation. +

+
template<
+    typename CompletionToken,
+    typename... Values>
+class prepend_t
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ prepend_t + [constructor] +

+
+

+ Constructor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ token_ +

+
+
+

+ values_ +

+
+
+
+ + Requirements +
+

+ Header: asio/prepend.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/prepend_t/prepend_t.html b/3party/asio/doc/asio/reference/prepend_t/prepend_t.html new file mode 100644 index 0000000..dc10cb4 --- /dev/null +++ b/3party/asio/doc/asio/reference/prepend_t/prepend_t.html @@ -0,0 +1,45 @@ + + + +prepend_t::prepend_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
template<
+    typename T,
+    typename... V>
+constexpr prepend_t(
+    T && completion_token,
+    V &&... values);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/prepend_t/token_.html b/3party/asio/doc/asio/reference/prepend_t/token_.html new file mode 100644 index 0000000..beadd65 --- /dev/null +++ b/3party/asio/doc/asio/reference/prepend_t/token_.html @@ -0,0 +1,39 @@ + + + +prepend_t::token_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
CompletionToken token_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/prepend_t/values_.html b/3party/asio/doc/asio/reference/prepend_t/values_.html new file mode 100644 index 0000000..7db440f --- /dev/null +++ b/3party/asio/doc/asio/reference/prepend_t/values_.html @@ -0,0 +1,39 @@ + + + +prepend_t::values_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
std::tuple< Values...> values_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/query.html b/3party/asio/doc/asio/reference/query.html new file mode 100644 index 0000000..9695b1b --- /dev/null +++ b/3party/asio/doc/asio/reference/query.html @@ -0,0 +1,88 @@ + + + +query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+

+query +

+

+ +

+

+ A customisation point that queries the value of a property. +

+
constexpr unspecified query = unspecified;
+
+

+ The name query denotes a + customization point object. The expression asio::query(E, + P) + for some subexpressions E + and P (with types T = decay_t<decltype(E)> + and Prop = + decay_t<decltype(P)>) + is expression-equivalent to: +

+
    +
  • + If is_applicable_property_v<T, Prop> is not a well-formed constant expression + with value true, asio::query(E, P) + is ill-formed. +
  • +
  • + Otherwise, Prop::template static_query_v<T> if the expression Prop::template static_query_v<T> + is a well-formed constant expression. +
  • +
  • + Otherwise, (E).query(P) if the expression (E).query(P) + is well-formed. +
  • +
  • + Otherwise, query(E, P) + if the expression query(E, P) is a valid expression with overload + resolution performed in a context that does not include the declaration + of the query customization + point object. +
  • +
  • + Otherwise, asio::query(E, P) + is ill-formed. +
  • +
+
+ + Requirements +
+

+ Header: asio/query.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/query_result.html b/3party/asio/doc/asio/reference/query_result.html new file mode 100644 index 0000000..c241c59 --- /dev/null +++ b/3party/asio/doc/asio/reference/query_result.html @@ -0,0 +1,95 @@ + + + +query_result + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines the result type of a query + expression. +

+
template<
+    typename T,
+    typename Property>
+struct query_result
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ The result of the query expression. +

+
+

+ Class template query_result + is a trait that determines the result type of the expression asio::query(std::declval<T>(), + std::declval<Property>()). +

+
+ + Requirements +
+

+ Header: asio/query.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/query_result/type.html b/3party/asio/doc/asio/reference/query_result/type.html new file mode 100644 index 0000000..a061dfd --- /dev/null +++ b/3party/asio/doc/asio/reference/query_result/type.html @@ -0,0 +1,50 @@ + + + +query_result::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The result of the query expression. +

+
typedef automatically_determined type;
+
+
+ + Requirements +
+

+ Header: asio/query.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/random_access_file.html b/3party/asio/doc/asio/reference/random_access_file.html new file mode 100644 index 0000000..e35fac7 --- /dev/null +++ b/3party/asio/doc/asio/reference/random_access_file.html @@ -0,0 +1,543 @@ + + + +random_access_file + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of a random-access file. +

+
typedef basic_random_access_file random_access_file;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the file type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ flags +

+
+

+ A bitmask type (C++ Std [lib.bitmask.types]). +

+
+

+ native_handle_type +

+
+

+ The native representation of a file. +

+
+

+ seek_basis +

+
+

+ Basis for seeking in a file. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native file to the file. +

+
+

+ async_read_some_at +

+
+

+ Start an asynchronous read at the specified offset. +

+
+

+ async_write_some_at +

+
+

+ Start an asynchronous write at the specified offset. +

+
+

+ basic_random_access_file [constructor] +

+
+

+ Construct a basic_random_access_file without opening it.
+
Construct and open a basic_random_access_file.

+ Construct a basic_random_access_file on an existing native file. +

Move-construct a basic_random_access_file from another. +

Move-construct a basic_random_access_file from a + file of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the file. +

+
+

+ close +

+
+

+ Close the file. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the file is open. +

+
+

+ native_handle +

+
+

+ Get the native file representation. +

+
+

+ open +

+
+

+ Open the file using the specified path. +

+
+

+ operator= +

+
+

+ Move-assign a basic_random_access_file from another.

+ Move-assign a basic_random_access_file from a file of another executor + type. +

+
+

+ read_some_at +

+
+

+ Read some data from the handle at the specified offset. +

+
+

+ release +

+
+

+ Release ownership of the underlying native file. +

+
+

+ resize +

+
+

+ Alter the size of the file. +

+
+

+ size +

+
+

+ Get the size of the file. +

+
+

+ sync_all +

+
+

+ Synchronise the file to disk. +

+
+

+ sync_data +

+
+

+ Synchronise the file data to disk. +

+
+

+ write_some_at +

+
+

+ Write some data to the handle at the specified offset. +

+
+

+ ~basic_random_access_file [destructor] +

+
+

+ Destroys the file. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ append [static] +

+
+

+ Open the file in append mode. +

+
+

+ create [static] +

+
+

+ Create the file if it does not exist. +

+
+

+ exclusive [static] +

+
+

+ Ensure a new file is created. Must be combined with create. +

+
+

+ read_only [static] +

+
+

+ Open the file for reading. +

+
+

+ read_write [static] +

+
+

+ Open the file for reading and writing. +

+
+

+ sync_all_on_write [static] +

+
+

+ Open the file so that write operations automatically synchronise + the file data and metadata to disk. +

+
+

+ truncate [static] +

+
+

+ Open the file with any existing contents truncated. +

+
+

+ write_only [static] +

+
+

+ Open the file for writing. +

+
+

+ The basic_random_access_file class template + provides asynchronous and blocking random-access file functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+

+ Synchronous read_some_at + and write_some_at operations + are thread safe with respect to each other, if the underlying operating system + calls are also thread safe. This means that it is permitted to perform concurrent + calls to these synchronous operations on a single file object. Other synchronous + operations, such as open + or close, are not thread + safe. +

+
+ + Requirements +
+

+ Header: asio/random_access_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/read.html b/3party/asio/doc/asio/reference/read.html new file mode 100644 index 0000000..1931ee7 --- /dev/null +++ b/3party/asio/doc/asio/reference/read.html @@ -0,0 +1,222 @@ + + + +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 constraint< 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 constraint< 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 constraint< 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 constraint< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::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...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/read.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/read/overload1.html b/3party/asio/doc/asio/reference/read/overload1.html new file mode 100644 index 0000000..fd734a9 --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload1.html @@ -0,0 +1,128 @@ + + + +read (1 of 16 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 constraint< 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/3party/asio/doc/asio/reference/read/overload10.html b/3party/asio/doc/asio/reference/read/overload10.html new file mode 100644 index 0000000..bce03f2 --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload10.html @@ -0,0 +1,103 @@ + + + +read (10 of 16 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/3party/asio/doc/asio/reference/read/overload11.html b/3party/asio/doc/asio/reference/read/overload11.html new file mode 100644 index 0000000..03aded5 --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload11.html @@ -0,0 +1,122 @@ + + + +read (11 of 16 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/3party/asio/doc/asio/reference/read/overload12.html b/3party/asio/doc/asio/reference/read/overload12.html new file mode 100644 index 0000000..63ea19f --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload12.html @@ -0,0 +1,115 @@ + + + +read (12 of 16 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/3party/asio/doc/asio/reference/read/overload13.html b/3party/asio/doc/asio/reference/read/overload13.html new file mode 100644 index 0000000..93cfd24 --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload13.html @@ -0,0 +1,112 @@ + + + +read (13 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Attempt to read a certain amount of data from a stream before returning. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::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/3party/asio/doc/asio/reference/read/overload14.html b/3party/asio/doc/asio/reference/read/overload14.html new file mode 100644 index 0000000..eee423a --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload14.html @@ -0,0 +1,103 @@ + + + +read (14 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Attempt to read a certain amount of data from a stream before returning. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::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/3party/asio/doc/asio/reference/read/overload15.html b/3party/asio/doc/asio/reference/read/overload15.html new file mode 100644 index 0000000..031cd8e --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload15.html @@ -0,0 +1,123 @@ + + + +read (15 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Attempt to read a certain amount of data from a stream before returning. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::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/3party/asio/doc/asio/reference/read/overload16.html b/3party/asio/doc/asio/reference/read/overload16.html new file mode 100644 index 0000000..28c7ba1 --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload16.html @@ -0,0 +1,116 @@ + + + +read (16 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Attempt to read a certain amount of data from a stream before returning. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::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/3party/asio/doc/asio/reference/read/overload2.html b/3party/asio/doc/asio/reference/read/overload2.html new file mode 100644 index 0000000..6d4311d --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload2.html @@ -0,0 +1,120 @@ + + + +read (2 of 16 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 constraint< 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/3party/asio/doc/asio/reference/read/overload3.html b/3party/asio/doc/asio/reference/read/overload3.html new file mode 100644 index 0000000..b0ab268 --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload3.html @@ -0,0 +1,140 @@ + + + +read (3 of 16 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 constraint< 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/3party/asio/doc/asio/reference/read/overload4.html b/3party/asio/doc/asio/reference/read/overload4.html new file mode 100644 index 0000000..80dbe7a --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload4.html @@ -0,0 +1,118 @@ + + + +read (4 of 16 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 constraint< 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/3party/asio/doc/asio/reference/read/overload5.html b/3party/asio/doc/asio/reference/read/overload5.html new file mode 100644 index 0000000..7a94998 --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload5.html @@ -0,0 +1,113 @@ + + + +read (5 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Attempt to read a certain amount of data from a stream before returning. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::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/3party/asio/doc/asio/reference/read/overload6.html b/3party/asio/doc/asio/reference/read/overload6.html new file mode 100644 index 0000000..7acdb2e --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload6.html @@ -0,0 +1,104 @@ + + + +read (6 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Attempt to read a certain amount of data from a stream before returning. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::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/3party/asio/doc/asio/reference/read/overload7.html b/3party/asio/doc/asio/reference/read/overload7.html new file mode 100644 index 0000000..ef0b4d4 --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload7.html @@ -0,0 +1,124 @@ + + + +read (7 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Attempt to read a certain amount of data from a stream before returning. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::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/3party/asio/doc/asio/reference/read/overload8.html b/3party/asio/doc/asio/reference/read/overload8.html new file mode 100644 index 0000000..6d507f4 --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload8.html @@ -0,0 +1,117 @@ + + + +read (8 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Attempt to read a certain amount of data from a stream before returning. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition>
+std::size_t read(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::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/3party/asio/doc/asio/reference/read/overload9.html b/3party/asio/doc/asio/reference/read/overload9.html new file mode 100644 index 0000000..0dbf4c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/read/overload9.html @@ -0,0 +1,111 @@ + + + +read (9 of 16 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/3party/asio/doc/asio/reference/read_at.html b/3party/asio/doc/asio/reference/read_at.html new file mode 100644 index 0000000..7ae36b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_at.html @@ -0,0 +1,139 @@ + + + +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/3party/asio/doc/asio/reference/read_at/overload1.html b/3party/asio/doc/asio/reference/read_at/overload1.html new file mode 100644 index 0000000..bdeb1d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_at/overload1.html @@ -0,0 +1,134 @@ + + + +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/3party/asio/doc/asio/reference/read_at/overload2.html b/3party/asio/doc/asio/reference/read_at/overload2.html new file mode 100644 index 0000000..0f5acd6 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_at/overload2.html @@ -0,0 +1,127 @@ + + + +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/3party/asio/doc/asio/reference/read_at/overload3.html b/3party/asio/doc/asio/reference/read_at/overload3.html new file mode 100644 index 0000000..9ef8327 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_at/overload3.html @@ -0,0 +1,146 @@ + + + +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/3party/asio/doc/asio/reference/read_at/overload4.html b/3party/asio/doc/asio/reference/read_at/overload4.html new file mode 100644 index 0000000..a859f78 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_at/overload4.html @@ -0,0 +1,124 @@ + + + +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/3party/asio/doc/asio/reference/read_at/overload5.html b/3party/asio/doc/asio/reference/read_at/overload5.html new file mode 100644 index 0000000..5b1844d --- /dev/null +++ b/3party/asio/doc/asio/reference/read_at/overload5.html @@ -0,0 +1,113 @@ + + + +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/3party/asio/doc/asio/reference/read_at/overload6.html b/3party/asio/doc/asio/reference/read_at/overload6.html new file mode 100644 index 0000000..b5044c1 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_at/overload6.html @@ -0,0 +1,105 @@ + + + +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/3party/asio/doc/asio/reference/read_at/overload7.html b/3party/asio/doc/asio/reference/read_at/overload7.html new file mode 100644 index 0000000..e9b9ca3 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_at/overload7.html @@ -0,0 +1,124 @@ + + + +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/3party/asio/doc/asio/reference/read_at/overload8.html b/3party/asio/doc/asio/reference/read_at/overload8.html new file mode 100644 index 0000000..4d2cffd --- /dev/null +++ b/3party/asio/doc/asio/reference/read_at/overload8.html @@ -0,0 +1,117 @@ + + + +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/3party/asio/doc/asio/reference/read_until.html b/3party/asio/doc/asio/reference/read_until.html new file mode 100644 index 0000000..5d92713 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until.html @@ -0,0 +1,349 @@ + + + +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_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    char delim,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    char delim,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    string_view delim,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    string_view delim,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » 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_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    const boost::regex & expr,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    const boost::regex & expr,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+

+ Read data into a dynamic buffer sequence until a function object indicates + a match. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1,
+    typename MatchCondition>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    MatchCondition match_condition,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1,
+    typename MatchCondition>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    MatchCondition match_condition,
+    asio::error_code & ec,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::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 constraint< 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 constraint< is_match_condition< MatchCondition >::value >::type  = 0);
+  » more...
+
+

+ Read data into a dynamic buffer sequence until it contains a specified delimiter. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    char delim,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    char delim,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    string_view delim,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    string_view delim,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » 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_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    const boost::regex & expr,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    const boost::regex & expr,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+

+ Read data into a dynamic buffer sequence until a function object indicates + a match. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2,
+    typename MatchCondition>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    MatchCondition match_condition,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2,
+    typename MatchCondition>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    MatchCondition match_condition,
+    asio::error_code & ec,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/read_until.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/read_until/overload1.html b/3party/asio/doc/asio/reference/read_until/overload1.html new file mode 100644 index 0000000..3f69861 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload1.html @@ -0,0 +1,161 @@ + + + +read_until (1 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until it contains a specified + delimiter. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    char delim,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ 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::size_t 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/3party/asio/doc/asio/reference/read_until/overload10.html b/3party/asio/doc/asio/reference/read_until/overload10.html new file mode 100644 index 0000000..05c7358 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload10.html @@ -0,0 +1,109 @@ + + + +read_until (10 of 24 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/3party/asio/doc/asio/reference/read_until/overload11.html b/3party/asio/doc/asio/reference/read_until/overload11.html new file mode 100644 index 0000000..6a8a0ac --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload11.html @@ -0,0 +1,153 @@ + + + +read_until (11 of 24 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/3party/asio/doc/asio/reference/read_until/overload12.html b/3party/asio/doc/asio/reference/read_until/overload12.html new file mode 100644 index 0000000..3e926bc --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload12.html @@ -0,0 +1,109 @@ + + + +read_until (12 of 24 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/3party/asio/doc/asio/reference/read_until/overload13.html b/3party/asio/doc/asio/reference/read_until/overload13.html new file mode 100644 index 0000000..3bd73ae --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload13.html @@ -0,0 +1,155 @@ + + + +read_until (13 of 24 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/3party/asio/doc/asio/reference/read_until/overload14.html b/3party/asio/doc/asio/reference/read_until/overload14.html new file mode 100644 index 0000000..2a8d6d9 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload14.html @@ -0,0 +1,111 @@ + + + +read_until (14 of 24 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/3party/asio/doc/asio/reference/read_until/overload15.html b/3party/asio/doc/asio/reference/read_until/overload15.html new file mode 100644 index 0000000..30affa9 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload15.html @@ -0,0 +1,205 @@ + + + +read_until (15 of 24 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 constraint< 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/3party/asio/doc/asio/reference/read_until/overload16.html b/3party/asio/doc/asio/reference/read_until/overload16.html new file mode 100644 index 0000000..e5911a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload16.html @@ -0,0 +1,143 @@ + + + +read_until (16 of 24 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 constraint< 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/3party/asio/doc/asio/reference/read_until/overload17.html b/3party/asio/doc/asio/reference/read_until/overload17.html new file mode 100644 index 0000000..8f6d1b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload17.html @@ -0,0 +1,160 @@ + + + +read_until (17 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until it contains a specified + delimiter. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    char delim,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ 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::size_t 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/3party/asio/doc/asio/reference/read_until/overload18.html b/3party/asio/doc/asio/reference/read_until/overload18.html new file mode 100644 index 0000000..7161fd3 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload18.html @@ -0,0 +1,113 @@ + + + +read_until (18 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until it contains a specified + delimiter. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    char delim,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ 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/3party/asio/doc/asio/reference/read_until/overload19.html b/3party/asio/doc/asio/reference/read_until/overload19.html new file mode 100644 index 0000000..e95078e --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload19.html @@ -0,0 +1,147 @@ + + + +read_until (19 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until it contains a specified + delimiter. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    string_view delim,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ 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::size_t 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/3party/asio/doc/asio/reference/read_until/overload2.html b/3party/asio/doc/asio/reference/read_until/overload2.html new file mode 100644 index 0000000..e6b585c --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload2.html @@ -0,0 +1,114 @@ + + + +read_until (2 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until it contains a specified + delimiter. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    char delim,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ 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/3party/asio/doc/asio/reference/read_until/overload20.html b/3party/asio/doc/asio/reference/read_until/overload20.html new file mode 100644 index 0000000..4aab53e --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload20.html @@ -0,0 +1,113 @@ + + + +read_until (20 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until it contains a specified + delimiter. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    string_view delim,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ 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/3party/asio/doc/asio/reference/read_until/overload21.html b/3party/asio/doc/asio/reference/read_until/overload21.html new file mode 100644 index 0000000..611d2d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload21.html @@ -0,0 +1,161 @@ + + + +read_until (21 of 24 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_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    const boost::regex & expr,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ 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::size_t 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/3party/asio/doc/asio/reference/read_until/overload22.html b/3party/asio/doc/asio/reference/read_until/overload22.html new file mode 100644 index 0000000..f91e69e --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload22.html @@ -0,0 +1,115 @@ + + + +read_until (22 of 24 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_v2>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    const boost::regex & expr,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+
+

+ 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/3party/asio/doc/asio/reference/read_until/overload23.html b/3party/asio/doc/asio/reference/read_until/overload23.html new file mode 100644 index 0000000..2ec3aa4 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload23.html @@ -0,0 +1,208 @@ + + + +read_until (23 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until a function object indicates + a match. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2,
+    typename MatchCondition>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    MatchCondition match_condition,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::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_v2::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/3party/asio/doc/asio/reference/read_until/overload24.html b/3party/asio/doc/asio/reference/read_until/overload24.html new file mode 100644 index 0000000..3893613 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload24.html @@ -0,0 +1,145 @@ + + + +read_until (24 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until a function object indicates + a match. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v2,
+    typename MatchCondition>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v2 buffers,
+    MatchCondition match_condition,
+    asio::error_code & ec,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::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_v2::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/3party/asio/doc/asio/reference/read_until/overload3.html b/3party/asio/doc/asio/reference/read_until/overload3.html new file mode 100644 index 0000000..5bba536 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload3.html @@ -0,0 +1,148 @@ + + + +read_until (3 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until it contains a specified + delimiter. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    string_view delim,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ 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::size_t 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/3party/asio/doc/asio/reference/read_until/overload4.html b/3party/asio/doc/asio/reference/read_until/overload4.html new file mode 100644 index 0000000..a987f3d --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload4.html @@ -0,0 +1,114 @@ + + + +read_until (4 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until it contains a specified + delimiter. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    string_view delim,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ 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/3party/asio/doc/asio/reference/read_until/overload5.html b/3party/asio/doc/asio/reference/read_until/overload5.html new file mode 100644 index 0000000..c3ef7dc --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload5.html @@ -0,0 +1,162 @@ + + + +read_until (5 of 24 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_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    const boost::regex & expr,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ 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::size_t 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/3party/asio/doc/asio/reference/read_until/overload6.html b/3party/asio/doc/asio/reference/read_until/overload6.html new file mode 100644 index 0000000..6d689f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload6.html @@ -0,0 +1,116 @@ + + + +read_until (6 of 24 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_v1>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    const boost::regex & expr,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+
+

+ 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/3party/asio/doc/asio/reference/read_until/overload7.html b/3party/asio/doc/asio/reference/read_until/overload7.html new file mode 100644 index 0000000..5b8a677 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload7.html @@ -0,0 +1,209 @@ + + + +read_until (7 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until a function object indicates + a match. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1,
+    typename MatchCondition>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    MatchCondition match_condition,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::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_v1::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/3party/asio/doc/asio/reference/read_until/overload8.html b/3party/asio/doc/asio/reference/read_until/overload8.html new file mode 100644 index 0000000..777b0c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload8.html @@ -0,0 +1,146 @@ + + + +read_until (8 of 24 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Read data into a dynamic buffer sequence until a function object indicates + a match. +

+
template<
+    typename SyncReadStream,
+    typename DynamicBuffer_v1,
+    typename MatchCondition>
+std::size_t read_until(
+    SyncReadStream & s,
+    DynamicBuffer_v1 && buffers,
+    MatchCondition match_condition,
+    asio::error_code & ec,
+    typename constraint< is_match_condition< MatchCondition >::value >::type  = 0,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::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_v1::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/3party/asio/doc/asio/reference/read_until/overload9.html b/3party/asio/doc/asio/reference/read_until/overload9.html new file mode 100644 index 0000000..9f90785 --- /dev/null +++ b/3party/asio/doc/asio/reference/read_until/overload9.html @@ -0,0 +1,153 @@ + + + +read_until (9 of 24 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/3party/asio/doc/asio/reference/read_write_operations.html b/3party/asio/doc/asio/reference/read_write_operations.html new file mode 100644 index 0000000..1e3fbfd --- /dev/null +++ b/3party/asio/doc/asio/reference/read_write_operations.html @@ -0,0 +1,65 @@ + + + +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/3party/asio/doc/asio/reference/readable_pipe.html b/3party/asio/doc/asio/reference/readable_pipe.html new file mode 100644 index 0000000..9c1eaa1 --- /dev/null +++ b/3party/asio/doc/asio/reference/readable_pipe.html @@ -0,0 +1,326 @@ + + + +readable_pipe + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of a readable pipe. +

+
typedef basic_readable_pipe readable_pipe;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the pipe type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_readable_pipe is always the lowest layer. +

+
+

+ native_handle_type +

+
+

+ The native representation of a pipe. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native pipe to the pipe. +

+
+

+ async_read_some +

+
+

+ Start an asynchronous read. +

+
+

+ basic_readable_pipe [constructor] +

+
+

+ Construct a basic_readable_pipe without opening it.

+ Construct a basic_readable_pipe on an existing native pipe.
+
Move-construct a basic_readable_pipe from another.
+
Move-construct a basic_readable_pipe from a pipe of another + executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the pipe. +

+
+

+ close +

+
+

+ Close the pipe. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the pipe is open. +

+
+

+ lowest_layer +

+
+

+ Get a reference to the lowest layer.

Get a const + reference to the lowest layer. +

+
+

+ native_handle +

+
+

+ Get the native pipe representation. +

+
+

+ operator= +

+
+

+ Move-assign a basic_readable_pipe from another.

Move-assign + a basic_readable_pipe from a pipe of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the pipe. +

+
+

+ release +

+
+

+ Release ownership of the underlying native pipe. +

+
+

+ ~basic_readable_pipe [destructor] +

+
+

+ Destroys the pipe. +

+
+

+ The basic_readable_pipe + class provides a wrapper over pipe functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/readable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator.html b/3party/asio/doc/asio/reference/recycling_allocator.html new file mode 100644 index 0000000..bc10483 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator.html @@ -0,0 +1,193 @@ + + + +recycling_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ An allocator that caches memory blocks in thread-local storage for reuse. +

+
template<
+    typename T>
+class recycling_allocator
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind +

+
+

+ Rebind the allocator to another value_type. +

+
+

+ value_type +

+
+

+ The type of object allocated by the recycling allocator. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocate +

+
+

+ Allocate memory for the specified number of values. +

+
+

+ deallocate +

+
+

+ Deallocate memory for the specified number of values. +

+
+

+ operator!= +

+
+

+ Inequality operator. Always returns false. +

+
+

+ operator== +

+
+

+ Equality operator. Always returns true. +

+
+

+ recycling_allocator [constructor] +

+
+

+ Default constructor.

Converting constructor. +

+
+

+ The uses a simple strategy where a limited number of small memory blocks + are cached in thread-local storage, if the current thread is running an + io_context or is part of + a thread_pool. +

+
+ + Requirements +
+

+ Header: asio/recycling_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator/allocate.html b/3party/asio/doc/asio/reference/recycling_allocator/allocate.html new file mode 100644 index 0000000..c6d22f0 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator/allocate.html @@ -0,0 +1,42 @@ + + + +recycling_allocator::allocate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Allocate + memory for the specified number of values. +

+
T * allocate(
+    std::size_t n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator/deallocate.html b/3party/asio/doc/asio/reference/recycling_allocator/deallocate.html new file mode 100644 index 0000000..63a7e03 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator/deallocate.html @@ -0,0 +1,43 @@ + + + +recycling_allocator::deallocate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Deallocate + memory for the specified number of values. +

+
void deallocate(
+    T * p,
+    std::size_t n);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator/operator_eq__eq_.html b/3party/asio/doc/asio/reference/recycling_allocator/operator_eq__eq_.html new file mode 100644 index 0000000..c0872e9 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator/operator_eq__eq_.html @@ -0,0 +1,42 @@ + + + +recycling_allocator::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Equality + operator. Always returns true. +

+
constexpr bool operator==(
+    const recycling_allocator & ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator/operator_not__eq_.html b/3party/asio/doc/asio/reference/recycling_allocator/operator_not__eq_.html new file mode 100644 index 0000000..f7c0b4f --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator/operator_not__eq_.html @@ -0,0 +1,42 @@ + + + +recycling_allocator::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Inequality + operator. Always returns false. +

+
constexpr bool operator!=(
+    const recycling_allocator & ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator.html b/3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator.html new file mode 100644 index 0000000..bf800e0 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator.html @@ -0,0 +1,51 @@ + + + +recycling_allocator::recycling_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr recycling_allocator();
+  » more...
+
+

+ Converting constructor. +

+
template<
+    typename U>
+constexpr recycling_allocator(
+    const recycling_allocator< U > & );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator/overload1.html b/3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator/overload1.html new file mode 100644 index 0000000..2d727ce --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator/overload1.html @@ -0,0 +1,40 @@ + + + +recycling_allocator::recycling_allocator (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr recycling_allocator();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator/overload2.html b/3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator/overload2.html new file mode 100644 index 0000000..10f10b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator/recycling_allocator/overload2.html @@ -0,0 +1,43 @@ + + + +recycling_allocator::recycling_allocator (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Converting constructor. +

+
template<
+    typename U>
+constexpr recycling_allocator(
+    const recycling_allocator< U > & );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator/value_type.html b/3party/asio/doc/asio/reference/recycling_allocator/value_type.html new file mode 100644 index 0000000..e42dffc --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator/value_type.html @@ -0,0 +1,51 @@ + + + +recycling_allocator::value_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of object allocated by the recycling allocator. +

+
typedef T value_type;
+
+
+ + Requirements +
+

+ Header: asio/recycling_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator__rebind.html b/3party/asio/doc/asio/reference/recycling_allocator__rebind.html new file mode 100644 index 0000000..1be0bce --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator__rebind.html @@ -0,0 +1,88 @@ + + + +recycling_allocator::rebind + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebind the allocator to another value_type. +

+
template<
+    typename U>
+struct rebind
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The rebound allocator type. +

+
+
+ + Requirements +
+

+ Header: asio/recycling_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator__rebind/other.html b/3party/asio/doc/asio/reference/recycling_allocator__rebind/other.html new file mode 100644 index 0000000..425fcc3 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator__rebind/other.html @@ -0,0 +1,190 @@ + + + +recycling_allocator::rebind::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + rebound allocator type. +

+
typedef recycling_allocator< U > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind +

+
+

+ Rebind the allocator to another value_type. +

+
+

+ value_type +

+
+

+ The type of object allocated by the recycling allocator. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocate +

+
+

+ Allocate memory for the specified number of values. +

+
+

+ deallocate +

+
+

+ Deallocate memory for the specified number of values. +

+
+

+ operator!= +

+
+

+ Inequality operator. Always returns false. +

+
+

+ operator== +

+
+

+ Equality operator. Always returns true. +

+
+

+ recycling_allocator [constructor] +

+
+

+ Default constructor.

Converting constructor. +

+
+

+ The uses a simple strategy where a limited number of small memory blocks + are cached in thread-local storage, if the current thread is running an + io_context or is part of + a thread_pool. +

+
+ + Requirements +
+

+ Header: asio/recycling_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_.html b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_.html new file mode 100644 index 0000000..0480366 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_.html @@ -0,0 +1,169 @@ + + + +recycling_allocator< void > + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A proto-allocator that caches memory blocks in thread-local storage for reuse. +

+
template<>
+class recycling_allocator< void >
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ recycling_allocator< void >::rebind +

+
+

+ Rebind the allocator to another value_type. +

+
+

+ value_type +

+
+

+ No values are allocated by a proto-allocator. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Inequality operator. Always returns false. +

+
+

+ operator== +

+
+

+ Equality operator. Always returns true. +

+
+

+ recycling_allocator +

+
+

+ Default constructor.

Converting constructor. +

+
+

+ The uses a simple strategy where a limited number of small memory blocks + are cached in thread-local storage, if the current thread is running an + io_context or is part of + a thread_pool. +

+
+ + Requirements +
+

+ Header: asio/recycling_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/operator_eq__eq_.html b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/operator_eq__eq_.html new file mode 100644 index 0000000..befb348 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/operator_eq__eq_.html @@ -0,0 +1,42 @@ + + + +recycling_allocator< void >::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Equality operator. Always returns true. +

+
constexpr bool operator==(
+    const recycling_allocator & ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/operator_not__eq_.html b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/operator_not__eq_.html new file mode 100644 index 0000000..a0cca8d --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/operator_not__eq_.html @@ -0,0 +1,42 @@ + + + +recycling_allocator< void >::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Inequality operator. Always returns false. +

+
constexpr bool operator!=(
+    const recycling_allocator & ) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator.html b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator.html new file mode 100644 index 0000000..9a3d0a1 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator.html @@ -0,0 +1,51 @@ + + + +recycling_allocator< void >::recycling_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default constructor. +

+
constexpr recycling_allocator();
+  » more...
+
+

+ Converting constructor. +

+
template<
+    typename U>
+constexpr recycling_allocator(
+    const recycling_allocator< U > & );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload1.html b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload1.html new file mode 100644 index 0000000..19ed6d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload1.html @@ -0,0 +1,40 @@ + + + +recycling_allocator< void >::recycling_allocator (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr recycling_allocator();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload2.html b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload2.html new file mode 100644 index 0000000..f0ce09b --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload2.html @@ -0,0 +1,43 @@ + + + +recycling_allocator< void >::recycling_allocator (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Converting constructor. +

+
template<
+    typename U>
+constexpr recycling_allocator(
+    const recycling_allocator< U > & );
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/value_type.html b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/value_type.html new file mode 100644 index 0000000..af38464 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt_/value_type.html @@ -0,0 +1,51 @@ + + + +recycling_allocator< void >::value_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +No values are allocated by a proto-allocator. +

+
typedef void value_type;
+
+
+ + Requirements +
+

+ Header: asio/recycling_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt___rebind.html b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt___rebind.html new file mode 100644 index 0000000..1c9ce16 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt___rebind.html @@ -0,0 +1,89 @@ + + + +recycling_allocator< void >::rebind + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebind the allocator to another value_type. +

+
template<
+    typename U>
+struct recycling_allocator< void >::rebind
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The rebound allocator type. +

+
+
+ + Requirements +
+

+ Header: asio/recycling_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt___rebind/other.html b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt___rebind/other.html new file mode 100644 index 0000000..222a2b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/recycling_allocator_lt__void__gt___rebind/other.html @@ -0,0 +1,191 @@ + + + +recycling_allocator< void >::rebind::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The rebound allocator + type. +

+
typedef recycling_allocator< U > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind +

+
+

+ Rebind the allocator to another value_type. +

+
+

+ value_type +

+
+

+ The type of object allocated by the recycling allocator. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ allocate +

+
+

+ Allocate memory for the specified number of values. +

+
+

+ deallocate +

+
+

+ Deallocate memory for the specified number of values. +

+
+

+ operator!= +

+
+

+ Inequality operator. Always returns false. +

+
+

+ operator== +

+
+

+ Equality operator. Always returns true. +

+
+

+ recycling_allocator [constructor] +

+
+

+ Default constructor.

Converting constructor. +

+
+

+ The uses a simple strategy where a limited number of small memory blocks + are cached in thread-local storage, if the current thread is running an + io_context or is part of + a thread_pool. +

+
+ + Requirements +
+

+ Header: asio/recycling_allocator.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/redirect_error.html b/3party/asio/doc/asio/reference/redirect_error.html new file mode 100644 index 0000000..7dee5a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/redirect_error.html @@ -0,0 +1,57 @@ + + + +redirect_error + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Adapt 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/redirect_error.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/redirect_error_t.html b/3party/asio/doc/asio/reference/redirect_error_t.html new file mode 100644 index 0000000..9b83e26 --- /dev/null +++ b/3party/asio/doc/asio/reference/redirect_error_t.html @@ -0,0 +1,139 @@ + + + +redirect_error_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + adapter 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] +

+
+

+ Constructor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ ec_ +

+
+
+

+ token_ +

+
+
+

+ The 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/redirect_error.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/redirect_error_t/ec_.html b/3party/asio/doc/asio/reference/redirect_error_t/ec_.html new file mode 100644 index 0000000..728b84f --- /dev/null +++ b/3party/asio/doc/asio/reference/redirect_error_t/ec_.html @@ -0,0 +1,39 @@ + + + +redirect_error_t::ec_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
asio::error_code & ec_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/redirect_error_t/redirect_error_t.html b/3party/asio/doc/asio/reference/redirect_error_t/redirect_error_t.html new file mode 100644 index 0000000..976d24f --- /dev/null +++ b/3party/asio/doc/asio/reference/redirect_error_t/redirect_error_t.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/redirect_error_t/token_.html b/3party/asio/doc/asio/reference/redirect_error_t/token_.html new file mode 100644 index 0000000..ee8f288 --- /dev/null +++ b/3party/asio/doc/asio/reference/redirect_error_t/token_.html @@ -0,0 +1,39 @@ + + + +redirect_error_t::token_ + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
CompletionToken token_;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/register_buffers.html b/3party/asio/doc/asio/reference/register_buffers.html new file mode 100644 index 0000000..0899482 --- /dev/null +++ b/3party/asio/doc/asio/reference/register_buffers.html @@ -0,0 +1,90 @@ + + + +register_buffers + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Register buffers with an execution context. +

+
template<
+    typename Executor,
+    typename MutableBufferSequence>
+buffer_registration< MutableBufferSequence > register_buffers(
+    const Executor & ex,
+    const MutableBufferSequence & buffer_sequence,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+template<
+    typename Executor,
+    typename MutableBufferSequence,
+    typename Allocator>
+buffer_registration< MutableBufferSequence, Allocator > register_buffers(
+    const Executor & ex,
+    const MutableBufferSequence & buffer_sequence,
+    const Allocator & alloc,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext,
+    typename MutableBufferSequence>
+buffer_registration< MutableBufferSequence > register_buffers(
+    ExecutionContext & ctx,
+    const MutableBufferSequence & buffer_sequence,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+template<
+    typename ExecutionContext,
+    typename MutableBufferSequence,
+    typename Allocator>
+buffer_registration< MutableBufferSequence, Allocator > register_buffers(
+    ExecutionContext & ctx,
+    const MutableBufferSequence & buffer_sequence,
+    const Allocator & alloc,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/buffer_registration.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/register_buffers/overload1.html b/3party/asio/doc/asio/reference/register_buffers/overload1.html new file mode 100644 index 0000000..e7d294e --- /dev/null +++ b/3party/asio/doc/asio/reference/register_buffers/overload1.html @@ -0,0 +1,46 @@ + + + +register_buffers (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Register buffers with an execution context. +

+
template<
+    typename Executor,
+    typename MutableBufferSequence>
+buffer_registration< MutableBufferSequence > register_buffers(
+    const Executor & ex,
+    const MutableBufferSequence & buffer_sequence,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/register_buffers/overload2.html b/3party/asio/doc/asio/reference/register_buffers/overload2.html new file mode 100644 index 0000000..c88b458 --- /dev/null +++ b/3party/asio/doc/asio/reference/register_buffers/overload2.html @@ -0,0 +1,48 @@ + + + +register_buffers (2 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Register buffers with an execution context. +

+
template<
+    typename Executor,
+    typename MutableBufferSequence,
+    typename Allocator>
+buffer_registration< MutableBufferSequence, Allocator > register_buffers(
+    const Executor & ex,
+    const MutableBufferSequence & buffer_sequence,
+    const Allocator & alloc,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/register_buffers/overload3.html b/3party/asio/doc/asio/reference/register_buffers/overload3.html new file mode 100644 index 0000000..48f0e59 --- /dev/null +++ b/3party/asio/doc/asio/reference/register_buffers/overload3.html @@ -0,0 +1,46 @@ + + + +register_buffers (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Register buffers with an execution context. +

+
template<
+    typename ExecutionContext,
+    typename MutableBufferSequence>
+buffer_registration< MutableBufferSequence > register_buffers(
+    ExecutionContext & ctx,
+    const MutableBufferSequence & buffer_sequence,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/register_buffers/overload4.html b/3party/asio/doc/asio/reference/register_buffers/overload4.html new file mode 100644 index 0000000..239b1ad --- /dev/null +++ b/3party/asio/doc/asio/reference/register_buffers/overload4.html @@ -0,0 +1,48 @@ + + + +register_buffers (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Register buffers with an execution context. +

+
template<
+    typename ExecutionContext,
+    typename MutableBufferSequence,
+    typename Allocator>
+buffer_registration< MutableBufferSequence, Allocator > register_buffers(
+    ExecutionContext & ctx,
+    const MutableBufferSequence & buffer_sequence,
+    const Allocator & alloc,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/registered_buffer_id.html b/3party/asio/doc/asio/reference/registered_buffer_id.html new file mode 100644 index 0000000..6818c67 --- /dev/null +++ b/3party/asio/doc/asio/reference/registered_buffer_id.html @@ -0,0 +1,182 @@ + + + +registered_buffer_id + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Type used to identify a registered buffer. +

+
class registered_buffer_id
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ native_handle_type +

+
+

+ The native buffer identifier type. +

+
+
+ + Member Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ native_handle +

+
+

+ Get the native buffer identifier type. +

+
+

+ registered_buffer_id [constructor] +

+
+

+ Default constructor creates an invalid registered buffer identifier. +

+
+
+ + Friends +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ operator!= +

+
+

+ Compare two IDs for equality. +

+
+

+ operator== +

+
+

+ Compare two IDs for equality. +

+
+
+ + Requirements +
+

+ Header: asio/registered_buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/registered_buffer_id/native_handle.html b/3party/asio/doc/asio/reference/registered_buffer_id/native_handle.html new file mode 100644 index 0000000..1b9fdf0 --- /dev/null +++ b/3party/asio/doc/asio/reference/registered_buffer_id/native_handle.html @@ -0,0 +1,41 @@ + + + +registered_buffer_id::native_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the native buffer identifier type. +

+
native_handle_type native_handle() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/registered_buffer_id/native_handle_type.html b/3party/asio/doc/asio/reference/registered_buffer_id/native_handle_type.html new file mode 100644 index 0000000..2623a65 --- /dev/null +++ b/3party/asio/doc/asio/reference/registered_buffer_id/native_handle_type.html @@ -0,0 +1,51 @@ + + + +registered_buffer_id::native_handle_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + native buffer identifier type. +

+
typedef int native_handle_type;
+
+
+ + Requirements +
+

+ Header: asio/registered_buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/registered_buffer_id/operator_eq__eq_.html b/3party/asio/doc/asio/reference/registered_buffer_id/operator_eq__eq_.html new file mode 100644 index 0000000..f491aaa --- /dev/null +++ b/3party/asio/doc/asio/reference/registered_buffer_id/operator_eq__eq_.html @@ -0,0 +1,53 @@ + + + +registered_buffer_id::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + two IDs for equality. +

+
friend bool operator==(
+    const registered_buffer_id & lhs,
+    const registered_buffer_id & rhs);
+
+
+ + Requirements +
+

+ Header: asio/registered_buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/registered_buffer_id/operator_not__eq_.html b/3party/asio/doc/asio/reference/registered_buffer_id/operator_not__eq_.html new file mode 100644 index 0000000..25ffa1a --- /dev/null +++ b/3party/asio/doc/asio/reference/registered_buffer_id/operator_not__eq_.html @@ -0,0 +1,53 @@ + + + +registered_buffer_id::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + two IDs for equality. +

+
friend bool operator!=(
+    const registered_buffer_id & lhs,
+    const registered_buffer_id & rhs);
+
+
+ + Requirements +
+

+ Header: asio/registered_buffer.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/registered_buffer_id/registered_buffer_id.html b/3party/asio/doc/asio/reference/registered_buffer_id/registered_buffer_id.html new file mode 100644 index 0000000..10992d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/registered_buffer_id/registered_buffer_id.html @@ -0,0 +1,41 @@ + + + +registered_buffer_id::registered_buffer_id + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor creates an invalid registered buffer identifier. +

+
registered_buffer_id();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/require.html b/3party/asio/doc/asio/reference/require.html new file mode 100644 index 0000000..e95c1fe --- /dev/null +++ b/3party/asio/doc/asio/reference/require.html @@ -0,0 +1,102 @@ + + + +require + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A customisation point that applies a concept-preserving property to an object. +

+
constexpr unspecified require = unspecified;
+
+

+ The name require denotes + a customisation point object. The expression asio::require(E, + P0, Pn...) + for some subexpressions E + and P0, and where Pn... represents + N subexpressions (where + N is 0 or more, and with + types T = + decay_t<decltype(E)> + and Prop0 = + decay_t<decltype(P0)>) + is expression-equivalent to: +

+
    +
  • + If is_applicable_property_v<T, Prop0> && + Prop0::is_requirable is not a well-formed + constant expression with value true, + asio::require(E, P0, Pn...) + is ill-formed. +
  • +
  • + Otherwise, E if N == 0 and the expression Prop0::template static_query_v<T> == Prop0::value() is a well-formed constant expression + with value true. +
  • +
  • + Otherwise, (E).require(P0) if N + == 0 + and the expression (E).require(P0) is a valid expression. +
  • +
  • + Otherwise, require(E, P0) + if N == + 0 and the expression require(E, P0) + is a valid expression with overload resolution performed in a context + that does not include the declaration of the require + customization point object. +
  • +
  • + Otherwise, asio::require(asio::require(E, P0), Pn...) + if N > + 0 and the expression asio::require(asio::require(E, P0), Pn...) + is a valid expression. +
  • +
  • + Otherwise, asio::require(E, P0, Pn...) + is ill-formed. +
  • +
+
+ + Requirements +
+

+ Header: asio/require.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/require_concept.html b/3party/asio/doc/asio/reference/require_concept.html new file mode 100644 index 0000000..88cba77 --- /dev/null +++ b/3party/asio/doc/asio/reference/require_concept.html @@ -0,0 +1,90 @@ + + + +require_concept + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A customisation point that applies a concept-enforcing property to an object. +

+
constexpr unspecified require_concept = unspecified;
+
+

+ The name require_concept + denotes a customization point object. The expression asio::require_concept(E, + P) + for some subexpressions E + and P (with types T = decay_t<decltype(E)> + and Prop = + decay_t<decltype(P)>) + is expression-equivalent to: +

+
    +
  • + If is_applicable_property_v<T, Prop> && + Prop::is_requirable_concept is not a well-formed + constant expression with value true, + asio::require_concept(E, P) + is ill-formed. +
  • +
  • + Otherwise, E if the expression + Prop::template static_query_v<T> == Prop::value() + is a well-formed constant expression with value true. +
  • +
  • + Otherwise, (E).require_concept(P) if the expression (E).require_concept(P) + is well-formed. +
  • +
  • + Otherwise, require_concept(E, P) if the expression require_concept(E, P) is a valid expression with overload + resolution performed in a context that does not include the declaration + of the require_concept + customization point object. +
  • +
  • + Otherwise, asio::require_concept(E, P) + is ill-formed. +
  • +
+
+ + Requirements +
+

+ Header: asio/require_concept.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/require_concept_result.html b/3party/asio/doc/asio/reference/require_concept_result.html new file mode 100644 index 0000000..fa0e80e --- /dev/null +++ b/3party/asio/doc/asio/reference/require_concept_result.html @@ -0,0 +1,95 @@ + + + +require_concept_result + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines the result type of a require_concept + expression. +

+
template<
+    typename T,
+    typename Property>
+struct require_concept_result
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ The result of the require_concept expression. +

+
+

+ Class template require_concept_result + is a trait that determines the result type of the expression asio::require_concept(std::declval<T>(), + std::declval<Property>()). +

+
+ + Requirements +
+

+ Header: asio/require_concept.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/require_concept_result/type.html b/3party/asio/doc/asio/reference/require_concept_result/type.html new file mode 100644 index 0000000..decdf26 --- /dev/null +++ b/3party/asio/doc/asio/reference/require_concept_result/type.html @@ -0,0 +1,52 @@ + + + +require_concept_result::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + result of the require_concept + expression. +

+
typedef automatically_determined type;
+
+
+ + Requirements +
+

+ Header: asio/require_concept.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/require_result.html b/3party/asio/doc/asio/reference/require_result.html new file mode 100644 index 0000000..3de0c53 --- /dev/null +++ b/3party/asio/doc/asio/reference/require_result.html @@ -0,0 +1,95 @@ + + + +require_result + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A type trait that determines the result type of a require + expression. +

+
template<
+    typename T,
+    typename... Properties>
+struct require_result
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ type +

+
+

+ The result of the require expression. +

+
+

+ Class template require_result + is a trait that determines the result type of the expression asio::require(std::declval<T>(), + std::declval<Properties>()...). +

+
+ + Requirements +
+

+ Header: asio/require.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/require_result/type.html b/3party/asio/doc/asio/reference/require_result/type.html new file mode 100644 index 0000000..4afcd60 --- /dev/null +++ b/3party/asio/doc/asio/reference/require_result/type.html @@ -0,0 +1,51 @@ + + + +require_result::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The result of the + require expression. +

+
typedef automatically_determined type;
+
+
+ + Requirements +
+

+ Header: asio/require.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/resolver_errc__try_again.html b/3party/asio/doc/asio/reference/resolver_errc__try_again.html new file mode 100644 index 0000000..0ec2120 --- /dev/null +++ b/3party/asio/doc/asio/reference/resolver_errc__try_again.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/serial_port.html b/3party/asio/doc/asio/reference/serial_port.html new file mode 100644 index 0000000..1706c19 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port.html @@ -0,0 +1,387 @@ + + + +serial_port + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of a serial port. +

+
typedef basic_serial_port serial_port;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the serial port type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_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. +

+
+

+ basic_serial_port [constructor] +

+
+

+ Construct a basic_serial_port without opening it.

+ Construct and open a basic_serial_port.

Construct + a basic_serial_port on an existing native serial port.
+
Move-construct a basic_serial_port from another.
+
Move-construct a basic_serial_port from a serial port of + another executor type. +

+
+

+ 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_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 basic_serial_port from another.

Move-assign + a basic_serial_port from a serial port of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the serial port. +

+
+

+ send_break +

+
+

+ Send a break sequence to the serial port. +

+
+

+ set_option +

+
+

+ Set an option on the serial port. +

+
+

+ write_some +

+
+

+ Write some data to the serial port. +

+
+

+ ~basic_serial_port [destructor] +

+
+

+ Destroys the serial port. +

+
+

+ The basic_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/3party/asio/doc/asio/reference/serial_port_base.html b/3party/asio/doc/asio/reference/serial_port_base.html new file mode 100644 index 0000000..1636eff --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base.html @@ -0,0 +1,173 @@ + + + +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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Requirements +
+

+ Header: asio/serial_port_base.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base/_serial_port_base.html b/3party/asio/doc/asio/reference/serial_port_base/_serial_port_base.html new file mode 100644 index 0000000..ce751ec --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base/_serial_port_base.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/serial_port_base__baud_rate.html b/3party/asio/doc/asio/reference/serial_port_base__baud_rate.html new file mode 100644 index 0000000..bf313b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__baud_rate.html @@ -0,0 +1,116 @@ + + + +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 [constructor] +

+
+
+

+ 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/3party/asio/doc/asio/reference/serial_port_base__baud_rate/baud_rate.html b/3party/asio/doc/asio/reference/serial_port_base__baud_rate/baud_rate.html new file mode 100644 index 0000000..26c8842 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__baud_rate/baud_rate.html @@ -0,0 +1,40 @@ + + + +serial_port_base::baud_rate::baud_rate + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
baud_rate(
+    unsigned int rate = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__baud_rate/load.html b/3party/asio/doc/asio/reference/serial_port_base__baud_rate/load.html new file mode 100644 index 0000000..b1e1e89 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__baud_rate/load.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/serial_port_base__baud_rate/store.html b/3party/asio/doc/asio/reference/serial_port_base__baud_rate/store.html new file mode 100644 index 0000000..754d1ce --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__baud_rate/store.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/serial_port_base__baud_rate/value.html b/3party/asio/doc/asio/reference/serial_port_base__baud_rate/value.html new file mode 100644 index 0000000..7febcfa --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__baud_rate/value.html @@ -0,0 +1,39 @@ + + + +serial_port_base::baud_rate::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
unsigned int value() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__character_size.html b/3party/asio/doc/asio/reference/serial_port_base__character_size.html new file mode 100644 index 0000000..1ce16fb --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__character_size.html @@ -0,0 +1,116 @@ + + + +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 [constructor] +

+
+
+

+ 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/3party/asio/doc/asio/reference/serial_port_base__character_size/character_size.html b/3party/asio/doc/asio/reference/serial_port_base__character_size/character_size.html new file mode 100644 index 0000000..1307b55 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__character_size/character_size.html @@ -0,0 +1,40 @@ + + + +serial_port_base::character_size::character_size + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
character_size(
+    unsigned int t = 8);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__character_size/load.html b/3party/asio/doc/asio/reference/serial_port_base__character_size/load.html new file mode 100644 index 0000000..0d3fabb --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__character_size/load.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/serial_port_base__character_size/store.html b/3party/asio/doc/asio/reference/serial_port_base__character_size/store.html new file mode 100644 index 0000000..1d75b7d --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__character_size/store.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/serial_port_base__character_size/value.html b/3party/asio/doc/asio/reference/serial_port_base__character_size/value.html new file mode 100644 index 0000000..784676b --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__character_size/value.html @@ -0,0 +1,39 @@ + + + +serial_port_base::character_size::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
unsigned int value() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__flow_control.html b/3party/asio/doc/asio/reference/serial_port_base__flow_control.html new file mode 100644 index 0000000..2a5e52d --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__flow_control.html @@ -0,0 +1,147 @@ + + + +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 [constructor] +

+
+
+

+ 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/3party/asio/doc/asio/reference/serial_port_base__flow_control/flow_control.html b/3party/asio/doc/asio/reference/serial_port_base__flow_control/flow_control.html new file mode 100644 index 0000000..e8bbe04 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__flow_control/flow_control.html @@ -0,0 +1,40 @@ + + + +serial_port_base::flow_control::flow_control + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
flow_control(
+    type t = none);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__flow_control/load.html b/3party/asio/doc/asio/reference/serial_port_base__flow_control/load.html new file mode 100644 index 0000000..0a64e16 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__flow_control/load.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/serial_port_base__flow_control/store.html b/3party/asio/doc/asio/reference/serial_port_base__flow_control/store.html new file mode 100644 index 0000000..620da3d --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__flow_control/store.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/serial_port_base__flow_control/type.html b/3party/asio/doc/asio/reference/serial_port_base__flow_control/type.html new file mode 100644 index 0000000..8e94116 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__flow_control/type.html @@ -0,0 +1,59 @@ + + + +serial_port_base::flow_control::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ + enum + type +

+

+ + + +

+
+ + Values +
+
+

+
+
none
+
+
software
+
+
hardware
+
+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__flow_control/value.html b/3party/asio/doc/asio/reference/serial_port_base__flow_control/value.html new file mode 100644 index 0000000..238d4e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__flow_control/value.html @@ -0,0 +1,39 @@ + + + +serial_port_base::flow_control::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
type value() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__parity.html b/3party/asio/doc/asio/reference/serial_port_base__parity.html new file mode 100644 index 0000000..3a84a1c --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__parity.html @@ -0,0 +1,147 @@ + + + +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 [constructor] +

+
+
+

+ 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/3party/asio/doc/asio/reference/serial_port_base__parity/load.html b/3party/asio/doc/asio/reference/serial_port_base__parity/load.html new file mode 100644 index 0000000..b991d40 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__parity/load.html @@ -0,0 +1,41 @@ + + + +serial_port_base::parity::load + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
void load(
+    const ASIO_OPTION_STORAGE & storage,
+    asio::error_code & ec);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__parity/parity.html b/3party/asio/doc/asio/reference/serial_port_base__parity/parity.html new file mode 100644 index 0000000..546c00a --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__parity/parity.html @@ -0,0 +1,40 @@ + + + +serial_port_base::parity::parity + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
parity(
+    type t = none);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__parity/store.html b/3party/asio/doc/asio/reference/serial_port_base__parity/store.html new file mode 100644 index 0000000..89ddcd6 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__parity/store.html @@ -0,0 +1,41 @@ + + + +serial_port_base::parity::store + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
void store(
+    ASIO_OPTION_STORAGE & storage,
+    asio::error_code & ec) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__parity/type.html b/3party/asio/doc/asio/reference/serial_port_base__parity/type.html new file mode 100644 index 0000000..0b37ac1 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__parity/type.html @@ -0,0 +1,59 @@ + + + +serial_port_base::parity::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ + enum + type +

+

+ + + +

+
+ + Values +
+
+

+
+
none
+
+
odd
+
+
even
+
+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__parity/value.html b/3party/asio/doc/asio/reference/serial_port_base__parity/value.html new file mode 100644 index 0000000..c8a8581 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__parity/value.html @@ -0,0 +1,39 @@ + + + +serial_port_base::parity::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
type value() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__stop_bits.html b/3party/asio/doc/asio/reference/serial_port_base__stop_bits.html new file mode 100644 index 0000000..70a09bd --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__stop_bits.html @@ -0,0 +1,147 @@ + + + +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 [constructor] +

+
+
+

+ 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/3party/asio/doc/asio/reference/serial_port_base__stop_bits/load.html b/3party/asio/doc/asio/reference/serial_port_base__stop_bits/load.html new file mode 100644 index 0000000..3213dc3 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__stop_bits/load.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/serial_port_base__stop_bits/stop_bits.html b/3party/asio/doc/asio/reference/serial_port_base__stop_bits/stop_bits.html new file mode 100644 index 0000000..5052d39 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__stop_bits/stop_bits.html @@ -0,0 +1,40 @@ + + + +serial_port_base::stop_bits::stop_bits + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
stop_bits(
+    type t = one);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__stop_bits/store.html b/3party/asio/doc/asio/reference/serial_port_base__stop_bits/store.html new file mode 100644 index 0000000..91bab86 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__stop_bits/store.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/serial_port_base__stop_bits/type.html b/3party/asio/doc/asio/reference/serial_port_base__stop_bits/type.html new file mode 100644 index 0000000..20637ed --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__stop_bits/type.html @@ -0,0 +1,59 @@ + + + +serial_port_base::stop_bits::type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ + enum + type +

+

+ + + +

+
+ + Values +
+
+

+
+
one
+
+
onepointfive
+
+
two
+
+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/serial_port_base__stop_bits/value.html b/3party/asio/doc/asio/reference/serial_port_base__stop_bits/value.html new file mode 100644 index 0000000..3607599 --- /dev/null +++ b/3party/asio/doc/asio/reference/serial_port_base__stop_bits/value.html @@ -0,0 +1,39 @@ + + + +serial_port_base::stop_bits::value + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
type value() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/service_already_exists.html b/3party/asio/doc/asio/reference/service_already_exists.html new file mode 100644 index 0000000..c86486a --- /dev/null +++ b/3party/asio/doc/asio/reference/service_already_exists.html @@ -0,0 +1,83 @@ + + + +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 [constructor] +

+
+
+
+ + Requirements +
+

+ Header: asio/execution_context.hpp +

+

+ Convenience header: asio/execution.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/service_already_exists/service_already_exists.html b/3party/asio/doc/asio/reference/service_already_exists/service_already_exists.html new file mode 100644 index 0000000..ae024dc --- /dev/null +++ b/3party/asio/doc/asio/reference/service_already_exists/service_already_exists.html @@ -0,0 +1,39 @@ + + + +service_already_exists::service_already_exists + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
service_already_exists();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/signal_set.html b/3party/asio/doc/asio/reference/signal_set.html new file mode 100644 index 0000000..0c8030d --- /dev/null +++ b/3party/asio/doc/asio/reference/signal_set.html @@ -0,0 +1,333 @@ + + + +signal_set + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of a signal set. +

+
typedef basic_signal_set signal_set;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the signal set type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ flags +

+
+

+ Enumeration representing the different types of flags that may + specified when adding a signal to a set. +

+
+

+ flags_t +

+
+

+ Portability typedef. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ add +

+
+

+ Add a signal to a signal_set.

Add a signal to a signal_set + with the specified flags. +

+
+

+ async_wait +

+
+

+ Start an asynchronous operation to wait for a signal to be delivered. +

+
+

+ basic_signal_set [constructor] +

+
+

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

+
+

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

+
+

+ remove +

+
+

+ Remove a signal from a signal_set. +

+
+

+ ~basic_signal_set [destructor] +

+
+

+ Destroys the signal set. +

+
+

+ The basic_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(my_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/3party/asio/doc/asio/reference/signal_set_base.html b/3party/asio/doc/asio/reference/signal_set_base.html new file mode 100644 index 0000000..2cbb2b3 --- /dev/null +++ b/3party/asio/doc/asio/reference/signal_set_base.html @@ -0,0 +1,138 @@ + + + +signal_set_base + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ The signal_set_base + class is used as a base for the basic_signal_set class templates + so that we have a common place to define the flags enum. +

+
class signal_set_base
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ flags +

+
+

+ Enumeration representing the different types of flags that may + specified when adding a signal to a set. +

+
+

+ flags_t +

+
+

+ Portability typedef. +

+
+
+ + Protected + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ ~signal_set_base [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Requirements +
+

+ Header: asio/signal_set_base.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/signal_set_base/_signal_set_base.html b/3party/asio/doc/asio/reference/signal_set_base/_signal_set_base.html new file mode 100644 index 0000000..29143af --- /dev/null +++ b/3party/asio/doc/asio/reference/signal_set_base/_signal_set_base.html @@ -0,0 +1,41 @@ + + + +signal_set_base::~signal_set_base + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Protected + destructor to prevent deletion through this type. +

+
~signal_set_base();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/signal_set_base/flags.html b/3party/asio/doc/asio/reference/signal_set_base/flags.html new file mode 100644 index 0000000..89f1be7 --- /dev/null +++ b/3party/asio/doc/asio/reference/signal_set_base/flags.html @@ -0,0 +1,84 @@ + + + +signal_set_base::flags + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Enumeration representing + the different types of flags that may specified when adding a signal to + a set. +

+
enum flags
+
+

+ + + + + +

+
+ + Values +
+
+

+
+
none
+

+ Bitmask representing no flags. +

+
restart
+

+ Affects the behaviour of interruptible functions such that, if the + function would have failed with error::interrupted when interrupted + by the specified signal, the function shall instead be restarted + and not fail with error::interrupted. +

+
no_child_stop
+

+ Do not generate SIGCHLD when child processes stop or stopped child + processes continue. +

+
no_child_wait
+

+ Do not transform child processes into zombies when they terminate. +

+
dont_care
+

+ Special value to indicate that the signal registration does not care + which flags are set, and so will not conflict with any prior registrations + of the same signal. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/signal_set_base/flags_t.html b/3party/asio/doc/asio/reference/signal_set_base/flags_t.html new file mode 100644 index 0000000..45d2cb1 --- /dev/null +++ b/3party/asio/doc/asio/reference/signal_set_base/flags_t.html @@ -0,0 +1,51 @@ + + + +signal_set_base::flags_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Portability + typedef. +

+
typedef flags flags_t;
+
+
+ + Requirements +
+

+ Header: asio/signal_set_base.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/socket_base.html b/3party/asio/doc/asio/reference/socket_base.html new file mode 100644 index 0000000..50f2f8c --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base.html @@ -0,0 +1,406 @@ + + + +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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ max_connections [static] +

+
+

+ (Deprecated: Use max_listen_connections.) The maximum length of + the queue of pending incoming connections. +

+
+

+ max_listen_connections [static] +

+
+

+ The maximum length of the queue of pending incoming connections. +

+
+

+ message_do_not_route [static] +

+
+

+ Specify that the data should not be subject to routing. +

+
+

+ message_end_of_record [static] +

+
+

+ Specifies that the data marks the end of a record. +

+
+

+ message_out_of_band [static] +

+
+

+ Process out-of-band data. +

+
+

+ message_peek [static] +

+
+

+ 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/3party/asio/doc/asio/reference/socket_base/_socket_base.html b/3party/asio/doc/asio/reference/socket_base/_socket_base.html new file mode 100644 index 0000000..eb10c0e --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/_socket_base.html @@ -0,0 +1,41 @@ + + + +socket_base::~socket_base + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Protected + destructor to prevent deletion through this type. +

+
~socket_base();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/socket_base/broadcast.html b/3party/asio/doc/asio/reference/socket_base/broadcast.html new file mode 100644 index 0000000..ea4ddab --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/broadcast.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::socket_base::broadcast option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/socket_base/bytes_readable.html b/3party/asio/doc/asio/reference/socket_base/bytes_readable.html new file mode 100644 index 0000000..f41ded9 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/bytes_readable.html @@ -0,0 +1,64 @@ + + + +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(my_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/3party/asio/doc/asio/reference/socket_base/debug.html b/3party/asio/doc/asio/reference/socket_base/debug.html new file mode 100644 index 0000000..a11fa9f --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/debug.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::socket_base::debug option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/socket_base/do_not_route.html b/3party/asio/doc/asio/reference/socket_base/do_not_route.html new file mode 100644 index 0000000..2b8db37 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/do_not_route.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::socket_base::do_not_route option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::udp::socket socket(my_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/3party/asio/doc/asio/reference/socket_base/enable_connection_aborted.html b/3party/asio/doc/asio/reference/socket_base/enable_connection_aborted.html new file mode 100644 index 0000000..a3d9b29 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/enable_connection_aborted.html @@ -0,0 +1,77 @@ + + + +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(my_context);
+...
+asio::socket_base::enable_connection_aborted option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/socket_base/keep_alive.html b/3party/asio/doc/asio/reference/socket_base/keep_alive.html new file mode 100644 index 0000000..fc44bcb --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/keep_alive.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::socket_base::keep_alive option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/socket_base/linger.html b/3party/asio/doc/asio/reference/socket_base/linger.html new file mode 100644 index 0000000..1772c89 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/linger.html @@ -0,0 +1,76 @@ + + + +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(my_context);
+...
+asio::socket_base::linger option(true, 30);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/socket_base/max_connections.html b/3party/asio/doc/asio/reference/socket_base/max_connections.html new file mode 100644 index 0000000..dbd3307 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/max_connections.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/socket_base/max_listen_connections.html b/3party/asio/doc/asio/reference/socket_base/max_listen_connections.html new file mode 100644 index 0000000..a00d3f8 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/max_listen_connections.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/socket_base/message_do_not_route.html b/3party/asio/doc/asio/reference/socket_base/message_do_not_route.html new file mode 100644 index 0000000..4ba85ff --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/message_do_not_route.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/socket_base/message_end_of_record.html b/3party/asio/doc/asio/reference/socket_base/message_end_of_record.html new file mode 100644 index 0000000..a5b9f3c --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/message_end_of_record.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/socket_base/message_flags.html b/3party/asio/doc/asio/reference/socket_base/message_flags.html new file mode 100644 index 0000000..c8e9597 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/message_flags.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/socket_base/message_out_of_band.html b/3party/asio/doc/asio/reference/socket_base/message_out_of_band.html new file mode 100644 index 0000000..4a2dc43 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/message_out_of_band.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/socket_base/message_peek.html b/3party/asio/doc/asio/reference/socket_base/message_peek.html new file mode 100644 index 0000000..b58a895 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/message_peek.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/socket_base/out_of_band_inline.html b/3party/asio/doc/asio/reference/socket_base/out_of_band_inline.html new file mode 100644 index 0000000..82f1406 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/out_of_band_inline.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::socket_base::out_of_band_inline option(true);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/socket_base/receive_buffer_size.html b/3party/asio/doc/asio/reference/socket_base/receive_buffer_size.html new file mode 100644 index 0000000..f1736f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/receive_buffer_size.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/socket_base/receive_low_watermark.html b/3party/asio/doc/asio/reference/socket_base/receive_low_watermark.html new file mode 100644 index 0000000..0c21812 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/receive_low_watermark.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::socket_base::receive_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/socket_base/reuse_address.html b/3party/asio/doc/asio/reference/socket_base/reuse_address.html new file mode 100644 index 0000000..1c536df --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/reuse_address.html @@ -0,0 +1,76 @@ + + + +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(my_context);
+...
+asio::socket_base::reuse_address option(true);
+acceptor.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::acceptor acceptor(my_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/3party/asio/doc/asio/reference/socket_base/send_buffer_size.html b/3party/asio/doc/asio/reference/socket_base/send_buffer_size.html new file mode 100644 index 0000000..cc4e1fe --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/send_buffer_size.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::socket_base::send_buffer_size option(8192);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/socket_base/send_low_watermark.html b/3party/asio/doc/asio/reference/socket_base/send_low_watermark.html new file mode 100644 index 0000000..7f9e65a --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/send_low_watermark.html @@ -0,0 +1,75 @@ + + + +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(my_context);
+...
+asio::socket_base::send_low_watermark option(1024);
+socket.set_option(option);
+
+

+ Getting the current option value: +

+
asio::ip::tcp::socket socket(my_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/3party/asio/doc/asio/reference/socket_base/shutdown_type.html b/3party/asio/doc/asio/reference/socket_base/shutdown_type.html new file mode 100644 index 0000000..6b1be2e --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/shutdown_type.html @@ -0,0 +1,67 @@ + + + +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/3party/asio/doc/asio/reference/socket_base/wait_type.html b/3party/asio/doc/asio/reference/socket_base/wait_type.html new file mode 100644 index 0000000..8af3388 --- /dev/null +++ b/3party/asio/doc/asio/reference/socket_base/wait_type.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/spawn.html b/3party/asio/doc/asio/reference/spawn.html new file mode 100644 index 0000000..435c22e --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn.html @@ -0,0 +1,261 @@ + + + +spawn + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+

+spawn +

+

+ +

+

+ Start a new stackful coroutine. +

+

+ Start a new stackful coroutine that executes on a given executor. +

+
template<
+    typename Executor,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    const Executor & ex,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+

+ Start a new stackful coroutine that executes on a given execution context. +

+
template<
+    typename ExecutionContext,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    ExecutionContext & ctx,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Start a new stackful coroutine, inheriting the executor of another. +

+
template<
+    typename Executor,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    const basic_yield_context< Executor > & ctx,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+

+ Start a new stackful coroutine that executes on a given executor. +

+
template<
+    typename Executor,
+    typename StackAllocator,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    const Executor & ex,
+    allocator_arg_t ,
+    StackAllocator && stack_allocator,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+

+ Start a new stackful coroutine that executes on a given execution context. +

+
template<
+    typename ExecutionContext,
+    typename StackAllocator,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    ExecutionContext & ctx,
+    allocator_arg_t ,
+    StackAllocator && stack_allocator,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Start a new stackful coroutine, inheriting the executor of another. +

+
template<
+    typename Executor,
+    typename StackAllocator,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    const basic_yield_context< Executor > & ctx,
+    allocator_arg_t ,
+    StackAllocator && stack_allocator,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+

+ (Deprecated: Use overloads with a completion token.) 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 constraint< !is_executor< typename decay< Handler >::type >::value &&!execution::is_executor< typename decay< Handler >::type >::value &&!is_convertible< Handler &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ (Deprecated: Use overloads with a completion token.) Start a new stackful + coroutine, inheriting the execution context of another. +

+
template<
+    typename Executor,
+    typename Function>
+void spawn(
+    basic_yield_context< Executor > ctx,
+    Function && function,
+    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
+  » more...
+
+

+ (Deprecated: Use overloads with a completion token.) 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 constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+  » more...
+
+

+ (Deprecated: Use overloads with a completion token.) 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...
+
+

+ (Deprecated: Use overloads with a completion token.) 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...
+
+

+ (Deprecated: Use overloads with a completion token.) 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 constraint< 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, asio::detached);
+
+// ...
+
+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/3party/asio/doc/asio/reference/spawn/overload1.html b/3party/asio/doc/asio/reference/spawn/overload1.html new file mode 100644 index 0000000..bd15735 --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload1.html @@ -0,0 +1,108 @@ + + + +spawn (1 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start a new stackful coroutine that executes on a given executor. +

+
template<
+    typename Executor,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    const Executor & ex,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+

+ This function is used to launch a new stackful coroutine. +

+
+ + Parameters +
+
+

+
+
ex
+

+ Identifies the executor that will run the stackful coroutine. +

+
function
+
+

+ The coroutine function. The function must be callable the signature: +

+
void function(basic_yield_context<Executor> yield);
+
+
+
token
+

+ The completion + token that will handle the notification that the coroutine + has completed. If the return type R + of function is void, the function signature of the + completion handler must be: +

+
+
+
void handler(std::exception_ptr);
+
+

+ Otherwise, the function signature of the completion handler must be: +

+
void handler(std::exception_ptr, R);
+
+
+ + Completion + Signature +
+
void(std::exception_ptr, R)
+
+

+ where R is the return type + of the function object. +

+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call the basic_yield_context member function + reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/spawn/overload10.html b/3party/asio/doc/asio/reference/spawn/overload10.html new file mode 100644 index 0000000..2067778 --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload10.html @@ -0,0 +1,76 @@ + + + +spawn (10 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ (Deprecated: Use overloads with a completion token.) 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 constraint< is_executor< Executor >::value||execution::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 automatically given its own explicit 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/3party/asio/doc/asio/reference/spawn/overload11.html b/3party/asio/doc/asio/reference/spawn/overload11.html new file mode 100644 index 0000000..af2d5f6 --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload11.html @@ -0,0 +1,74 @@ + + + +spawn (11 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ (Deprecated: Use overloads with a completion token.) 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/3party/asio/doc/asio/reference/spawn/overload12.html b/3party/asio/doc/asio/reference/spawn/overload12.html new file mode 100644 index 0000000..1f5961d --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload12.html @@ -0,0 +1,75 @@ + + + +spawn (12 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ (Deprecated: Use overloads with a completion token.) 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/3party/asio/doc/asio/reference/spawn/overload13.html b/3party/asio/doc/asio/reference/spawn/overload13.html new file mode 100644 index 0000000..fd6842b --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload13.html @@ -0,0 +1,77 @@ + + + +spawn (13 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ (Deprecated: Use overloads with a completion token.) 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 constraint< 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/3party/asio/doc/asio/reference/spawn/overload2.html b/3party/asio/doc/asio/reference/spawn/overload2.html new file mode 100644 index 0000000..7921aa3 --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload2.html @@ -0,0 +1,108 @@ + + + +spawn (2 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start a new stackful coroutine that executes on a given execution context. +

+
template<
+    typename ExecutionContext,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    ExecutionContext & ctx,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This function is used to launch a new stackful coroutine. +

+
+ + Parameters +
+
+

+
+
ctx
+

+ Identifies the execution context that will run the stackful coroutine. +

+
function
+
+

+ The coroutine function. The function must be callable the signature: +

+
void function(basic_yield_context<Executor> yield);
+
+
+
token
+

+ The completion + token that will handle the notification that the coroutine + has completed. If the return type R + of function is void, the function signature of the + completion handler must be: +

+
+
+
void handler(std::exception_ptr);
+
+

+ Otherwise, the function signature of the completion handler must be: +

+
void handler(std::exception_ptr, R);
+
+
+ + Completion + Signature +
+
void(std::exception_ptr, R)
+
+

+ where R is the return type + of the function object. +

+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call the basic_yield_context member function + reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/spawn/overload3.html b/3party/asio/doc/asio/reference/spawn/overload3.html new file mode 100644 index 0000000..7ee669c --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload3.html @@ -0,0 +1,112 @@ + + + +spawn (3 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start a new stackful coroutine, inheriting the executor of another. +

+
template<
+    typename Executor,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    const basic_yield_context< Executor > & ctx,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+

+ This function is used to launch a new stackful coroutine. +

+
+ + Parameters +
+
+

+
+
ctx
+

+ Identifies the current coroutine as a parent of the new coroutine. + This specifies that the new coroutine should inherit the executor + 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 be callable the signature: +

+
void function(basic_yield_context<Executor> yield);
+
+
+
token
+

+ The completion + token that will handle the notification that the coroutine + has completed. If the return type R + of function is void, the function signature of the + completion handler must be: +

+
+
+
void handler(std::exception_ptr);
+
+

+ Otherwise, the function signature of the completion handler must be: +

+
void handler(std::exception_ptr, R);
+
+
+ + Completion + Signature +
+
void(std::exception_ptr, R)
+
+

+ where R is the return type + of the function object. +

+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call the basic_yield_context member function + reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/spawn/overload4.html b/3party/asio/doc/asio/reference/spawn/overload4.html new file mode 100644 index 0000000..0a773d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload4.html @@ -0,0 +1,118 @@ + + + +spawn (4 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start a new stackful coroutine that executes on a given executor. +

+
template<
+    typename Executor,
+    typename StackAllocator,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    const Executor & ex,
+    allocator_arg_t ,
+    StackAllocator && stack_allocator,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+

+ This function is used to launch a new stackful coroutine using the specified + stack allocator. +

+
+ + Parameters +
+
+

+
+
ex
+

+ Identifies the executor that will run the stackful coroutine. +

+
stack_allocator
+

+ Denotes the allocator to be used to allocate the underlying coroutine's + stack. The type must satisfy the stack-allocator concept defined + by the Boost.Context library. +

+
function
+
+

+ The coroutine function. The function must be callable the signature: +

+
void function(basic_yield_context<Executor> yield);
+
+
+
token
+

+ The completion + token that will handle the notification that the coroutine + has completed. If the return type R + of function is void, the function signature of the + completion handler must be: +

+
+
+
void handler(std::exception_ptr);
+
+

+ Otherwise, the function signature of the completion handler must be: +

+
void handler(std::exception_ptr, R);
+
+
+ + Completion + Signature +
+
void(std::exception_ptr, R)
+
+

+ where R is the return type + of the function object. +

+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call the basic_yield_context member function + reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/spawn/overload5.html b/3party/asio/doc/asio/reference/spawn/overload5.html new file mode 100644 index 0000000..cb3e345 --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload5.html @@ -0,0 +1,117 @@ + + + +spawn (5 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start a new stackful coroutine that executes on a given execution context. +

+
template<
+    typename ExecutionContext,
+    typename StackAllocator,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    ExecutionContext & ctx,
+    allocator_arg_t ,
+    StackAllocator && stack_allocator,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This function is used to launch a new stackful coroutine. +

+
+ + Parameters +
+
+

+
+
ctx
+

+ Identifies the execution context that will run the stackful coroutine. +

+
stack_allocator
+

+ Denotes the allocator to be used to allocate the underlying coroutine's + stack. The type must satisfy the stack-allocator concept defined + by the Boost.Context library. +

+
function
+
+

+ The coroutine function. The function must be callable the signature: +

+
void function(basic_yield_context<Executor> yield);
+
+
+
token
+

+ The completion + token that will handle the notification that the coroutine + has completed. If the return type R + of function is void, the function signature of the + completion handler must be: +

+
+
+
void handler(std::exception_ptr);
+
+

+ Otherwise, the function signature of the completion handler must be: +

+
void handler(std::exception_ptr, R);
+
+
+ + Completion + Signature +
+
void(std::exception_ptr, R)
+
+

+ where R is the return type + of the function object. +

+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call the basic_yield_context member function + reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/spawn/overload6.html b/3party/asio/doc/asio/reference/spawn/overload6.html new file mode 100644 index 0000000..42aae97 --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload6.html @@ -0,0 +1,122 @@ + + + +spawn (6 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start a new stackful coroutine, inheriting the executor of another. +

+
template<
+    typename Executor,
+    typename StackAllocator,
+    typename F,
+    typename CompletionToken = DEFAULT>
+DEDUCED spawn(
+    const basic_yield_context< Executor > & ctx,
+    allocator_arg_t ,
+    StackAllocator && stack_allocator,
+    F && function,
+    CompletionToken && token = DEFAULT,
+    typename constraint< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type  = 0);
+
+

+ This function is used to launch a new stackful coroutine using the specified + stack allocator. +

+
+ + Parameters +
+
+

+
+
ctx
+

+ Identifies the current coroutine as a parent of the new coroutine. + This specifies that the new coroutine should inherit the executor + 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. +

+
stack_allocator
+

+ Denotes the allocator to be used to allocate the underlying coroutine's + stack. The type must satisfy the stack-allocator concept defined + by the Boost.Context library. +

+
function
+
+

+ The coroutine function. The function must be callable the signature: +

+
void function(basic_yield_context<Executor> yield);
+
+
+
token
+

+ The completion + token that will handle the notification that the coroutine + has completed. If the return type R + of function is void, the function signature of the + completion handler must be: +

+
+
+
void handler(std::exception_ptr);
+
+

+ Otherwise, the function signature of the completion handler must be: +

+
void handler(std::exception_ptr, R);
+
+
+ + Completion + Signature +
+
void(std::exception_ptr, R)
+
+

+ where R is the return type + of the function object. +

+
+ + Per-Operation + Cancellation +
+

+ The new thread of execution is created with a cancellation state that supports + cancellation_type::terminal values only. To change the cancellation + state, call the basic_yield_context member function + reset_cancellation_state. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/spawn/overload7.html b/3party/asio/doc/asio/reference/spawn/overload7.html new file mode 100644 index 0000000..2804e64 --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload7.html @@ -0,0 +1,71 @@ + + + +spawn (7 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ (Deprecated: Use overloads with a completion token.) 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<Executor> yield);
+
+

+ where Executor is the associated executor type of Function. +

+
+
attributes
+

+ Boost.Coroutine attributes used to customise the coroutine. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/spawn/overload8.html b/3party/asio/doc/asio/reference/spawn/overload8.html new file mode 100644 index 0000000..23638da --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload8.html @@ -0,0 +1,84 @@ + + + +spawn (8 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ (Deprecated: Use overloads with a completion token.) 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 constraint< !is_executor< typename decay< Handler >::type >::value &&!execution::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<Executor> yield);
+
+

+ where Executor is the associated executor type of Handler. +

+
+
attributes
+

+ Boost.Coroutine attributes used to customise the coroutine. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/spawn/overload9.html b/3party/asio/doc/asio/reference/spawn/overload9.html new file mode 100644 index 0000000..fcbcf1a --- /dev/null +++ b/3party/asio/doc/asio/reference/spawn/overload9.html @@ -0,0 +1,78 @@ + + + +spawn (9 of 13 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ (Deprecated: Use overloads with a completion token.) Start a new stackful + coroutine, inheriting the execution context of another. +

+
template<
+    typename Executor,
+    typename Function>
+void spawn(
+    basic_yield_context< Executor > 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<Executor> yield);
+
+
+
attributes
+

+ Boost.Coroutine attributes used to customise the coroutine. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context.html b/3party/asio/doc/asio/reference/ssl__context.html new file mode 100644 index 0000000..531c8a7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context.html @@ -0,0 +1,586 @@ + + + +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] +

+
+

+ Constructor.

Construct to take ownership of a native + handle.

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] +

+
+

+ Destructor. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_workarounds [static] +

+
+

+ Implement various bug workarounds. +

+
+

+ no_compression [static] +

+
+

+ Disable compression. Compression is disabled by default. +

+
+

+ no_sslv2 [static] +

+
+

+ Disable SSL v2. +

+
+

+ no_sslv3 [static] +

+
+

+ Disable SSL v3. +

+
+

+ no_tlsv1 [static] +

+
+

+ Disable TLS v1. +

+
+

+ no_tlsv1_1 [static] +

+
+

+ Disable TLS v1.1. +

+
+

+ no_tlsv1_2 [static] +

+
+

+ Disable TLS v1.2. +

+
+

+ no_tlsv1_3 [static] +

+
+

+ Disable TLS v1.3. +

+
+

+ single_dh_use [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ssl__context/_context.html b/3party/asio/doc/asio/reference/ssl__context/_context.html new file mode 100644 index 0000000..8d64d19 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/_context.html @@ -0,0 +1,40 @@ + + + +ssl::context::~context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~context();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/add_certificate_authority.html b/3party/asio/doc/asio/reference/ssl__context/add_certificate_authority.html new file mode 100644 index 0000000..b3ab4b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/add_certificate_authority.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload1.html b/3party/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload1.html new file mode 100644 index 0000000..aa7df05 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload1.html @@ -0,0 +1,80 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload2.html b/3party/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload2.html new file mode 100644 index 0000000..d605705 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload2.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/add_verify_path.html b/3party/asio/doc/asio/reference/ssl__context/add_verify_path.html new file mode 100644 index 0000000..3265b72 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/add_verify_path.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/add_verify_path/overload1.html b/3party/asio/doc/asio/reference/ssl__context/add_verify_path/overload1.html new file mode 100644 index 0000000..75bf35f --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/add_verify_path/overload1.html @@ -0,0 +1,81 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/add_verify_path/overload2.html b/3party/asio/doc/asio/reference/ssl__context/add_verify_path/overload2.html new file mode 100644 index 0000000..f147dd7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/add_verify_path/overload2.html @@ -0,0 +1,73 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/clear_options.html b/3party/asio/doc/asio/reference/ssl__context/clear_options.html new file mode 100644 index 0000000..f6c78c7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/clear_options.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/clear_options/overload1.html b/3party/asio/doc/asio/reference/ssl__context/clear_options/overload1.html new file mode 100644 index 0000000..8df9355 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/clear_options/overload1.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/clear_options/overload2.html b/3party/asio/doc/asio/reference/ssl__context/clear_options/overload2.html new file mode 100644 index 0000000..ab901b6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/clear_options/overload2.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/context.html b/3party/asio/doc/asio/reference/ssl__context/context.html new file mode 100644 index 0000000..5b2e4d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/context.html @@ -0,0 +1,56 @@ + + + +ssl::context::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
explicit context(
+    method m);
+  » more...
+
+

+ Construct to take ownership of a native handle. +

+
explicit context(
+    native_handle_type native_handle);
+  » more...
+
+

+ Move-construct a context from another. +

+
context(
+    context && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/context/overload1.html b/3party/asio/doc/asio/reference/ssl__context/context/overload1.html new file mode 100644 index 0000000..a045790 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/context/overload1.html @@ -0,0 +1,41 @@ + + + +ssl::context::context (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor. +

+
context(
+    method m);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/context/overload2.html b/3party/asio/doc/asio/reference/ssl__context/context/overload2.html new file mode 100644 index 0000000..646a9e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/context/overload2.html @@ -0,0 +1,41 @@ + + + +ssl::context::context (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct to take ownership of a native handle. +

+
context(
+    native_handle_type native_handle);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/context/overload3.html b/3party/asio/doc/asio/reference/ssl__context/context/overload3.html new file mode 100644 index 0000000..0f78415 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/context/overload3.html @@ -0,0 +1,68 @@ + + + +ssl::context::context (3 of 3 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/3party/asio/doc/asio/reference/ssl__context/default_workarounds.html b/3party/asio/doc/asio/reference/ssl__context/default_workarounds.html new file mode 100644 index 0000000..7e197f1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/default_workarounds.html @@ -0,0 +1,41 @@ + + + +ssl::context::default_workarounds + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Implement + various bug workarounds. +

+
static const uint64_t default_workarounds = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/file_format.html b/3party/asio/doc/asio/reference/ssl__context/file_format.html new file mode 100644 index 0000000..da07b88 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/file_format.html @@ -0,0 +1,62 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/load_verify_file.html b/3party/asio/doc/asio/reference/ssl__context/load_verify_file.html new file mode 100644 index 0000000..4292312 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/load_verify_file.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/load_verify_file/overload1.html b/3party/asio/doc/asio/reference/ssl__context/load_verify_file/overload1.html new file mode 100644 index 0000000..b3f3003 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/load_verify_file/overload1.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/load_verify_file/overload2.html b/3party/asio/doc/asio/reference/ssl__context/load_verify_file/overload2.html new file mode 100644 index 0000000..87c644d --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/load_verify_file/overload2.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/method.html b/3party/asio/doc/asio/reference/ssl__context/method.html new file mode 100644 index 0000000..432f5f1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/method.html @@ -0,0 +1,172 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/native_handle.html b/3party/asio/doc/asio/reference/ssl__context/native_handle.html new file mode 100644 index 0000000..1ef2f94 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/native_handle.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/native_handle_type.html b/3party/asio/doc/asio/reference/ssl__context/native_handle_type.html new file mode 100644 index 0000000..56f808b --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/native_handle_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/no_compression.html b/3party/asio/doc/asio/reference/ssl__context/no_compression.html new file mode 100644 index 0000000..a8b96cb --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/no_compression.html @@ -0,0 +1,41 @@ + + + +ssl::context::no_compression + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable + compression. Compression is disabled by default. +

+
static const uint64_t no_compression = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/no_sslv2.html b/3party/asio/doc/asio/reference/ssl__context/no_sslv2.html new file mode 100644 index 0000000..5e7b327 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/no_sslv2.html @@ -0,0 +1,40 @@ + + + +ssl::context::no_sslv2 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable SSL v2. +

+
static const uint64_t no_sslv2 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/no_sslv3.html b/3party/asio/doc/asio/reference/ssl__context/no_sslv3.html new file mode 100644 index 0000000..f635a9c --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/no_sslv3.html @@ -0,0 +1,40 @@ + + + +ssl::context::no_sslv3 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable SSL v3. +

+
static const uint64_t no_sslv3 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/no_tlsv1.html b/3party/asio/doc/asio/reference/ssl__context/no_tlsv1.html new file mode 100644 index 0000000..3c4fc40 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/no_tlsv1.html @@ -0,0 +1,40 @@ + + + +ssl::context::no_tlsv1 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable TLS v1. +

+
static const uint64_t no_tlsv1 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/no_tlsv1_1.html b/3party/asio/doc/asio/reference/ssl__context/no_tlsv1_1.html new file mode 100644 index 0000000..5098816 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/no_tlsv1_1.html @@ -0,0 +1,41 @@ + + + +ssl::context::no_tlsv1_1 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable TLS + v1.1. +

+
static const uint64_t no_tlsv1_1 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/no_tlsv1_2.html b/3party/asio/doc/asio/reference/ssl__context/no_tlsv1_2.html new file mode 100644 index 0000000..8a1aafc --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/no_tlsv1_2.html @@ -0,0 +1,41 @@ + + + +ssl::context::no_tlsv1_2 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable TLS + v1.2. +

+
static const uint64_t no_tlsv1_2 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/no_tlsv1_3.html b/3party/asio/doc/asio/reference/ssl__context/no_tlsv1_3.html new file mode 100644 index 0000000..d3357db --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/no_tlsv1_3.html @@ -0,0 +1,41 @@ + + + +ssl::context::no_tlsv1_3 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable TLS + v1.3. +

+
static const uint64_t no_tlsv1_3 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/operator_eq_.html b/3party/asio/doc/asio/reference/ssl__context/operator_eq_.html new file mode 100644 index 0000000..51b69e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/operator_eq_.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/options.html b/3party/asio/doc/asio/reference/ssl__context/options.html new file mode 100644 index 0000000..7cf1717 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/options.html @@ -0,0 +1,51 @@ + + + +ssl::context::options + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Bitmask type for + SSL options. +

+
typedef uint64_t options;
+
+
+ + Requirements +
+

+ Header: asio/ssl/context.hpp +

+

+ Convenience header: asio/ssl.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/password_purpose.html b/3party/asio/doc/asio/reference/ssl__context/password_purpose.html new file mode 100644 index 0000000..a0ab64a --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/password_purpose.html @@ -0,0 +1,62 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths.html b/3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths.html new file mode 100644 index 0000000..0456153 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths.html @@ -0,0 +1,47 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload1.html b/3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload1.html new file mode 100644 index 0000000..75fbe84 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload1.html @@ -0,0 +1,65 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload2.html b/3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload2.html new file mode 100644 index 0000000..2cabb3f --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload2.html @@ -0,0 +1,66 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_options.html b/3party/asio/doc/asio/reference/ssl__context/set_options.html new file mode 100644 index 0000000..170451a --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_options.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_options/overload1.html b/3party/asio/doc/asio/reference/ssl__context/set_options/overload1.html new file mode 100644 index 0000000..c427413 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_options/overload1.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_options/overload2.html b/3party/asio/doc/asio/reference/ssl__context/set_options/overload2.html new file mode 100644 index 0000000..3f09e47 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_options/overload2.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_password_callback.html b/3party/asio/doc/asio/reference/ssl__context/set_password_callback.html new file mode 100644 index 0000000..0724e84 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_password_callback.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_password_callback/overload1.html b/3party/asio/doc/asio/reference/ssl__context/set_password_callback/overload1.html new file mode 100644 index 0000000..ef91930 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_password_callback/overload1.html @@ -0,0 +1,91 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_password_callback/overload2.html b/3party/asio/doc/asio/reference/ssl__context/set_password_callback/overload2.html new file mode 100644 index 0000000..c13b64b --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_password_callback/overload2.html @@ -0,0 +1,83 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_verify_callback.html b/3party/asio/doc/asio/reference/ssl__context/set_verify_callback.html new file mode 100644 index 0000000..704a6fd --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_verify_callback.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_verify_callback/overload1.html b/3party/asio/doc/asio/reference/ssl__context/set_verify_callback/overload1.html new file mode 100644 index 0000000..c75930b --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_verify_callback/overload1.html @@ -0,0 +1,92 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_verify_callback/overload2.html b/3party/asio/doc/asio/reference/ssl__context/set_verify_callback/overload2.html new file mode 100644 index 0000000..2fdcbec --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_verify_callback/overload2.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_verify_depth.html b/3party/asio/doc/asio/reference/ssl__context/set_verify_depth.html new file mode 100644 index 0000000..9427b56 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_verify_depth.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_verify_depth/overload1.html b/3party/asio/doc/asio/reference/ssl__context/set_verify_depth/overload1.html new file mode 100644 index 0000000..6ef3652 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_verify_depth/overload1.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_verify_depth/overload2.html b/3party/asio/doc/asio/reference/ssl__context/set_verify_depth/overload2.html new file mode 100644 index 0000000..dce9276 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_verify_depth/overload2.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_verify_mode.html b/3party/asio/doc/asio/reference/ssl__context/set_verify_mode.html new file mode 100644 index 0000000..6665f70 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_verify_mode.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_verify_mode/overload1.html b/3party/asio/doc/asio/reference/ssl__context/set_verify_mode/overload1.html new file mode 100644 index 0000000..23653df --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_verify_mode/overload1.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/set_verify_mode/overload2.html b/3party/asio/doc/asio/reference/ssl__context/set_verify_mode/overload2.html new file mode 100644 index 0000000..0588f76 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/set_verify_mode/overload2.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/single_dh_use.html b/3party/asio/doc/asio/reference/ssl__context/single_dh_use.html new file mode 100644 index 0000000..7808336 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/single_dh_use.html @@ -0,0 +1,41 @@ + + + +ssl::context::single_dh_use + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Always + create a new key when using tmp_dh parameters. +

+
static const uint64_t single_dh_use = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context/use_certificate.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate.html new file mode 100644 index 0000000..7876c1a --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_certificate/overload1.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate/overload1.html new file mode 100644 index 0000000..7576389 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate/overload1.html @@ -0,0 +1,83 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_certificate/overload2.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate/overload2.html new file mode 100644 index 0000000..22aeef4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate/overload2.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain.html new file mode 100644 index 0000000..a04272f --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload1.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload1.html new file mode 100644 index 0000000..e2e210a --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload1.html @@ -0,0 +1,80 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload2.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload2.html new file mode 100644 index 0000000..67c86ed --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload2.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file.html new file mode 100644 index 0000000..9d9b297 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload1.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload1.html new file mode 100644 index 0000000..15cf32d --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload1.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload2.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload2.html new file mode 100644 index 0000000..baa8ab5 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload2.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_certificate_file.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate_file.html new file mode 100644 index 0000000..5ac53ff --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate_file.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_certificate_file/overload1.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate_file/overload1.html new file mode 100644 index 0000000..e3d8c08 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate_file/overload1.html @@ -0,0 +1,82 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_certificate_file/overload2.html b/3party/asio/doc/asio/reference/ssl__context/use_certificate_file/overload2.html new file mode 100644 index 0000000..f91cbe0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_certificate_file/overload2.html @@ -0,0 +1,74 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_private_key.html b/3party/asio/doc/asio/reference/ssl__context/use_private_key.html new file mode 100644 index 0000000..9e0c3aa --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_private_key.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_private_key/overload1.html b/3party/asio/doc/asio/reference/ssl__context/use_private_key/overload1.html new file mode 100644 index 0000000..4e6a695 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_private_key/overload1.html @@ -0,0 +1,83 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_private_key/overload2.html b/3party/asio/doc/asio/reference/ssl__context/use_private_key/overload2.html new file mode 100644 index 0000000..1afc510 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_private_key/overload2.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_private_key_file.html b/3party/asio/doc/asio/reference/ssl__context/use_private_key_file.html new file mode 100644 index 0000000..cc9a3f1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_private_key_file.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_private_key_file/overload1.html b/3party/asio/doc/asio/reference/ssl__context/use_private_key_file/overload1.html new file mode 100644 index 0000000..11263f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_private_key_file/overload1.html @@ -0,0 +1,82 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_private_key_file/overload2.html b/3party/asio/doc/asio/reference/ssl__context/use_private_key_file/overload2.html new file mode 100644 index 0000000..29fe0dd --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_private_key_file/overload2.html @@ -0,0 +1,74 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key.html b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key.html new file mode 100644 index 0000000..56852b3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload1.html b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload1.html new file mode 100644 index 0000000..2eca429 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload1.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload2.html b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload2.html new file mode 100644 index 0000000..583a0f0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload2.html @@ -0,0 +1,76 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file.html b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file.html new file mode 100644 index 0000000..ae39e6a --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload1.html b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload1.html new file mode 100644 index 0000000..604e89c --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload1.html @@ -0,0 +1,83 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload2.html b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload2.html new file mode 100644 index 0000000..660c981 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload2.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh.html b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh.html new file mode 100644 index 0000000..f428631 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload1.html b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload1.html new file mode 100644 index 0000000..0b6476c --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload1.html @@ -0,0 +1,80 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload2.html b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload2.html new file mode 100644 index 0000000..4394698 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload2.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file.html b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file.html new file mode 100644 index 0000000..2c6f81b --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload1.html b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload1.html new file mode 100644 index 0000000..9eff4f4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload1.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload2.html b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload2.html new file mode 100644 index 0000000..ebf3009 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload2.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context_base.html b/3party/asio/doc/asio/reference/ssl__context_base.html new file mode 100644 index 0000000..3c5be15 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base.html @@ -0,0 +1,294 @@ + + + +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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_workarounds [static] +

+
+

+ Implement various bug workarounds. +

+
+

+ no_compression [static] +

+
+

+ Disable compression. Compression is disabled by default. +

+
+

+ no_sslv2 [static] +

+
+

+ Disable SSL v2. +

+
+

+ no_sslv3 [static] +

+
+

+ Disable SSL v3. +

+
+

+ no_tlsv1 [static] +

+
+

+ Disable TLS v1. +

+
+

+ no_tlsv1_1 [static] +

+
+

+ Disable TLS v1.1. +

+
+

+ no_tlsv1_2 [static] +

+
+

+ Disable TLS v1.2. +

+
+

+ no_tlsv1_3 [static] +

+
+

+ Disable TLS v1.3. +

+
+

+ single_dh_use [static] +

+
+

+ 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/3party/asio/doc/asio/reference/ssl__context_base/_context_base.html b/3party/asio/doc/asio/reference/ssl__context_base/_context_base.html new file mode 100644 index 0000000..3254fc0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/_context_base.html @@ -0,0 +1,41 @@ + + + +ssl::context_base::~context_base + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Protected + destructor to prevent deletion through this type. +

+
~context_base();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context_base/default_workarounds.html b/3party/asio/doc/asio/reference/ssl__context_base/default_workarounds.html new file mode 100644 index 0000000..1255038 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/default_workarounds.html @@ -0,0 +1,41 @@ + + + +ssl::context_base::default_workarounds + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Implement + various bug workarounds. +

+
static const uint64_t default_workarounds = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context_base/file_format.html b/3party/asio/doc/asio/reference/ssl__context_base/file_format.html new file mode 100644 index 0000000..612002a --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/file_format.html @@ -0,0 +1,62 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context_base/method.html b/3party/asio/doc/asio/reference/ssl__context_base/method.html new file mode 100644 index 0000000..cb03d15 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/method.html @@ -0,0 +1,172 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context_base/no_compression.html b/3party/asio/doc/asio/reference/ssl__context_base/no_compression.html new file mode 100644 index 0000000..8c7fdd0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/no_compression.html @@ -0,0 +1,41 @@ + + + +ssl::context_base::no_compression + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable + compression. Compression is disabled by default. +

+
static const uint64_t no_compression = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context_base/no_sslv2.html b/3party/asio/doc/asio/reference/ssl__context_base/no_sslv2.html new file mode 100644 index 0000000..8103e1e --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/no_sslv2.html @@ -0,0 +1,41 @@ + + + +ssl::context_base::no_sslv2 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable + SSL v2. +

+
static const uint64_t no_sslv2 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context_base/no_sslv3.html b/3party/asio/doc/asio/reference/ssl__context_base/no_sslv3.html new file mode 100644 index 0000000..1360d26 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/no_sslv3.html @@ -0,0 +1,41 @@ + + + +ssl::context_base::no_sslv3 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable + SSL v3. +

+
static const uint64_t no_sslv3 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1.html b/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1.html new file mode 100644 index 0000000..c643dfa --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1.html @@ -0,0 +1,41 @@ + + + +ssl::context_base::no_tlsv1 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable + TLS v1. +

+
static const uint64_t no_tlsv1 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_1.html b/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_1.html new file mode 100644 index 0000000..4fe0ffb --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_1.html @@ -0,0 +1,41 @@ + + + +ssl::context_base::no_tlsv1_1 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable + TLS v1.1. +

+
static const uint64_t no_tlsv1_1 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_2.html b/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_2.html new file mode 100644 index 0000000..1688d0e --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_2.html @@ -0,0 +1,41 @@ + + + +ssl::context_base::no_tlsv1_2 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable + TLS v1.2. +

+
static const uint64_t no_tlsv1_2 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_3.html b/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_3.html new file mode 100644 index 0000000..47ccdca --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/no_tlsv1_3.html @@ -0,0 +1,41 @@ + + + +ssl::context_base::no_tlsv1_3 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Disable + TLS v1.3. +

+
static const uint64_t no_tlsv1_3 = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context_base/options.html b/3party/asio/doc/asio/reference/ssl__context_base/options.html new file mode 100644 index 0000000..bf2b6a8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/options.html @@ -0,0 +1,51 @@ + + + +ssl::context_base::options + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Bitmask + type for SSL options. +

+
typedef uint64_t options;
+
+
+ + Requirements +
+

+ Header: asio/ssl/context_base.hpp +

+

+ Convenience header: asio/ssl.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__context_base/password_purpose.html b/3party/asio/doc/asio/reference/ssl__context_base/password_purpose.html new file mode 100644 index 0000000..274a040 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/password_purpose.html @@ -0,0 +1,62 @@ + + + +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/3party/asio/doc/asio/reference/ssl__context_base/single_dh_use.html b/3party/asio/doc/asio/reference/ssl__context_base/single_dh_use.html new file mode 100644 index 0000000..2d32af1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__context_base/single_dh_use.html @@ -0,0 +1,41 @@ + + + +ssl::context_base::single_dh_use + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Always + create a new key when using tmp_dh parameters. +

+
static const uint64_t single_dh_use = implementation_defined;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__error__get_stream_category.html b/3party/asio/doc/asio/reference/ssl__error__get_stream_category.html new file mode 100644 index 0000000..1333bfb --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__error__get_stream_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ssl__error__make_error_code.html b/3party/asio/doc/asio/reference/ssl__error__make_error_code.html new file mode 100644 index 0000000..b50e6aa --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__error__make_error_code.html @@ -0,0 +1,50 @@ + + + +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/3party/asio/doc/asio/reference/ssl__error__stream_category.html b/3party/asio/doc/asio/reference/ssl__error__stream_category.html new file mode 100644 index 0000000..05766a3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__error__stream_category.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ssl__error__stream_errors.html b/3party/asio/doc/asio/reference/ssl__error__stream_errors.html new file mode 100644 index 0000000..c0ab348 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__error__stream_errors.html @@ -0,0 +1,78 @@ + + + +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. +

+
unspecified_system_error
+

+ The underlying SSL library returned a system error without providing + further information. +

+
unexpected_result
+

+ The underlying SSL library generated an unexpected result from a function + call. +

+
+
+
+ + Requirements +
+

+ Header: asio/ssl/error.hpp +

+

+ Convenience header: asio/ssl.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__host_name_verification.html b/3party/asio/doc/asio/reference/ssl__host_name_verification.html new file mode 100644 index 0000000..e9ef5d1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__host_name_verification.html @@ -0,0 +1,167 @@ + + + +ssl::host_name_verification + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Verifies a certificate against a host_name according to the rules described + in RFC 6125. +

+
class host_name_verification
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ result_type +

+
+

+ The type of the function object's result. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ host_name_verification [constructor] +

+
+

+ Constructor. +

+
+

+ operator() +

+
+

+ Perform certificate verification. +

+
+
+ + 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::host_name_verification("host.name"));
+sock.handshake(ssl_socket::client);
+
+// ... read and write as normal ...
+
+
+ + Requirements +
+

+ Header: asio/ssl/host_name_verification.hpp +

+

+ Convenience header: asio/ssl.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__host_name_verification/host_name_verification.html b/3party/asio/doc/asio/reference/ssl__host_name_verification/host_name_verification.html new file mode 100644 index 0000000..502eec8 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__host_name_verification/host_name_verification.html @@ -0,0 +1,41 @@ + + + +ssl::host_name_verification::host_name_verification + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
host_name_verification(
+    const std::string & host);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__host_name_verification/operator_lp__rp_.html b/3party/asio/doc/asio/reference/ssl__host_name_verification/operator_lp__rp_.html new file mode 100644 index 0000000..117863c --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__host_name_verification/operator_lp__rp_.html @@ -0,0 +1,43 @@ + + + +ssl::host_name_verification::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Perform + certificate verification. +

+
bool operator()(
+    bool preverified,
+    verify_context & ctx) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__host_name_verification/result_type.html b/3party/asio/doc/asio/reference/ssl__host_name_verification/result_type.html new file mode 100644 index 0000000..6edda2e --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__host_name_verification/result_type.html @@ -0,0 +1,51 @@ + + + +ssl::host_name_verification::result_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the function object's result. +

+
typedef bool result_type;
+
+
+ + Requirements +
+

+ Header: asio/ssl/host_name_verification.hpp +

+

+ Convenience header: asio/ssl.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__rfc2818_verification.html b/3party/asio/doc/asio/reference/ssl__rfc2818_verification.html new file mode 100644 index 0000000..ad173f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__rfc2818_verification.html @@ -0,0 +1,168 @@ + + + +ssl::rfc2818_verification + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ (Deprecated. Use ssl::host_name_verification.) + 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] +

+
+

+ 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/3party/asio/doc/asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html b/3party/asio/doc/asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html new file mode 100644 index 0000000..68ff169 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html @@ -0,0 +1,43 @@ + + + +ssl::rfc2818_verification::operator() + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Perform + certificate verification. +

+
bool operator()(
+    bool preverified,
+    verify_context & ctx) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__rfc2818_verification/result_type.html b/3party/asio/doc/asio/reference/ssl__rfc2818_verification/result_type.html new file mode 100644 index 0000000..20cc3cf --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__rfc2818_verification/result_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ssl__rfc2818_verification/rfc2818_verification.html b/3party/asio/doc/asio/reference/ssl__rfc2818_verification/rfc2818_verification.html new file mode 100644 index 0000000..9436591 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__rfc2818_verification/rfc2818_verification.html @@ -0,0 +1,41 @@ + + + +ssl::rfc2818_verification::rfc2818_verification + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
rfc2818_verification(
+    const std::string & host);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream.html b/3party/asio/doc/asio/reference/ssl__stream.html new file mode 100644 index 0000000..b601a91 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream.html @@ -0,0 +1,425 @@ + + + +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. +

+
+

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

+
+

+ operator= +

+
+

+ Move-assign a stream from another. +

+
+

+ 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 + [constructor] +

+
+

+ Construct a stream.

Construct a stream from an existing + native implementation.

Move-construct a stream from + another. +

+
+

+ write_some +

+
+

+ Write some data to the stream. +

+
+

+ ~stream + [destructor] +

+
+

+ 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 my_context;
+asio::ssl::context ctx(asio::ssl::context::sslv23);
+asio::ssl::stream<asio:ip::tcp::socket> sock(my_context, ctx);
+
+
+ + Requirements +
+

+ Header: asio/ssl/stream.hpp +

+

+ Convenience header: asio/ssl.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream/_stream.html b/3party/asio/doc/asio/reference/ssl__stream/_stream.html new file mode 100644 index 0000000..317b7e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/_stream.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/async_handshake.html b/3party/asio/doc/asio/reference/ssl__stream/async_handshake.html new file mode 100644 index 0000000..e0fa786 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/async_handshake.html @@ -0,0 +1,55 @@ + + + +ssl::stream::async_handshake + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous SSL handshake. +

+
template<
+    typename HandshakeToken = DEFAULT>
+DEDUCED async_handshake(
+    handshake_type type,
+    HandshakeToken && token = DEFAULT);
+  » more...
+
+template<
+    typename ConstBufferSequence,
+    typename BufferedHandshakeToken = DEFAULT>
+DEDUCED async_handshake(
+    handshake_type type,
+    const ConstBufferSequence & buffers,
+    BufferedHandshakeToken && token = DEFAULT);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream/async_handshake/overload1.html b/3party/asio/doc/asio/reference/ssl__stream/async_handshake/overload1.html new file mode 100644 index 0000000..1c5df38 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/async_handshake/overload1.html @@ -0,0 +1,115 @@ + + + +ssl::stream::async_handshake (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous SSL handshake. +

+
template<
+    typename HandshakeToken = DEFAULT>
+DEDUCED async_handshake(
+    handshake_type type,
+    HandshakeToken && token = DEFAULT);
+
+

+ This function is used to asynchronously perform an SSL handshake on the + stream. It is an initiating function for an asynchronous + operation, and always returns immediately. +

+
+ + Parameters +
+
+

+
+
type
+

+ The type of handshaking to be performed, i.e. as a client or as + a server. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the handshake completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following + cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the Stream + type's async_read_some + and async_write_some + operations. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream/async_handshake/overload2.html b/3party/asio/doc/asio/reference/ssl__stream/async_handshake/overload2.html new file mode 100644 index 0000000..68d3cce --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/async_handshake/overload2.html @@ -0,0 +1,125 @@ + + + +ssl::stream::async_handshake (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Start an asynchronous SSL handshake. +

+
template<
+    typename ConstBufferSequence,
+    typename BufferedHandshakeToken = DEFAULT>
+DEDUCED async_handshake(
+    handshake_type type,
+    const ConstBufferSequence & buffers,
+    BufferedHandshakeToken && token = DEFAULT);
+
+

+ This function is used to asynchronously perform an SSL handshake on the + stream. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, + which will be called when the handshake completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion handler must be: +

+
void handler(
+  const asio::error_code& error, // Result of operation.
+  std::size_t bytes_transferred // Amount of buffers used in handshake.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within + this function. On immediate completion, invocation of the handler + will be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following + cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the Stream + type's async_read_some + and async_write_some + operations. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream/async_read_some.html b/3party/asio/doc/asio/reference/ssl__stream/async_read_some.html new file mode 100644 index 0000000..85186db --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/async_read_some.html @@ -0,0 +1,130 @@ + + + +ssl::stream::async_read_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous read. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_some(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read one or more bytes of data + from the stream. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the Stream + type's async_read_some + and async_write_some operations. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream/async_shutdown.html b/3party/asio/doc/asio/reference/ssl__stream/async_shutdown.html new file mode 100644 index 0000000..02abb15 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/async_shutdown.html @@ -0,0 +1,108 @@ + + + +ssl::stream::async_shutdown + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Asynchronously + shut down SSL on the stream. +

+
template<
+    typename ShutdownToken = DEFAULT>
+DEDUCED async_shutdown(
+    ShutdownToken && token = DEFAULT);
+
+

+ This function is used to asynchronously shut down SSL on the stream. It + is an initiating function for an asynchronous + operation, and always returns immediately. +

+
+ + Parameters +
+
+

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the shutdown completes. Potential completion + tokens include use_future, use_awaitable, yield_context, or a function + object with the correct completion signature. The function signature + of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the Stream + type's async_read_some + and async_write_some operations. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream/async_write_some.html b/3party/asio/doc/asio/reference/ssl__stream/async_write_some.html new file mode 100644 index 0000000..bdb91b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/async_write_some.html @@ -0,0 +1,129 @@ + + + +ssl::stream::async_write_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous write. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_some(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write one or more bytes of data + to the stream. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
+

+ if they are also supported by the Stream + type's async_read_some + and async_write_some operations. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream/executor_type.html b/3party/asio/doc/asio/reference/ssl__stream/executor_type.html new file mode 100644 index 0000000..7dac0fa --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/executor_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/get_executor.html b/3party/asio/doc/asio/reference/ssl__stream/get_executor.html new file mode 100644 index 0000000..2c54d47 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/get_executor.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/handshake.html b/3party/asio/doc/asio/reference/ssl__stream/handshake.html new file mode 100644 index 0000000..2b6878b --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/handshake.html @@ -0,0 +1,62 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/handshake/overload1.html b/3party/asio/doc/asio/reference/ssl__stream/handshake/overload1.html new file mode 100644 index 0000000..2f1e61a --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/handshake/overload1.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/handshake/overload2.html b/3party/asio/doc/asio/reference/ssl__stream/handshake/overload2.html new file mode 100644 index 0000000..ea4559c --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/handshake/overload2.html @@ -0,0 +1,64 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/handshake/overload3.html b/3party/asio/doc/asio/reference/ssl__stream/handshake/overload3.html new file mode 100644 index 0000000..b59ac0b --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/handshake/overload3.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/handshake/overload4.html b/3party/asio/doc/asio/reference/ssl__stream/handshake/overload4.html new file mode 100644 index 0000000..ad7dd08 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/handshake/overload4.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/handshake_type.html b/3party/asio/doc/asio/reference/ssl__stream/handshake_type.html new file mode 100644 index 0000000..f51daeb --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/handshake_type.html @@ -0,0 +1,62 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/lowest_layer.html b/3party/asio/doc/asio/reference/ssl__stream/lowest_layer.html new file mode 100644 index 0000000..92fc047 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/lowest_layer.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/ssl__stream/lowest_layer/overload1.html new file mode 100644 index 0000000..44da730 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/lowest_layer/overload1.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/ssl__stream/lowest_layer/overload2.html new file mode 100644 index 0000000..85d41bd --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/lowest_layer/overload2.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/lowest_layer_type.html b/3party/asio/doc/asio/reference/ssl__stream/lowest_layer_type.html new file mode 100644 index 0000000..ef9a22c --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/lowest_layer_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/native_handle.html b/3party/asio/doc/asio/reference/ssl__stream/native_handle.html new file mode 100644 index 0000000..e2fd4fe --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/native_handle.html @@ -0,0 +1,68 @@ + + + +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(my_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/3party/asio/doc/asio/reference/ssl__stream/native_handle_type.html b/3party/asio/doc/asio/reference/ssl__stream/native_handle_type.html new file mode 100644 index 0000000..c017c14 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/native_handle_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/next_layer.html b/3party/asio/doc/asio/reference/ssl__stream/next_layer.html new file mode 100644 index 0000000..c4564b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/next_layer.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/next_layer/overload1.html b/3party/asio/doc/asio/reference/ssl__stream/next_layer/overload1.html new file mode 100644 index 0000000..924a41c --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/next_layer/overload1.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/next_layer/overload2.html b/3party/asio/doc/asio/reference/ssl__stream/next_layer/overload2.html new file mode 100644 index 0000000..747c411 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/next_layer/overload2.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/next_layer_type.html b/3party/asio/doc/asio/reference/ssl__stream/next_layer_type.html new file mode 100644 index 0000000..89d60a2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/next_layer_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/operator_eq_.html b/3party/asio/doc/asio/reference/ssl__stream/operator_eq_.html new file mode 100644 index 0000000..e30edc2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/operator_eq_.html @@ -0,0 +1,59 @@ + + + +ssl::stream::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a stream from another. +

+
stream & operator=(
+    stream && other);
+
+
+ + Parameters +
+
+

+
+
other
+

+ The other stream object from which the move will occur. Must have + no outstanding asynchronous operations associated with it. Following + the move, other has + a valid but unspecified state where the only safe operation is destruction, + or use as the target of a move assignment. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream/read_some.html b/3party/asio/doc/asio/reference/ssl__stream/read_some.html new file mode 100644 index 0000000..718ba45 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/read_some.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/read_some/overload1.html b/3party/asio/doc/asio/reference/ssl__stream/read_some/overload1.html new file mode 100644 index 0000000..db520d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/read_some/overload1.html @@ -0,0 +1,92 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/read_some/overload2.html b/3party/asio/doc/asio/reference/ssl__stream/read_some/overload2.html new file mode 100644 index 0000000..4d9bf00 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/read_some/overload2.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/set_verify_callback.html b/3party/asio/doc/asio/reference/ssl__stream/set_verify_callback.html new file mode 100644 index 0000000..c762052 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/set_verify_callback.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload1.html b/3party/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload1.html new file mode 100644 index 0000000..04c44fe --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload1.html @@ -0,0 +1,92 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload2.html b/3party/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload2.html new file mode 100644 index 0000000..a0b53de --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload2.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/set_verify_depth.html b/3party/asio/doc/asio/reference/ssl__stream/set_verify_depth.html new file mode 100644 index 0000000..a4c1c89 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/set_verify_depth.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload1.html b/3party/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload1.html new file mode 100644 index 0000000..6c176b7 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload1.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload2.html b/3party/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload2.html new file mode 100644 index 0000000..ccf5dc3 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload2.html @@ -0,0 +1,71 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/set_verify_mode.html b/3party/asio/doc/asio/reference/ssl__stream/set_verify_mode.html new file mode 100644 index 0000000..6f2a228 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/set_verify_mode.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload1.html b/3party/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload1.html new file mode 100644 index 0000000..9930aab --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload1.html @@ -0,0 +1,80 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload2.html b/3party/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload2.html new file mode 100644 index 0000000..ce2dfdc --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload2.html @@ -0,0 +1,72 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/shutdown.html b/3party/asio/doc/asio/reference/ssl__stream/shutdown.html new file mode 100644 index 0000000..6c07a30 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/shutdown.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/shutdown/overload1.html b/3party/asio/doc/asio/reference/ssl__stream/shutdown/overload1.html new file mode 100644 index 0000000..6613d61 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/shutdown/overload1.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/shutdown/overload2.html b/3party/asio/doc/asio/reference/ssl__stream/shutdown/overload2.html new file mode 100644 index 0000000..285404d --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/shutdown/overload2.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/stream.html b/3party/asio/doc/asio/reference/ssl__stream/stream.html new file mode 100644 index 0000000..3114570 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/stream.html @@ -0,0 +1,62 @@ + + + +ssl::stream::stream + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct a stream. +

+
template<
+    typename Arg>
+stream(
+    Arg && arg,
+    context & ctx);
+  » more...
+
+

+ Construct a stream from an existing native implementation. +

+
template<
+    typename Arg>
+stream(
+    Arg && arg,
+    native_handle_type handle);
+  » more...
+
+

+ Move-construct a stream from another. +

+
stream(
+    stream && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream/stream/overload1.html b/3party/asio/doc/asio/reference/ssl__stream/stream/overload1.html new file mode 100644 index 0000000..e05ddc1 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/stream/overload1.html @@ -0,0 +1,65 @@ + + + +ssl::stream::stream (1 of 3 overloads) + + + + + + + + + +
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/3party/asio/doc/asio/reference/ssl__stream/stream/overload2.html b/3party/asio/doc/asio/reference/ssl__stream/stream/overload2.html new file mode 100644 index 0000000..bf98b47 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/stream/overload2.html @@ -0,0 +1,66 @@ + + + +ssl::stream::stream (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a stream from an existing native implementation. +

+
template<
+    typename Arg>
+stream(
+    Arg && arg,
+    native_handle_type handle);
+
+

+ This constructor creates a stream and initialises the underlying stream + object. On success, ownership of the native implementation is transferred + to the stream, and it will be cleaned up when the stream is destroyed. +

+
+ + Parameters +
+
+

+
+
arg
+

+ The argument to be passed to initialise the underlying stream. +

+
handle
+

+ An existing native SSL implementation. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream/stream/overload3.html b/3party/asio/doc/asio/reference/ssl__stream/stream/overload3.html new file mode 100644 index 0000000..4359b61 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/stream/overload3.html @@ -0,0 +1,58 @@ + + + +ssl::stream::stream (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a stream from another. +

+
stream(
+    stream && other);
+
+
+ + Parameters +
+
+

+
+
other
+

+ The other stream object from which the move will occur. Must have + no outstanding asynchronous operations associated with it. Following + the move, other + has a valid but unspecified state where the only safe operation + is destruction, or use as the target of a move assignment. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream/write_some.html b/3party/asio/doc/asio/reference/ssl__stream/write_some.html new file mode 100644 index 0000000..539899d --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/write_some.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/write_some/overload1.html b/3party/asio/doc/asio/reference/ssl__stream/write_some/overload1.html new file mode 100644 index 0000000..d11d911 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/write_some/overload1.html @@ -0,0 +1,91 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream/write_some/overload2.html b/3party/asio/doc/asio/reference/ssl__stream/write_some/overload2.html new file mode 100644 index 0000000..c4b3b93 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream/write_some/overload2.html @@ -0,0 +1,83 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream__impl_struct.html b/3party/asio/doc/asio/reference/ssl__stream__impl_struct.html new file mode 100644 index 0000000..dd06183 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream__impl_struct.html @@ -0,0 +1,83 @@ + + + +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/3party/asio/doc/asio/reference/ssl__stream__impl_struct/ssl.html b/3party/asio/doc/asio/reference/ssl__stream__impl_struct/ssl.html new file mode 100644 index 0000000..0e00ceb --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream__impl_struct/ssl.html @@ -0,0 +1,39 @@ + + + +ssl::stream::impl_struct::ssl + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
SSL * ssl;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream_base.html b/3party/asio/doc/asio/reference/ssl__stream_base.html new file mode 100644 index 0000000..ad33647 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream_base.html @@ -0,0 +1,123 @@ + + + +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 [destructor] +

+
+

+ Protected destructor to prevent deletion through this type. +

+
+
+ + Requirements +
+

+ Header: asio/ssl/stream_base.hpp +

+

+ Convenience header: asio/ssl.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream_base/_stream_base.html b/3party/asio/doc/asio/reference/ssl__stream_base/_stream_base.html new file mode 100644 index 0000000..775f745 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream_base/_stream_base.html @@ -0,0 +1,41 @@ + + + +ssl::stream_base::~stream_base + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Protected + destructor to prevent deletion through this type. +

+
~stream_base();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__stream_base/handshake_type.html b/3party/asio/doc/asio/reference/ssl__stream_base/handshake_type.html new file mode 100644 index 0000000..c849227 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__stream_base/handshake_type.html @@ -0,0 +1,62 @@ + + + +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/3party/asio/doc/asio/reference/ssl__verify_client_once.html b/3party/asio/doc/asio/reference/ssl__verify_client_once.html new file mode 100644 index 0000000..80bcbf0 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__verify_client_once.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ssl__verify_context.html b/3party/asio/doc/asio/reference/ssl__verify_context.html new file mode 100644 index 0000000..25a227a --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__verify_context.html @@ -0,0 +1,145 @@ + + + +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] +

+
+

+ 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/3party/asio/doc/asio/reference/ssl__verify_context/native_handle.html b/3party/asio/doc/asio/reference/ssl__verify_context/native_handle.html new file mode 100644 index 0000000..cfbc854 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__verify_context/native_handle.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/ssl__verify_context/native_handle_type.html b/3party/asio/doc/asio/reference/ssl__verify_context/native_handle_type.html new file mode 100644 index 0000000..9b82343 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__verify_context/native_handle_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/ssl__verify_context/verify_context.html b/3party/asio/doc/asio/reference/ssl__verify_context/verify_context.html new file mode 100644 index 0000000..dcf6aa4 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__verify_context/verify_context.html @@ -0,0 +1,41 @@ + + + +ssl::verify_context::verify_context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Constructor. +

+
verify_context(
+    native_handle_type handle);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/ssl__verify_fail_if_no_peer_cert.html b/3party/asio/doc/asio/reference/ssl__verify_fail_if_no_peer_cert.html new file mode 100644 index 0000000..16d231d --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__verify_fail_if_no_peer_cert.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/ssl__verify_mode.html b/3party/asio/doc/asio/reference/ssl__verify_mode.html new file mode 100644 index 0000000..8471cd6 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__verify_mode.html @@ -0,0 +1,69 @@ + + + +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/3party/asio/doc/asio/reference/ssl__verify_none.html b/3party/asio/doc/asio/reference/ssl__verify_none.html new file mode 100644 index 0000000..b38b29d --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__verify_none.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/ssl__verify_peer.html b/3party/asio/doc/asio/reference/ssl__verify_peer.html new file mode 100644 index 0000000..b48d217 --- /dev/null +++ b/3party/asio/doc/asio/reference/ssl__verify_peer.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/static_thread_pool.html b/3party/asio/doc/asio/reference/static_thread_pool.html new file mode 100644 index 0000000..08543b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/static_thread_pool.html @@ -0,0 +1,428 @@ + + + +static_thread_pool + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
typedef thread_pool static_thread_pool;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_executor_type +

+
+

+ Executor implementation type used to submit functions to a thread + pool. +

+
+

+ executor_type +

+
+

+ Executor used to submit functions to a thread pool. +

+
+

+ fork_event +

+
+

+ Fork-related event notifications. +

+
+

+ scheduler_type +

+
+

+ Scheduler used to schedule receivers on a thread pool. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ attach +

+
+

+ Attaches the current thread to the pool. +

+
+

+ executor +

+
+

+ Obtains the executor associated with the pool. +

+
+

+ get_executor +

+
+

+ Obtains the executor associated with the pool. +

+
+

+ join +

+
+

+ Joins the threads. +

+
+

+ notify_fork +

+
+

+ Notify the execution_context of a fork-related event. +

+
+

+ scheduler +

+
+

+ Obtains the scheduler associated with the pool. +

+
+

+ stop +

+
+

+ Stops the threads. +

+
+

+ thread_pool [constructor] +

+
+

+ Constructs a pool with an automatically determined number of threads. +

Constructs a pool with a specified number of threads. +

+
+

+ wait +

+
+

+ Waits for threads to complete. +

+
+

+ ~thread_pool [destructor] +

+
+

+ 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/static_thread_pool.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/steady_timer.html b/3party/asio/doc/asio/reference/steady_timer.html new file mode 100644 index 0000000..4fe2aa9 --- /dev/null +++ b/3party/asio/doc/asio/reference/steady_timer.html @@ -0,0 +1,449 @@ + + + +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 +

+
+

+ rebind_executor +

+
+

+ Rebinds the timer type to another executor. +

+
+

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

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

+
+

+ operator= +

+
+

+ Move-assign a basic_waitable_timer from another. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the timer. +

+
+

+ ~basic_waitable_timer [destructor] +

+
+

+ 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(my_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(my_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/3party/asio/doc/asio/reference/strand.html b/3party/asio/doc/asio/reference/strand.html new file mode 100644 index 0000000..e53cc11 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand.html @@ -0,0 +1,348 @@ + + + +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. +

+
+

+ execute +

+
+

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

+
+

+ prefer +

+
+

+ Forward a preference to the underlying executor. +

+
+

+ query +

+
+

+ Forward a query to the underlying executor. +

+
+

+ require +

+
+

+ Forward a requirement to the underlying executor. +

+
+

+ running_in_this_thread +

+
+

+ Determine whether the strand is running in the current thread. +

+
+

+ strand + [constructor] +

+
+

+ Default constructor.

Construct a strand for the specified + executor.

Copy constructor.

Converting + constructor.

Move constructor.

Converting + move constructor. +

+
+

+ ~strand + [destructor] +

+
+

+ 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/3party/asio/doc/asio/reference/strand/_strand.html b/3party/asio/doc/asio/reference/strand/_strand.html new file mode 100644 index 0000000..29e618f --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/_strand.html @@ -0,0 +1,40 @@ + + + +strand::~strand + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~strand();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/context.html b/3party/asio/doc/asio/reference/strand/context.html new file mode 100644 index 0000000..a810018 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/context.html @@ -0,0 +1,41 @@ + + + +strand::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain the underlying execution + context. +

+
execution_context & context() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/defer.html b/3party/asio/doc/asio/reference/strand/defer.html new file mode 100644 index 0000000..5ceb82e --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/defer.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/strand/dispatch.html b/3party/asio/doc/asio/reference/strand/dispatch.html new file mode 100644 index 0000000..b4a7a23 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/dispatch.html @@ -0,0 +1,77 @@ + + + +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/3party/asio/doc/asio/reference/strand/execute.html b/3party/asio/doc/asio/reference/strand/execute.html new file mode 100644 index 0000000..42d0675 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/execute.html @@ -0,0 +1,68 @@ + + + +strand::execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Request the strand to invoke + the given function object. +

+
template<
+    typename Function>
+constraint< traits::execute_member< const Executor &, Function >::is_valid, void >::type execute(
+    Function && f) 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 according + to the properties of the underlying executor. +

+
+ + 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();
+
+
+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/get_inner_executor.html b/3party/asio/doc/asio/reference/strand/get_inner_executor.html new file mode 100644 index 0000000..49239d1 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/get_inner_executor.html @@ -0,0 +1,41 @@ + + + +strand::get_inner_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the underlying executor. +

+
inner_executor_type get_inner_executor() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/inner_executor_type.html b/3party/asio/doc/asio/reference/strand/inner_executor_type.html new file mode 100644 index 0000000..f220222 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/inner_executor_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/strand/on_work_finished.html b/3party/asio/doc/asio/reference/strand/on_work_finished.html new file mode 100644 index 0000000..851f81b --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/on_work_finished.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/strand/on_work_started.html b/3party/asio/doc/asio/reference/strand/on_work_started.html new file mode 100644 index 0000000..201e29a --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/on_work_started.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/strand/operator_eq_.html b/3party/asio/doc/asio/reference/strand/operator_eq_.html new file mode 100644 index 0000000..5fb1ec6 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/operator_eq_.html @@ -0,0 +1,67 @@ + + + +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=(
+    strand< OtherExecutor > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/strand/operator_eq_/overload1.html new file mode 100644 index 0000000..43af757 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +strand::operator= (1 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator. +

+
strand & operator=(
+    const strand & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/strand/operator_eq_/overload2.html new file mode 100644 index 0000000..4e3bda7 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/operator_eq_/overload2.html @@ -0,0 +1,47 @@ + + + +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/3party/asio/doc/asio/reference/strand/operator_eq_/overload3.html b/3party/asio/doc/asio/reference/strand/operator_eq_/overload3.html new file mode 100644 index 0000000..a864af9 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/operator_eq_/overload3.html @@ -0,0 +1,41 @@ + + + +strand::operator= (3 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move assignment operator. +

+
strand & operator=(
+    strand && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/operator_eq_/overload4.html b/3party/asio/doc/asio/reference/strand/operator_eq_/overload4.html new file mode 100644 index 0000000..091f244 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/operator_eq_/overload4.html @@ -0,0 +1,47 @@ + + + +strand::operator= (4 of 4 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Converting move assignment operator. +

+
template<
+    class OtherExecutor>
+strand & operator=(
+    strand< OtherExecutor > && other);
+
+

+ This assignment operator is only valid if the OtherExecutor + type is convertible to Executor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/operator_eq__eq_.html b/3party/asio/doc/asio/reference/strand/operator_eq__eq_.html new file mode 100644 index 0000000..7ac92bb --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/operator_eq__eq_.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/strand/operator_not__eq_.html b/3party/asio/doc/asio/reference/strand/operator_not__eq_.html new file mode 100644 index 0000000..c99de02 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/operator_not__eq_.html @@ -0,0 +1,57 @@ + + + +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/3party/asio/doc/asio/reference/strand/post.html b/3party/asio/doc/asio/reference/strand/post.html new file mode 100644 index 0000000..c96e1b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/post.html @@ -0,0 +1,75 @@ + + + +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/3party/asio/doc/asio/reference/strand/prefer.html b/3party/asio/doc/asio/reference/strand/prefer.html new file mode 100644 index 0000000..39eb13e --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/prefer.html @@ -0,0 +1,55 @@ + + + +strand::prefer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Forward a preference to the underlying + executor. +

+
template<
+    typename Property>
+constraint< can_prefer< const Executor &, Property >::value &&!is_convertible< Property, execution::blocking_t::always_t >::value, strand< typename decay< typename prefer_result< const Executor &, Property >::type >::type > >::type prefer(
+    const Property & p) const;
+
+

+ Do not call this function directly. It is intended for use with the prefer + customisation point. +

+

+ For example: +

+
asio::strand<my_executor_type> ex1 = ...;
+auto ex2 = asio::prefer(ex1,
+    asio::execution::blocking.never);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/query.html b/3party/asio/doc/asio/reference/strand/query.html new file mode 100644 index 0000000..38677e1 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/query.html @@ -0,0 +1,56 @@ + + + +strand::query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Forward a query to the underlying + executor. +

+
template<
+    typename Property>
+constraint< can_query< const Executor &, Property >::value, typename conditional< is_convertible< Property, execution::blocking_t >::value, execution::blocking_t, typename query_result< const Executor &, Property >::type >::type >::type query(
+    const Property & p) const;
+
+

+ Do not call this function directly. It is intended for use with the query + customisation point. +

+

+ For example: +

+
asio::strand<my_executor_type> ex = ...;
+if (asio::query(ex, asio::execution::blocking)
+      == asio::execution::blocking.never)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/require.html b/3party/asio/doc/asio/reference/strand/require.html new file mode 100644 index 0000000..9011109 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/require.html @@ -0,0 +1,55 @@ + + + +strand::require + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Forward a requirement to the + underlying executor. +

+
template<
+    typename Property>
+constraint< can_require< const Executor &, Property >::value &&!is_convertible< Property, execution::blocking_t::always_t >::value, strand< typename decay< typename require_result< const Executor &, Property >::type >::type > >::type require(
+    const Property & p) const;
+
+

+ Do not call this function directly. It is intended for use with the require + customisation point. +

+

+ For example: +

+
asio::strand<my_executor_type> ex1 = ...;
+auto ex2 = asio::require(ex1,
+    asio::execution::blocking.never);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/running_in_this_thread.html b/3party/asio/doc/asio/reference/strand/running_in_this_thread.html new file mode 100644 index 0000000..9a347f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/running_in_this_thread.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/strand/strand.html b/3party/asio/doc/asio/reference/strand/strand.html new file mode 100644 index 0000000..308ba23 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/strand.html @@ -0,0 +1,83 @@ + + + +strand::strand + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default constructor. +

+
strand();
+  » more...
+
+

+ Construct a strand for the specified executor. +

+
template<
+    typename Executor1>
+explicit strand(
+    const Executor1 & e,
+    typename constraint< conditional< !is_same< Executor1, strand >::value, is_convertible< Executor1, Executor >, false_type >::type::value >::type  = 0);
+  » 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/3party/asio/doc/asio/reference/strand/strand/overload1.html b/3party/asio/doc/asio/reference/strand/strand/overload1.html new file mode 100644 index 0000000..0813b1d --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/strand/overload1.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/strand/strand/overload2.html b/3party/asio/doc/asio/reference/strand/strand/overload2.html new file mode 100644 index 0000000..173b1b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/strand/overload2.html @@ -0,0 +1,44 @@ + + + +strand::strand (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a strand for the specified executor. +

+
template<
+    typename Executor1>
+strand(
+    const Executor1 & e,
+    typename constraint< conditional< !is_same< Executor1, strand >::value, is_convertible< Executor1, Executor >, false_type >::type::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/strand/overload3.html b/3party/asio/doc/asio/reference/strand/strand/overload3.html new file mode 100644 index 0000000..19481cb --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/strand/overload3.html @@ -0,0 +1,41 @@ + + + +strand::strand (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
strand(
+    const strand & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/strand/overload4.html b/3party/asio/doc/asio/reference/strand/strand/overload4.html new file mode 100644 index 0000000..12c7bbb --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/strand/overload4.html @@ -0,0 +1,47 @@ + + + +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/3party/asio/doc/asio/reference/strand/strand/overload5.html b/3party/asio/doc/asio/reference/strand/strand/overload5.html new file mode 100644 index 0000000..9c51cdb --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/strand/overload5.html @@ -0,0 +1,41 @@ + + + +strand::strand (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
strand(
+    strand && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/strand/strand/overload6.html b/3party/asio/doc/asio/reference/strand/strand/overload6.html new file mode 100644 index 0000000..a722dfc --- /dev/null +++ b/3party/asio/doc/asio/reference/strand/strand/overload6.html @@ -0,0 +1,47 @@ + + + +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/3party/asio/doc/asio/reference/stream_file.html b/3party/asio/doc/asio/reference/stream_file.html new file mode 100644 index 0000000..55f7e2f --- /dev/null +++ b/3party/asio/doc/asio/reference/stream_file.html @@ -0,0 +1,543 @@ + + + +stream_file + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of a stream-oriented file. +

+
typedef basic_stream_file stream_file;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the file type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ flags +

+
+

+ A bitmask type (C++ Std [lib.bitmask.types]). +

+
+

+ native_handle_type +

+
+

+ The native representation of a file. +

+
+

+ seek_basis +

+
+

+ Basis for seeking in a file. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native file to the file. +

+
+

+ async_read_some +

+
+

+ Start an asynchronous read. +

+
+

+ async_write_some +

+
+

+ Start an asynchronous write. +

+
+

+ basic_stream_file [constructor] +

+
+

+ Construct a basic_stream_file without opening it.

+ Construct and open a basic_stream_file.

Construct + a basic_stream_file on an existing native file.

Move-construct + a basic_stream_file from another.

Move-construct + a basic_stream_file from a file of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the file. +

+
+

+ close +

+
+

+ Close the file. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the file is open. +

+
+

+ native_handle +

+
+

+ Get the native file representation. +

+
+

+ open +

+
+

+ Open the file using the specified path. +

+
+

+ operator= +

+
+

+ Move-assign a basic_stream_file from another.

Move-assign + a basic_stream_file from a file of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the file. +

+
+

+ release +

+
+

+ Release ownership of the underlying native file. +

+
+

+ resize +

+
+

+ Alter the size of the file. +

+
+

+ seek +

+
+

+ Seek to a position in the file. +

+
+

+ size +

+
+

+ Get the size of the file. +

+
+

+ sync_all +

+
+

+ Synchronise the file to disk. +

+
+

+ sync_data +

+
+

+ Synchronise the file data to disk. +

+
+

+ write_some +

+
+

+ Write some data to the file. +

+
+

+ ~basic_stream_file [destructor] +

+
+

+ Destroys the file. +

+
+
+ + Data + Members +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ append [static] +

+
+

+ Open the file in append mode. +

+
+

+ create [static] +

+
+

+ Create the file if it does not exist. +

+
+

+ exclusive [static] +

+
+

+ Ensure a new file is created. Must be combined with create. +

+
+

+ read_only [static] +

+
+

+ Open the file for reading. +

+
+

+ read_write [static] +

+
+

+ Open the file for reading and writing. +

+
+

+ sync_all_on_write [static] +

+
+

+ Open the file so that write operations automatically synchronise + the file data and metadata to disk. +

+
+

+ truncate [static] +

+
+

+ Open the file with any existing contents truncated. +

+
+

+ write_only [static] +

+
+

+ Open the file for writing. +

+
+

+ The basic_stream_file + class template provides asynchronous and blocking stream-oriented file functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/stream_file.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/streambuf.html b/3party/asio/doc/asio/reference/streambuf.html new file mode 100644 index 0000000..75ad397 --- /dev/null +++ b/3party/asio/doc/asio/reference/streambuf.html @@ -0,0 +1,363 @@ + + + +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 [constructor] +

+
+

+ 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/3party/asio/doc/asio/reference/synchronous_socket_operations.html b/3party/asio/doc/asio/reference/synchronous_socket_operations.html new file mode 100644 index 0000000..f61e920 --- /dev/null +++ b/3party/asio/doc/asio/reference/synchronous_socket_operations.html @@ -0,0 +1,76 @@ + + + +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/3party/asio/doc/asio/reference/system_category.html b/3party/asio/doc/asio/reference/system_category.html new file mode 100644 index 0000000..a7bd44e --- /dev/null +++ b/3party/asio/doc/asio/reference/system_category.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/system_context.html b/3party/asio/doc/asio/reference/system_context.html new file mode 100644 index 0000000..e3ba2b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context.html @@ -0,0 +1,320 @@ + + + +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] +

+
+

+ 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/3party/asio/doc/asio/reference/system_context/_system_context.html b/3party/asio/doc/asio/reference/system_context/_system_context.html new file mode 100644 index 0000000..9aa8ab6 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/_system_context.html @@ -0,0 +1,41 @@ + + + +system_context::~system_context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor + shuts down all threads in the system thread pool. +

+
~system_context();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_context/add_service.html b/3party/asio/doc/asio/reference/system_context/add_service.html new file mode 100644 index 0000000..8edbc07 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/add_service.html @@ -0,0 +1,108 @@ + + + +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/3party/asio/doc/asio/reference/system_context/destroy.html b/3party/asio/doc/asio/reference/system_context/destroy.html new file mode 100644 index 0000000..86f8c14 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/destroy.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/system_context/executor_type.html b/3party/asio/doc/asio/reference/system_context/executor_type.html new file mode 100644 index 0000000..2a265bd --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/executor_type.html @@ -0,0 +1,275 @@ + + + +system_context::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + executor type associated with the context. +

+
typedef basic_system_executor< execution::blocking_t::possibly_t, execution::relationship_t::fork_t, std::allocator< void > > executor_type;
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_system_executor [constructor] +

+
+

+ Default constructor. +

+
+

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

+
+

+ execute +

+
+

+ Execution function. +

+
+

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

+
+

+ query +

+
+

+ Query the current value of the allocator property.

+ Query the occupancy (recommended number of work items) for the + system context. +

+
+

+ query [static] +

+
+

+ Query the current value of the mapping property.

+ Query the current value of the context property.

+ Query the current value of the blocking property.

+ Query the current value of the relationship property. +

+
+

+ require +

+
+

+ Obtain an executor with the blocking.possibly property.
+
Obtain an executor with the blocking.always property. +

Obtain an executor with the blocking.never property. +

Obtain an executor with the relationship.continuation + property.

Obtain an executor with the relationship.fork + property.

Obtain an executor with the specified + allocator property.

Obtain an executor with the + default allocator property. +

+
+
+ + 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. When the blocking.never property + is established, the system executor will schedule the function to run on + an unspecified system thread pool. When either blocking.possibly or blocking.always + is established, the executor invokes the function immediately. +

+
+ + Requirements +
+

+ Header: asio/system_context.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_context/fork_event.html b/3party/asio/doc/asio/reference/system_context/fork_event.html new file mode 100644 index 0000000..8ad9318 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/fork_event.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/system_context/get_executor.html b/3party/asio/doc/asio/reference/system_context/get_executor.html new file mode 100644 index 0000000..e84dda5 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/get_executor.html @@ -0,0 +1,41 @@ + + + +system_context::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an executor for the context. +

+
executor_type get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_context/has_service.html b/3party/asio/doc/asio/reference/system_context/has_service.html new file mode 100644 index 0000000..6812f8a --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/has_service.html @@ -0,0 +1,85 @@ + + + +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/3party/asio/doc/asio/reference/system_context/join.html b/3party/asio/doc/asio/reference/system_context/join.html new file mode 100644 index 0000000..28bc7ce --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/join.html @@ -0,0 +1,41 @@ + + + +system_context::join + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Join all threads in + the system thread pool. +

+
void join();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_context/make_service.html b/3party/asio/doc/asio/reference/system_context/make_service.html new file mode 100644 index 0000000..74e9170 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/make_service.html @@ -0,0 +1,94 @@ + + + +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/3party/asio/doc/asio/reference/system_context/notify_fork.html b/3party/asio/doc/asio/reference/system_context/notify_fork.html new file mode 100644 index 0000000..3c0333d --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/notify_fork.html @@ -0,0 +1,118 @@ + + + +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/3party/asio/doc/asio/reference/system_context/shutdown.html b/3party/asio/doc/asio/reference/system_context/shutdown.html new file mode 100644 index 0000000..0d9854c --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/shutdown.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/system_context/stop.html b/3party/asio/doc/asio/reference/system_context/stop.html new file mode 100644 index 0000000..60d8b34 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/stop.html @@ -0,0 +1,41 @@ + + + +system_context::stop + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Signal all threads + in the system thread pool to stop. +

+
void stop();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_context/stopped.html b/3party/asio/doc/asio/reference/system_context/stopped.html new file mode 100644 index 0000000..4266222 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/stopped.html @@ -0,0 +1,41 @@ + + + +system_context::stopped + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine whether + the system thread pool has been stopped. +

+
bool stopped() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_context/use_service.html b/3party/asio/doc/asio/reference/system_context/use_service.html new file mode 100644 index 0000000..a93d632 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/use_service.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/system_context/use_service/overload1.html b/3party/asio/doc/asio/reference/system_context/use_service/overload1.html new file mode 100644 index 0000000..82fd8b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/use_service/overload1.html @@ -0,0 +1,85 @@ + + + +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/3party/asio/doc/asio/reference/system_context/use_service/overload2.html b/3party/asio/doc/asio/reference/system_context/use_service/overload2.html new file mode 100644 index 0000000..50aec52 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_context/use_service/overload2.html @@ -0,0 +1,93 @@ + + + +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/3party/asio/doc/asio/reference/system_error.html b/3party/asio/doc/asio/reference/system_error.html new file mode 100644 index 0000000..13a181f --- /dev/null +++ b/3party/asio/doc/asio/reference/system_error.html @@ -0,0 +1,141 @@ + + + +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 [constructor] +

+
+

+ 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] +

+
+

+ Destructor. +

+
+
+ + Requirements +
+

+ Header: asio/system_error.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_error/_system_error.html b/3party/asio/doc/asio/reference/system_error/_system_error.html new file mode 100644 index 0000000..4955ef3 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_error/_system_error.html @@ -0,0 +1,40 @@ + + + +system_error::~system_error + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
virtual ~system_error();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_error/code.html b/3party/asio/doc/asio/reference/system_error/code.html new file mode 100644 index 0000000..34d771f --- /dev/null +++ b/3party/asio/doc/asio/reference/system_error/code.html @@ -0,0 +1,41 @@ + + + +system_error::code + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the error code associated + with the exception. +

+
error_code code() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_error/operator_eq_.html b/3party/asio/doc/asio/reference/system_error/operator_eq_.html new file mode 100644 index 0000000..53969ed --- /dev/null +++ b/3party/asio/doc/asio/reference/system_error/operator_eq_.html @@ -0,0 +1,42 @@ + + + +system_error::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assignment + operator. +

+
system_error & operator=(
+    const system_error & e);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_error/system_error.html b/3party/asio/doc/asio/reference/system_error/system_error.html new file mode 100644 index 0000000..93a8534 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_error/system_error.html @@ -0,0 +1,58 @@ + + + +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/3party/asio/doc/asio/reference/system_error/system_error/overload1.html b/3party/asio/doc/asio/reference/system_error/system_error/overload1.html new file mode 100644 index 0000000..29d230b --- /dev/null +++ b/3party/asio/doc/asio/reference/system_error/system_error/overload1.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/system_error/system_error/overload2.html b/3party/asio/doc/asio/reference/system_error/system_error/overload2.html new file mode 100644 index 0000000..c8d23a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_error/system_error/overload2.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/system_error/system_error/overload3.html b/3party/asio/doc/asio/reference/system_error/system_error/overload3.html new file mode 100644 index 0000000..a6366d3 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_error/system_error/overload3.html @@ -0,0 +1,41 @@ + + + +system_error::system_error (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
system_error(
+    const system_error & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_error/what.html b/3party/asio/doc/asio/reference/system_error/what.html new file mode 100644 index 0000000..2df75bd --- /dev/null +++ b/3party/asio/doc/asio/reference/system_error/what.html @@ -0,0 +1,41 @@ + + + +system_error::what + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get a string representation + of the exception. +

+
virtual const char * what() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_executor.html b/3party/asio/doc/asio/reference/system_executor.html new file mode 100644 index 0000000..ed826d7 --- /dev/null +++ b/3party/asio/doc/asio/reference/system_executor.html @@ -0,0 +1,282 @@ + + + +system_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ An executor that uses arbitrary threads. +

+
typedef basic_system_executor< execution::blocking_t::possibly_t, execution::relationship_t::fork_t, std::allocator< void > > system_executor;
+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_system_executor [constructor] +

+
+

+ Default constructor. +

+
+

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

+
+

+ execute +

+
+

+ Execution function. +

+
+

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

+
+

+ query +

+
+

+ Query the current value of the allocator property.

+ Query the occupancy (recommended number of work items) for the + system context. +

+
+

+ query [static] +

+
+

+ Query the current value of the mapping property.

+ Query the current value of the context property.

+ Query the current value of the blocking property.

+ Query the current value of the relationship property. +

+
+

+ require +

+
+

+ Obtain an executor with the blocking.possibly property.
+
Obtain an executor with the blocking.always property.
+
Obtain an executor with the blocking.never property.
+
Obtain an executor with the relationship.continuation property. +

Obtain an executor with the relationship.fork property. +

Obtain an executor with the specified allocator property. +

Obtain an executor with the default allocator property. +

+
+
+ + 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. When the blocking.never property is established, + the system executor will schedule the function to run on an unspecified system + thread pool. When either blocking.possibly or blocking.always is established, + the executor invokes the function immediately. +

+

+ The system executor represents an execution context where functions are permitted + to run on arbitrary threads. When the blocking.never property is established, + the system executor will schedule the function to run on an unspecified system + thread pool. When either blocking.possibly or blocking.always is established, + the executor invokes the function immediately. +

+
+ + Requirements +
+

+ Header: asio/system_executor.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/system_timer.html b/3party/asio/doc/asio/reference/system_timer.html new file mode 100644 index 0000000..0d8bc8f --- /dev/null +++ b/3party/asio/doc/asio/reference/system_timer.html @@ -0,0 +1,449 @@ + + + +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 +

+
+

+ rebind_executor +

+
+

+ Rebinds the timer type to another executor. +

+
+

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

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

+
+

+ operator= +

+
+

+ Move-assign a basic_waitable_timer from another. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the timer. +

+
+

+ ~basic_waitable_timer [destructor] +

+
+

+ 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(my_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(my_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/3party/asio/doc/asio/reference/this_coro__cancellation_state.html b/3party/asio/doc/asio/reference/this_coro__cancellation_state.html new file mode 100644 index 0000000..56dea21 --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__cancellation_state.html @@ -0,0 +1,67 @@ + + + +this_coro::cancellation_state + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Awaitable object that returns the cancellation state of the current coroutine. +

+
constexpr cancellation_state_t cancellation_state;
+
+
+ + Example +
+
asio::awaitable<void> my_coroutine()
+{
+  asio::cancellation_state cs
+    = co_await asio::this_coro::cancellation_state;
+
+  // ...
+
+  if (cs.cancelled() != asio::cancellation_type::none)
+    // ...
+}
+
+
+ + Requirements +
+

+ Header: asio/this_coro.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__cancellation_state_t.html b/3party/asio/doc/asio/reference/this_coro__cancellation_state_t.html new file mode 100644 index 0000000..d544007 --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__cancellation_state_t.html @@ -0,0 +1,84 @@ + + + +this_coro::cancellation_state_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Awaitable type that returns the cancellation state of the current coroutine. +

+
struct cancellation_state_t
+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ cancellation_state_t [constructor] +

+
+
+
+ + Requirements +
+

+ Header: asio/this_coro.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__cancellation_state_t/cancellation_state_t.html b/3party/asio/doc/asio/reference/this_coro__cancellation_state_t/cancellation_state_t.html new file mode 100644 index 0000000..fcc9d72 --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__cancellation_state_t/cancellation_state_t.html @@ -0,0 +1,39 @@ + + + +this_coro::cancellation_state_t::cancellation_state_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
constexpr cancellation_state_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__executor.html b/3party/asio/doc/asio/reference/this_coro__executor.html new file mode 100644 index 0000000..f94742d --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__executor.html @@ -0,0 +1,52 @@ + + + +this_coro::executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Awaitable object that returns the executor of the current coroutine. +

+
constexpr executor_t executor;
+
+
+ + Requirements +
+

+ Header: asio/this_coro.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__executor_t.html b/3party/asio/doc/asio/reference/this_coro__executor_t.html new file mode 100644 index 0000000..215c9a2 --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__executor_t.html @@ -0,0 +1,83 @@ + + + +this_coro::executor_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Awaitable type that returns the executor of the current coroutine. +

+
struct executor_t
+
+
+ + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_t [constructor] +

+
+
+
+ + Requirements +
+

+ Header: asio/this_coro.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__executor_t/executor_t.html b/3party/asio/doc/asio/reference/this_coro__executor_t/executor_t.html new file mode 100644 index 0000000..4710577 --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__executor_t/executor_t.html @@ -0,0 +1,39 @@ + + + +this_coro::executor_t::executor_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+
constexpr executor_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state.html b/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state.html new file mode 100644 index 0000000..dcc609e --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state.html @@ -0,0 +1,68 @@ + + + +this_coro::reset_cancellation_state + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Returns an awaitable object that may be used to reset the cancellation state + of the current coroutine. +

+
constexpr unspecified reset_cancellation_state();
+  » more...
+
+template<
+    typename Filter>
+constexpr unspecified reset_cancellation_state(
+    Filter && filter);
+  » more...
+
+template<
+    typename InFilter,
+    typename OutFilter>
+constexpr unspecified reset_cancellation_state(
+    InFilter && in_filter,
+    OutFilter && out_filter);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/this_coro.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload1.html b/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload1.html new file mode 100644 index 0000000..7f24f3a --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload1.html @@ -0,0 +1,68 @@ + + + +this_coro::reset_cancellation_state (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Returns an awaitable object that may be used to reset the cancellation + state of the current coroutine. +

+
constexpr unspecified reset_cancellation_state();
+
+

+ Let P be the cancellation + slot associated with the current coroutine's co_spawn completion handler. Assigns + a new cancellation_state + object S, constructed as + S(P), into + the current coroutine's cancellation state object. +

+
+ + Example +
+
asio::awaitable<void> my_coroutine()
+{
+  co_await asio::this_coro::reset_cancellation_state();
+
+  // ...
+}
+
+
+ + Remarks +
+

+ The cancellation state is shared by all coroutines in the same "thread + of execution" that was created using co_spawn. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload2.html b/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload2.html new file mode 100644 index 0000000..a81049a --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload2.html @@ -0,0 +1,72 @@ + + + +this_coro::reset_cancellation_state (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Returns an awaitable object that may be used to reset the cancellation + state of the current coroutine. +

+
template<
+    typename Filter>
+constexpr unspecified reset_cancellation_state(
+    Filter && filter);
+
+

+ Let P be the cancellation + slot associated with the current coroutine's co_spawn completion handler. Assigns + a new cancellation_state + object S, constructed as + S(P, std::forward<Filter>(filter)), into the current coroutine's cancellation + state object. +

+
+ + Example +
+
asio::awaitable<void> my_coroutine()
+{
+  co_await asio::this_coro::reset_cancellation_state(
+      asio::enable_partial_cancellation());
+
+  // ...
+}
+
+
+ + Remarks +
+

+ The cancellation state is shared by all coroutines in the same "thread + of execution" that was created using co_spawn. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload3.html b/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload3.html new file mode 100644 index 0000000..23e00ea --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__reset_cancellation_state/overload3.html @@ -0,0 +1,75 @@ + + + +this_coro::reset_cancellation_state (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Returns an awaitable object that may be used to reset the cancellation + state of the current coroutine. +

+
template<
+    typename InFilter,
+    typename OutFilter>
+constexpr unspecified reset_cancellation_state(
+    InFilter && in_filter,
+    OutFilter && out_filter);
+
+

+ Let P be the cancellation + slot associated with the current coroutine's co_spawn completion handler. Assigns + a new cancellation_state + object S, constructed as + S(P, std::forward<InFilter>(in_filter), std::forward<OutFilter>(out_filter)), into the current coroutine's cancellation + state object. +

+
+ + Example +
+
asio::awaitable<void> my_coroutine()
+{
+  co_await asio::this_coro::reset_cancellation_state(
+      asio::enable_partial_cancellation(),
+      asio::disable_cancellation());
+
+  // ...
+}
+
+
+ + Remarks +
+

+ The cancellation state is shared by all coroutines in the same "thread + of execution" that was created using co_spawn. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__throw_if_cancelled.html b/3party/asio/doc/asio/reference/this_coro__throw_if_cancelled.html new file mode 100644 index 0000000..ca40505 --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__throw_if_cancelled.html @@ -0,0 +1,62 @@ + + + +this_coro::throw_if_cancelled + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Returns an awaitable object that may be used to determine whether the coroutine + throws if trying to suspend when it has been cancelled. +

+
constexpr unspecified throw_if_cancelled();
+  » more...
+
+

+ Returns an awaitable object that may be used to specify whether the coroutine + throws if trying to suspend when it has been cancelled. +

+
constexpr unspecified throw_if_cancelled(
+    bool value);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/this_coro.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__throw_if_cancelled/overload1.html b/3party/asio/doc/asio/reference/this_coro__throw_if_cancelled/overload1.html new file mode 100644 index 0000000..70e50b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__throw_if_cancelled/overload1.html @@ -0,0 +1,53 @@ + + + +this_coro::throw_if_cancelled (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Returns an awaitable object that may be used to determine whether the coroutine + throws if trying to suspend when it has been cancelled. +

+
constexpr unspecified throw_if_cancelled();
+
+
+ + Example +
+
asio::awaitable<void> my_coroutine()
+{
+  if (co_await asio::this_coro::throw_if_cancelled)
+    // ...
+
+  // ...
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/this_coro__throw_if_cancelled/overload2.html b/3party/asio/doc/asio/reference/this_coro__throw_if_cancelled/overload2.html new file mode 100644 index 0000000..1f61546 --- /dev/null +++ b/3party/asio/doc/asio/reference/this_coro__throw_if_cancelled/overload2.html @@ -0,0 +1,53 @@ + + + +this_coro::throw_if_cancelled (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Returns an awaitable object that may be used to specify whether the coroutine + throws if trying to suspend when it has been cancelled. +

+
constexpr unspecified throw_if_cancelled(
+    bool value);
+
+
+ + Example +
+
asio::awaitable<void> my_coroutine()
+{
+  co_await asio::this_coro::throw_if_cancelled(false);
+
+  // ...
+}
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread.html b/3party/asio/doc/asio/reference/thread.html new file mode 100644 index 0000000..94b9e10 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread.html @@ -0,0 +1,148 @@ + + + +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 + [constructor] +

+
+

+ Start a new thread that executes the supplied function. +

+
+

+ ~thread + [destructor] +

+
+

+ 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/3party/asio/doc/asio/reference/thread/_thread.html b/3party/asio/doc/asio/reference/thread/_thread.html new file mode 100644 index 0000000..c91ffe6 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread/_thread.html @@ -0,0 +1,40 @@ + + + +thread::~thread + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~thread();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread/join.html b/3party/asio/doc/asio/reference/thread/join.html new file mode 100644 index 0000000..a906df1 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread/join.html @@ -0,0 +1,48 @@ + + + +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/3party/asio/doc/asio/reference/thread/thread.html b/3party/asio/doc/asio/reference/thread/thread.html new file mode 100644 index 0000000..ad481f5 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread/thread.html @@ -0,0 +1,66 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool.html b/3party/asio/doc/asio/reference/thread_pool.html new file mode 100644 index 0000000..be031f3 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool.html @@ -0,0 +1,432 @@ + + + +thread_pool + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A simple fixed-size thread pool. +

+
class thread_pool :
+  public execution_context
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_executor_type +

+
+

+ Executor implementation type used to submit functions to a thread + pool. +

+
+

+ executor_type +

+
+

+ Executor used to submit functions to a thread pool. +

+
+

+ fork_event +

+
+

+ Fork-related event notifications. +

+
+

+ scheduler_type +

+
+

+ Scheduler used to schedule receivers on a thread pool. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ attach +

+
+

+ Attaches the current thread to the pool. +

+
+

+ executor +

+
+

+ Obtains the executor associated with the pool. +

+
+

+ get_executor +

+
+

+ Obtains the executor associated with the pool. +

+
+

+ join +

+
+

+ Joins the threads. +

+
+

+ notify_fork +

+
+

+ Notify the execution_context of a fork-related event. +

+
+

+ scheduler +

+
+

+ Obtains the scheduler associated with the pool. +

+
+

+ stop +

+
+

+ Stops the threads. +

+
+

+ thread_pool [constructor] +

+
+

+ Constructs a pool with an automatically determined number of threads. +

Constructs a pool with a specified number of threads. +

+
+

+ wait +

+
+

+ Waits for threads to complete. +

+
+

+ ~thread_pool [destructor] +

+
+

+ 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/3party/asio/doc/asio/reference/thread_pool/_thread_pool.html b/3party/asio/doc/asio/reference/thread_pool/_thread_pool.html new file mode 100644 index 0000000..0b21f4c --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/_thread_pool.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/add_service.html b/3party/asio/doc/asio/reference/thread_pool/add_service.html new file mode 100644 index 0000000..41eb596 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/add_service.html @@ -0,0 +1,108 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/attach.html b/3party/asio/doc/asio/reference/thread_pool/attach.html new file mode 100644 index 0000000..b4e998c --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/attach.html @@ -0,0 +1,46 @@ + + + +thread_pool::attach + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Attaches the current + thread to the pool. +

+
void attach();
+
+

+ This function attaches the current thread to the pool so that it may be + used for executing submitted function objects. Blocks the calling thread + until the pool is stopped or joined and has no outstanding work. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool/destroy.html b/3party/asio/doc/asio/reference/thread_pool/destroy.html new file mode 100644 index 0000000..9237254 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/destroy.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/executor.html b/3party/asio/doc/asio/reference/thread_pool/executor.html new file mode 100644 index 0000000..77c929d --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/executor.html @@ -0,0 +1,41 @@ + + + +thread_pool::executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtains the executor + associated with the pool. +

+
executor_type executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool/executor_type.html b/3party/asio/doc/asio/reference/thread_pool/executor_type.html new file mode 100644 index 0000000..881f871 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/executor_type.html @@ -0,0 +1,405 @@ + + + +thread_pool::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Executor + used to submit functions to a thread pool. +

+
typedef basic_executor_type< std::allocator< void >, 0 > executor_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ index_type +

+
+

+ The bulk execution index type. +

+
+

+ sender_type +

+
+

+ (Deprecated.) The sender type, when this type is used as a scheduler. +

+
+

+ shape_type +

+
+

+ The bulk execution shape type. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_executor_type [constructor] +

+
+

+ Copy constructor.

Move constructor. +

+
+

+ bulk_execute +

+
+

+ (Deprecated.) Bulk execution function. +

+
+

+ connect +

+
+

+ (Deprecated.) Connect function. +

+
+

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

+
+

+ execute +

+
+

+ Execution function. +

+
+

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

+
+

+ operator= +

+
+

+ Assignment operator.

Move assignment operator. +

+
+

+ post +

+
+

+ Request the thread pool to invoke the given function object. +

+
+

+ query +

+
+

+ Query the current value of the context property.

+ Query the current value of the blocking property.

+ Query the current value of the relationship property.
+
Query the current value of the allocator property.
+
Query the occupancy (recommended number of work items) + for the pool. +

+
+

+ query [static] +

+
+

+ (Deprecated.) Query the current value of the bulk_guarantee property. +

Query the current value of the mapping property. +

Query the current value of the outstanding_work + property. +

+
+

+ require +

+
+

+ Obtain an executor with the blocking.possibly property.
+
Obtain an executor with the blocking.always property. +

Obtain an executor with the blocking.never property. +

Obtain an executor with the relationship.fork property. +

Obtain an executor with the relationship.continuation + property.

Obtain an executor with the outstanding_work.tracked + property.

Obtain an executor with the outstanding_work.untracked + property.

Obtain an executor with the specified + allocator property.

Obtain an executor with the + default allocator property. +

+
+

+ running_in_this_thread +

+
+

+ Determine whether the thread pool is running in the current thread. +

+
+

+ schedule +

+
+

+ (Deprecated.) Schedule function. +

+
+

+ ~basic_executor_type [destructor] +

+
+

+ Destructor. +

+
+
+ + 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/3party/asio/doc/asio/reference/thread_pool/fork_event.html b/3party/asio/doc/asio/reference/thread_pool/fork_event.html new file mode 100644 index 0000000..d4fcda6 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/fork_event.html @@ -0,0 +1,70 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/get_executor.html b/3party/asio/doc/asio/reference/thread_pool/get_executor.html new file mode 100644 index 0000000..e37a718 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/get_executor.html @@ -0,0 +1,41 @@ + + + +thread_pool::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtains the + executor associated with the pool. +

+
executor_type get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool/has_service.html b/3party/asio/doc/asio/reference/thread_pool/has_service.html new file mode 100644 index 0000000..06e4111 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/has_service.html @@ -0,0 +1,84 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/join.html b/3party/asio/doc/asio/reference/thread_pool/join.html new file mode 100644 index 0000000..2d543db --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/join.html @@ -0,0 +1,46 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/make_service.html b/3party/asio/doc/asio/reference/thread_pool/make_service.html new file mode 100644 index 0000000..359a729 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/make_service.html @@ -0,0 +1,94 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/notify_fork.html b/3party/asio/doc/asio/reference/thread_pool/notify_fork.html new file mode 100644 index 0000000..190b96c --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/notify_fork.html @@ -0,0 +1,118 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/scheduler.html b/3party/asio/doc/asio/reference/thread_pool/scheduler.html new file mode 100644 index 0000000..eb6e2ac --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/scheduler.html @@ -0,0 +1,41 @@ + + + +thread_pool::scheduler + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtains the scheduler + associated with the pool. +

+
scheduler_type scheduler();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool/scheduler_type.html b/3party/asio/doc/asio/reference/thread_pool/scheduler_type.html new file mode 100644 index 0000000..5cbdce7 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/scheduler_type.html @@ -0,0 +1,405 @@ + + + +thread_pool::scheduler_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Scheduler + used to schedule receivers on a thread pool. +

+
typedef basic_executor_type< std::allocator< void >, 0 > scheduler_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ index_type +

+
+

+ The bulk execution index type. +

+
+

+ sender_type +

+
+

+ (Deprecated.) The sender type, when this type is used as a scheduler. +

+
+

+ shape_type +

+
+

+ The bulk execution shape type. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_executor_type [constructor] +

+
+

+ Copy constructor.

Move constructor. +

+
+

+ bulk_execute +

+
+

+ (Deprecated.) Bulk execution function. +

+
+

+ connect +

+
+

+ (Deprecated.) Connect function. +

+
+

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

+
+

+ execute +

+
+

+ Execution function. +

+
+

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

+
+

+ operator= +

+
+

+ Assignment operator.

Move assignment operator. +

+
+

+ post +

+
+

+ Request the thread pool to invoke the given function object. +

+
+

+ query +

+
+

+ Query the current value of the context property.

+ Query the current value of the blocking property.

+ Query the current value of the relationship property.
+
Query the current value of the allocator property.
+
Query the occupancy (recommended number of work items) + for the pool. +

+
+

+ query [static] +

+
+

+ (Deprecated.) Query the current value of the bulk_guarantee property. +

Query the current value of the mapping property. +

Query the current value of the outstanding_work + property. +

+
+

+ require +

+
+

+ Obtain an executor with the blocking.possibly property.
+
Obtain an executor with the blocking.always property. +

Obtain an executor with the blocking.never property. +

Obtain an executor with the relationship.fork property. +

Obtain an executor with the relationship.continuation + property.

Obtain an executor with the outstanding_work.tracked + property.

Obtain an executor with the outstanding_work.untracked + property.

Obtain an executor with the specified + allocator property.

Obtain an executor with the + default allocator property. +

+
+

+ running_in_this_thread +

+
+

+ Determine whether the thread pool is running in the current thread. +

+
+

+ schedule +

+
+

+ (Deprecated.) Schedule function. +

+
+

+ ~basic_executor_type [destructor] +

+
+

+ Destructor. +

+
+
+ + 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/3party/asio/doc/asio/reference/thread_pool/shutdown.html b/3party/asio/doc/asio/reference/thread_pool/shutdown.html new file mode 100644 index 0000000..085f2e0 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/shutdown.html @@ -0,0 +1,53 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/stop.html b/3party/asio/doc/asio/reference/thread_pool/stop.html new file mode 100644 index 0000000..293dfc3 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/stop.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/thread_pool.html b/3party/asio/doc/asio/reference/thread_pool/thread_pool.html new file mode 100644 index 0000000..b4746ab --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/thread_pool.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/thread_pool/overload1.html b/3party/asio/doc/asio/reference/thread_pool/thread_pool/overload1.html new file mode 100644 index 0000000..fdbf29a --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/thread_pool/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/thread_pool/overload2.html b/3party/asio/doc/asio/reference/thread_pool/thread_pool/overload2.html new file mode 100644 index 0000000..9917923 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/thread_pool/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/use_service.html b/3party/asio/doc/asio/reference/thread_pool/use_service.html new file mode 100644 index 0000000..74ff23f --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/use_service.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/use_service/overload1.html b/3party/asio/doc/asio/reference/thread_pool/use_service/overload1.html new file mode 100644 index 0000000..f328af4 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/use_service/overload1.html @@ -0,0 +1,85 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/use_service/overload2.html b/3party/asio/doc/asio/reference/thread_pool/use_service/overload2.html new file mode 100644 index 0000000..2f72282 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/use_service/overload2.html @@ -0,0 +1,93 @@ + + + +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/3party/asio/doc/asio/reference/thread_pool/wait.html b/3party/asio/doc/asio/reference/thread_pool/wait.html new file mode 100644 index 0000000..3e4cce6 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool/wait.html @@ -0,0 +1,46 @@ + + + +thread_pool::wait + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Waits for threads to complete. +

+
void wait();
+
+

+ This function blocks until the threads in the pool have completed. If + stop() + is not called prior to wait(), the wait() call will wait until the pool has no + more outstanding work. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type.html new file mode 100644 index 0000000..655ef9a --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type.html @@ -0,0 +1,408 @@ + + + +thread_pool::basic_executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Executor implementation type used to submit functions to a thread pool. +

+
template<
+    typename Allocator,
+    unsigned int Bits>
+class basic_executor_type
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ index_type +

+
+

+ The bulk execution index type. +

+
+

+ sender_type +

+
+

+ (Deprecated.) The sender type, when this type is used as a scheduler. +

+
+

+ shape_type +

+
+

+ The bulk execution shape type. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_executor_type [constructor] +

+
+

+ Copy constructor.

Move constructor. +

+
+

+ bulk_execute +

+
+

+ (Deprecated.) Bulk execution function. +

+
+

+ connect +

+
+

+ (Deprecated.) Connect function. +

+
+

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

+
+

+ execute +

+
+

+ Execution function. +

+
+

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

+
+

+ operator= +

+
+

+ Assignment operator.

Move assignment operator. +

+
+

+ post +

+
+

+ Request the thread pool to invoke the given function object. +

+
+

+ query +

+
+

+ Query the current value of the context property.

+ Query the current value of the blocking property.

+ Query the current value of the relationship property.

+ Query the current value of the allocator property.

+ Query the occupancy (recommended number of work items) for the + pool. +

+
+

+ query [static] +

+
+

+ (Deprecated.) Query the current value of the bulk_guarantee property. +

Query the current value of the mapping property. +

Query the current value of the outstanding_work property. +

+
+

+ require +

+
+

+ Obtain an executor with the blocking.possibly property.
+
Obtain an executor with the blocking.always property.
+
Obtain an executor with the blocking.never property.
+
Obtain an executor with the relationship.fork property. +

Obtain an executor with the relationship.continuation + property.

Obtain an executor with the outstanding_work.tracked + property.

Obtain an executor with the outstanding_work.untracked + property.

Obtain an executor with the specified allocator + property.

Obtain an executor with the default allocator + property. +

+
+

+ running_in_this_thread +

+
+

+ Determine whether the thread pool is running in the current thread. +

+
+

+ schedule +

+
+

+ (Deprecated.) Schedule function. +

+
+

+ ~basic_executor_type [destructor] +

+
+

+ Destructor. +

+
+
+ + 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/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/_basic_executor_type.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/_basic_executor_type.html new file mode 100644 index 0000000..21496ec --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/_basic_executor_type.html @@ -0,0 +1,40 @@ + + + +thread_pool::basic_executor_type::~basic_executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor. +

+
~basic_executor_type();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type.html new file mode 100644 index 0000000..3588578 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type.html @@ -0,0 +1,50 @@ + + + +thread_pool::basic_executor_type::basic_executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Copy + constructor. +

+
basic_executor_type(
+    const basic_executor_type & other);
+  » more...
+
+

+ Move constructor. +

+
basic_executor_type(
+    basic_executor_type && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload1.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload1.html new file mode 100644 index 0000000..31a8c94 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload1.html @@ -0,0 +1,41 @@ + + + +thread_pool::basic_executor_type::basic_executor_type (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Copy constructor. +

+
basic_executor_type(
+    const basic_executor_type & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload2.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload2.html new file mode 100644 index 0000000..d8f929c --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload2.html @@ -0,0 +1,41 @@ + + + +thread_pool::basic_executor_type::basic_executor_type (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move constructor. +

+
basic_executor_type(
+    basic_executor_type && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/bulk_execute.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/bulk_execute.html new file mode 100644 index 0000000..83624ef --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/bulk_execute.html @@ -0,0 +1,45 @@ + + + +thread_pool::basic_executor_type::bulk_execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +(Deprecated.) + Bulk execution function. +

+
template<
+    typename Function>
+void bulk_execute(
+    Function && f,
+    std::size_t n) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/connect.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/connect.html new file mode 100644 index 0000000..bb3c012 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/connect.html @@ -0,0 +1,57 @@ + + + +thread_pool::basic_executor_type::connect + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +(Deprecated.) + Connect function. +

+
template<
+    typename Receiver>
+unspecified connect(
+    Receiver && r) const;
+
+

+ Do not call this function directly. It is intended for use with the execution::connect + customisation point. +

+
+ + Return + Value +
+

+ An object of an unspecified type that satisfies the operation_state + concept. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/context.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/context.html new file mode 100644 index 0000000..00f1966 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/context.html @@ -0,0 +1,41 @@ + + + +thread_pool::basic_executor_type::context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + the underlying execution context. +

+
thread_pool & context() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/defer.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/defer.html new file mode 100644 index 0000000..824c5b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/defer.html @@ -0,0 +1,79 @@ + + + +thread_pool::basic_executor_type::defer + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Request + the thread pool to invoke the given function object. +

+
template<
+    typename Function,
+    typename OtherAllocator>
+void defer(
+    Function && f,
+    const OtherAllocator & 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/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/dispatch.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/dispatch.html new file mode 100644 index 0000000..0eefa21 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/dispatch.html @@ -0,0 +1,75 @@ + + + +thread_pool::basic_executor_type::dispatch + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Request + the thread pool to invoke the given function object. +

+
template<
+    typename Function,
+    typename OtherAllocator>
+void dispatch(
+    Function && f,
+    const OtherAllocator & 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/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/execute.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/execute.html new file mode 100644 index 0000000..16f80c6 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/execute.html @@ -0,0 +1,44 @@ + + + +thread_pool::basic_executor_type::execute + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Execution + function. +

+
template<
+    typename Function>
+void execute(
+    Function && f) const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/index_type.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/index_type.html new file mode 100644 index 0000000..3144f8f --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/index_type.html @@ -0,0 +1,51 @@ + + + +thread_pool::basic_executor_type::index_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + bulk execution index type. +

+
typedef std::size_t index_type;
+
+
+ + Requirements +
+

+ Header: asio/thread_pool.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/on_work_finished.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/on_work_finished.html new file mode 100644 index 0000000..dd2623a --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/on_work_finished.html @@ -0,0 +1,46 @@ + + + +thread_pool::basic_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/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/on_work_started.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/on_work_started.html new file mode 100644 index 0000000..78a4289 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/on_work_started.html @@ -0,0 +1,46 @@ + + + +thread_pool::basic_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/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_.html new file mode 100644 index 0000000..80bf4c9 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_.html @@ -0,0 +1,50 @@ + + + +thread_pool::basic_executor_type::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Assignment + operator. +

+
basic_executor_type & operator=(
+    const basic_executor_type & other);
+  » more...
+
+

+ Move assignment operator. +

+
basic_executor_type & operator=(
+    basic_executor_type && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_/overload1.html new file mode 100644 index 0000000..b3ca950 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_/overload1.html @@ -0,0 +1,41 @@ + + + +thread_pool::basic_executor_type::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Assignment operator. +

+
basic_executor_type & operator=(
+    const basic_executor_type & other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_/overload2.html new file mode 100644 index 0000000..d06ac1d --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq_/overload2.html @@ -0,0 +1,41 @@ + + + +thread_pool::basic_executor_type::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move assignment operator. +

+
basic_executor_type & operator=(
+    basic_executor_type && other);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq__eq_.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq__eq_.html new file mode 100644 index 0000000..b58725f --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_eq__eq_.html @@ -0,0 +1,56 @@ + + + +thread_pool::basic_executor_type::operator== + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + two executors for equality. +

+
friend bool operator==(
+    const basic_executor_type & a,
+    const basic_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/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_not__eq_.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_not__eq_.html new file mode 100644 index 0000000..1db7d0b --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/operator_not__eq_.html @@ -0,0 +1,56 @@ + + + +thread_pool::basic_executor_type::operator!= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Compare + two executors for inequality. +

+
friend bool operator!=(
+    const basic_executor_type & a,
+    const basic_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/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/post.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/post.html new file mode 100644 index 0000000..821bcc0 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/post.html @@ -0,0 +1,75 @@ + + + +thread_pool::basic_executor_type::post + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Request + the thread pool to invoke the given function object. +

+
template<
+    typename Function,
+    typename OtherAllocator>
+void post(
+    Function && f,
+    const OtherAllocator & 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/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query.html new file mode 100644 index 0000000..9c990d2 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query.html @@ -0,0 +1,81 @@ + + + +thread_pool::basic_executor_type::query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Query + the current value of the context + property. +

+
thread_pool & query(
+    execution::context_t ) const;
+  » more...
+
+

+ Query the current value of the blocking + property. +

+
constexpr execution::blocking_t query(
+    execution::blocking_t ) const;
+  » more...
+
+

+ Query the current value of the relationship + property. +

+
constexpr execution::relationship_t query(
+    execution::relationship_t ) const;
+  » more...
+
+

+ Query the current value of the allocator + property. +

+
template<
+    typename OtherAllocator>
+constexpr Allocator query(
+    execution::allocator_t< OtherAllocator > ) const;
+  » more...
+
+constexpr Allocator query(
+    execution::allocator_t< void > ) const;
+  » more...
+
+

+ Query the occupancy (recommended number of work items) for the pool. +

+
std::size_t query(
+    execution::occupancy_t ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload1.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload1.html new file mode 100644 index 0000000..9a77b56 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload1.html @@ -0,0 +1,54 @@ + + + +thread_pool::basic_executor_type::query (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the context + property. +

+
thread_pool & query(
+    execution::context_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_thread_pool.executor();
+asio::thread_pool& pool = asio::query(
+    ex, asio::execution::context);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload2.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload2.html new file mode 100644 index 0000000..d334220 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload2.html @@ -0,0 +1,55 @@ + + + +thread_pool::basic_executor_type::query (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the blocking + property. +

+
constexpr execution::blocking_t query(
+    execution::blocking_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_thread_pool.executor();
+if (asio::query(ex, asio::execution::blocking)
+      == asio::execution::blocking.always)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload3.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload3.html new file mode 100644 index 0000000..7785fab --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload3.html @@ -0,0 +1,55 @@ + + + +thread_pool::basic_executor_type::query (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the relationship + property. +

+
constexpr execution::relationship_t query(
+    execution::relationship_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_thread_pool.executor();
+if (asio::query(ex, asio::execution::relationship)
+      == asio::execution::relationship.continuation)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload4.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload4.html new file mode 100644 index 0000000..e7f4ec2 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload4.html @@ -0,0 +1,56 @@ + + + +thread_pool::basic_executor_type::query (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the allocator + property. +

+
template<
+    typename OtherAllocator>
+constexpr Allocator query(
+    execution::allocator_t< OtherAllocator > ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_thread_pool.executor();
+auto alloc = asio::query(ex,
+    asio::execution::allocator);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload5.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload5.html new file mode 100644 index 0000000..f2f3cbf --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload5.html @@ -0,0 +1,54 @@ + + + +thread_pool::basic_executor_type::query (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the allocator + property. +

+
constexpr Allocator query(
+    execution::allocator_t< void > ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_thread_pool.executor();
+auto alloc = asio::query(ex,
+    asio::execution::allocator);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload6.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload6.html new file mode 100644 index 0000000..48d4586 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query/overload6.html @@ -0,0 +1,53 @@ + + + +thread_pool::basic_executor_type::query (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the occupancy (recommended number of work items) for the pool. +

+
std::size_t query(
+    execution::occupancy_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_thread_pool.executor();
+std::size_t occupancy = asio::query(
+    ex, asio::execution::occupancy);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static.html new file mode 100644 index 0000000..ec5662e --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static.html @@ -0,0 +1,60 @@ + + + +thread_pool::basic_executor_type::query + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +(Deprecated.) + Query the current value of the bulk_guarantee + property. +

+
static constexpr execution::bulk_guarantee_t query(
+    execution::bulk_guarantee_t );
+  » more...
+
+

+ Query the current value of the mapping + property. +

+
static constexpr execution::mapping_t query(
+    execution::mapping_t );
+  » more...
+
+

+ Query the current value of the outstanding_work + property. +

+
static constexpr execution::outstanding_work_t query(
+    execution::outstanding_work_t );
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload1.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload1.html new file mode 100644 index 0000000..bf0cff1 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload1.html @@ -0,0 +1,55 @@ + + + +thread_pool::basic_executor_type::query (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ (Deprecated.) Query the current value of the bulk_guarantee + property. +

+
static constexpr execution::bulk_guarantee_t query(
+    execution::bulk_guarantee_t );
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_thread_pool.executor();
+if (asio::query(ex, asio::execution::bulk_guarantee)
+      == asio::execution::bulk_guarantee.parallel)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload2.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload2.html new file mode 100644 index 0000000..0fa70cd --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload2.html @@ -0,0 +1,55 @@ + + + +thread_pool::basic_executor_type::query (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the mapping + property. +

+
static constexpr execution::mapping_t query(
+    execution::mapping_t );
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_thread_pool.executor();
+if (asio::query(ex, asio::execution::mapping)
+      == asio::execution::mapping.thread)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload3.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload3.html new file mode 100644 index 0000000..91c0d32 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/query__static/overload3.html @@ -0,0 +1,55 @@ + + + +thread_pool::basic_executor_type::query (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Query the current value of the outstanding_work + property. +

+
static constexpr execution::outstanding_work_t query(
+    execution::outstanding_work_t );
+
+

+ Do not call this function directly. It is intended for use with the + query + customisation point. +

+

+ For example: +

+
auto ex = my_thread_pool.executor();
+if (asio::query(ex, asio::execution::outstanding_work)
+      == asio::execution::outstanding_work.tracked)
+  ...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require.html new file mode 100644 index 0000000..16f556e --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require.html @@ -0,0 +1,110 @@ + + + +thread_pool::basic_executor_type::require + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + an executor with the blocking.possibly + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::blocking_t::possibly_t ) const;
+  » more...
+
+

+ Obtain an executor with the blocking.always + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::blocking_t::always_t ) const;
+  » more...
+
+

+ Obtain an executor with the blocking.never + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::blocking_t::never_t ) const;
+  » more...
+
+

+ Obtain an executor with the relationship.fork + property. +

+
constexpr basic_executor_type require(
+    execution::relationship_t::fork_t ) const;
+  » more...
+
+

+ Obtain an executor with the relationship.continuation + property. +

+
constexpr basic_executor_type require(
+    execution::relationship_t::continuation_t ) const;
+  » more...
+
+

+ Obtain an executor with the outstanding_work.tracked + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::outstanding_work_t::tracked_t ) const;
+  » more...
+
+

+ Obtain an executor with the outstanding_work.untracked + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::outstanding_work_t::untracked_t ) const;
+  » more...
+
+

+ Obtain an executor with the specified allocator + property. +

+
template<
+    typename OtherAllocator>
+constexpr basic_executor_type< OtherAllocator, Bits > require(
+    execution::allocator_t< OtherAllocator > a) const;
+  » more...
+
+

+ Obtain an executor with the default allocator + property. +

+
constexpr basic_executor_type< std::allocator< void >, Bits > require(
+    execution::allocator_t< void > ) const;
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload1.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload1.html new file mode 100644 index 0000000..1071939 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload1.html @@ -0,0 +1,54 @@ + + + +thread_pool::basic_executor_type::require (1 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the blocking.possibly + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::blocking_t::possibly_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_thread_pool.executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::blocking.possibly);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload2.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload2.html new file mode 100644 index 0000000..1b95c11 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload2.html @@ -0,0 +1,54 @@ + + + +thread_pool::basic_executor_type::require (2 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the blocking.always + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::blocking_t::always_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_thread_pool.executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::blocking.always);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload3.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload3.html new file mode 100644 index 0000000..e741e82 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload3.html @@ -0,0 +1,54 @@ + + + +thread_pool::basic_executor_type::require (3 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the blocking.never + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::blocking_t::never_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_thread_pool.executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::blocking.never);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload4.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload4.html new file mode 100644 index 0000000..7940496 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload4.html @@ -0,0 +1,54 @@ + + + +thread_pool::basic_executor_type::require (4 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the relationship.fork + property. +

+
constexpr basic_executor_type require(
+    execution::relationship_t::fork_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_thread_pool.executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::relationship.fork);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload5.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload5.html new file mode 100644 index 0000000..24e0e3d --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload5.html @@ -0,0 +1,54 @@ + + + +thread_pool::basic_executor_type::require (5 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the relationship.continuation + property. +

+
constexpr basic_executor_type require(
+    execution::relationship_t::continuation_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_thread_pool.executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::relationship.continuation);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload6.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload6.html new file mode 100644 index 0000000..6e09ef9 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload6.html @@ -0,0 +1,54 @@ + + + +thread_pool::basic_executor_type::require (6 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the outstanding_work.tracked + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::outstanding_work_t::tracked_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_thread_pool.executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::outstanding_work.tracked);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload7.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload7.html new file mode 100644 index 0000000..f823a98 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload7.html @@ -0,0 +1,54 @@ + + + +thread_pool::basic_executor_type::require (7 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the outstanding_work.untracked + property. +

+
constexpr basic_executor_type< Allocator, unspecified > require(
+    execution::outstanding_work_t::untracked_t ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_thread_pool.executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::outstanding_work.untracked);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload8.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload8.html new file mode 100644 index 0000000..addec6e --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload8.html @@ -0,0 +1,56 @@ + + + +thread_pool::basic_executor_type::require (8 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the specified allocator + property. +

+
template<
+    typename OtherAllocator>
+constexpr basic_executor_type< OtherAllocator, Bits > require(
+    execution::allocator_t< OtherAllocator > a) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_thread_pool.executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::allocator(my_allocator));
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload9.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload9.html new file mode 100644 index 0000000..f672faa --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/require/overload9.html @@ -0,0 +1,54 @@ + + + +thread_pool::basic_executor_type::require (9 of 9 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Obtain an executor with the default allocator + property. +

+
constexpr basic_executor_type< std::allocator< void >, Bits > require(
+    execution::allocator_t< void > ) const;
+
+

+ Do not call this function directly. It is intended for use with the + require + customisation point. +

+

+ For example: +

+
auto ex1 = my_thread_pool.executor();
+auto ex2 = asio::require(ex1,
+    asio::execution::allocator);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/running_in_this_thread.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/running_in_this_thread.html new file mode 100644 index 0000000..ea1bc0a --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/running_in_this_thread.html @@ -0,0 +1,50 @@ + + + +thread_pool::basic_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 + is running the thread pool. Otherwise returns false. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/schedule.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/schedule.html new file mode 100644 index 0000000..e3166ef --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/schedule.html @@ -0,0 +1,53 @@ + + + +thread_pool::basic_executor_type::schedule + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +(Deprecated.) + Schedule function. +

+
sender_type schedule() const;
+
+

+ Do not call this function directly. It is intended for use with the execution::schedule + customisation point. +

+
+ + Return + Value +
+

+ An object that satisfies the sender concept. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/sender_type.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/sender_type.html new file mode 100644 index 0000000..7b6e45f --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/sender_type.html @@ -0,0 +1,405 @@ + + + +thread_pool::basic_executor_type::sender_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +(Deprecated.) + The sender type, when this type is used as a scheduler. +

+
typedef basic_executor_type sender_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ index_type +

+
+

+ The bulk execution index type. +

+
+

+ sender_type +

+
+

+ (Deprecated.) The sender type, when this type is used as a scheduler. +

+
+

+ shape_type +

+
+

+ The bulk execution shape type. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_executor_type [constructor] +

+
+

+ Copy constructor.

Move constructor. +

+
+

+ bulk_execute +

+
+

+ (Deprecated.) Bulk execution function. +

+
+

+ connect +

+
+

+ (Deprecated.) Connect function. +

+
+

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

+
+

+ execute +

+
+

+ Execution function. +

+
+

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

+
+

+ operator= +

+
+

+ Assignment operator.

Move assignment operator. +

+
+

+ post +

+
+

+ Request the thread pool to invoke the given function object. +

+
+

+ query +

+
+

+ Query the current value of the context property.

+ Query the current value of the blocking property.

+ Query the current value of the relationship property.
+
Query the current value of the allocator property.
+
Query the occupancy (recommended number of work items) + for the pool. +

+
+

+ query [static] +

+
+

+ (Deprecated.) Query the current value of the bulk_guarantee property. +

Query the current value of the mapping property. +

Query the current value of the outstanding_work + property. +

+
+

+ require +

+
+

+ Obtain an executor with the blocking.possibly property.
+
Obtain an executor with the blocking.always property. +

Obtain an executor with the blocking.never property. +

Obtain an executor with the relationship.fork property. +

Obtain an executor with the relationship.continuation + property.

Obtain an executor with the outstanding_work.tracked + property.

Obtain an executor with the outstanding_work.untracked + property.

Obtain an executor with the specified + allocator property.

Obtain an executor with the + default allocator property. +

+
+

+ running_in_this_thread +

+
+

+ Determine whether the thread pool is running in the current thread. +

+
+

+ schedule +

+
+

+ (Deprecated.) Schedule function. +

+
+

+ ~basic_executor_type [destructor] +

+
+

+ Destructor. +

+
+
+ + 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/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/shape_type.html b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/shape_type.html new file mode 100644 index 0000000..3f16808 --- /dev/null +++ b/3party/asio/doc/asio/reference/thread_pool__basic_executor_type/shape_type.html @@ -0,0 +1,51 @@ + + + +thread_pool::basic_executor_type::shape_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + bulk execution shape type. +

+
typedef std::size_t shape_type;
+
+
+ + Requirements +
+

+ Header: asio/thread_pool.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_.html b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_.html new file mode 100644 index 0000000..40178e2 --- /dev/null +++ b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_.html @@ -0,0 +1,187 @@ + + + +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 [static] +

+
+

+ Add a duration to a time. +

+
+

+ less_than [static] +

+
+

+ Test whether one time is less than another. +

+
+

+ now [static] +

+
+

+ Get the current time. +

+
+

+ subtract [static] +

+
+

+ Subtract one time from another. +

+
+

+ to_posix_duration [static] +

+
+

+ Convert to POSIX duration type. +

+
+
+ + Requirements +
+

+ Header: asio/time_traits.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/add.html b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/add.html new file mode 100644 index 0000000..a119fb3 --- /dev/null +++ b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/add.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/duration_type.html b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/duration_type.html new file mode 100644 index 0000000..019272b --- /dev/null +++ b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/duration_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/less_than.html b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/less_than.html new file mode 100644 index 0000000..b379f8a --- /dev/null +++ b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/less_than.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/now.html b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/now.html new file mode 100644 index 0000000..2d08c5b --- /dev/null +++ b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/now.html @@ -0,0 +1,41 @@ + + + +time_traits< boost::posix_time::ptime >::now + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get the current time. +

+
static time_type now();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/subtract.html b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/subtract.html new file mode 100644 index 0000000..e2b501d --- /dev/null +++ b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/subtract.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/time_type.html b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/time_type.html new file mode 100644 index 0000000..1d7e375 --- /dev/null +++ b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/time_type.html @@ -0,0 +1,51 @@ + + + +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/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html new file mode 100644 index 0000000..97ce98b --- /dev/null +++ b/3party/asio/doc/asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html @@ -0,0 +1,42 @@ + + + +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/3party/asio/doc/asio/reference/transfer_all.html b/3party/asio/doc/asio/reference/transfer_all.html new file mode 100644 index 0000000..92c131b --- /dev/null +++ b/3party/asio/doc/asio/reference/transfer_all.html @@ -0,0 +1,79 @@ + + + +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/3party/asio/doc/asio/reference/transfer_at_least.html b/3party/asio/doc/asio/reference/transfer_at_least.html new file mode 100644 index 0000000..33d138e --- /dev/null +++ b/3party/asio/doc/asio/reference/transfer_at_least.html @@ -0,0 +1,80 @@ + + + +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/3party/asio/doc/asio/reference/transfer_exactly.html b/3party/asio/doc/asio/reference/transfer_exactly.html new file mode 100644 index 0000000..e4a30b1 --- /dev/null +++ b/3party/asio/doc/asio/reference/transfer_exactly.html @@ -0,0 +1,80 @@ + + + +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/3party/asio/doc/asio/reference/use_awaitable.html b/3party/asio/doc/asio/reference/use_awaitable.html new file mode 100644 index 0000000..466ddf9 --- /dev/null +++ b/3party/asio/doc/asio/reference/use_awaitable.html @@ -0,0 +1,56 @@ + + + +use_awaitable + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + object that represents the currently executing coroutine. +

+
constexpr use_awaitable_t use_awaitable;
+
+

+ See the documentation for use_awaitable_t for a usage example. +

+
+ + Requirements +
+

+ Header: asio/use_awaitable.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/use_awaitable_t.html b/3party/asio/doc/asio/reference/use_awaitable_t.html new file mode 100644 index 0000000..6ebc91c --- /dev/null +++ b/3party/asio/doc/asio/reference/use_awaitable_t.html @@ -0,0 +1,159 @@ + + + +use_awaitable_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + that represents the currently executing coroutine. +

+
template<
+    typename Executor = any_io_executor>
+struct use_awaitable_t
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the use_awaitable_t completion token + as the default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use use_awaitable_t as + its default completion token type. +

+
+

+ use_awaitable_t [constructor] +

+
+

+ Default constructor.

Constructor used to specify + file name, line, and function name. +

+
+

+ The use_awaitable_t class, + with its value use_awaitable, + is used to represent the currently executing coroutine. This completion token + may be passed as a handler to an asynchronous operation. For example: +

+
awaitable<void> my_coroutine()
+{
+  std::size_t n = co_await my_socket.async_read_some(buffer, use_awaitable);
+  ...
+}
+
+

+ When used with co_await, 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/use_awaitable.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/use_awaitable_t/as_default_on.html b/3party/asio/doc/asio/reference/use_awaitable_t/as_default_on.html new file mode 100644 index 0000000..fa00120 --- /dev/null +++ b/3party/asio/doc/asio/reference/use_awaitable_t/as_default_on.html @@ -0,0 +1,45 @@ + + + +use_awaitable_t::as_default_on + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Function + helper to adapt an I/O object to use use_awaitable_t + as its default completion token type. +

+
template<
+    typename T>
+static decay< T >::type::template rebind_executor< executor_with_default< typename decay< T >::type::executor_type > >::other as_default_on(
+    T && object);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t.html b/3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t.html new file mode 100644 index 0000000..77d494b --- /dev/null +++ b/3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t.html @@ -0,0 +1,51 @@ + + + +use_awaitable_t::use_awaitable_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Default + constructor. +

+
constexpr use_awaitable_t();
+  » more...
+
+

+ Constructor used to specify file name, line, and function name. +

+
constexpr use_awaitable_t(
+    const char * file_name,
+    int line,
+    const char * function_name);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t/overload1.html b/3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t/overload1.html new file mode 100644 index 0000000..b60dd99 --- /dev/null +++ b/3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t/overload1.html @@ -0,0 +1,40 @@ + + + +use_awaitable_t::use_awaitable_t (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Default constructor. +

+
constexpr use_awaitable_t();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t/overload2.html b/3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t/overload2.html new file mode 100644 index 0000000..2bb2c8e --- /dev/null +++ b/3party/asio/doc/asio/reference/use_awaitable_t/use_awaitable_t/overload2.html @@ -0,0 +1,43 @@ + + + +use_awaitable_t::use_awaitable_t (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Constructor used to specify file name, line, and function name. +

+
constexpr use_awaitable_t(
+    const char * file_name,
+    int line,
+    const char * function_name);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default.html b/3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default.html new file mode 100644 index 0000000..53c0cf9 --- /dev/null +++ b/3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default.html @@ -0,0 +1,124 @@ + + + +use_awaitable_t::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Adapts an executor to add the use_awaitable_t + completion token as the default. +

+
template<
+    typename InnerExecutor>
+struct executor_with_default
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ default_completion_token_type +

+
+

+ Specify use_awaitable_t as the default completion token type. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default [constructor] +

+
+

+ Construct the adapted executor from the inner executor type. +

+
+
+ + Requirements +
+

+ Header: asio/use_awaitable.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default/default_completion_token_type.html b/3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default/default_completion_token_type.html new file mode 100644 index 0000000..7a9ca9b --- /dev/null +++ b/3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default/default_completion_token_type.html @@ -0,0 +1,156 @@ + + + +use_awaitable_t::executor_with_default::default_completion_token_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Specify + use_awaitable_t as the + default completion token type. +

+
typedef use_awaitable_t default_completion_token_type;
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ executor_with_default +

+
+

+ Adapts an executor to add the use_awaitable_t completion token + as the default. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ as_default_on [static] +

+
+

+ Function helper to adapt an I/O object to use use_awaitable_t + as its default completion token type. +

+
+

+ use_awaitable_t [constructor] +

+
+

+ Default constructor.

Constructor used to specify + file name, line, and function name. +

+
+

+ The use_awaitable_t class, + with its value use_awaitable, + is used to represent the currently executing coroutine. This completion + token may be passed as a handler to an asynchronous operation. For example: +

+
awaitable<void> my_coroutine()
+{
+  std::size_t n = co_await my_socket.async_read_some(buffer, use_awaitable);
+  ...
+}
+
+

+ When used with co_await, 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/use_awaitable.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default/executor_with_default.html b/3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default/executor_with_default.html new file mode 100644 index 0000000..ca136cd --- /dev/null +++ b/3party/asio/doc/asio/reference/use_awaitable_t__executor_with_default/executor_with_default.html @@ -0,0 +1,45 @@ + + + +use_awaitable_t::executor_with_default::executor_with_default + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + the adapted executor from the inner executor type. +

+
template<
+    typename InnerExecutor1>
+executor_with_default(
+    const InnerExecutor1 & ex,
+    typename constraint< conditional< !is_same< InnerExecutor1, executor_with_default >::value, is_convertible< InnerExecutor1, InnerExecutor >, false_type >::type::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/use_future.html b/3party/asio/doc/asio/reference/use_future.html new file mode 100644 index 0000000..0236995 --- /dev/null +++ b/3party/asio/doc/asio/reference/use_future.html @@ -0,0 +1,56 @@ + + + +use_future + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + object that causes an asynchronous operation to return a future. +

+
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/3party/asio/doc/asio/reference/use_future_t.html b/3party/asio/doc/asio/reference/use_future_t.html new file mode 100644 index 0000000..9183e18 --- /dev/null +++ b/3party/asio/doc/asio/reference/use_future_t.html @@ -0,0 +1,193 @@ + + + +use_future_t + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + type that causes an asynchronous operation to 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 [constructor] +

+
+

+ Construct using default-constructed allocator.

Construct + using specified allocator. +

+
+

+ The use_future_t + class is a completion token type that is used to indicate that an asynchronous + operation should return a std::future object. A use_future_t object may be passed + as a completion token 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/3party/asio/doc/asio/reference/use_future_t/allocator_type.html b/3party/asio/doc/asio/reference/use_future_t/allocator_type.html new file mode 100644 index 0000000..2f2921f --- /dev/null +++ b/3party/asio/doc/asio/reference/use_future_t/allocator_type.html @@ -0,0 +1,52 @@ + + + +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/3party/asio/doc/asio/reference/use_future_t/get_allocator.html b/3party/asio/doc/asio/reference/use_future_t/get_allocator.html new file mode 100644 index 0000000..73f796b --- /dev/null +++ b/3party/asio/doc/asio/reference/use_future_t/get_allocator.html @@ -0,0 +1,41 @@ + + + +use_future_t::get_allocator + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Obtain + allocator. +

+
allocator_type get_allocator() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/use_future_t/operator_lb__rb_.html b/3party/asio/doc/asio/reference/use_future_t/operator_lb__rb_.html new file mode 100644 index 0000000..efb8881 --- /dev/null +++ b/3party/asio/doc/asio/reference/use_future_t/operator_lb__rb_.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/use_future_t/operator_lp__rp_.html b/3party/asio/doc/asio/reference/use_future_t/operator_lp__rp_.html new file mode 100644 index 0000000..3e1f4b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/use_future_t/operator_lp__rp_.html @@ -0,0 +1,63 @@ + + + +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/3party/asio/doc/asio/reference/use_future_t/rebind.html b/3party/asio/doc/asio/reference/use_future_t/rebind.html new file mode 100644 index 0000000..48900f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/use_future_t/rebind.html @@ -0,0 +1,44 @@ + + + +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/3party/asio/doc/asio/reference/use_future_t/use_future_t.html b/3party/asio/doc/asio/reference/use_future_t/use_future_t.html new file mode 100644 index 0000000..44ac64f --- /dev/null +++ b/3party/asio/doc/asio/reference/use_future_t/use_future_t.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/use_future_t/use_future_t/overload1.html b/3party/asio/doc/asio/reference/use_future_t/use_future_t/overload1.html new file mode 100644 index 0000000..f5b8093 --- /dev/null +++ b/3party/asio/doc/asio/reference/use_future_t/use_future_t/overload1.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/use_future_t/use_future_t/overload2.html b/3party/asio/doc/asio/reference/use_future_t/use_future_t/overload2.html new file mode 100644 index 0000000..32d5b5b --- /dev/null +++ b/3party/asio/doc/asio/reference/use_future_t/use_future_t/overload2.html @@ -0,0 +1,41 @@ + + + +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/3party/asio/doc/asio/reference/uses_executor.html b/3party/asio/doc/asio/reference/uses_executor.html new file mode 100644 index 0000000..c9c75f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/uses_executor.html @@ -0,0 +1,66 @@ + + + +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 :
+  public false_type
+
+

+ 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/3party/asio/doc/asio/reference/wait_traits.html b/3party/asio/doc/asio/reference/wait_traits.html new file mode 100644 index 0000000..d011f14 --- /dev/null +++ b/3party/asio/doc/asio/reference/wait_traits.html @@ -0,0 +1,89 @@ + + + +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 [static] +

+
+

+ Convert a clock duration into a duration used for waiting. +

+
+
+ + Requirements +
+

+ Header: asio/wait_traits.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/wait_traits/to_wait_duration.html b/3party/asio/doc/asio/reference/wait_traits/to_wait_duration.html new file mode 100644 index 0000000..d544a1b --- /dev/null +++ b/3party/asio/doc/asio/reference/wait_traits/to_wait_duration.html @@ -0,0 +1,47 @@ + + + +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/3party/asio/doc/asio/reference/wait_traits/to_wait_duration/overload1.html b/3party/asio/doc/asio/reference/wait_traits/to_wait_duration/overload1.html new file mode 100644 index 0000000..220793c --- /dev/null +++ b/3party/asio/doc/asio/reference/wait_traits/to_wait_duration/overload1.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/wait_traits/to_wait_duration/overload2.html b/3party/asio/doc/asio/reference/wait_traits/to_wait_duration/overload2.html new file mode 100644 index 0000000..d6f167e --- /dev/null +++ b/3party/asio/doc/asio/reference/wait_traits/to_wait_duration/overload2.html @@ -0,0 +1,49 @@ + + + +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/3party/asio/doc/asio/reference/windows__basic_object_handle.html b/3party/asio/doc/asio/reference/windows__basic_object_handle.html new file mode 100644 index 0000000..b421262 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle.html @@ -0,0 +1,303 @@ + + + +windows::basic_object_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides object-oriented handle functionality. +

+
template<
+    typename Executor = any_io_executor>
+class basic_object_handle
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_object_handle [constructor] +

+
+

+ Construct an object handle without opening it.

Construct + an object handle on an existing native handle.

Move-construct + an object handle from another.

Move-construct an + object handle from a handle of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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 object handle from another.

Move-assign + an object handle from a handle of another executor type. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the object handle. +

+
+

+ The windows::basic_object_handle class provides + asynchronous and blocking object-oriented handle functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/windows/basic_object_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/assign.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/assign.html new file mode 100644 index 0000000..beb572e --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/assign.html @@ -0,0 +1,48 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/assign/overload1.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/assign/overload1.html new file mode 100644 index 0000000..617d6d9 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/assign/overload1.html @@ -0,0 +1,41 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/assign/overload2.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/assign/overload2.html new file mode 100644 index 0000000..ac07921 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/assign/overload2.html @@ -0,0 +1,42 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/async_wait.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/async_wait.html new file mode 100644 index 0000000..157e433 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/async_wait.html @@ -0,0 +1,88 @@ + + + +windows::basic_object_handle::async_wait + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous wait on the object handle. +

+
template<
+    typename WaitToken = DEFAULT>
+DEDUCED async_wait(
+    WaitToken && token = DEFAULT);
+
+

+ This function is be used to initiate an asynchronous wait against the object + handle. It is an initiating function for an asynchronous + operation, and always returns immediately. +

+
+ + Parameters +
+
+

+
+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the wait completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion handler must be: +

+
void handler(
+  const asio::error_code& error // Result of operation.
+);
+
+

+ Regardless of whether the asynchronous operation completes immediately + or not, the completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code)
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle.html new file mode 100644 index 0000000..f9a329f --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle.html @@ -0,0 +1,83 @@ + + + +windows::basic_object_handle::basic_object_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + an object handle without opening it. +

+
explicit basic_object_handle(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_object_handle(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct an object handle on an existing native handle. +

+
basic_object_handle(
+    const executor_type & ex,
+    const native_handle_type & native_handle);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_object_handle(
+    ExecutionContext & context,
+    const native_handle_type & native_handle,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct an object handle from another. +

+
basic_object_handle(
+    basic_object_handle && other);
+  » more...
+
+

+ Move-construct an object handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+basic_object_handle(
+    basic_object_handle< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload1.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload1.html new file mode 100644 index 0000000..d2fe2e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload1.html @@ -0,0 +1,59 @@ + + + +windows::basic_object_handle::basic_object_handle (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an object handle without opening it. +

+
basic_object_handle(
+    const executor_type & ex);
+
+

+ This constructor creates an object handle without opening it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the object handle will use, by default, to + dispatch handlers for any asynchronous operations performed on + the object handle. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload2.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload2.html new file mode 100644 index 0000000..0b29a1f --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload2.html @@ -0,0 +1,62 @@ + + + +windows::basic_object_handle::basic_object_handle (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an object handle without opening it. +

+
template<
+    typename ExecutionContext>
+basic_object_handle(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates an object handle without opening it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the object + handle will use, by default, to dispatch handlers for any asynchronous + operations performed on the object handle. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload3.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload3.html new file mode 100644 index 0000000..0c62faa --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload3.html @@ -0,0 +1,78 @@ + + + +windows::basic_object_handle::basic_object_handle (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an object handle on an existing native handle. +

+
basic_object_handle(
+    const executor_type & ex,
+    const native_handle_type & native_handle);
+
+

+ This constructor creates an object handle object to hold an existing + native handle. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the object handle will use, by default, to + dispatch handlers for any asynchronous operations performed on + the object handle. +

+
native_handle
+

+ The new underlying handle implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload4.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload4.html new file mode 100644 index 0000000..e3d4c35 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload4.html @@ -0,0 +1,81 @@ + + + +windows::basic_object_handle::basic_object_handle (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an object handle on an existing native handle. +

+
template<
+    typename ExecutionContext>
+basic_object_handle(
+    ExecutionContext & context,
+    const native_handle_type & native_handle,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates an object handle object to hold an existing + native handle. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the object + handle will use, by default, to dispatch handlers for any asynchronous + operations performed on the object handle. +

+
native_handle
+

+ The new underlying handle implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload5.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload5.html new file mode 100644 index 0000000..44570aa --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload5.html @@ -0,0 +1,66 @@ + + + +windows::basic_object_handle::basic_object_handle (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct an object handle from another. +

+
basic_object_handle(
+    basic_object_handle && other);
+
+

+ This constructor moves an object handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_object_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload6.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload6.html new file mode 100644 index 0000000..b422520 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload6.html @@ -0,0 +1,69 @@ + + + +windows::basic_object_handle::basic_object_handle (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct an object handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+basic_object_handle(
+    basic_object_handle< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves an object handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_object_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/cancel.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/cancel.html new file mode 100644 index 0000000..3f20f90 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/cancel.html @@ -0,0 +1,46 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/cancel/overload1.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/cancel/overload1.html new file mode 100644 index 0000000..7c4b310 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/cancel/overload1.html @@ -0,0 +1,58 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/cancel/overload2.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/cancel/overload2.html new file mode 100644 index 0000000..e566cb0 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/cancel/overload2.html @@ -0,0 +1,59 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/close.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/close.html new file mode 100644 index 0000000..74837be --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/close.html @@ -0,0 +1,46 @@ + + + +windows::basic_object_handle::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close + the handle. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/close/overload1.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/close/overload1.html new file mode 100644 index 0000000..1e83c1e --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/close/overload1.html @@ -0,0 +1,58 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/close/overload2.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/close/overload2.html new file mode 100644 index 0000000..7e2efe5 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/close/overload2.html @@ -0,0 +1,59 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/executor_type.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/executor_type.html new file mode 100644 index 0000000..54b6692 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/executor_type.html @@ -0,0 +1,51 @@ + + + +windows::basic_object_handle::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/windows/basic_object_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/get_executor.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/get_executor.html new file mode 100644 index 0000000..0e9577b --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/get_executor.html @@ -0,0 +1,41 @@ + + + +windows::basic_object_handle::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/is_open.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/is_open.html new file mode 100644 index 0000000..7a07194 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/is_open.html @@ -0,0 +1,41 @@ + + + +windows::basic_object_handle::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the handle is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer.html new file mode 100644 index 0000000..2e168b5 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer.html @@ -0,0 +1,48 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer/overload1.html new file mode 100644 index 0000000..5acba93 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer/overload1.html @@ -0,0 +1,54 @@ + + + +windows::basic_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 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/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer/overload2.html new file mode 100644 index 0000000..a6cf35b --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer/overload2.html @@ -0,0 +1,54 @@ + + + +windows::basic_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 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/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer_type.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer_type.html new file mode 100644 index 0000000..6f5ce2b --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/lowest_layer_type.html @@ -0,0 +1,301 @@ + + + +windows::basic_object_handle::lowest_layer_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +An + object handle is always the lowest layer. +

+
typedef basic_object_handle lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_object_handle [constructor] +

+
+

+ Construct an object handle without opening it.

+ Construct an object handle on an existing native handle.
+
Move-construct an object handle from another.
+
Move-construct an object handle from a handle of another + executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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 object handle from another.

Move-assign + an object handle from a handle of another executor type. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the object handle. +

+
+

+ The windows::basic_object_handle class provides + asynchronous and blocking object-oriented handle functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/windows/basic_object_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/native_handle.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/native_handle.html new file mode 100644 index 0000000..ecf212e --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/native_handle.html @@ -0,0 +1,46 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/native_handle_type.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/native_handle_type.html new file mode 100644 index 0000000..fb3458a --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/native_handle_type.html @@ -0,0 +1,51 @@ + + + +windows::basic_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/basic_object_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_.html new file mode 100644 index 0000000..1b1c767 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_.html @@ -0,0 +1,52 @@ + + + +windows::basic_object_handle::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + an object handle from another. +

+
basic_object_handle & operator=(
+    basic_object_handle && other);
+  » more...
+
+

+ Move-assign an object handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_object_handle & >::type operator=(
+    basic_object_handle< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_/overload1.html new file mode 100644 index 0000000..3f67482 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_/overload1.html @@ -0,0 +1,66 @@ + + + +windows::basic_object_handle::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign an object handle from another. +

+
basic_object_handle & operator=(
+    basic_object_handle && other);
+
+

+ This assignment operator moves an object handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_object_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_/overload2.html new file mode 100644 index 0000000..96aa39a --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/operator_eq_/overload2.html @@ -0,0 +1,68 @@ + + + +windows::basic_object_handle::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign an object handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_object_handle & >::type operator=(
+    basic_object_handle< Executor1 > && other);
+
+

+ This assignment operator moves an object handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_object_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle/wait.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/wait.html new file mode 100644 index 0000000..5ec7f54 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/wait.html @@ -0,0 +1,46 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/wait/overload1.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/wait/overload1.html new file mode 100644 index 0000000..a1e3625 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/wait/overload1.html @@ -0,0 +1,58 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle/wait/overload2.html b/3party/asio/doc/asio/reference/windows__basic_object_handle/wait/overload2.html new file mode 100644 index 0000000..3e770e6 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle/wait/overload2.html @@ -0,0 +1,59 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_object_handle__rebind_executor.html b/3party/asio/doc/asio/reference/windows__basic_object_handle__rebind_executor.html new file mode 100644 index 0000000..72fef09 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle__rebind_executor.html @@ -0,0 +1,88 @@ + + + +windows::basic_object_handle::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the handle type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The handle type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/windows/basic_object_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_object_handle__rebind_executor/other.html b/3party/asio/doc/asio/reference/windows__basic_object_handle__rebind_executor/other.html new file mode 100644 index 0000000..0343e3e --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_object_handle__rebind_executor/other.html @@ -0,0 +1,301 @@ + + + +windows::basic_object_handle::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + handle type when rebound to the specified executor. +

+
typedef basic_object_handle< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_object_handle [constructor] +

+
+

+ Construct an object handle without opening it.

+ Construct an object handle on an existing native handle.
+
Move-construct an object handle from another.
+
Move-construct an object handle from a handle of another + executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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 object handle from another.

Move-assign + an object handle from a handle of another executor type. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the object handle. +

+
+

+ The windows::basic_object_handle class provides + asynchronous and blocking object-oriented handle functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/windows/basic_object_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle.html new file mode 100644 index 0000000..aa31868 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle.html @@ -0,0 +1,329 @@ + + + +windows::basic_overlapped_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides Windows handle functionality for objects that support overlapped + I/O. +

+
template<
+    typename Executor = any_io_executor>
+class basic_overlapped_handle
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_overlapped_handle [constructor] +

+
+

+ Construct an overlapped handle without opening it.

+ Construct an overlapped handle on an existing native handle.
+
Move-construct an overlapped handle from another.
+
Move-construct an overlapped handle from a handle of another + executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + an overlapped handle from a handle of another executor type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+
+ + Protected + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ ~basic_overlapped_handle [destructor] +

+
+

+ 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/basic_overlapped_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/_basic_overlapped_handle.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/_basic_overlapped_handle.html new file mode 100644 index 0000000..32d65c4 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/_basic_overlapped_handle.html @@ -0,0 +1,45 @@ + + + +windows::basic_overlapped_handle::~basic_overlapped_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Protected + destructor to prevent deletion through this type. +

+
~basic_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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign.html new file mode 100644 index 0000000..95c485b --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign.html @@ -0,0 +1,48 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign/overload1.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign/overload1.html new file mode 100644 index 0000000..95beadf --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign/overload1.html @@ -0,0 +1,41 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign/overload2.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign/overload2.html new file mode 100644 index 0000000..e2cfe67 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/assign/overload2.html @@ -0,0 +1,42 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle.html new file mode 100644 index 0000000..6c0538c --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle.html @@ -0,0 +1,83 @@ + + + +windows::basic_overlapped_handle::basic_overlapped_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + an overlapped handle without opening it. +

+
explicit basic_overlapped_handle(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_overlapped_handle(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct an overlapped handle on an existing native handle. +

+
basic_overlapped_handle(
+    const executor_type & ex,
+    const native_handle_type & native_handle);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_overlapped_handle(
+    ExecutionContext & context,
+    const native_handle_type & native_handle,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct an overlapped handle from another. +

+
basic_overlapped_handle(
+    basic_overlapped_handle && other);
+  » more...
+
+

+ Move-construct an overlapped handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+basic_overlapped_handle(
+    basic_overlapped_handle< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload1.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload1.html new file mode 100644 index 0000000..cbd205c --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload1.html @@ -0,0 +1,59 @@ + + + +windows::basic_overlapped_handle::basic_overlapped_handle (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an overlapped handle without opening it. +

+
basic_overlapped_handle(
+    const executor_type & ex);
+
+

+ This constructor creates an overlapped handle without opening it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the overlapped handle will use, by default, + to dispatch handlers for any asynchronous operations performed + on the overlapped handle. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload2.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload2.html new file mode 100644 index 0000000..c8801e4 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload2.html @@ -0,0 +1,62 @@ + + + +windows::basic_overlapped_handle::basic_overlapped_handle (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an overlapped handle without opening it. +

+
template<
+    typename ExecutionContext>
+basic_overlapped_handle(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates an overlapped handle without opening it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the overlapped + handle will use, by default, to dispatch handlers for any asynchronous + operations performed on the overlapped handle. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload3.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload3.html new file mode 100644 index 0000000..47b6a1c --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload3.html @@ -0,0 +1,78 @@ + + + +windows::basic_overlapped_handle::basic_overlapped_handle (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an overlapped handle on an existing native handle. +

+
basic_overlapped_handle(
+    const executor_type & ex,
+    const native_handle_type & native_handle);
+
+

+ This constructor creates an overlapped handle object to hold an existing + native handle. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the overlapped handle will use, by default, + to dispatch handlers for any asynchronous operations performed + on the overlapped handle. +

+
native_handle
+

+ The new underlying handle implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload4.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload4.html new file mode 100644 index 0000000..076f566 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload4.html @@ -0,0 +1,81 @@ + + + +windows::basic_overlapped_handle::basic_overlapped_handle (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an overlapped handle on an existing native handle. +

+
template<
+    typename ExecutionContext>
+basic_overlapped_handle(
+    ExecutionContext & context,
+    const native_handle_type & native_handle,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates an overlapped handle object to hold an existing + native handle. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the overlapped + handle will use, by default, to dispatch handlers for any asynchronous + operations performed on the overlapped handle. +

+
native_handle
+

+ The new underlying handle implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload5.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload5.html new file mode 100644 index 0000000..ebd0bd0 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload5.html @@ -0,0 +1,66 @@ + + + +windows::basic_overlapped_handle::basic_overlapped_handle (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct an overlapped handle from another. +

+
basic_overlapped_handle(
+    basic_overlapped_handle && other);
+
+

+ This constructor moves a handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload6.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload6.html new file mode 100644 index 0000000..3532214 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload6.html @@ -0,0 +1,70 @@ + + + +windows::basic_overlapped_handle::basic_overlapped_handle (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct an overlapped handle from a handle of another executor + type. +

+
template<
+    typename Executor1>
+basic_overlapped_handle(
+    basic_overlapped_handle< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves a handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel.html new file mode 100644 index 0000000..4142b13 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel.html @@ -0,0 +1,46 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel/overload1.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel/overload1.html new file mode 100644 index 0000000..20e7de7 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel/overload1.html @@ -0,0 +1,58 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel/overload2.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel/overload2.html new file mode 100644 index 0000000..c2f924f --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/cancel/overload2.html @@ -0,0 +1,59 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close.html new file mode 100644 index 0000000..cbd2da3 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close.html @@ -0,0 +1,46 @@ + + + +windows::basic_overlapped_handle::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close + the handle. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close/overload1.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close/overload1.html new file mode 100644 index 0000000..fe85fc5 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close/overload1.html @@ -0,0 +1,58 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close/overload2.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close/overload2.html new file mode 100644 index 0000000..a2e4df8 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/close/overload2.html @@ -0,0 +1,59 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/executor_type.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/executor_type.html new file mode 100644 index 0000000..f07a2a9 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/executor_type.html @@ -0,0 +1,51 @@ + + + +windows::basic_overlapped_handle::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/windows/basic_overlapped_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/get_executor.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/get_executor.html new file mode 100644 index 0000000..b93645e --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/get_executor.html @@ -0,0 +1,41 @@ + + + +windows::basic_overlapped_handle::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/is_open.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/is_open.html new file mode 100644 index 0000000..6863845 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/is_open.html @@ -0,0 +1,41 @@ + + + +windows::basic_overlapped_handle::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Determine + whether the handle is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer.html new file mode 100644 index 0000000..e5aa04f --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer.html @@ -0,0 +1,48 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer/overload1.html new file mode 100644 index 0000000..a0b66e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer/overload1.html @@ -0,0 +1,54 @@ + + + +windows::basic_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 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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer/overload2.html new file mode 100644 index 0000000..3e31a5a --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer/overload2.html @@ -0,0 +1,54 @@ + + + +windows::basic_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 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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer_type.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer_type.html new file mode 100644 index 0000000..1a608d0 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/lowest_layer_type.html @@ -0,0 +1,326 @@ + + + +windows::basic_overlapped_handle::lowest_layer_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +An + overlapped_handle is always the lowest layer. +

+
typedef basic_overlapped_handle lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_overlapped_handle [constructor] +

+
+

+ Construct an overlapped handle without opening it.

+ Construct an overlapped handle on an existing native handle. +

Move-construct an overlapped handle from another. +

Move-construct an overlapped handle from a handle + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

+ Move-assign an overlapped handle from a handle of another executor + type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+
+ + Protected + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ ~basic_overlapped_handle [destructor] +

+
+

+ 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/basic_overlapped_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/native_handle.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/native_handle.html new file mode 100644 index 0000000..332fb06 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/native_handle.html @@ -0,0 +1,46 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/native_handle_type.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/native_handle_type.html new file mode 100644 index 0000000..1dbebcf --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/native_handle_type.html @@ -0,0 +1,51 @@ + + + +windows::basic_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/basic_overlapped_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_.html new file mode 100644 index 0000000..69ef36c --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_.html @@ -0,0 +1,52 @@ + + + +windows::basic_overlapped_handle::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + an overlapped handle from another. +

+
basic_overlapped_handle & operator=(
+    basic_overlapped_handle && other);
+  » more...
+
+

+ Move-assign an overlapped handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_overlapped_handle & >::type operator=(
+    basic_overlapped_handle< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_/overload1.html new file mode 100644 index 0000000..ec6a09e --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_/overload1.html @@ -0,0 +1,66 @@ + + + +windows::basic_overlapped_handle::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign an overlapped handle from another. +

+
basic_overlapped_handle & operator=(
+    basic_overlapped_handle && other);
+
+

+ This assignment operator moves a handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_/overload2.html new file mode 100644 index 0000000..c443ac5 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_/overload2.html @@ -0,0 +1,68 @@ + + + +windows::basic_overlapped_handle::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign an overlapped handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_overlapped_handle & >::type operator=(
+    basic_overlapped_handle< Executor1 > && other);
+
+

+ This assignment operator moves a handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release.html new file mode 100644 index 0000000..521a677 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release.html @@ -0,0 +1,46 @@ + + + +windows::basic_overlapped_handle::release + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Release + ownership of the underlying native handle. +

+
native_handle_type release();
+  » more...
+
+native_handle_type release(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release/overload1.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release/overload1.html new file mode 100644 index 0000000..e7a1535 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release/overload1.html @@ -0,0 +1,68 @@ + + + +windows::basic_overlapped_handle::release (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Release ownership of the underlying native handle. +

+
native_handle_type release();
+
+

+ This function causes all outstanding asynchronous operations to finish + immediately, and the handlers for cancelled operations will be passed + the asio::error::operation_aborted error. Ownership + of the native handle 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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release/overload2.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release/overload2.html new file mode 100644 index 0000000..cc78192 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle/release/overload2.html @@ -0,0 +1,69 @@ + + + +windows::basic_overlapped_handle::release (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Release ownership of the underlying native handle. +

+
native_handle_type release(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous operations to finish + immediately, and the handlers for cancelled operations will be passed + the asio::error::operation_aborted error. Ownership + of the native handle 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/3party/asio/doc/asio/reference/windows__basic_overlapped_handle__rebind_executor.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle__rebind_executor.html new file mode 100644 index 0000000..1ffe55f --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle__rebind_executor.html @@ -0,0 +1,88 @@ + + + +windows::basic_overlapped_handle::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the handle type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The handle type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/windows/basic_overlapped_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_overlapped_handle__rebind_executor/other.html b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle__rebind_executor/other.html new file mode 100644 index 0000000..bb684d6 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_overlapped_handle__rebind_executor/other.html @@ -0,0 +1,326 @@ + + + +windows::basic_overlapped_handle::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + handle type when rebound to the specified executor. +

+
typedef basic_overlapped_handle< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_overlapped_handle [constructor] +

+
+

+ Construct an overlapped handle without opening it.

+ Construct an overlapped handle on an existing native handle. +

Move-construct an overlapped handle from another. +

Move-construct an overlapped handle from a handle + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

+ Move-assign an overlapped handle from a handle of another executor + type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+
+ + Protected + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ ~basic_overlapped_handle [destructor] +

+
+

+ 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/basic_overlapped_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle.html new file mode 100644 index 0000000..71dc950 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle.html @@ -0,0 +1,342 @@ + + + +windows::basic_random_access_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides random-access handle functionality. +

+
template<
+    typename Executor = any_io_executor>
+class basic_random_access_handle :
+  public windows::basic_overlapped_handle< Executor >
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_random_access_handle [constructor] +

+
+

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

Move-construct a random-access handle from a handle + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

+ Move-assign a random-access handle from a handle of another executor + type. +

+
+

+ read_some_at +

+
+

+ Read some data from the handle at the specified offset. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+

+ write_some_at +

+
+

+ Write some data to the handle at the specified offset. +

+
+

+ The windows::basic_random_access_handle class + provides asynchronous and blocking random-access handle functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/windows/basic_random_access_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign.html new file mode 100644 index 0000000..20f4225 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign.html @@ -0,0 +1,48 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign/overload1.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign/overload1.html new file mode 100644 index 0000000..184c8cd --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign/overload1.html @@ -0,0 +1,44 @@ + + + +windows::basic_random_access_handle::assign (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ Assign an existing native handle to the handle. +

+
void assign(
+    const native_handle_type & handle);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign/overload2.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign/overload2.html new file mode 100644 index 0000000..c78c8b4 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/assign/overload2.html @@ -0,0 +1,45 @@ + + + +windows::basic_random_access_handle::assign (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/async_read_some_at.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/async_read_some_at.html new file mode 100644 index 0000000..f52751b --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/async_read_some_at.html @@ -0,0 +1,147 @@ + + + +windows::basic_random_access_handle::async_read_some_at + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous read at the specified offset. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_some_at(
+    uint64_t offset,
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read data from the random-access + handle. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/async_write_some_at.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/async_write_some_at.html new file mode 100644 index 0000000..29d1c4a --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/async_write_some_at.html @@ -0,0 +1,147 @@ + + + +windows::basic_random_access_handle::async_write_some_at + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous write at the specified offset. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_some_at(
+    uint64_t offset,
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write data to the random-access + handle. It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle.html new file mode 100644 index 0000000..44acf9a --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle.html @@ -0,0 +1,84 @@ + + + +windows::basic_random_access_handle::basic_random_access_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a random-access handle without opening it. +

+
explicit basic_random_access_handle(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_random_access_handle(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a random-access handle on an existing native handle. +

+
basic_random_access_handle(
+    const executor_type & ex,
+    const native_handle_type & handle);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_random_access_handle(
+    ExecutionContext & context,
+    const native_handle_type & handle,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct a random-access handle from another. +

+
basic_random_access_handle(
+    basic_random_access_handle && other);
+  » more...
+
+

+ Move-construct a random-access handle from a handle of another executor + type. +

+
template<
+    typename Executor1>
+basic_random_access_handle(
+    basic_random_access_handle< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload1.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload1.html new file mode 100644 index 0000000..a6ef114 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload1.html @@ -0,0 +1,59 @@ + + + +windows::basic_random_access_handle::basic_random_access_handle (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a random-access handle without opening it. +

+
basic_random_access_handle(
+    const executor_type & ex);
+
+

+ This constructor creates a random-access handle without opening it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the random-access handle will use, by default, + to dispatch handlers for any asynchronous operations performed + on the random-access handle. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload2.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload2.html new file mode 100644 index 0000000..923bec2 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload2.html @@ -0,0 +1,64 @@ + + + +windows::basic_random_access_handle::basic_random_access_handle (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a random-access handle without opening it. +

+
template<
+    typename ExecutionContext>
+basic_random_access_handle(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates a random-access handle without opening it. The + handle needs to be opened or assigned before data can be written to or + read from it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the random-access + handle will use, by default, to dispatch handlers for any asynchronous + operations performed on the random-access handle. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload3.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload3.html new file mode 100644 index 0000000..a3bb64d --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload3.html @@ -0,0 +1,78 @@ + + + +windows::basic_random_access_handle::basic_random_access_handle (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a random-access handle on an existing native handle. +

+
basic_random_access_handle(
+    const executor_type & ex,
+    const native_handle_type & handle);
+
+

+ This constructor creates a random-access handle object to hold an existing + native handle. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the random-access handle will use, by default, + to dispatch handlers for any asynchronous operations performed + on the random-access handle. +

+
handle
+

+ The new underlying handle implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload4.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload4.html new file mode 100644 index 0000000..6918887 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload4.html @@ -0,0 +1,81 @@ + + + +windows::basic_random_access_handle::basic_random_access_handle (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a random-access handle on an existing native handle. +

+
template<
+    typename ExecutionContext>
+basic_random_access_handle(
+    ExecutionContext & context,
+    const native_handle_type & handle,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a random-access handle object to hold an existing + native handle. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the random-access + handle will use, by default, to dispatch handlers for any asynchronous + operations performed on the random-access handle. +

+
handle
+

+ The new underlying handle implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload5.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload5.html new file mode 100644 index 0000000..495044a --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload5.html @@ -0,0 +1,67 @@ + + + +windows::basic_random_access_handle::basic_random_access_handle (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a random-access handle from another. +

+
basic_random_access_handle(
+    basic_random_access_handle && other);
+
+

+ This constructor moves a random-access handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_random_access_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload6.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload6.html new file mode 100644 index 0000000..fcb56a1 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload6.html @@ -0,0 +1,71 @@ + + + +windows::basic_random_access_handle::basic_random_access_handle (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a random-access handle from a handle of another executor + type. +

+
template<
+    typename Executor1>
+basic_random_access_handle(
+    basic_random_access_handle< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves a random-access handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_random_access_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel.html new file mode 100644 index 0000000..c0cfe6c --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel.html @@ -0,0 +1,46 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel/overload1.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel/overload1.html new file mode 100644 index 0000000..fc4c230 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel/overload1.html @@ -0,0 +1,61 @@ + + + +windows::basic_random_access_handle::cancel (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel/overload2.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel/overload2.html new file mode 100644 index 0000000..8845880 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/cancel/overload2.html @@ -0,0 +1,62 @@ + + + +windows::basic_random_access_handle::cancel (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/close.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/close.html new file mode 100644 index 0000000..8f5d87a --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/close.html @@ -0,0 +1,46 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/close/overload1.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/close/overload1.html new file mode 100644 index 0000000..3d724f4 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/close/overload1.html @@ -0,0 +1,61 @@ + + + +windows::basic_random_access_handle::close (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/close/overload2.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/close/overload2.html new file mode 100644 index 0000000..a05cb5b --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/close/overload2.html @@ -0,0 +1,62 @@ + + + +windows::basic_random_access_handle::close (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/executor_type.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/executor_type.html new file mode 100644 index 0000000..d5d7436 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/executor_type.html @@ -0,0 +1,51 @@ + + + +windows::basic_random_access_handle::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/windows/basic_random_access_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/get_executor.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/get_executor.html new file mode 100644 index 0000000..bc98e5e --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/get_executor.html @@ -0,0 +1,44 @@ + + + +windows::basic_random_access_handle::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/is_open.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/is_open.html new file mode 100644 index 0000000..1dd1169 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/is_open.html @@ -0,0 +1,44 @@ + + + +windows::basic_random_access_handle::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ +Determine + whether the handle is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer.html new file mode 100644 index 0000000..2b4ceed --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer.html @@ -0,0 +1,48 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer/overload1.html new file mode 100644 index 0000000..3af28e7 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer/overload1.html @@ -0,0 +1,57 @@ + + + +windows::basic_random_access_handle::lowest_layer (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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 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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer/overload2.html new file mode 100644 index 0000000..92c82e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer/overload2.html @@ -0,0 +1,57 @@ + + + +windows::basic_random_access_handle::lowest_layer (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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 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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer_type.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer_type.html new file mode 100644 index 0000000..af34517 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/lowest_layer_type.html @@ -0,0 +1,329 @@ + + + +windows::basic_random_access_handle::lowest_layer_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ +An + overlapped_handle is always the lowest layer. +

+
typedef basic_overlapped_handle lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_overlapped_handle [constructor] +

+
+

+ Construct an overlapped handle without opening it.

+ Construct an overlapped handle on an existing native handle. +

Move-construct an overlapped handle from another. +

Move-construct an overlapped handle from a handle + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

+ Move-assign an overlapped handle from a handle of another executor + type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+
+ + Protected + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ ~basic_overlapped_handle [destructor] +

+
+

+ 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/basic_random_access_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/native_handle.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/native_handle.html new file mode 100644 index 0000000..763bc79 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/native_handle.html @@ -0,0 +1,49 @@ + + + +windows::basic_random_access_handle::native_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/native_handle_type.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/native_handle_type.html new file mode 100644 index 0000000..095dda2 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/native_handle_type.html @@ -0,0 +1,51 @@ + + + +windows::basic_random_access_handle::native_handle_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + native representation of a handle. +

+
typedef implementation_defined native_handle_type;
+
+
+ + Requirements +
+

+ Header: asio/windows/basic_random_access_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_.html new file mode 100644 index 0000000..0069d91 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_.html @@ -0,0 +1,52 @@ + + + +windows::basic_random_access_handle::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a random-access handle from another. +

+
basic_random_access_handle & operator=(
+    basic_random_access_handle && other);
+  » more...
+
+

+ Move-assign a random-access handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_random_access_handle & >::type operator=(
+    basic_random_access_handle< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_/overload1.html new file mode 100644 index 0000000..c52d1a8 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_/overload1.html @@ -0,0 +1,68 @@ + + + +windows::basic_random_access_handle::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a random-access handle from another. +

+
basic_random_access_handle & operator=(
+    basic_random_access_handle && other);
+
+

+ This assignment operator moves a random-access handle from one object + to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_random_access_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_/overload2.html new file mode 100644 index 0000000..10225f7 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/operator_eq_/overload2.html @@ -0,0 +1,71 @@ + + + +windows::basic_random_access_handle::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a random-access handle from a handle of another executor + type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_random_access_handle & >::type operator=(
+    basic_random_access_handle< Executor1 > && other);
+
+

+ This assignment operator moves a random-access handle from one object + to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_random_access_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at.html new file mode 100644 index 0000000..547c19d --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at.html @@ -0,0 +1,54 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at/overload1.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at/overload1.html new file mode 100644 index 0000000..5ac8ba1 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at/overload1.html @@ -0,0 +1,112 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at/overload2.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at/overload2.html new file mode 100644 index 0000000..ae574a3 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/read_some_at/overload2.html @@ -0,0 +1,89 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/release.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/release.html new file mode 100644 index 0000000..1fc50ea --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/release.html @@ -0,0 +1,46 @@ + + + +windows::basic_random_access_handle::release + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Release + ownership of the underlying native handle. +

+
native_handle_type release();
+  » more...
+
+native_handle_type release(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle/release/overload1.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/release/overload1.html new file mode 100644 index 0000000..8d56426 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/release/overload1.html @@ -0,0 +1,71 @@ + + + +windows::basic_random_access_handle::release (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ Release ownership of the underlying native handle. +

+
native_handle_type release();
+
+

+ This function causes all outstanding asynchronous operations to finish + immediately, and the handlers for cancelled operations will be passed + the asio::error::operation_aborted error. Ownership + of the native handle 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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/release/overload2.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/release/overload2.html new file mode 100644 index 0000000..4ed8e6b --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/release/overload2.html @@ -0,0 +1,72 @@ + + + +windows::basic_random_access_handle::release (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ Release ownership of the underlying native handle. +

+
native_handle_type release(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous operations to finish + immediately, and the handlers for cancelled operations will be passed + the asio::error::operation_aborted error. Ownership + of the native handle 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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at.html new file mode 100644 index 0000000..783afa5 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at.html @@ -0,0 +1,54 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at/overload1.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at/overload1.html new file mode 100644 index 0000000..3d8d8b0 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at/overload1.html @@ -0,0 +1,112 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at/overload2.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at/overload2.html new file mode 100644 index 0000000..f8811ef --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle/write_some_at/overload2.html @@ -0,0 +1,88 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_random_access_handle__rebind_executor.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle__rebind_executor.html new file mode 100644 index 0000000..ee9737d --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle__rebind_executor.html @@ -0,0 +1,88 @@ + + + +windows::basic_random_access_handle::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the handle type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The handle type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/windows/basic_random_access_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_random_access_handle__rebind_executor/other.html b/3party/asio/doc/asio/reference/windows__basic_random_access_handle__rebind_executor/other.html new file mode 100644 index 0000000..50a3bc1 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_random_access_handle__rebind_executor/other.html @@ -0,0 +1,338 @@ + + + +windows::basic_random_access_handle::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + handle type when rebound to the specified executor. +

+
typedef basic_random_access_handle< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_random_access_handle [constructor] +

+
+

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

Move-construct a random-access handle + from a handle of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

+ Move-assign a random-access handle from a handle of another executor + type. +

+
+

+ read_some_at +

+
+

+ Read some data from the handle at the specified offset. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+

+ write_some_at +

+
+

+ Write some data to the handle at the specified offset. +

+
+

+ The windows::basic_random_access_handle class + provides asynchronous and blocking random-access handle functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/windows/basic_random_access_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle.html new file mode 100644 index 0000000..7c1d946 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle.html @@ -0,0 +1,340 @@ + + + +windows::basic_stream_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Provides stream-oriented handle functionality. +

+
template<
+    typename Executor = any_io_executor>
+class basic_stream_handle :
+  public windows::basic_overlapped_handle< Executor >
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_stream_handle [constructor] +

+
+

+ Construct a stream handle without opening it.

Construct + a stream handle on an existing native handle.

Move-construct + a stream handle from another.

Move-construct a stream + handle from a handle of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a stream handle from a handle of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the handle. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+

+ write_some +

+
+

+ Write some data to the handle. +

+
+

+ The windows::basic_stream_handle class provides + asynchronous and blocking stream-oriented handle functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/windows/basic_stream_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/assign.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/assign.html new file mode 100644 index 0000000..f7c06ac --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/assign.html @@ -0,0 +1,48 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/assign/overload1.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/assign/overload1.html new file mode 100644 index 0000000..90e1392 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/assign/overload1.html @@ -0,0 +1,44 @@ + + + +windows::basic_stream_handle::assign (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ Assign an existing native handle to the handle. +

+
void assign(
+    const native_handle_type & handle);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/assign/overload2.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/assign/overload2.html new file mode 100644 index 0000000..af6e7da --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/assign/overload2.html @@ -0,0 +1,45 @@ + + + +windows::basic_stream_handle::assign (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/async_read_some.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/async_read_some.html new file mode 100644 index 0000000..220317e --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/async_read_some.html @@ -0,0 +1,142 @@ + + + +windows::basic_stream_handle::async_read_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous read. +

+
template<
+    typename MutableBufferSequence,
+    typename ReadToken = DEFAULT>
+DEDUCED async_read_some(
+    const MutableBufferSequence & buffers,
+    ReadToken && token = DEFAULT);
+
+

+ This function is used to asynchronously read data from the stream handle. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the read completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/async_write_some.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/async_write_some.html new file mode 100644 index 0000000..bd66f06 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/async_write_some.html @@ -0,0 +1,142 @@ + + + +windows::basic_stream_handle::async_write_some + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Start + an asynchronous write. +

+
template<
+    typename ConstBufferSequence,
+    typename WriteToken = DEFAULT>
+DEDUCED async_write_some(
+    const ConstBufferSequence & buffers,
+    WriteToken && token = DEFAULT);
+
+

+ This function is used to asynchronously write data to the stream handle. + It is an initiating function for an asynchronous + operation, and 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 completion handler is called. +

+
token
+
+

+ The completion + token that will be used to produce a completion handler, which + will be called when the write completes. Potential completion tokens + include use_future, + use_awaitable, + yield_context, + or a function object with the correct completion signature. The function + signature of the completion 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 completion handler will not be invoked from within this + function. On immediate completion, invocation of the handler will + be performed in a manner equivalent to using post. +

+
+
+
+
+ + Completion + Signature +
+
void(asio::error_code, std::size_t)
+
+
+ + 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. +

+
+ + Per-Operation + Cancellation +
+

+ This asynchronous operation supports cancellation for the following cancellation_type + values: +

+
    +
  • + cancellation_type::terminal +
  • +
  • + cancellation_type::partial +
  • +
  • + cancellation_type::total +
  • +
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle.html new file mode 100644 index 0000000..8055d98 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle.html @@ -0,0 +1,83 @@ + + + +windows::basic_stream_handle::basic_stream_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Construct + a stream handle without opening it. +

+
explicit basic_stream_handle(
+    const executor_type & ex);
+  » more...
+
+template<
+    typename ExecutionContext>
+explicit basic_stream_handle(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+

+ Construct a stream handle on an existing native handle. +

+
basic_stream_handle(
+    const executor_type & ex,
+    const native_handle_type & handle);
+  » more...
+
+template<
+    typename ExecutionContext>
+basic_stream_handle(
+    ExecutionContext & context,
+    const native_handle_type & handle,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+

+ Move-construct a stream handle from another. +

+
basic_stream_handle(
+    basic_stream_handle && other);
+  » more...
+
+

+ Move-construct a stream handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+basic_stream_handle(
+    basic_stream_handle< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload1.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload1.html new file mode 100644 index 0000000..d1b1a45 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload1.html @@ -0,0 +1,59 @@ + + + +windows::basic_stream_handle::basic_stream_handle (1 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a stream handle without opening it. +

+
basic_stream_handle(
+    const executor_type & ex);
+
+

+ This constructor creates a stream handle without opening it. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the stream handle will use, by default, to + dispatch handlers for any asynchronous operations performed on + the stream handle. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload2.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload2.html new file mode 100644 index 0000000..b01ab0a --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload2.html @@ -0,0 +1,64 @@ + + + +windows::basic_stream_handle::basic_stream_handle (2 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a stream handle without opening it. +

+
template<
+    typename ExecutionContext>
+basic_stream_handle(
+    ExecutionContext & context,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor creates a stream handle without opening it. The handle + needs to be opened or assigned before data can be written to or read + from it. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the stream + handle will use, by default, to dispatch handlers for any asynchronous + operations performed on the stream handle. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload3.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload3.html new file mode 100644 index 0000000..5e36146 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload3.html @@ -0,0 +1,78 @@ + + + +windows::basic_stream_handle::basic_stream_handle (3 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a stream handle on an existing native handle. +

+
basic_stream_handle(
+    const executor_type & ex,
+    const native_handle_type & handle);
+
+

+ This constructor creates a stream handle object to hold an existing native + handle. +

+
+ + Parameters +
+
+

+
+
ex
+

+ The I/O executor that the stream handle will use, by default, to + dispatch handlers for any asynchronous operations performed on + the stream handle. +

+
handle
+

+ The new underlying handle implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload4.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload4.html new file mode 100644 index 0000000..a1af430 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload4.html @@ -0,0 +1,81 @@ + + + +windows::basic_stream_handle::basic_stream_handle (4 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct a stream handle on an existing native handle. +

+
template<
+    typename ExecutionContext>
+basic_stream_handle(
+    ExecutionContext & context,
+    const native_handle_type & handle,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+

+ This constructor creates a stream handle object to hold an existing native + handle. +

+
+ + Parameters +
+
+

+
+
context
+

+ An execution context which provides the I/O executor that the stream + handle will use, by default, to dispatch handlers for any asynchronous + operations performed on the stream handle. +

+
handle
+

+ The new underlying handle implementation. +

+
+
+
+ + Exceptions +
+
+

+
+
asio::system_error
+

+ Thrown on failure. +

+
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload5.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload5.html new file mode 100644 index 0000000..7417355 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload5.html @@ -0,0 +1,66 @@ + + + +windows::basic_stream_handle::basic_stream_handle (5 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a stream handle from another. +

+
basic_stream_handle(
+    basic_stream_handle && other);
+
+

+ This constructor moves a stream handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_stream_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload6.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload6.html new file mode 100644 index 0000000..8f52b82 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload6.html @@ -0,0 +1,69 @@ + + + +windows::basic_stream_handle::basic_stream_handle (6 of 6 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-construct a stream handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+basic_stream_handle(
+    basic_stream_handle< Executor1 > && other,
+    typename constraint< is_convertible< Executor1, Executor >::value, defaulted_constraint >::type  = defaulted_constraint());
+
+

+ This constructor moves a stream handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_stream_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel.html new file mode 100644 index 0000000..f43dd52 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel.html @@ -0,0 +1,46 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel/overload1.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel/overload1.html new file mode 100644 index 0000000..b4c3213 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel/overload1.html @@ -0,0 +1,61 @@ + + + +windows::basic_stream_handle::cancel (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel/overload2.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel/overload2.html new file mode 100644 index 0000000..0672ce5 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/cancel/overload2.html @@ -0,0 +1,62 @@ + + + +windows::basic_stream_handle::cancel (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/close.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/close.html new file mode 100644 index 0000000..59625b3 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/close.html @@ -0,0 +1,46 @@ + + + +windows::basic_stream_handle::close + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Close + the handle. +

+
void close();
+  » more...
+
+void close(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/close/overload1.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/close/overload1.html new file mode 100644 index 0000000..0c72a9d --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/close/overload1.html @@ -0,0 +1,61 @@ + + + +windows::basic_stream_handle::close (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/close/overload2.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/close/overload2.html new file mode 100644 index 0000000..1c6e9ea --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/close/overload2.html @@ -0,0 +1,62 @@ + + + +windows::basic_stream_handle::close (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/executor_type.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/executor_type.html new file mode 100644 index 0000000..5f2735a --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/executor_type.html @@ -0,0 +1,51 @@ + + + +windows::basic_stream_handle::executor_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + type of the executor associated with the object. +

+
typedef Executor executor_type;
+
+
+ + Requirements +
+

+ Header: asio/windows/basic_stream_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/get_executor.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/get_executor.html new file mode 100644 index 0000000..c0c0215 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/get_executor.html @@ -0,0 +1,44 @@ + + + +windows::basic_stream_handle::get_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ +Get + the executor associated with the object. +

+
const executor_type & get_executor();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/is_open.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/is_open.html new file mode 100644 index 0000000..7105486 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/is_open.html @@ -0,0 +1,44 @@ + + + +windows::basic_stream_handle::is_open + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ +Determine + whether the handle is open. +

+
bool is_open() const;
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer.html new file mode 100644 index 0000000..0b0430a --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer.html @@ -0,0 +1,48 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer/overload1.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer/overload1.html new file mode 100644 index 0000000..78d91a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer/overload1.html @@ -0,0 +1,57 @@ + + + +windows::basic_stream_handle::lowest_layer (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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 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/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer/overload2.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer/overload2.html new file mode 100644 index 0000000..141f85d --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer/overload2.html @@ -0,0 +1,57 @@ + + + +windows::basic_stream_handle::lowest_layer (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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 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/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer_type.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer_type.html new file mode 100644 index 0000000..4b4e1e3 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/lowest_layer_type.html @@ -0,0 +1,329 @@ + + + +windows::basic_stream_handle::lowest_layer_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ +An + overlapped_handle is always the lowest layer. +

+
typedef basic_overlapped_handle lowest_layer_type;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_overlapped_handle [constructor] +

+
+

+ Construct an overlapped handle without opening it.

+ Construct an overlapped handle on an existing native handle. +

Move-construct an overlapped handle from another. +

Move-construct an overlapped handle from a handle + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

+ Move-assign an overlapped handle from a handle of another executor + type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+
+ + Protected + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ ~basic_overlapped_handle [destructor] +

+
+

+ 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/basic_stream_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/native_handle.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/native_handle.html new file mode 100644 index 0000000..46c2692 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/native_handle.html @@ -0,0 +1,49 @@ + + + +windows::basic_stream_handle::native_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/native_handle_type.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/native_handle_type.html new file mode 100644 index 0000000..e34da76 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/native_handle_type.html @@ -0,0 +1,51 @@ + + + +windows::basic_stream_handle::native_handle_type + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + native representation of a handle. +

+
typedef implementation_defined native_handle_type;
+
+
+ + Requirements +
+

+ Header: asio/windows/basic_stream_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_.html new file mode 100644 index 0000000..5f3d2bf --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_.html @@ -0,0 +1,52 @@ + + + +windows::basic_stream_handle::operator= + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Move-assign + a stream handle from another. +

+
basic_stream_handle & operator=(
+    basic_stream_handle && other);
+  » more...
+
+

+ Move-assign a stream handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_stream_handle & >::type operator=(
+    basic_stream_handle< Executor1 > && other);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_/overload1.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_/overload1.html new file mode 100644 index 0000000..544aeeb --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_/overload1.html @@ -0,0 +1,66 @@ + + + +windows::basic_stream_handle::operator= (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a stream handle from another. +

+
basic_stream_handle & operator=(
+    basic_stream_handle && other);
+
+

+ This assignment operator moves a stream handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_stream_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_/overload2.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_/overload2.html new file mode 100644 index 0000000..b991a78 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/operator_eq_/overload2.html @@ -0,0 +1,68 @@ + + + +windows::basic_stream_handle::operator= (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Move-assign a stream handle from a handle of another executor type. +

+
template<
+    typename Executor1>
+constraint< is_convertible< Executor1, Executor >::value, basic_stream_handle & >::type operator=(
+    basic_stream_handle< Executor1 > && other);
+
+

+ This assignment operator moves a stream handle from one object to another. +

+
+ + Parameters +
+
+

+
+
other
+

+ The other 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 basic_stream_handle(const executor_type&) + constructor. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some.html new file mode 100644 index 0000000..14c2721 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some.html @@ -0,0 +1,52 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some/overload1.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some/overload1.html new file mode 100644 index 0000000..9b5ab61 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some/overload1.html @@ -0,0 +1,107 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some/overload2.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some/overload2.html new file mode 100644 index 0000000..8dbb696 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/read_some/overload2.html @@ -0,0 +1,84 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/release.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/release.html new file mode 100644 index 0000000..2dee132 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/release.html @@ -0,0 +1,46 @@ + + + +windows::basic_stream_handle::release + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Release + ownership of the underlying native handle. +

+
native_handle_type release();
+  » more...
+
+native_handle_type release(
+    asio::error_code & ec);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle/release/overload1.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/release/overload1.html new file mode 100644 index 0000000..27da3c2 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/release/overload1.html @@ -0,0 +1,71 @@ + + + +windows::basic_stream_handle::release (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ Release ownership of the underlying native handle. +

+
native_handle_type release();
+
+

+ This function causes all outstanding asynchronous operations to finish + immediately, and the handlers for cancelled operations will be passed + the asio::error::operation_aborted error. Ownership + of the native handle 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/3party/asio/doc/asio/reference/windows__basic_stream_handle/release/overload2.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/release/overload2.html new file mode 100644 index 0000000..fc42d93 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/release/overload2.html @@ -0,0 +1,72 @@ + + + +windows::basic_stream_handle::release (2 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Inherited from windows::basic_overlapped_handle. +

+

+ Release ownership of the underlying native handle. +

+
native_handle_type release(
+    asio::error_code & ec);
+
+

+ This function causes all outstanding asynchronous operations to finish + immediately, and the handlers for cancelled operations will be passed + the asio::error::operation_aborted error. Ownership + of the native handle 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/3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some.html new file mode 100644 index 0000000..49b6e28 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some.html @@ -0,0 +1,52 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some/overload1.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some/overload1.html new file mode 100644 index 0000000..6955e64 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some/overload1.html @@ -0,0 +1,106 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some/overload2.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some/overload2.html new file mode 100644 index 0000000..534e025 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle/write_some/overload2.html @@ -0,0 +1,83 @@ + + + +windows::basic_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/3party/asio/doc/asio/reference/windows__basic_stream_handle__rebind_executor.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle__rebind_executor.html new file mode 100644 index 0000000..abfc6a0 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle__rebind_executor.html @@ -0,0 +1,88 @@ + + + +windows::basic_stream_handle::rebind_executor + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Rebinds the handle type to another executor. +

+
template<
+    typename Executor1>
+struct rebind_executor
+
+
+ + Types +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ other +

+
+

+ The handle type when rebound to the specified executor. +

+
+
+ + Requirements +
+

+ Header: asio/windows/basic_stream_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__basic_stream_handle__rebind_executor/other.html b/3party/asio/doc/asio/reference/windows__basic_stream_handle__rebind_executor/other.html new file mode 100644 index 0000000..5f23d5a --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__basic_stream_handle__rebind_executor/other.html @@ -0,0 +1,336 @@ + + + +windows::basic_stream_handle::rebind_executor::other + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +The + handle type when rebound to the specified executor. +

+
typedef basic_stream_handle< Executor1 > other;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_stream_handle [constructor] +

+
+

+ Construct a stream handle without opening it.

Construct + a stream handle on an existing native handle.

Move-construct + a stream handle from another.

Move-construct a + stream handle from a handle of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a stream handle from a handle of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the handle. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+

+ write_some +

+
+

+ Write some data to the handle. +

+
+

+ The windows::basic_stream_handle class provides + asynchronous and blocking stream-oriented handle functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/windows/basic_stream_handle.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__object_handle.html b/3party/asio/doc/asio/reference/windows__object_handle.html new file mode 100644 index 0000000..d3984a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__object_handle.html @@ -0,0 +1,300 @@ + + + +windows::object_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of an object handle. +

+
typedef basic_object_handle object_handle;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_object_handle [constructor] +

+
+

+ Construct an object handle without opening it.

Construct + an object handle on an existing native handle.

Move-construct + an object handle from another.

Move-construct an + object handle from a handle of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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 object handle from another.

Move-assign + an object handle from a handle of another executor type. +

+
+

+ wait +

+
+

+ Perform a blocking wait on the object handle. +

+
+

+ The windows::basic_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/3party/asio/doc/asio/reference/windows__overlapped_handle.html b/3party/asio/doc/asio/reference/windows__overlapped_handle.html new file mode 100644 index 0000000..a03cb05 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_handle.html @@ -0,0 +1,326 @@ + + + +windows::overlapped_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of an overlapped handle. +

+
typedef basic_overlapped_handle overlapped_handle;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_overlapped_handle [constructor] +

+
+

+ Construct an overlapped handle without opening it.

+ Construct an overlapped handle on an existing native handle.
+
Move-construct an overlapped handle from another.
+
Move-construct an overlapped handle from a handle of another + executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + an overlapped handle from a handle of another executor type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+
+ + Protected + Member Functions +
+
++++ + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ ~basic_overlapped_handle [destructor] +

+
+

+ 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/3party/asio/doc/asio/reference/windows__overlapped_ptr.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr.html new file mode 100644 index 0000000..ad728f9 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr.html @@ -0,0 +1,167 @@ + + + +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 [constructor] +

+
+

+ 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] +

+
+

+ 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/3party/asio/doc/asio/reference/windows__overlapped_ptr/_overlapped_ptr.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/_overlapped_ptr.html new file mode 100644 index 0000000..72f5733 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/_overlapped_ptr.html @@ -0,0 +1,41 @@ + + + +windows::overlapped_ptr::~overlapped_ptr + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Destructor + automatically frees the OVERLAPPED object unless released. +

+
~overlapped_ptr();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__overlapped_ptr/complete.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/complete.html new file mode 100644 index 0000000..4009974 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/complete.html @@ -0,0 +1,43 @@ + + + +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/3party/asio/doc/asio/reference/windows__overlapped_ptr/get.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/get.html new file mode 100644 index 0000000..214f1a5 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/get.html @@ -0,0 +1,45 @@ + + + +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/3party/asio/doc/asio/reference/windows__overlapped_ptr/get/overload1.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/get/overload1.html new file mode 100644 index 0000000..4bf2e5b --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/get/overload1.html @@ -0,0 +1,40 @@ + + + +windows::overlapped_ptr::get (1 of 2 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Get the contained OVERLAPPED object. +

+
OVERLAPPED * get();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__overlapped_ptr/get/overload2.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/get/overload2.html new file mode 100644 index 0000000..0e48829 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/get/overload2.html @@ -0,0 +1,40 @@ + + + +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/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr.html new file mode 100644 index 0000000..8759da6 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr.html @@ -0,0 +1,64 @@ + + + +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 ExecutionContext,
+    typename Handler>
+explicit overlapped_ptr(
+    ExecutionContext & context,
+    Handler && handler,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+template<
+    typename Executor,
+    typename Handler>
+explicit overlapped_ptr(
+    const Executor & ex,
+    Handler && handler,
+    typename constraint< execution::is_executor< Executor >::value||is_executor< Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html new file mode 100644 index 0000000..301b7dc --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html @@ -0,0 +1,40 @@ + + + +windows::overlapped_ptr::overlapped_ptr (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an empty windows::overlapped_ptr. +

+
overlapped_ptr();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html new file mode 100644 index 0000000..b46d8b9 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html @@ -0,0 +1,47 @@ + + + +windows::overlapped_ptr::overlapped_ptr (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an windows::overlapped_ptr to contain the + specified handler. +

+
template<
+    typename ExecutionContext,
+    typename Handler>
+overlapped_ptr(
+    ExecutionContext & context,
+    Handler && handler,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload3.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload3.html new file mode 100644 index 0000000..df9eaea --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload3.html @@ -0,0 +1,47 @@ + + + +windows::overlapped_ptr::overlapped_ptr (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Construct an windows::overlapped_ptr to contain the + specified handler. +

+
template<
+    typename Executor,
+    typename Handler>
+overlapped_ptr(
+    const Executor & ex,
+    Handler && handler,
+    typename constraint< execution::is_executor< Executor >::value||is_executor< Executor >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__overlapped_ptr/release.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/release.html new file mode 100644 index 0000000..f8b12db --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/release.html @@ -0,0 +1,41 @@ + + + +windows::overlapped_ptr::release + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +Release + ownership of the OVERLAPPED object. +

+
OVERLAPPED * release();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset.html new file mode 100644 index 0000000..a0b0cb5 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset.html @@ -0,0 +1,64 @@ + + + +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 ExecutionContext,
+    typename Handler>
+void reset(
+    ExecutionContext & context,
+    Handler && handler,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+  » more...
+
+template<
+    typename Executor,
+    typename Handler>
+void reset(
+    const Executor & ex,
+    Handler && handler,
+    typename constraint< execution::is_executor< Executor >::value||is_executor< Executor >::value >::type  = 0);
+  » more...
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload1.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload1.html new file mode 100644 index 0000000..627447f --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload1.html @@ -0,0 +1,40 @@ + + + +windows::overlapped_ptr::reset (1 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Reset to empty. +

+
void reset();
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload2.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload2.html new file mode 100644 index 0000000..1b3a3de --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload2.html @@ -0,0 +1,47 @@ + + + +windows::overlapped_ptr::reset (2 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Reset to contain the specified handler, freeing any current OVERLAPPED + object. +

+
template<
+    typename ExecutionContext,
+    typename Handler>
+void reset(
+    ExecutionContext & context,
+    Handler && handler,
+    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload3.html b/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload3.html new file mode 100644 index 0000000..d4f4944 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload3.html @@ -0,0 +1,47 @@ + + + +windows::overlapped_ptr::reset (3 of 3 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Reset to contain the specified handler, freeing any current OVERLAPPED + object. +

+
template<
+    typename Executor,
+    typename Handler>
+void reset(
+    const Executor & ex,
+    Handler && handler,
+    typename constraint< execution::is_executor< Executor >::value||is_executor< Executor >::value >::type  = 0);
+
+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/windows__random_access_handle.html b/3party/asio/doc/asio/reference/windows__random_access_handle.html new file mode 100644 index 0000000..e27e383 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__random_access_handle.html @@ -0,0 +1,339 @@ + + + +windows::random_access_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of a random-access handle. +

+
typedef basic_random_access_handle random_access_handle;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_random_access_handle [constructor] +

+
+

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

Move-construct a random-access handle from a handle + of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

+ Move-assign a random-access handle from a handle of another executor + type. +

+
+

+ read_some_at +

+
+

+ Read some data from the handle at the specified offset. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+

+ write_some_at +

+
+

+ Write some data to the handle at the specified offset. +

+
+

+ The windows::basic_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/3party/asio/doc/asio/reference/windows__stream_handle.html b/3party/asio/doc/asio/reference/windows__stream_handle.html new file mode 100644 index 0000000..e35d108 --- /dev/null +++ b/3party/asio/doc/asio/reference/windows__stream_handle.html @@ -0,0 +1,336 @@ + + + +windows::stream_handle + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of a stream-oriented handle. +

+
typedef basic_stream_handle stream_handle;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the handle type to another executor. +

+
+

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

+
+

+ basic_stream_handle [constructor] +

+
+

+ Construct a stream handle without opening it.

Construct + a stream handle on an existing native handle.

Move-construct + a stream handle from another.

Move-construct a stream + handle from a handle of another executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the handle. +

+
+

+ close +

+
+

+ Close the handle. +

+
+

+ get_executor +

+
+

+ Get the executor 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.

Move-assign + a stream handle from a handle of another executor type. +

+
+

+ read_some +

+
+

+ Read some data from the handle. +

+
+

+ release +

+
+

+ Release ownership of the underlying native handle. +

+
+

+ write_some +

+
+

+ Write some data to the handle. +

+
+

+ The windows::basic_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/3party/asio/doc/asio/reference/writable_pipe.html b/3party/asio/doc/asio/reference/writable_pipe.html new file mode 100644 index 0000000..e988842 --- /dev/null +++ b/3party/asio/doc/asio/reference/writable_pipe.html @@ -0,0 +1,326 @@ + + + +writable_pipe + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ Typedef for the typical usage of a writable pipe. +

+
typedef basic_writable_pipe writable_pipe;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ rebind_executor +

+
+

+ Rebinds the pipe type to another executor. +

+
+

+ executor_type +

+
+

+ The type of the executor associated with the object. +

+
+

+ lowest_layer_type +

+
+

+ A basic_writable_pipe is always the lowest layer. +

+
+

+ native_handle_type +

+
+

+ The native representation of a pipe. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ assign +

+
+

+ Assign an existing native pipe to the pipe. +

+
+

+ async_write_some +

+
+

+ Start an asynchronous write. +

+
+

+ basic_writable_pipe [constructor] +

+
+

+ Construct a basic_writable_pipe without opening it.

+ Construct a basic_writable_pipe on an existing native pipe.
+
Move-construct a basic_writable_pipe from another.
+
Move-construct a basic_writable_pipe from a pipe of another + executor type. +

+
+

+ cancel +

+
+

+ Cancel all asynchronous operations associated with the pipe. +

+
+

+ close +

+
+

+ Close the pipe. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the object. +

+
+

+ is_open +

+
+

+ Determine whether the pipe is open. +

+
+

+ lowest_layer +

+
+

+ Get a reference to the lowest layer.

Get a const + reference to the lowest layer. +

+
+

+ native_handle +

+
+

+ Get the native pipe representation. +

+
+

+ operator= +

+
+

+ Move-assign a basic_writable_pipe from another.

Move-assign + a basic_writable_pipe from a pipe of another executor type. +

+
+

+ release +

+
+

+ Release ownership of the underlying native pipe. +

+
+

+ write_some +

+
+

+ Write some data to the pipe. +

+
+

+ ~basic_writable_pipe [destructor] +

+
+

+ Destroys the pipe. +

+
+

+ The basic_writable_pipe + class provides a wrapper over pipe functionality. +

+
+ + Thread + Safety +
+

+ Distinct objects: Safe. +

+

+ Shared objects: Unsafe. +

+
+ + Requirements +
+

+ Header: asio/writable_pipe.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/write.html b/3party/asio/doc/asio/reference/write.html new file mode 100644 index 0000000..c589395 --- /dev/null +++ b/3party/asio/doc/asio/reference/write.html @@ -0,0 +1,243 @@ + + + +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 constraint< 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 constraint< 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 constraint< 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 constraint< 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_v1>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v1>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+

+ Write a certain amount of data to a stream before returning. +

+
template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::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...
+
+

+ Write all of the supplied data to a stream before returning. +

+
template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v2>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v2>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+

+ Write a certain amount of data to a stream before returning. +

+
template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >::type  = 0);
+  » more...
+
+
+ + Requirements +
+

+ Header: asio/write.hpp +

+

+ Convenience header: asio.hpp +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/reference/write/overload1.html b/3party/asio/doc/asio/reference/write/overload1.html new file mode 100644 index 0000000..3f58916 --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload1.html @@ -0,0 +1,128 @@ + + + +write (1 of 16 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 constraint< 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/3party/asio/doc/asio/reference/write/overload10.html b/3party/asio/doc/asio/reference/write/overload10.html new file mode 100644 index 0000000..2efd85c --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload10.html @@ -0,0 +1,103 @@ + + + +write (10 of 16 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/3party/asio/doc/asio/reference/write/overload11.html b/3party/asio/doc/asio/reference/write/overload11.html new file mode 100644 index 0000000..b737564 --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload11.html @@ -0,0 +1,122 @@ + + + +write (11 of 16 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/3party/asio/doc/asio/reference/write/overload12.html b/3party/asio/doc/asio/reference/write/overload12.html new file mode 100644 index 0000000..29f68ca --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload12.html @@ -0,0 +1,115 @@ + + + +write (12 of 16 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/3party/asio/doc/asio/reference/write/overload13.html b/3party/asio/doc/asio/reference/write/overload13.html new file mode 100644 index 0000000..d633bac --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload13.html @@ -0,0 +1,112 @@ + + + +write (13 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write all of the supplied data to a stream before returning. +

+
template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v2>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::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/3party/asio/doc/asio/reference/write/overload14.html b/3party/asio/doc/asio/reference/write/overload14.html new file mode 100644 index 0000000..be4470a --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload14.html @@ -0,0 +1,104 @@ + + + +write (14 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write all of the supplied data to a stream before returning. +

+
template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v2>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::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/3party/asio/doc/asio/reference/write/overload15.html b/3party/asio/doc/asio/reference/write/overload15.html new file mode 100644 index 0000000..a343399 --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload15.html @@ -0,0 +1,123 @@ + + + +write (15 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write a certain amount of data to a stream before returning. +

+
template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::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/3party/asio/doc/asio/reference/write/overload16.html b/3party/asio/doc/asio/reference/write/overload16.html new file mode 100644 index 0000000..79dfb01 --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload16.html @@ -0,0 +1,116 @@ + + + +write (16 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write a certain amount of data to a stream before returning. +

+
template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v2,
+    typename CompletionCondition>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v2 buffers,
+    CompletionCondition completion_condition,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v2< DynamicBuffer_v2 >::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/3party/asio/doc/asio/reference/write/overload2.html b/3party/asio/doc/asio/reference/write/overload2.html new file mode 100644 index 0000000..67ca9c0 --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload2.html @@ -0,0 +1,120 @@ + + + +write (2 of 16 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 constraint< 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/3party/asio/doc/asio/reference/write/overload3.html b/3party/asio/doc/asio/reference/write/overload3.html new file mode 100644 index 0000000..14b967d --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload3.html @@ -0,0 +1,140 @@ + + + +write (3 of 16 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 constraint< 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/3party/asio/doc/asio/reference/write/overload4.html b/3party/asio/doc/asio/reference/write/overload4.html new file mode 100644 index 0000000..24eb977 --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload4.html @@ -0,0 +1,118 @@ + + + +write (4 of 16 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 constraint< 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/3party/asio/doc/asio/reference/write/overload5.html b/3party/asio/doc/asio/reference/write/overload5.html new file mode 100644 index 0000000..04464ca --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload5.html @@ -0,0 +1,113 @@ + + + +write (5 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write all of the supplied data to a stream before returning. +

+
template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v1>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::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/3party/asio/doc/asio/reference/write/overload6.html b/3party/asio/doc/asio/reference/write/overload6.html new file mode 100644 index 0000000..2b18150 --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload6.html @@ -0,0 +1,105 @@ + + + +write (6 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write all of the supplied data to a stream before returning. +

+
template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v1>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::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/3party/asio/doc/asio/reference/write/overload7.html b/3party/asio/doc/asio/reference/write/overload7.html new file mode 100644 index 0000000..7d9ae21 --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload7.html @@ -0,0 +1,124 @@ + + + +write (7 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write a certain amount of data to a stream before returning. +

+
template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::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/3party/asio/doc/asio/reference/write/overload8.html b/3party/asio/doc/asio/reference/write/overload8.html new file mode 100644 index 0000000..a44286f --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload8.html @@ -0,0 +1,117 @@ + + + +write (8 of 16 overloads) + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Write a certain amount of data to a stream before returning. +

+
template<
+    typename SyncWriteStream,
+    typename DynamicBuffer_v1,
+    typename CompletionCondition>
+std::size_t write(
+    SyncWriteStream & s,
+    DynamicBuffer_v1 && buffers,
+    CompletionCondition completion_condition,
+    asio::error_code & ec,
+    typename constraint< is_dynamic_buffer_v1< typename decay< DynamicBuffer_v1 >::type >::value >::type  = 0,
+    typename constraint< !is_dynamic_buffer_v2< typename decay< DynamicBuffer_v1 >::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/3party/asio/doc/asio/reference/write/overload9.html b/3party/asio/doc/asio/reference/write/overload9.html new file mode 100644 index 0000000..fc826ac --- /dev/null +++ b/3party/asio/doc/asio/reference/write/overload9.html @@ -0,0 +1,111 @@ + + + +write (9 of 16 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/3party/asio/doc/asio/reference/write_at.html b/3party/asio/doc/asio/reference/write_at.html new file mode 100644 index 0000000..d663237 --- /dev/null +++ b/3party/asio/doc/asio/reference/write_at.html @@ -0,0 +1,148 @@ + + + +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/3party/asio/doc/asio/reference/write_at/overload1.html b/3party/asio/doc/asio/reference/write_at/overload1.html new file mode 100644 index 0000000..7150f0a --- /dev/null +++ b/3party/asio/doc/asio/reference/write_at/overload1.html @@ -0,0 +1,134 @@ + + + +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/3party/asio/doc/asio/reference/write_at/overload2.html b/3party/asio/doc/asio/reference/write_at/overload2.html new file mode 100644 index 0000000..5f4f6d0 --- /dev/null +++ b/3party/asio/doc/asio/reference/write_at/overload2.html @@ -0,0 +1,127 @@ + + + +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/3party/asio/doc/asio/reference/write_at/overload3.html b/3party/asio/doc/asio/reference/write_at/overload3.html new file mode 100644 index 0000000..fba5109 --- /dev/null +++ b/3party/asio/doc/asio/reference/write_at/overload3.html @@ -0,0 +1,146 @@ + + + +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/3party/asio/doc/asio/reference/write_at/overload4.html b/3party/asio/doc/asio/reference/write_at/overload4.html new file mode 100644 index 0000000..c6fee2b --- /dev/null +++ b/3party/asio/doc/asio/reference/write_at/overload4.html @@ -0,0 +1,124 @@ + + + +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/3party/asio/doc/asio/reference/write_at/overload5.html b/3party/asio/doc/asio/reference/write_at/overload5.html new file mode 100644 index 0000000..12b562f --- /dev/null +++ b/3party/asio/doc/asio/reference/write_at/overload5.html @@ -0,0 +1,118 @@ + + + +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/3party/asio/doc/asio/reference/write_at/overload6.html b/3party/asio/doc/asio/reference/write_at/overload6.html new file mode 100644 index 0000000..b264b8d --- /dev/null +++ b/3party/asio/doc/asio/reference/write_at/overload6.html @@ -0,0 +1,110 @@ + + + +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/3party/asio/doc/asio/reference/write_at/overload7.html b/3party/asio/doc/asio/reference/write_at/overload7.html new file mode 100644 index 0000000..9b0182b --- /dev/null +++ b/3party/asio/doc/asio/reference/write_at/overload7.html @@ -0,0 +1,129 @@ + + + +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/3party/asio/doc/asio/reference/write_at/overload8.html b/3party/asio/doc/asio/reference/write_at/overload8.html new file mode 100644 index 0000000..bdee5a6 --- /dev/null +++ b/3party/asio/doc/asio/reference/write_at/overload8.html @@ -0,0 +1,122 @@ + + + +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/3party/asio/doc/asio/reference/yield_context.html b/3party/asio/doc/asio/reference/yield_context.html new file mode 100644 index 0000000..4d159d8 --- /dev/null +++ b/3party/asio/doc/asio/reference/yield_context.html @@ -0,0 +1,243 @@ + + + +yield_context + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ +

+

+ A completion token + object that represents the currently executing coroutine. +

+
typedef basic_yield_context< any_io_executor > yield_context;
+
+
+ + Types +
+
++++ + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ cancellation_slot_type +

+
+

+ The cancellation slot type associated with the yield context. +

+
+

+ executor_type +

+
+

+ The executor type associated with the yield context. +

+
+
+ + Member + Functions +
+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Name +

+
+

+ Description +

+
+

+ basic_yield_context [constructor] +

+
+

+ Construct a yield context from another yield context type. +

+
+

+ cancelled +

+
+

+ Determine whether the current coroutine has been cancelled. +

+
+

+ get_cancellation_slot +

+
+

+ Get the cancellation slot associated with the coroutine. +

+
+

+ get_cancellation_state +

+
+

+ Get the cancellation state associated with the coroutine. +

+
+

+ get_executor +

+
+

+ Get the executor associated with the yield context. +

+
+

+ operator[] +

+
+

+ Return a yield context that sets the specified error_code. +

+
+

+ reset_cancellation_state +

+
+

+ Reset the cancellation state associated with the coroutine. +

+
+

+ throw_if_cancelled +

+
+

+ Determine whether the coroutine throws if trying to suspend when + it has been cancelled.

Set whether the coroutine + throws if trying to suspend when it has been cancelled. +

+
+

+ The basic_yield_context + class is a completion token type that is used to represent the currently + executing stackful coroutine. A basic_yield_context object may be + passed as a completion token to an asynchronous operation. For example: +

+
template <typename Executor>
+void my_coroutine(basic_yield_context<Executor> 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/3party/asio/doc/asio/std_executors.html b/3party/asio/doc/asio/std_executors.html new file mode 100644 index 0000000..4890ee7 --- /dev/null +++ b/3party/asio/doc/asio/std_executors.html @@ -0,0 +1,251 @@ + + + +Proposed Standard Executors + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ Asio provides a complete implementation of the proposed standard executors, + as described in P0443r13, P1348r0, and P1393r0. +

+

+ Just as with executors under the Networking TS model, a standard executor represents + a policy as to how, when, and where a piece of code should be executed. Most + existing code should continue to work with little or no change. +

+

+ + Standard + Executor Implementations in Asio +

+

+ The io_context::executor_type, + thread_pool::executor_type, + system_executor, + and strand + executors meet the requirements for the proposed standard executors. For compatibility, + these classes also meet the requirements for the Networking TS model of executors. +

+

+ + Standard + Executor Use in Asio +

+

+ All I/O objects such as ip::tcp::socket, + asynchronous operations, and utilities including dispatch, post, defer, get_associated_executor, bind_executor, make_work_guard, spawn, co_spawn, async_compose, use_future, etc., can interoperate + with both proposed standard executors, and with Networking TS executors. Asio's + implementation determines at compile time which model a particular executor + meets; the proposed standard executor model is used in preference if both are + detected. +

+

+ Support for the existing Networking TS model of executors can be disabled by + defining ASIO_NO_TS_EXECUTORS. +

+

+ + Polymorphic + I/O Executor +

+

+ The any_io_executor + type alias is the default runtime-polymorphic executor for all I/O objects. + This type alias points to the execution::any_executor<> + template with a set of supportable properties specified for use with I/O. +

+

+ This new name may break existing code that directly uses the old polymorphic + wrapper, executor. + If required for backward compatibility, ASIO_USE_TS_EXECUTOR_AS_DEFAULT + can be defined, which changes the any_io_executor + type alias to instead point to the executor + polymorphic wrapper. +

+

+ + Implementing + a Minimal I/O Executor +

+

+ Standard executor properties make what were previously hard requirements on + an executor (such as work counting, or the ability to distinguish between + post, dispatch, + and defer) into optional facilities. + With this relaxation, the minimal requirements for an I/O executor are: +

+
+

+ The following example shows a minimal I/O executor. Given a queue submission + operation implemented elsewhere: +

+
queue_t queue_create();
+template <typename F> void queue_submit(queue_t q, F f);
+
+

+ the executor may be defined as follows: +

+
struct minimal_io_executor
+{
+  asio::execution_context* context_;
+  queue_t queue_;
+
+  bool operator==(const minimal_io_executor& other) const noexcept
+  {
+    return context_ == other.context_ && queue_ == other.queue_;
+  }
+
+  bool operator!=(const minimal_io_executor& other) const noexcept
+  {
+    return !(*this == other);
+  }
+
+  asio::execution_context& query(
+      asio::execution::context_t) const noexcept
+  {
+    return *context_;
+  }
+
+  static constexpr asio::execution::blocking_t::never_t query(
+      asio::execution::blocking_t) noexcept
+  {
+    // This executor always has blocking.never semantics.
+    return asio::execution::blocking.never;
+  }
+
+  template <class F>
+  void execute(F f) const
+  {
+    queue_submit(queue_, std::move(f));
+  }
+};
+
+

+ This executor may be created as follows: +

+
asio::execution_context context;
+queue_t queue = queue_create();
+minimal_io_executor executor{&context, queue};
+
+

+ and then used with I/O objects: +

+
asio::ip::tcp::acceptor acceptor(executor);
+
+

+ or assigned into the any_io_executor polymorphic wrapper: +

+
asio::any_io_executor poly_executor = executor;
+
+

+ + Traits + for Deducing Conformance to the Executor Concept +

+

+ Older C++ standards and compilers require some assistance to determine whether + an executor implementation conforms to the executor + concept and type requirements. This is achieved through specialisation of traits. + The following code shows a specialisation of these traits for the minimal_io_executor example from above: +

+
namespace asio {
+namespace traits {
+
+#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
+
+template <typename F>
+struct execute_member<minimal_io_executor, F>
+{
+  static constexpr bool is_valid = true;
+  static constexpr bool is_noexcept = true;
+  typedef void result_type;
+};
+
+#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
+#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
+
+template <>
+struct equality_comparable<minimal_io_executor>
+{
+  static constexpr bool is_valid = true;
+  static constexpr bool is_noexcept = true;
+};
+
+#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
+#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
+
+template <>
+struct query_member<minimal_io_executor,
+    asio::execution::context_t>
+{
+  static constexpr bool is_valid = true;
+  static constexpr bool is_noexcept = true;
+  typedef asio::execution_context& result_type;
+};
+
+#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
+#if !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
+
+template <typename Property>
+struct query_static_constexpr_member<minimal_io_executor, Property,
+    typename enable_if<
+      std::is_convertible<Property, asio::execution::blocking_t>::value
+    >::type>
+{
+  static constexpr bool is_valid = true;
+  static constexpr bool is_noexcept = true;
+  typedef asio::execution::blocking_t::never_t result_type;
+  static constexpr result_type value() noexcept { return result_type(); }
+};
+
+#endif // !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
+
+} // namespace traits
+} // namespace asio
+
+

+ Asio uses an extensive set of traits to implement all of the proposed standard + executor functionality on older C++ standards. These traits may be found under + the asio/traits include directory. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/tutorial.html b/3party/asio/doc/asio/tutorial.html new file mode 100644 index 0000000..9300fa8 --- /dev/null +++ b/3party/asio/doc/asio/tutorial.html @@ -0,0 +1,117 @@ + + + +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/3party/asio/doc/asio/tutorial/boost_bind.html b/3party/asio/doc/asio/tutorial/boost_bind.html new file mode 100644 index 0000000..f517cbd --- /dev/null +++ b/3party/asio/doc/asio/tutorial/boost_bind.html @@ -0,0 +1,38 @@ + + + +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/3party/asio/doc/asio/tutorial/tutdaytime1.html b/3party/asio/doc/asio/tutorial/tutdaytime1.html new file mode 100644 index 0000000..85b79da --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime1.html @@ -0,0 +1,148 @@ + + + +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 I/O execution context, + such as an 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 host name and service name and turns them into a list + of endpoints. We perform a resolve call 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 object of type ip::tcp::resolver::results_type. + This object is a range, with begin() and end() member functions that may + be used for iterating over the results. +

+
    tcp::resolver::results_type endpoints =
+      resolver.resolve(argv[1], "daytime");
+
+

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

+
    tcp::socket socket(io_context);
+    asio::connect(socket, endpoints);
+
+

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

+
    for (;;)
+    {
+      boost::array<char, 128> buf;
+      asio::error_code error;
+
+      size_t len = socket.read_some(asio::buffer(buf), error);
+
+

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

+
      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);
+    }
+
+

+ Finally, handle any exceptions that may have been thrown. +

+
  }
+  catch (std::exception& e)
+  {
+    std::cerr << e.what() << std::endl;
+  }
+
+

+ See the full source listing +

+

+ Return to the tutorial index +

+

+ Next: Daytime.2 - A synchronous + TCP daytime server +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/tutorial/tutdaytime1/src.html b/3party/asio/doc/asio/tutorial/tutdaytime1/src.html new file mode 100644 index 0000000..f600493 --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime1/src.html @@ -0,0 +1,96 @@ + + + +Source listing for Daytime.1 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// client.cpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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/3party/asio/doc/asio/tutorial/tutdaytime2.html b/3party/asio/doc/asio/tutorial/tutdaytime2.html new file mode 100644 index 0000000..64498dd --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime2.html @@ -0,0 +1,116 @@ + + + +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/3party/asio/doc/asio/tutorial/tutdaytime2/src.html b/3party/asio/doc/asio/tutorial/tutdaytime2/src.html new file mode 100644 index 0000000..bcbdc9a --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime2/src.html @@ -0,0 +1,89 @@ + + + +Source listing for Daytime.2 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// server.cpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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/3party/asio/doc/asio/tutorial/tutdaytime3.html b/3party/asio/doc/asio/tutorial/tutdaytime3.html new file mode 100644 index 0000000..f24cf1c --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime3.html @@ -0,0 +1,229 @@ + + + +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)
+    : 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(io_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/3party/asio/doc/asio/tutorial/tutdaytime3/src.html b/3party/asio/doc/asio/tutorial/tutdaytime3/src.html new file mode 100644 index 0000000..98d7ca0 --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime3/src.html @@ -0,0 +1,158 @@ + + + +Source listing for Daytime.3 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// server.cpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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/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)
+    : 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(io_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();
+  }
+
+  asio::io_context& io_context_;
+  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/3party/asio/doc/asio/tutorial/tutdaytime4.html b/3party/asio/doc/asio/tutorial/tutdaytime4.html new file mode 100644 index 0000000..3bf331c --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime4.html @@ -0,0 +1,124 @@ + + + +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. +

+

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

+
    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);
+
+

+ 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(). +

+
    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);
+  }
+
+

+ Finally, handle any exceptions that may have been thrown. +

+
  catch (std::exception& e)
+  {
+    std::cerr << e.what() << std::endl;
+  }
+
+  return 0;
+}
+
+

+ 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/3party/asio/doc/asio/tutorial/tutdaytime4/src.html b/3party/asio/doc/asio/tutorial/tutdaytime4/src.html new file mode 100644 index 0000000..4ff4011 --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime4/src.html @@ -0,0 +1,91 @@ + + + +Source listing for Daytime.4 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// client.cpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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/3party/asio/doc/asio/tutorial/tutdaytime5.html b/3party/asio/doc/asio/tutorial/tutdaytime5.html new file mode 100644 index 0000000..7f5d12e --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime5.html @@ -0,0 +1,100 @@ + + + +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(). +

+
    for (;;)
+    {
+      boost::array<char, 1> recv_buf;
+      udp::endpoint remote_endpoint;
+      socket.receive_from(asio::buffer(recv_buf), remote_endpoint);
+
+

+ Determine what we are going to send back to the client. +

+
      std::string message = make_daytime_string();
+
+

+ Send the response to the remote_endpoint. +

+
      asio::error_code ignored_error;
+      socket.send_to(asio::buffer(message),
+          remote_endpoint, 0, 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.4 - A synchronous + UDP daytime client +

+

+ Next: Daytime.6 - An asynchronous + UDP daytime server +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/tutorial/tutdaytime5/src.html b/3party/asio/doc/asio/tutorial/tutdaytime5/src.html new file mode 100644 index 0000000..07e8380 --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime5/src.html @@ -0,0 +1,92 @@ + + + +Source listing for Daytime.5 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// server.cpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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;
+      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/3party/asio/doc/asio/tutorial/tutdaytime6.html b/3party/asio/doc/asio/tutorial/tutdaytime6.html new file mode 100644 index 0000000..b3b2cbe --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime6.html @@ -0,0 +1,179 @@ + + + +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/3party/asio/doc/asio/tutorial/tutdaytime6/src.html b/3party/asio/doc/asio/tutorial/tutdaytime6/src.html new file mode 100644 index 0000000..1e22d70 --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime6/src.html @@ -0,0 +1,128 @@ + + + +Source listing for Daytime.6 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// server.cpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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/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/3party/asio/doc/asio/tutorial/tutdaytime7.html b/3party/asio/doc/asio/tutorial/tutdaytime7.html new file mode 100644 index 0000000..757f55c --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime7.html @@ -0,0 +1,216 @@ + + + +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)
+    : 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(io_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();
+  }
+
+  asio::io_context& io_context_;
+  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/3party/asio/doc/asio/tutorial/tutdaytime7/src.html b/3party/asio/doc/asio/tutorial/tutdaytime7/src.html new file mode 100644 index 0000000..c56085e --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tutdaytime7/src.html @@ -0,0 +1,199 @@ + + + +Source listing for Daytime.7 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// server.cpp
+// ~~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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/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)
+    : 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(io_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();
+  }
+
+  asio::io_context& io_context_;
+  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/3party/asio/doc/asio/tutorial/tuttimer1.html b/3party/asio/doc/asio/tutorial/tuttimer1.html new file mode 100644 index 0000000..a982f78 --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tuttimer1.html @@ -0,0 +1,99 @@ + + + +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 I/O execution context, + such as an io_context or + thread_pool object. An + I/O execution context provides access to I/O functionality. We declare an + object of type io_context + 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 an executor, or a reference to an execution context (such as 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/3party/asio/doc/asio/tutorial/tuttimer1/src.html b/3party/asio/doc/asio/tutorial/tuttimer1/src.html new file mode 100644 index 0000000..ea44a0e --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tuttimer1/src.html @@ -0,0 +1,63 @@ + + + +Source listing for Timer.1 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// timer.cpp
+// ~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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/3party/asio/doc/asio/tutorial/tuttimer2.html b/3party/asio/doc/asio/tutorial/tuttimer2.html new file mode 100644 index 0000000..5d9d2f3 --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tuttimer2.html @@ -0,0 +1,113 @@ + + + +Timer.2 - Using a timer asynchronously + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ This tutorial program demonstrates how to use asio's asynchronous 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 supplying a completion + token, which determines how the result will be delivered to a completion handler 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 function 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 completion handlers will only + be called from threads that are currently calling io_context::run(). + Therefore unless the io_context::run() + function is called the completion handler 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 completion handler + has returned. +

+

+ 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 completion handler +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/tutorial/tuttimer2/src.html b/3party/asio/doc/asio/tutorial/tuttimer2/src.html new file mode 100644 index 0000000..aa318ec --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tuttimer2/src.html @@ -0,0 +1,68 @@ + + + +Source listing for Timer.2 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// timer.cpp
+// ~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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/3party/asio/doc/asio/tutorial/tuttimer3.html b/3party/asio/doc/asio/tutorial/tuttimer3.html new file mode 100644 index 0000000..06d7ed3 --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tuttimer3.html @@ -0,0 +1,161 @@ + + + +Timer.3 - Binding arguments to a completion 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/bind.hpp>
+
+

+ To implement a repeating timer using asio you need to change the timer's + expiry time in your completion handler, and to then start a new asynchronous + wait. Obviously this means that the completion handler 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; and +
  • +
  • + a counter so that we can stop the program when the timer fires for the + sixth time +
  • +
+

+ at the end of the parameter list. +

+
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 completion 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 completion 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 completion handler +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/tutorial/tuttimer3/src.html b/3party/asio/doc/asio/tutorial/tuttimer3/src.html new file mode 100644 index 0000000..23f8ef4 --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tuttimer3/src.html @@ -0,0 +1,82 @@ + + + +Source listing for Timer.3 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// timer.cpp
+// ~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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/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 completion handler +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/tutorial/tuttimer4.html b/3party/asio/doc/asio/tutorial/tuttimer4.html new file mode 100644 index 0000000..862643b --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tuttimer4.html @@ -0,0 +1,140 @@ + + + +Timer.4 - Using a member function as a completion handler + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ In this tutorial we will see how to use a class member function as a completion + handler. The program should execute identically to the tutorial program from + tutorial Timer.3. +

+
#include <iostream>
+#include <asio.hpp>
+#include <boost/bind/bind.hpp>
+
+

+ Instead of defining a free function print + as the completion 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 completion 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 completion handler +

+

+ Next: Timer.5 - Synchronising completion + handlers in multithreaded programs +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/tutorial/tuttimer4/src.html b/3party/asio/doc/asio/tutorial/tuttimer4/src.html new file mode 100644 index 0000000..ac1f591 --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tuttimer4/src.html @@ -0,0 +1,93 @@ + + + +Source listing for Timer.4 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// timer.cpp
+// ~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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/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 completion handler +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/tutorial/tuttimer5.html b/3party/asio/doc/asio/tutorial/tuttimer5.html new file mode 100644 index 0000000..42fc44d --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tuttimer5.html @@ -0,0 +1,199 @@ + + + +Timer.5 - Synchronising completion handlers in multithreaded programs + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ This tutorial demonstrates the use of the strand + class template to synchronise completion 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 completion 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 completion 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/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 asio::strand<asio::io_context::executor_type>. +

+

+ The strand class template is + an executor adapter 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 strand, + or were dispatched through a different strand + object. +

+
  printer(asio::io_context& io)
+    : strand_(asio::make_strand(io)),
+      timer1_(io, asio::chrono::seconds(1)),
+      timer2_(io, asio::chrono::seconds(1)),
+      count_(0)
+  {
+
+

+ When initiating the asynchronous operations, each completion handler is "bound" + to an asio::strand<asio::io_context::executor_type> object. The asio::bind_executor() + function returns a new handler that automatically dispatches its contained + handler through the strand object. + By binding the handlers to the same 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::strand<asio::io_context::executor_type> 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 completion handler +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/tutorial/tuttimer5/src.html b/3party/asio/doc/asio/tutorial/tuttimer5/src.html new file mode 100644 index 0000000..806d714 --- /dev/null +++ b/3party/asio/doc/asio/tutorial/tuttimer5/src.html @@ -0,0 +1,119 @@ + + + +Source listing for Timer.5 + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +
//
+// timer.cpp
+// ~~~~~~~~~
+//
+// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+//
+// Distributed under the 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/bind.hpp>
+
+class printer
+{
+public:
+  printer(asio::io_context& io)
+    : strand_(asio::make_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::strand<asio::io_context::executor_type> 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 + completion handlers in multithreaded programs +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/asio/using.html b/3party/asio/doc/asio/using.html new file mode 100644 index 0000000..58e1b0d --- /dev/null +++ b/3party/asio/doc/asio/using.html @@ -0,0 +1,2424 @@ + + + +Using, Building, and Configuring Asio + + + + + + + + + +
asio C++ library
+
+
+PrevUpHomeNext +
+
+ +

+ + Supported + Platforms +

+

+ The following platform and compiler combinations are regularly tested: +

+
    +
  • + Linux using g++ 4.6 or later +
  • +
  • + Linux using clang 3.4 or later +
  • +
  • + FreeBSD using g++ 9 or later +
  • +
  • + macOS using Xcode 10 or later +
  • +
  • + Win32 using Visual C++ 11.0 (Visual Studio 2012) or later +
  • +
  • + Win64 using Visual C++ 11.0 (Visual Studio 2012) or later +
  • +
+

+ The following platforms may also work: +

+
    +
  • + AIX +
  • +
  • + Android +
  • +
  • + HP-UX +
  • +
  • + iOS +
  • +
  • + NetBSD +
  • +
  • + OpenBSD +
  • +
  • + QNX Neutrino +
  • +
  • + Solaris +
  • +
  • + Tru64 +
  • +
  • + Win32 using MinGW. +
  • +
  • + 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>. +

+

+ + Debugger + support +

+

+ Some debugger extensions for use with Asio may be found at https://github.com/chriskohlhoff/asio-debugger-extensions. +

+

+ + 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 interface, + functionality, and behaviour of Asio. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Macro +

+
+

+ Description +

+
+

+ ASIO_NO_DEPRECATED +

+
+

+ Disables Asio's deprecated interfaces and functionality. +

+

+ See Networking TS Compatibility + for a list of older interfaces that have been deprecated, and their + replacements. +

+
+

+ ASIO_NO_TS_EXECUTORS +

+
+

+ Disables Asio's support for the Networking TS executor model. +

+

+ By default, Asio simultaneously supports both Networking TS-style + executors, and executors that adhere to the proposed standard executor + model. This macro may be used to limit support to the proposed standard + executors only. See Proposed Standard + Executors for more information. +

+
+

+ ASIO_USE_TS_EXECUTOR_AS_DEFAULT +

+
+

+ Specifies that any_io_executor refer to + the Networking TS-style polymorphic wrapper. +

+

+ The any_io_executor + type alias is the default runtime-polymorphic executor for all I/O + objects. This type alias points to the execution::any_executor<> + template with a set of supportable properties specified for use with + I/O. +

+

+ This new name may break existing code that directly uses the old + Networking TS-style polymorphic wrapper, executor. If required for + backward compatibility, ASIO_USE_TS_EXECUTOR_AS_DEFAULT + changes the any_io_executor + type alias to instead point to the executor + polymorphic wrapper. +

+

+ See Proposed Standard Executors + for more information. +

+
+

+ ASIO_NO_DYNAMIC_BUFFER_V1 +

+
+

+ Disables support for the DynamicBuffer_v1 type requirements. +

+

+ By default, dynamic buffer operations such as read, async_read, read_until, async_read_until, write, + and async_write + support both the DynamicBuffer_v1 + and the DynamicBuffer_v2 type requirements + for dynamic buffers. +

+

+ When ASIO_NO_DYNAMIC_BUFFER_V1 + is defined, all support for DynamicBuffer_v1 + types and functions is #ifdef-ed out. Support for using basic_streambuf with the + read, async_read, read_until, + async_read_until, + write, and async_write functions is also disabled + as a consequence. +

+
+

+ 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_ENABLE_HANDLER_TRACKING +

+
+

+ Enables Asio's Handler + Tracking debugging facility. +

+
+

+ 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_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM +

+
+

+ Changes basic_socket_streambuf and + basic_socket_iostream to + use the old Boost.Date_Time interface, rather than chrono. +

+
+

+ ASIO_SEPARATE_COMPILATION +

+
+

+ Uses separately compiled source code for Asio's implementation. +

+

+ See above + for further information. +

+
+

+ ASIO_DYN_LINK +

+
+

+ Uses separately compiled source code for Asio's implementation, with + symbols exported for inclusion as part of a shared library. +

+

+ See above + for further information. +

+
+

+ ASIO_DISABLE_VISIBILITY +

+
+

+ Disables all symbol visibility pragmas. +

+

+ Note: If symbols are hidden, extra care must be taken to ensure that + Asio types are not passed across shared library API boundaries. +

+
+

+ + Compiler/platform + feature detection macros +

+

+ Asio automatically defines preprocessor macros corresponding to the detected + available features on a particular compiler and target platform. These macros + are named with the prefix ASIO_HAS_, + and are listed in the table below. +

+

+ Many of these macros also have a corresponding ASIO_DISABLE_ + macro that may be used to explicitly disable the feature. +

+

+ In general, ASIO_HAS_ macros + should not be explicitly defined by the user, except when absolutely required + as a workaround for the latest version of a compiler or platform. For older + compiler/platform combinations where a specific ASIO_HAS_ + macro is not automatically defined, testing may have shown that a claimed feature + isn't sufficiently conformant to be compatible with Asio's needs. +

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Macro +

+
+

+ Description +

+
+

+ Macro to disable feature +

+
+

+ ASIO_HAS_ALIAS_TEMPLATES +

+
+

+ Support alias templates on compilers known to allow it. +

+
+

+ ASIO_DISABLE_ALIAS_TEMPLATES +

+
+

+ ASIO_HAS_ALIGNOF +

+
+

+ Support for the alignof operator. +

+
+

+ ASIO_DISABLE_ALIGNOF +

+
+

+ ASIO_HAS_BOOST_ALIGN +

+
+

+ Boost align library. +

+
+

+ ASIO_DISABLE_BOOST_ALIGN +

+
+

+ ASIO_HAS_BOOST_ARRAY +

+
+

+ Boost array library. +

+
+

+ ASIO_DISABLE_BOOST_ARRAY +

+
+

+ ASIO_HAS_BOOST_ASSERT +

+
+

+ Boost assert macro. +

+
+

+ ASIO_DISABLE_BOOST_ASSERT +

+
+

+ ASIO_HAS_BOOST_BIND +

+
+

+ Boost bind function. +

+
+

+ ASIO_DISABLE_BOOST_BIND +

+
+

+ ASIO_HAS_BOOST_CHRONO +

+
+

+ Boost support for chrono. +

+
+

+ ASIO_DISABLE_BOOST_CHRONO +

+
+

+ ASIO_HAS_BOOST_CONFIG +

+
+

+ Boost.Config library is available. +

+
+
+

+ ASIO_HAS_BOOST_CONTEXT_FIBER +

+
+

+ Boost support for the Context library's fibers. +

+
+

+ ASIO_DISABLE_BOOST_CONTEXT_FIBER +

+
+

+ ASIO_HAS_BOOST_COROUTINE +

+
+

+ Boost support for the Coroutine library. +

+
+

+ ASIO_DISABLE_BOOST_COROUTINE +

+
+

+ ASIO_HAS_BOOST_DATE_TIME +

+
+

+ Boost support for the DateTime library. +

+
+

+ ASIO_DISABLE_BOOST_DATE_TIME +

+
+

+ ASIO_HAS_BOOST_LIMITS +

+
+

+ Boost limits header. +

+
+

+ ASIO_DISABLE_BOOST_LIMITS +

+
+

+ ASIO_HAS_BOOST_REGEX +

+
+

+ Boost regex library. +

+
+

+ ASIO_DISABLE_BOOST_REGEX +

+
+

+ ASIO_HAS_BOOST_SOURCE_LOCATION +

+
+

+ Boost support for source_location and system errors. +

+
+

+ ASIO_DISABLE_BOOST_SOURCE_LOCATION +

+
+

+ ASIO_HAS_BOOST_THROW_EXCEPTION +

+
+

+ Boost throw_exception function. +

+
+

+ ASIO_DISABLE_BOOST_THROW_EXCEPTION +

+
+

+ ASIO_HAS_BOOST_WORKAROUND +

+
+

+ Boost's BOOST_WORKAROUND macro. +

+
+

+ ASIO_DISABLE_BOOST_WORKAROUND +

+
+

+ ASIO_HAS_CHRONO +

+
+

+ Some form of chrono library is available. +

+
+
+

+ ASIO_HAS_CLANG_LIBCXX +

+
+

+ Clang / libc++ detection. +

+
+
+

+ ASIO_HAS_CONCEPTS +

+
+

+ Support concepts on compilers known to allow them. +

+
+

+ ASIO_DISABLE_CONCEPTS +

+
+

+ ASIO_HAS_CONSTANT_EXPRESSION_SFINAE +

+
+

+ Support SFINAE use of constant expressions on compilers known to + allow it. +

+
+

+ ASIO_DISABLE_CONSTANT_EXPRESSION_SFINAE +

+
+

+ ASIO_HAS_CONSTEXPR +

+
+

+ Support constexpr on compilers known to allow it. +

+
+

+ ASIO_DISABLE_CONSTEXPR +

+
+

+ ASIO_HAS_CO_AWAIT +

+
+

+ Support the co_await keyword on compilers known to allow it. +

+
+

+ ASIO_DISABLE_CO_AWAIT +

+
+

+ ASIO_HAS_CSTDINT +

+
+

+ Standard library support for the cstdint header. +

+
+

+ ASIO_DISABLE_CSTDINT +

+
+

+ ASIO_HAS_CXX11_ALLOCATORS +

+
+

+ Standard library support for the C++11 allocator additions. +

+
+

+ ASIO_DISABLE_CXX11_ALLOCATORS +

+
+

+ ASIO_HAS_DECLTYPE +

+
+

+ Support automatic type deduction on compilers known to support it. +

+
+

+ ASIO_DISABLE_DECLTYPE +

+
+

+ ASIO_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS +

+
+

+ Support default function template arguments on compilers known to + allow it. +

+
+

+ ASIO_DISABLE_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS +

+
+

+ ASIO_HAS_DEV_POLL +

+
+

+ Solaris: /dev/poll. +

+
+

+ ASIO_DISABLE_DEV_POLL +

+
+

+ ASIO_HAS_ENUM_CLASS +

+
+

+ Support enum classes on compilers known to allow them. +

+
+

+ ASIO_DISABLE_ENUM_CLASS +

+
+

+ ASIO_HAS_EPOLL +

+
+

+ Linux: epoll, eventfd and timerfd. +

+
+

+ ASIO_DISABLE_EPOLL +

+
+

+ ASIO_HAS_EVENTFD +

+
+

+ Linux: epoll, eventfd and timerfd. +

+
+

+ ASIO_DISABLE_EVENTFD +

+
+

+ ASIO_HAS_FILE +

+
+

+ Files. +

+
+

+ ASIO_DISABLE_FILE +

+
+

+ ASIO_HAS_GETADDRINFO +

+
+

+ Can use getaddrinfo() and getnameinfo(). +

+
+

+ ASIO_DISABLE_GETADDRINFO +

+
+

+ ASIO_HAS_HANDLER_HOOKS +

+
+

+ Handler hooking. Disabled for ancient Borland C++ and gcc compilers. +

+
+

+ ASIO_DISABLE_HANDLER_HOOKS +

+
+

+ ASIO_HAS_IOCP +

+
+

+ Windows: IO Completion Ports. +

+
+

+ ASIO_DISABLE_IOCP +

+
+

+ ASIO_HAS_IO_URING_AS_DEFAULT +

+
+

+ Linux: io_uring is used instead of epoll. +

+
+
+

+ ASIO_HAS_KQUEUE +

+
+

+ Mac OS X, FreeBSD, NetBSD, OpenBSD: kqueue. +

+
+

+ ASIO_DISABLE_KQUEUE +

+
+

+ ASIO_HAS_LOCAL_SOCKETS +

+
+

+ UNIX domain sockets. +

+
+

+ ASIO_DISABLE_LOCAL_SOCKETS +

+
+

+ ASIO_HAS_MOVE +

+
+

+ Support move construction and assignment on compilers known to allow + it. +

+
+

+ ASIO_DISABLE_MOVE +

+
+

+ ASIO_HAS_MSG_NOSIGNAL +

+
+

+ Kernel support for MSG_NOSIGNAL. +

+
+
+

+ ASIO_HAS_NOEXCEPT +

+
+

+ Support noexcept on compilers known to allow it. +

+
+

+ ASIO_DISABLE_NOEXCEPT +

+
+

+ ASIO_HAS_NOEXCEPT_FUNCTION_TYPE +

+
+

+ Support noexcept on function types on compilers known to allow it. +

+
+

+ ASIO_DISABLE_NOEXCEPT_FUNCTION_TYPE +

+
+

+ ASIO_HAS_NULLPTR +

+
+

+ Standard library support for the nullptr_t type. +

+
+

+ ASIO_DISABLE_NULLPTR +

+
+

+ ASIO_HAS_PIPE +

+
+

+ Pipes. +

+
+

+ ASIO_DISABLE_PIPE +

+
+

+ ASIO_HAS_POSIX_STREAM_DESCRIPTOR +

+
+

+ POSIX: stream-oriented file descriptors. +

+
+

+ ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR +

+
+

+ ASIO_HAS_PTHREADS +

+
+

+ POSIX threads. +

+
+
+

+ ASIO_HAS_REF_QUALIFIED_FUNCTIONS +

+
+

+ Support ref-qualified functions on compilers known to allow it. +

+
+

+ ASIO_DISABLE_REF_QUALIFIED_FUNCTIONS +

+
+

+ ASIO_HAS_RETURN_TYPE_DEDUCTION +

+
+

+ Support return type deduction on compilers known to allow it. +

+
+

+ ASIO_DISABLE_RETURN_TYPE_DEDUCTION +

+
+

+ ASIO_HAS_SECURE_RTL +

+
+

+ Microsoft Visual C++'s secure C runtime library. +

+
+

+ ASIO_DISABLE_SECURE_RTL +

+
+

+ ASIO_HAS_SERIAL_PORT +

+
+

+ Serial ports. +

+
+

+ ASIO_DISABLE_SERIAL_PORT +

+
+

+ ASIO_HAS_SFINAE_VARIABLE_TEMPLATES +

+
+

+ Support SFINAEd template variables on compilers known to allow it. +

+
+

+ ASIO_DISABLE_SFINAE_VARIABLE_TEMPLATES +

+
+

+ ASIO_HAS_SIGACTION +

+
+

+ Can use sigaction() instead of signal(). +

+
+

+ ASIO_DISABLE_SIGACTION +

+
+

+ ASIO_HAS_SIGNAL +

+
+

+ Can use signal(). +

+
+

+ ASIO_DISABLE_SIGNAL +

+
+

+ ASIO_HAS_SOURCE_LOCATION +

+
+

+ Standard library has a source_location that we can use. +

+
+

+ ASIO_DISABLE_SOURCE_LOCATION +

+
+

+ ASIO_HAS_SSIZE_T +

+
+

+ Support for POSIX ssize_t typedef. +

+
+

+ ASIO_DISABLE_SSIZE_T +

+
+

+ ASIO_HAS_STD_ADDRESSOF +

+
+

+ Standard library support for addressof. +

+
+

+ ASIO_DISABLE_STD_ADDRESSOF +

+
+

+ ASIO_HAS_STD_ALIGNED_ALLOC +

+
+

+ Standard library support for aligned allocation. +

+
+

+ ASIO_DISABLE_STD_ALIGNED_ALLOC +

+
+

+ ASIO_HAS_STD_ALLOCATOR_ARG +

+
+

+ Standard library support for allocator_arg_t. +

+
+

+ ASIO_DISABLE_STD_ALLOCATOR_ARG +

+
+

+ ASIO_HAS_STD_ANY +

+
+

+ Standard library support for std::any. +

+
+

+ ASIO_DISABLE_STD_ANY +

+
+

+ ASIO_HAS_STD_ARRAY +

+
+

+ Standard library support for arrays. +

+
+

+ ASIO_DISABLE_STD_ARRAY +

+
+

+ ASIO_HAS_STD_ATOMIC +

+
+

+ Standard library support for atomic operations. +

+
+

+ ASIO_DISABLE_STD_ATOMIC +

+
+

+ ASIO_HAS_STD_CALL_ONCE +

+
+

+ Standard library support for the call_once function. +

+
+

+ ASIO_DISABLE_STD_CALL_ONCE +

+
+

+ ASIO_HAS_STD_CHRONO +

+
+

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

+
+

+ ASIO_DISABLE_STD_CHRONO +

+
+

+ ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK +

+
+

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

+
+
+

+ ASIO_HAS_STD_CONCEPTS +

+
+

+ Support concepts on compilers known to allow them. +

+
+

+ ASIO_DISABLE_STD_CONCEPTS +

+
+

+ ASIO_HAS_STD_COROUTINE +

+
+

+ Standard library support for coroutines. +

+
+

+ ASIO_DISABLE_STD_COROUTINE +

+
+

+ ASIO_HAS_STD_EXCEPTION_PTR +

+
+

+ Standard library support for std::exception_ptr and std::current_exception. +

+
+

+ ASIO_DISABLE_STD_EXCEPTION_PTR +

+
+

+ ASIO_HAS_STD_EXPERIMENTAL_SOURCE_LOCATION +

+
+

+ Standard library support for std::experimental::source_location. +

+
+

+ ASIO_DISABLE_STD_EXPERIMENTAL_SOURCE_LOCATION +

+
+

+ ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW +

+
+

+ Standard library support for std::experimental::string_view. +

+
+

+ ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW +

+
+

+ ASIO_HAS_STD_FUNCTION +

+
+

+ Standard library support for the function class. +

+
+

+ ASIO_DISABLE_STD_FUNCTION +

+
+

+ ASIO_HAS_STD_FUTURE +

+
+

+ Standard library support for futures. +

+
+

+ ASIO_DISABLE_STD_FUTURE +

+
+

+ ASIO_HAS_STD_HASH +

+
+

+ Standard library support for std::hash. +

+
+

+ ASIO_DISABLE_STD_HASH +

+
+

+ ASIO_HAS_STD_INDEX_SEQUENCE +

+
+

+ Standard library support for std::index_sequence. +

+
+

+ ASIO_DISABLE_STD_INDEX_SEQUENCE +

+
+

+ ASIO_HAS_STD_INVOKE_RESULT +

+
+

+ Standard library has invoke_result (which supersedes result_of). +

+
+

+ ASIO_DISABLE_STD_INVOKE_RESULT +

+
+

+ ASIO_HAS_STD_IOSTREAM_MOVE +

+
+

+ Standard library support for iostream move construction and assignment. +

+
+

+ ASIO_DISABLE_STD_IOSTREAM_MOVE +

+
+

+ ASIO_HAS_STD_MUTEX_AND_CONDVAR +

+
+

+ Standard library support for the mutex and condition variable classes. +

+
+

+ ASIO_DISABLE_STD_MUTEX_AND_CONDVAR +

+
+

+ ASIO_HAS_STD_NESTED_EXCEPTION +

+
+

+ Standard library support for std::nested_exception. +

+
+

+ ASIO_DISABLE_STD_NESTED_EXCEPTION +

+
+

+ ASIO_HAS_STD_REFERENCE_WRAPPER +

+
+

+ Standard library support for the reference_wrapper class. +

+
+

+ ASIO_DISABLE_STD_REFERENCE_WRAPPER +

+
+

+ ASIO_HAS_STD_SHARED_PTR +

+
+

+ Standard library support for shared_ptr and weak_ptr. +

+
+

+ ASIO_DISABLE_STD_SHARED_PTR +

+
+

+ ASIO_HAS_STD_STRING_VIEW +

+
+

+ Standard library support for std::string_view. +

+
+

+ ASIO_DISABLE_STD_STRING_VIEW +

+
+

+ ASIO_HAS_STD_SYSTEM_ERROR +

+
+

+ Standard library support for system errors. +

+
+

+ ASIO_DISABLE_STD_SYSTEM_ERROR +

+
+

+ ASIO_HAS_STD_THREAD +

+
+

+ Standard library support for the thread class. +

+
+

+ ASIO_DISABLE_STD_THREAD +

+
+

+ ASIO_HAS_STD_TO_ADDRESS +

+
+

+ Standard library support for std::to_address. +

+
+

+ ASIO_DISABLE_STD_TO_ADDRESS +

+
+

+ ASIO_HAS_STD_TUPLE +

+
+

+ Standard library support for std::tuple. +

+
+

+ ASIO_DISABLE_STD_TUPLE +

+
+

+ ASIO_HAS_STD_TYPE_TRAITS +

+
+

+ Standard library support for type traits. +

+
+

+ ASIO_DISABLE_STD_TYPE_TRAITS +

+
+

+ ASIO_HAS_STRING_VIEW +

+
+

+ Standard library has a string_view that we can use. +

+
+

+ ASIO_DISABLE_STRING_VIEW +

+
+

+ ASIO_HAS_THREADS +

+
+

+ Threads. +

+
+

+ ASIO_DISABLE_THREADS +

+
+

+ ASIO_HAS_THREAD_KEYWORD_EXTENSION +

+
+

+ Support for the __thread keyword extension. +

+
+

+ ASIO_DISABLE_THREAD_KEYWORD_EXTENSION +

+
+

+ ASIO_HAS_TIMERFD +

+
+

+ Linux: epoll, eventfd and timerfd. +

+
+
+

+ ASIO_HAS_UNISTD_H +

+
+

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

+
+
+

+ ASIO_HAS_VARIABLE_TEMPLATES +

+
+

+ Support template variables on compilers known to allow it. +

+
+

+ ASIO_DISABLE_VARIABLE_TEMPLATES +

+
+

+ ASIO_HAS_VARIADIC_LAMBDA_CAPTURES +

+
+

+ Support for capturing parameter packs in lambdas. +

+
+

+ ASIO_DISABLE_VARIADIC_LAMBDA_CAPTURES +

+
+

+ ASIO_HAS_VARIADIC_TEMPLATES +

+
+

+ Support variadic templates on compilers known to allow it. +

+
+

+ ASIO_DISABLE_VARIADIC_TEMPLATES +

+
+

+ ASIO_HAS_WINDOWS_OBJECT_HANDLE +

+
+

+ Windows: object handles. +

+
+

+ ASIO_DISABLE_WINDOWS_OBJECT_HANDLE +

+
+

+ ASIO_HAS_WINDOWS_OVERLAPPED_PTR +

+
+

+ Windows: OVERLAPPED wrapper. +

+
+

+ ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR +

+
+

+ ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE +

+
+

+ Windows: random access handles. +

+
+

+ ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE +

+
+

+ ASIO_HAS_WINDOWS_STREAM_HANDLE +

+
+

+ Windows: stream handles. +

+
+

+ ASIO_DISABLE_WINDOWS_STREAM_HANDLE +

+
+

+ ASIO_HAS_WORKING_EXPRESSION_SFINAE +

+
+

+ Enable workarounds for lack of working expression SFINAE. +

+
+

+ ASIO_DISABLE_WORKING_EXPRESSION_SFINAE +

+
+

+ + Mailing + List +

+

+ A mailing list specifically for Asio may be found on SourceForge.net. + Newsgroup access is provided via Gmane. +

+
+ +
+
+PrevUpHomeNext +
+ + diff --git a/3party/asio/doc/async_agent_chain.png b/3party/asio/doc/async_agent_chain.png new file mode 100644 index 0000000000000000000000000000000000000000..639d227597135aed7eaeef84ad96342042cb0e53 GIT binary patch literal 110190 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

d?- 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 z�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 z znQO})M^e~Ez^CiEm;FuC7~PAAd$d-j*g9yXZzKo{ca&AWf)38<);8Wf*LX3M3NSot z0^_rN3CDvhk?Ok9Y@9}8tLDIbx(_j601xOxmlZj#XRsw+#_V;~?+NB0WK14s<&?P6 zw=fGP{^4Q+neCQ{C<8bkg*KhGA0F9{h9!z_*@AEguu%nJ{pW+90AvIZMLevBCAMgG z3p3)Sqaq!()ES^0W-fGJa)4skg`gA(0c@B}5_Y-sDIyLeb=?hc9T&cdI~pKo*mOlNzkF^_iS*mJF{+4su zticxJy5c>cV@`J>MW1qQ7 za)kPzBV$i6_X)T7V;+Zo1@2bw@+X(M4|YJR%6skTLGtijAuzXLa90}o^6K@t)V z-o6OUibl%lw+9Gw&M_4+vTU9=C0>cfYr^)W*&KA?NH-){hT}SioizT$l7WX8YSZTL zZAQyG8$QA7RIu?n;k;mq+B9!C#CytWhiO=qzy_&7`xZQ&zY3$EqnPUuzp^lV3BbC| zqj@Gd_w`=`|G+EVeYoYw;-kY~Z|rIUr)rKves~aEj_~+iN((SeR`R&3M4I4hf%QLs zlr}-Q9jrFkPo6#6A%3hCg4e8<7N(Ny76c+XSV(S}A> z@c+Gbe2nwF#$1=d+j6jOCV{GvLD;>>+ZlV>O<`#b+ZhRYyFWpO-a}eClIoy8$~#O6 zlt7o=w%@|*9@Xrghj+)|0njB}Lu2RDH!-fReXJ$dZT=-*M;M~#Q^_RU3647!NE(lH zg4L{&C-vQ<=H}|@S5^6iK5Dw{C5%BsF=&HLO^gs!`^g-okQ}&=hUt4~QA-azd%~k$uLZES%p~_dL zW`iy;KcTi8Mq!vxjxr80%w8sOEF?!Rs}i2BXD8MV)FhX z+ep7GMJ7*zA!j#Ith1ZEfsmp{OqfM1Kf)nR$mHqSkN5XNM4*=NC-YpR%)7pOevNI_ zpk{7Lhs^74HwJ22-efZLgQ8cefu6lEl7&dznSSju$Nn-pzbU8~vw~zlzYGG^fx&Je z^1$oFQw+#fb`#t(7$fne->}TlJa=|!)Wmb|*~^T>?+znTpMSV9K+Px$n`0o2xIBsklDz3pZREd9GzjRSpwx|FtX^5wCm zZ8@AXuabi=gHFf^81hGsmvAVwcr+2Ejoz6f)RglxQe1AN*Po_6r`~ZL$n^vg%ZaU+VKuC~xPwVh~IDqIU zX!|U>Pf^mqdspLAUf65cp_jg{FrG6ESTeRY$ES=jP69T6k@F;kJjU-TkljUB(A~fi zNBCpoekk@y(u2pmqHn|cha+LJ*P%cXjxzXu+G>6buz=D^78S)G;(#b9@kzDe9~0I^y*1}}f* z16`(bZq4$xfV(nsz4g7?dXJEZ##)oZHTo&4=-s%_Pf>Ti$?NZuhQj?L7`5FlXBUoE zBkZ?q>}4HRYmIh6{~13r>4K3E!#PB&a?SrC6YK*zR@A{s)cvnejvw|m-n>YEXwTWI zqhr(A${SnJ`WayM22R}T8wSBoR1$0EC#>z^-3o6ntCZMN+UIFDsMFSP6!S-e`@VZu zRxJ=iafJr!hY(gkP#QDN*Pyk}iFzobkh9SaM$0e>t%R?b4y2cgN1P_{VTDpQ6};fZ ztCcW;6`BWAnFL68u8Y$#wyi{TmtaOvj~HW)AW;;Oxk$XYrb0QWsiOyl78NxFZ6tYu z!v#$KVa^2Y6e4fByc%~Z$HL{XnF~3pG~Bexzw~|oY`^kSpZDTe@`uXnimGOO;34MH z@3&|HVY`dndZ}m&g2}T}aAP_$eHYI!d&T4o-|{#s~aOk!8-WMQ*S2){}iTx=Ou>Rk}>-m2M~zY0Bo1(#K=IxbF@jMx|iN^QsI2I#Ko&g z2F{}F$EOC?*GeT>IBgRUn&eVdA9!IVo4-UhQQ=}{+_r~liCR6Q?gz?)!~DSrH2dR| zszluza`x?SaPOnr&z;UY(>C1#dPFA}m29(4iyX1gFitS|%e#S{s}W<0|B}7$W4+J0 z18sl|Jnx$aNKmuJ@CjRD&HJ1j2^VDJLX+DXusl^7E%9>CDOuiCd9Wf_x6Ym}Kd zsUmB@-_r5hm$RDZpP>q{-UTy$Vh?#JwBTrO<;T-^`Oc(gp~+RV~G?R51% zxev8pubrDntwmRN$#0$Us>K4I6y9}pRAz`0jgGKurv^@MGr4v5;W_^vTloqw1=fRM zLV$;?yu*FRALyaN=K;#5+NR!d$9@e(CAp7g)zUI9;HBo4AHGK#7yclmy%cjxGA5NX zpR(8)-?RsnbtI#?SlA;~zA&CQ+_u%43ATVNBZAC@;6$}D?e`sTnZwAIzuuW|acZP;~rTIqSOxgY;3%S+UdkkEYhZXRfd?=FWm? zPwYIeq5A6i;IM6~zpdO}u^iZqPMeU$l~G+@B4kW00>d%&mztQJb6dFVSuIL-+DNx; zl~-@Jks@(o1Fn!-=YdQ>SYn*tx1d;UcyhXv&wDu8V8*L@CL}ma&Z5d+(m0jnZqQHv|MdJ3Gw6_-wTQXWt$w5MEP`6my*;p~PaQ%Ik{B^7hB{xe*)4gklDPKmX< zC7S@bHZuA20SkAd@Apqg$!=F$dG_Zu-6I%wz!;lOCdj40qW*m0t$ zw$q-v)Kf*t$QQ!NlI@;w7K$LMbR2pOSrFsvns7!yCS->}t}@yKZ)mEpO=*nWu%gt1 zcrY#-9>AP@HwnA_dw-s*xejZatsUsU7tw(7Gc-ASU`*;Z;;0N^&JPYE!6QN^30|5L z0v`b0+WW%X<_qwTuRhoHwC|y+BHAo7ri-9oA~DE2-(31~(w?=;JzAUVqPt>+Zl1lF zd+^DgfEXKt)W&Oh0Bs}*3*G|`2SWS4lV|3Yb{T$%3Ypf9m&&Qx{}8*`Ev@f zL}L-r*jy+tNr+^PMAQFQ-C{pQs1@bN&a>JZ>!@#Q1}~cR)ukg(+pRH&T$_2AhairA zb}5pEzk+*kuQGmmE5A`~t$o$|$=%X*+COp6KBJ}V4+EI>Lt4z~H75TokV{~xHsgOj z5zm=hd>5}|v*ha(KV<{*v)^hAekC-;C$+RAydzcQ_qG}K9tJXYrfW71hj1aft?tO# zu|?1Ke_BkDN!`+G=>p!^?EFlrU&fCqomWl$v_0cX3E__bH=+1GDMtvrGog5pja zEU3hMG3gl1mJ;DblD$#U)As|weRcBY9o;PTzHeLllG(p#>(7|X;eid&vvzvcb#?LWH5215qF(N>qQmr{J*`KOBI z1=q}!CwZ*=6f=%0?E}-fes!~@j~>5k>%BLJR>8o@=346kAC>o)h4%Zo4_S`2{Y~1= z7HhO%RBTlTWxTx5@X3uwHLq)6K2dm9MfMOiEA*eqU8x98W0n%r4xeSVei&GI7c1`@ z9bh>B$AYLJsCbW(Nhd5~2f0T4vg^`<3pvqKH%C}6V~*;@2#eb7TcU#%bI19A-#xK5 zspfkZ>GMw@+ZhEQC*xt(mlgXnH0|xqnylhe*aNC~UX#Q8u_GjrPzVG5fKbHsZL>&m z>E~9*Pb&;*S>G59mAVhv5|7E1SV$kXsUOdv1XQQ=Tu2%JHV@>03rimAH8AY{mC@(0 z6YW|3D1VX+tj45%eN*szR|CO$2ywBHK><_jGZ?hR(MQ*2x*Vlq{(M6!$YWlDT}r9bea_ko1s8O#mW&-v~44xjQu^X3WyRvm_&KfEi(9#R8AMGh!s8fpbkz< zM;4f}WNcco8U=F|RR27l^eQM9cBg>fp|j%-mw85DaGD&bNN@}+nx=d|p@OxcccPcZ zs-pVqXHhr7*GQE$SXbh5GJP(GuZN!_%qd zw3xd-moH+jh+GQX7GFNHy!Yz&sfQil7yS#;%-aEvngnK8JJ-C%0k>-VF_#J&h3F+Y zK3q`9|0k(EBR69kg8gV`1s0Z~V;^>2%0ekVXq)GL8m0zem^tO(FW3C+{A)eHCK1z+ zOKXrEyC;_D_7w1Og-s^hGzFJ_#~H`2n>?|u%Cw9Jlh#XnKQ{8jo`0`lJaV8bCZ~bt z%J9;!>`5QRe(&@tBM}M!JnxuJz5rShg0)5Kv>YDYYt(;S?q5m{uuTe5x!E|J&U4BA zvH455ZxLgYADcrD0S6<8+^LHZeiQ6aBOPa}U+J^)McObNv zyJmYN+YCex?I$Uudn>*WIxB+QSLLW#-B{6V?a{2e%c>veLOwli*%$DqczBxo1ib~r z<-krRwo|a)6Xx$z%ku8rpwBm(^Yc~dLGvY={Zcg6=_Lu7F2RtEAG zW1@N^he}hdRiK0EwOj6VZ`0#?1;_7%^5nW<4?|3{fxe9bRKBI`%30XB(VLugN7>gE zo3d(+mF&M4&b`&s_{S|~I5tpmca{u;))Mda&rYS9d5Fy%j~$lwyJc73rgREn|3iuB(ErZPmNb7}he61`J$r;V)h^ZKg2cy!K>wB5<4GTX0vc0fdU(ih;OBJU z2Q{`mat+8rXatNn58U|@_S%h6H#@NK&YSm^*cgutTqU=3Qndd%t@I$gwRmyzAYV0~ zMTZ-jQ~2j9w+q7B8sF$^ykYe^NB4q4bV~-;#BkcecIF*#yMY3xDU}GK)R)dCP3d@h zm9^hPB_{WHaE0g2X2T2f~qMy7nUaP zj;tr^khWSXELD8{@UO|94yFVoXZ2YVWClKiivus>3&yW;&r}Fak#r3swt;2sgv4MmX7VnU&?t)>cXRk{j_^W&1eWImsyGg~T&*n^m z5yo*=FAzGN@^sm2RoFbCpLSI`^%EY0hdA{^!McdSBfIq@AeN4Htm*$#Y?xq2oy@57 zL|f{|%e-6?>fM&S{m|sI*G)d7$(P=fX(}2|LQ;1+ZQnQ?n6VVIBdG|*vI+ud^V2+JF)#)MwdYUdfg+!Q2IEEq?j>fQ3#pTb-CwuB+8$s%lQ)C7W*_y^f;qPAG>JDm@Y1WNyk+t*@>L z+l`DVBc=>wU7@82Xe45YjGs)wZGJA5FUpD}y-#@&UFxEfq&V)0mFCx7L(9Y2IsN$5 zWBxp35+l1gDZ)8%H6tX1n>^80+$NT!Q&`CLy=0HC7YKOY@H75`bA7xYgS(ih>JZbW zz5Z84#>f)0Z9Ic6?j_rybTw6hfDDT3U)g9}^&ceQJiCU>u-af;&M%*AjRey3%9&;u za@AX0iB<}cV#+;tKon*vY?a29=o^UeS%(3g%ZNTMc1Mf*>-~>dtKnX74KW!T6!4R( zWHrH{oPgS8X5P!kaXqt^VZeX+sbt6wm(AGjC(4%4CONHdGk0&(e8*>=5oTHul@)&d zQnE)Jx0?U;&VgN$Ly+A2{QF1jZ`~^-6{ih72YZ8b5Hy9Fp4~~Jxb}oWB$mr5PD4L! z;C;ZK_vZwRE7`QhTNeukRz?&(A2~m3(?61bBaz4D__a0T&@+pEmk8 z3kEzHxxP=Hx2NeT+sB!)B&#CRocGYzXni3DgV`^f=&R8eoE4GDr@tggDfh-(*Gv;jiDO2q_ zm(W%I02i0Mxix)dQ6YAKcz9=d?wiCyM(=~#G}LFvHMxMqt5$|1@zBU7u#)*73LGJY z)jQ-0C?$lHVjVr2(FP9PJXQ!0h_oV_DEs;9OTgoBR^SOl@WNey)8hwqzo-K4+#p2V zlZU^MZ*M^rxc=p8eNVnSqtS$KJf0DEM%Pp@HdB;j%v}uFQBUDyVQa+E81)lE?+!7# zo(?3x`f{Wsr~4o}^!Iw^g(DINy%^`YUytfd?=@UtMEaOmSor7Mw*gLZR2K^2bZ*7Z z*$xv~$jG=3#^+*>n-RzRDy|xkp7+(!IBsOf%~$x6^toa1Sc~ zgbLAX!{sj9RB8UNr`*U%CqdfhI^J0_n1|st=^N8-UcdP^1=f4kCJRkAvU9dLqrf&q zG?QQU4FkLoHDpK3c+isb+)Rnj=5V;}UsKOy5S;wfs%VrXqm;*OHm|M&O?1k|E0&LR zE{!rUQ4y-05P^hAbwH!9@!%jhhPrAHQn!Pdu>zPa+C)z7sEih62)Gh`%bpplNk~1e zbULHuz~6ZyJB))>;D8N>7>WUZuhG9 zozK}-7TOEC=m@oo_bFX(2Wr<>XGk`kouC`>OW*aH8n1!$R)soNuWqme*|dF7U3Nt5 z@GdxwBMzis=X3Gl<1ho@f00an=(WD;dTMq_tsYr5HrQE=C8+qgp89e)zhDlWcAmka z6#_T3bD|sGt&KK90i9&IY!Tk^Ry`p1WNw^f#6s@5RVuEoVPL*gPu&vebTM$xd4;25 zJLebmO{4zSL;k4GC~6@PMn-r0Nzau)C}i_kX|6-X^Gx8LJIizq0n1en#DY`B7>Rat z9^i3@jik)K+s9tL3eH9pfEX2gqwzXV^zv%9SU}8A(Dw!o+|wyzV^0CU`X-If;N&cM zGIy1Y=h4%`7u3Q|;D)1Wb8RoAo&jZa#;LmG%_f8l|I{7W`)6I^V6hO2c9+s$@0>5s zFp8ifRY5D9;Ev$W7qGAoxcd@hy}i1=`C)~+9r-1Y=IGW*IxZ~na6~e!1j;F@6pw>k zglcFzWC11d*W_EZzOabAgj)`U^ zs$L$KmW3ahU)Xkdn0;s~Y=&iQ7^rcD*d>Y6gHh80#+;kFAmz>~#0;T&ytl)3ck-BL zG-*){GQxr@2wvcNT+hgbED9FVlBK?hnx#-YUTU7bw^rhFBBspa=Rc{h<$~ma0!-&D zpm^KC({|5-EvEfSJcW>mv^YAkZ^vNbm-iU&3~d^(alrAPRcy@8Va%&MhqvS;L-Fsi zKZ$w@Slfb+(z>yNHmJhaAbd2ZZcrdr-2s9^xxrDp90qKC*cvfQ>5ej7v|zRl4a9Sm zQ}kX`WEbS^r$Y>Vs3o@c(R-{??MolCW)%N<+PI{FN@V8->hvA0I!9ymmA}UrJC+xM zYO7Z{DrS5IA<~M4jU*bxT{GN={bij!y<+~%D#*-n_&E>?D4?$UyBF^fBGz2@NuRq9 z!5)`8ZAA}_z}P7djE~51>83!bFWHZV0m*eVF*tTW6MPsPX70Ltd=e|!Lb2lMJD)$t zv*rm;@^i~2i|jc?zx;`#5Akm@D`7eGD&HuGbn#vI^Pao&yRlK3n?zUjjYJJ*-YSq$j7a?9otlknJ;6sbD{intO1&wCo-P+FQye{wj zrMs5-uO^kiAA-VElus7Ezh8r1^6Ske3G&20<-ZvF@RzNg$t|5ejUwMg=gR3|{4bGS zg5POUR8gYt5WuL3H5b9rVL-JjfXmYRvCp^A0|Kv4TX@7azu8S|sM{5*+Tn5?os%nc zHlDHx=O=AkqGJv9Ed%Fx+w~HkZTyMN5+J-`C z@@F|3%K^6CITCz`!3cMHr4C2KMtQfef}Qe0zIQ+mtIZxIpl5|u|G~WZ1DSI!MFQwp z9b-a7p>U4gS*WY&pR!oB;St;8U3z5ok+ptzy94Q9hW#M$2=K^dW06!SPrL94zm--r z5KEhPzKc3@eEk5rc6$2sf=Yn#mE5&yd+v&OZF~J%_KiIXv$drah}0J<@78=CbDpy< zfxD%f$;%;ONp*+G&LOz26ah)evUuv8LMjoo$&hd~1KhM(EN8}FOn$m%^X26JJnck- z%s1vE0_fCStfNR`Ay#xK9lxb=O23$Q$)7S)h?s^VKJDP&1z180<9wwA&NsTSMP#|? zNQ>RiYhEG29l=X;dqR_?i3E@g)@&9FiFVGQ(8;^Qshdh0h6iLX-Ghf7g{n9+X~0VdL@gW z(eCkwb=$PqqJqthj^ufaM50aKCx~L7`w?b(nXb+u4+(*ALb}l_c+%o8dKB3bDbp^rWk;N|+#0)t{1d40K#}=~- zr@+Z-`@&33p}bi3nSo1HQ;0Py807^xGBoj=0vb@! z0O`w&OY^v7H08X0mea>YaC=*dhbn5(XYbHk0wNPoj~L&|lF=W?0#?=LZHM@qB=o?L z%14O3KrZpa*PDOLTLi^CIRH}NC$|Wo2}WX)n}6r+god)g2$sx+^L5Wmp&}eXL0eZu z`n2EX7O~@@eX_Y9ta~Di>bPEry4?y62N(4(+Iu`~9+ZJdK_4#uu!=K3;gaHxotjm! zkl80^$KG?G3Wvzp^0nrAur@<(%KSOk)OH)18@uy;}p|KX^tgU&{ToP+(Qr9dxjjc!k zb*`j?JP1BNY_%n@-q7JYG4VPjqQa3-!7{TPye+jU8(-W{2`4~mMcE(VuG-fgz;*Y& z0De_@mO>@by6&gOfDe{DToYoa9P>B}r>{7OBY$4@{lsUL@qN6s94~`=K&nWrxhG~8 zgDL_vr=FO5veC^H1cxbfbr*Bc3aEeC1X%DP!=n>H)mr>KXp^%o@YknIxK*9)KD-lr zr+~caIUKm;-nT{W@M+1zthk6j18WP4z5<_O<4Gc{HoMzHyT8dLOSH0_;UZ>qj*Gn= zs*T_0$qT$3ycli71#_qUtqW4HiT4>zEQbI%y4N!doFgfjWrL<0nv+EE(eeMulN6zy z@IB_m2N)t-Ol&ZFK-*~#39xOvYb~nFd5AXNkx9s=^1XY<0Heiq+m{Ou=OJvBtwywmh}dktKE`g>hnU7C)~hn6JT53Z9Y7)dTk zr*UA-GdBGO+m_y$8wdz1NwO@FSoEs6SPwvn2J4te6q&-KhP0-H66U?$gF!*+_m=W^ zOKSs&pG>QP|q;`q}Pt5t(119(NbA}LQEI|iLR3MX!f23ZY3+(|@fObzE^%FogBTJrZ0}ngj z9gV(0`dneabaTie$+VRY_&bC=iutPjx&oKAi6p-j8uYf37_)YTXHl$1gAb^6t3abD z&dIAT5|`06#l*xC)Q@9SfwS+@aZ_$;25|v+pJ6`$w}*{c@LOfx4Z0_NX-JJs=ef{{ z<$sE|QJ=cWWhnzR2y^QgJTGzrwFUxGyuXEN>zLRa1b911pabmCmFKP_PD-O|2O2Rl z?XD+X_0?N1SG+uKf&!xXp+zatBM|c5hj>U1q)@wMa0n; zzfn#ostGpcsdlQ3dQU{5({c~utpju+WHqdEA`YyRefY_{%5+2fq4{g*SN&19S?hoa zIM3~*iBIl|9R;AG3W>iK%E&~Y9pK1F( z^Fg#isli{*BLe>mRE4ajVqP}QrHmS80W_Wx>jbZ6SVCX1CMq`CDWU5+!T;z{z}g>$ zq{q5XpNO8A0RV2w%`f1J{=oik@;1XK56irOW~|$4!n=dBvtY(LVC`q>)M5c5IDyJs zO*Xx+um(5oGxZ@P7o+)XhM#CQ4NjoQsf81K714jG0sh-^mmXccwe^ir9LgfkE#RUxm&vzdrmO(V$R0lr zDeULLcz!4MDT<0k**`{#1W#t%=6r{xHCKepV`Mqa6fa%7f;T#QYTzXH(3HzkiU%Ml zJ0?Rt=mq2`bM77?q5A+ zd%~v2q;3Hj&SpkV(^W{!;spERXGVHJ+367?=l{8lmJ5sJ>o^g?fM=}3no)NBxxkmCy#b9$NRn&Av1f;vIn>&87E z#r$q=5BDvfKsDf0)K(1xm6kApzAMf10EpxV1uvMNQ+0-N77A%N^^sjbq}tl=Y&PQJ zKtOFZ`^a`|`&+rGQU~gV3>(nKb$q!t@ie;jfS7O={$ED?xJPxc)M%=lsc`^OtZ5nd zX3D9YZWuZG7;Wl^oUegG*Ihne`b8csDC$5W8WZn1EcxX~+@dxN^=9Zia6ENPaWY^& zj$Pb2FglkAQ(sLJB-k05vZU0M#hEK?MC`@-d zuWQ5pprJ8DD_W?@Z0I}kVnEm$U3YBz5o<#svCJxJ zy>}9xCFgn*a+|q$>84H$&jaIVN6|JL6Qc@G`iQ}b0ytSl?9Z4Bv|ISbvOB*3u;WIH ziw+sWGJG{RR5_2;o64UxcOIh+Zq8=by+BMoG^b*gf`kPthzAB6#paB`EpyMY7qKq) zz-tG*$L2kuG-&~VO$l>B01dwn0UJFRKRZZ&G{LjEsFrI0m@8Kf3didTzxQ8X9{60C z*WYL|=Lik)2t=lq^ieO2B`S(Po-nqGDC7d~td}0#v1xwLM@-#xw$Lzwe4{K$9?pb@ zMQg+tD#iM`Vwi+Pqaijv(@NClTDz(ktgR`9PDnn&RtcjLUGyHrlP)L?Q^v->W^^n@ zOZ*A$CoHTh&?~9u_UwaMyls>RdGG}OMKpC}O{(xVas|yXBKcLmMs1QL`$2GdaWEXO zsO0^X%~}Qm;)AdaRAcpc+$*U#nLfR9D>Xi&iDONA>HNb+clzb{|Hyjpc&h*Rf1Kl_ zqmV;pWN+EoviHbnD3pv)_NNu+^)d_1n}y07a55`J*IXT|m_var%YS~GE9^J-5+IkJA|;3QwqYuN*sZPW8RNIspl zVaEf_&DH}qqujf{se#s?^=Nx4k@ixo)i;aF{ph{{PBxgf4|Xnb5Lt+#TuyJj%J>b< zx0++H=xMOYa&_leIQ%rD7dpo9o}&+JoDRqa?TT-4O&~{87iF3aEDenP;Z!z7;|}6A zB#T$$^$)7V#PyMn`J=V1k#9z``@8=RI|9PBG0nI+DF3abMLW9HC|7j$2#ZKTm191v zd9|ASg_Jlqa-kHwz)6661jkUE>rCGsC1pR%&OK`SVABR8j! z!6SWs`n@atkTEr<|H#J7$haU$yL|TBr$U=oOY)i?D|+7T-A0E zI97swCi?5$>8migw*#iiUL{2R>lJAb5}gPOdBO#JAYUVH=E20d@YfD%2)S%1F;dhi z!wvBWq2tnJT4v&?JBVa8cY?R8`zXS(PDJoX&`z zDn&H$WjF^%;; zb6|4E{KePBl$@pR@}KUbRde3*8_DKNho>^{`Wg6=id@t`uCGh_a3%kO@7_IA3BkNk z$swVyt%~$ET|Bh>u7>)45#?VnznoE+NSA$!cNBzJihxR0f{ztns#d$XU;9ua|KJxE z$Ec<`a^I5+3;#j0H~M#SJ>=Mc?A$XigDQzdtO#D9aLCJ=gO5( zWJ|R9)7(RrJ15*@Gm840onPe6&C0Q{px9#1U|0rTp1$U?9BCAn5SjH?voJ`h8c~eh zhNQ_W1`KivomxP5NRl#6AZO@;>4Qik9@4IrO@Mw#j;I>bj%{%kt zBZG*FR;PjK!b7S2Hg=8)$!SEQmeylzcKi-E@_=zqsud2mFE05=bgC4mVsQSjLL9a8 zrR@oGs?&Ak!%T3o1Q-szDSm~)DZZnEo8VQLf2SF@;Odow^C~6mi!=$1vtX-wDYgb` zVG#f)MWC`5Lg>vazfIkaudq|G+-vKi8|-=N%Qb#|;^<5LfNtjFCOQO;5F4Y}qFFfq zM1-fFWu!iwDzCr}JgnHCw+N5F08u>s&^)qc_UXRtFjUFgP$6CeiZu;&u_)*fBuq(= zmP}p36G{wVsvZYcys#J?AByf90j-*B#_Wb8?AuKJap~wALB14yR3%mXJ<2xf2|jL4FvlY9Xn z^)m=~9&~4wIVLEtcBH{3Yv3wjn za~iBmdTH8o{o&%kNJCL(EKOVr05w$uN_H{)dh8iUMFpY#r8mp7 zIeN-h(G;5oC)}XGVZW-iG(&M8MFJYIb5!Pi5NhbjwgdNKCOIgUpUn<@dJhZ4AC)_) z788PDb=_==Zn^f>7z7DN$~b%Fx=iU&9J!#pHnu+Km`W@!9m~EBV3bVho43e& zgZxrVLwBFCewp_6rr9N!+TEdg4zAis(UO5E=LU&4YZ4ZN#ZMcFMiqWU)XtFA{&`b2 zWR$70Z9-dB90b%bGFBr^wpaflv+qfkSaS6M)G>$ctBhw_G`a76^_*Z!!m^BKJ=TC?=JI$+?IKFao#U_zS7%V2Tsx_48A*V z@hyGuseJcAaq0kT%8VCMTTk29=FHf}xc!aKj5;4Ex?~}*H(cR4x*GtJW(#6kY}sPGD>OJ zofXc#=W$AF`T(Lrhb=>MV1wkF+3#a0us)4E z^!h5S*uugtV&Ba%_hzOw3<$Bta(cYaiQCB{blcEXJcD#ko}N*q?*H8sqKX7BMLD}& zRQ}3NB1=M(zK$nwl*$24XK3pkt>$oVbJ)8Bgc9=$Pp+gCL#l$$uHowi81dGV_QjC# zr1ZDK3sWt6kwvPROhlTNI;?8g%OHJ0`oRAfu5Tq2NMAM=83Mk+g*A=!){FY|H=vE`L-2(!$1vuH1IJghRlo(1;;@g|$- zoH-(lMC1uhB7-@AgNq^|mH9qEa-~ANMPDHwsdYJ}J!yGJIN~RnV|q`Iyaq>iT_hG% zH>YxWh~t(Zi{tYXVS>p_fZv=XEVa)>nPQcAucntk_zaXf-Qzo6>w(Eh#Sw`)i@byNBwBK8dN92kf0q-o0ZPPtg+!cJ|^ zmk!@DL&m*hk3MGM6aOmlXNTn+?vP3S0ym8uS|Y+PgMlq~Fm2;QcO`O}WRVgQN7uHR!U|HM;eZ@#?Txs(Mdiw^ggUB5u>q`6a zv9>6VwX+k_wEepvJ6ZMGpD+5FD;9Sqt8Uy5^mV=VUkA0s{_heXp~79J85BZ8-t#B# z8&zivLB8>My?uEx{O(22Zm|a|`Lf0xR>J%smeA{^w5#88o)(jFKWqrDO!H5VcD*Vh zci9YcO+w4OzYfJA6#GQJ?d?QDGb}Tj8 zvdk;E?4fnTx~Klp>2^YWG%LKscdkN##QY+1pB5(hqt&mqUA3i!=NE={;c)AJ0n0^1 zp8b4-QO{c=_KffZE?(> zE~M~NQ0S$IHr#mOH4e+mMKNA`N?r=ts-UR0jh0*0JbcZVn#1%emn2^;U$q&T%8yT2 zc+KUNPWOGDt^Mzj#Xcor*|P7=P2n}n46Y%=hMh1Y+nn#8lux>e`9({|ib9qWB8f&( zelDSeM`}~hen?EnrFAX&2N%6Ml=lR9d*pmd*?8!gc7R2e@+M0Omfj{f%L7)Ls}ehi zo4n;EMO8L;EJw;vAN==8O0QJ$H;b8up4!BFHzz|*a77tFb-I8GRE|pB+P#~8RBp}_ z4)xXsN+=!G{_R9Xi1E-%#=%mH)j96`8A?K|=4F(|-ub@$(Myl+$(J7eKM4d(&yh~+ z=A-pQ?+C;*jm&pxF0~{hGPgn9cPiDs9M(Svo!^Dqj;*Ars9M@3VGHI;Hm{lMfV7K~ z7VsbSsfi>kWBp+KMWcutx1!rMwOVmh$7m?VbwLP6{?M>olrAUT>lt#()_lTfys|Ke zApM4QQtzY|!e8_{HyIIDhtfZG)YJVt-c-m$iLAiO8#GuJ!1>*P@R1-qZj?U(&qcxd z2(E~imULz~*nr5ynyjAtaM<(bwX3SpwiIEL=_+h&nZTYEwXpDPRL~SgkFsDAyZP3m zdcMI}*}mA%P<41v0m%?Wk8aFlC5(_&e?YPpADQZ_&3^0lg3fB5O_4W4c#|zS_7>4n zzvse-clx-DnGY9xAz+6K$ znWkn>a4psVM4R#Ejjgl?K% zm~WuHDemiv9bF>rJ7-c*Z6N4~%%2l%X2ebv3lhd)4C;Z!m-sc0ynTMcO8hPpKodu@z2Xm*GFF4F-=|Ze=^!@P=T3yiWeO}1@U|vyj?W3hy z$>Ya7L5)l2w?0G21lL(tEGiH7vGi?vQ2KEQu3pgYfQR`Dg}ODt=A<)`X|_C`)pw3X z_{2dr9ZKGb9E;<$K1ua?s_WdJ!ha_+g~jC(SM-mUN7srF$=Gx?i^w8n4U5=cMBP@) zuH9xK>jynRGK6Uim{;v@n63fQF{nUXj^*19a=Q~woZg5e=gW|~KH>jN^U3hv8{L2z zBQ=0M94aMM3eCaXMd_5BDI~2Pe~VJ7yPEZ#H$bzw0W#3@PA&ravEWSc^l$A3NOJoX z7C|@QTNo~ii!KtoaJc8bTR|3ZNpAYj5OdlkHaS@Z&ZAz-5LLMu5~BSo#1NVQihw=s z>O}36Cj`ykijxSg&2fJ?x+17iZo=A$7q5TiMX^!P64tAkbcTgLmLg<&(bv-B>I2Hh zKKCymY%iHlnfvZZdm`d7L?GJ^#|~}W%RyFn4Lwz$5IPT@!Yb{xqc3C?z4aX4MvK#7 zK-sC0TzKWBZQB6jf)i5kHkI4IgIo+YchblThw{hWGz)g`20ajIzP8lqA=ncRZ?C=w zg7miUdI;uq{C5Sjpvsa7f?5`bKPZQsAl|%|7EHnLt@qR!iS`lsd=>rrNpA*ai(fH- zvpjf=v)8=y^6xt;+K(Rr&mOse!I`nh@!hDzo7WpY6&=B4ZFdC5^3V;jFMVA65;*we zvo5{3S+aUGqx}<)5}@Pq;nFdIeaqPaIsluI1@ea=hy9m2DuHMRm_K^Yy9q?C4z)Vp zwLTp+2X4}YUv_I-U#^(bU%7DZsY0~VQ7u!ghR%wenY1GUZVCeWZ2fC~pfq>}qArG~ z*R~;vU)AF_;^`ok^@0p=n%;r4D_B9beB-B%kWW+CVP|8S$yAzPy=FS%enI(K>S3MI zAp&v`Dg=O|d&CS(Q3sd3&U#C?KC$82I%v#`?q-rAM-nxJaWgSMK6I52q(Auc_DXI< z!7Ox~f0rmlV$KlmvKd%X82lR+k)phb!EeIU4?2Vxo>v{^NCGqb`0j^*xIMpnOCSJC z)RS+`5SR(fT1x_tVPKDHJq&|O=bpq)_-eT5!odC6(TSKafq!$M*JdVRw;{zI`e|a@ zY}h@J<#V6WN9zC?@%5I+y`TSkT4IELK4VoEr9HRo?QTGSo``vK={nz|fd^OM6}`mf zQh(El@lY@OcyAH%;1mT=9_28bq!2&$v4p%W3FGdnLqG{Ehj|bUV8yeVahT`_s~$^M z`5pSs$<>d!st4*%AU&PmjK~ZUM=?(zL0|Cicm~*^Fp5>cF5$=?+8TAoFLhZHPh>;o zI5TvTr-_EN{+;zO`$Hgoi*#W(R6Ar&binS>4oG7r-RMH6cP1EXUBWR`-q05`UR`+e zDq8f;3%6C{u1`qMt%w%YA=vDL$plIENd>+n8EJ&a;x*Z{;I4e7AM=X5>bM<|D~Sw* z&tz_pAp^^wyv>rr{Ox^mkD`7?V*j9<&yG-j!_Rf zlz312bPeP$u*wvGQ1eKn*d3NR1RDkdsQvGnD39ibd?uS&MA}{d!+NmJO2Aa~!XB)A zy5A`DQBTd>!d){j%b4-($I%87enUbyf$G1efhHy&9^(rNM9lww?YlbVzd~$#&6 zl}^fvp!R9LOU)S3>a}LD2EPORqe+5(Gt>R39q^*caE{xQL2EE5es$U@zY(jLoXq23zASa_v0@>~ z@@HHZriL?Lo$>}(YC$JFTNYHm4rHMeJ}u4Xf+zi$1V3-+6sPptB9^4p;^WEI$*z>W z@5UEXfNM=b;*6qgO6A3jW!UJ7$%qxca0;F<`c{a1cvZ@3&Ssm#-BRJcb!Z8;u5yZ3 zK@aB++RSH&`tn2~9VuzV;}fTOEL;o*pp7p(*qO76c#Id0Rxf4}L?p|Ssdsbmdx$Km ze0$iVN6#xZapQz5mhe;(WFBBuwx1$S5R%Vs3w5)N@YTXEqh|yQKY?7PV--9ha}w!V zWe8a%xF}Y}f_3n3&2f_ow`{rr6SHoRV2m~)5qYA(BZfE(`Y#W?uTTj7!cn(Hbj#2y z;xUD;5cDocnq%mwI6w#Ys?>^q0Bm3kC{Xz0J?4y~af^fS%TJecmIUUDjQ3aBzw5!c zYE4M^g$irl`s3Wmu|Ek%wTB473kZLgXTi;}$l(G#)&oiPMnhr5#|~Z4Xy1=L9w!*= zSgojc9|p$X0W0IDwUqsf$?U`%8%Uzr{M&zxQ5HG?NeW=uAR!+85Kd0u3!yh&)p4D% zAkOI*gZ32n2vEh2Nat{2R2lm{AXf zv_0PXksUoyKg=7|>j&Ec>m2Y~dy4ANA`pv)5_S~_1{iX)4ZxPow=nz+Gc^$t>$^&4 zifux}UHr~Rf}CEo9wO$yE?$NH5B7C<$-ek@82d>3xTCOO#k{Dg6BqtQ8}buaP~+&W zvrRTUbV#O2!lE_@g#fI#{Vt1^EEDvzc@5gwE`&a3yzsCON!pS)IXcLjp2F?s;$g59Z)pQCdQNTbzJRS`OGA4I@`(~uUhTUFY~cc~qVb(f%ODFCM`+YRHRJy< zh33m>kghvJoaL>hx6mqtj#3~Is(1~wCMJr6Sc}I~JKVvS%HVmVVnV%-t;yJGn3O$C zx}l@g3C8E3p%_k#zq==>=%6dB-BJXL*)GhBdoei$O3hARVyUd{kDDQhh_)K0%De+G zu55au<#0?dytaTblEkJpzo=JD;e0z;6rpG$U0mRK&GS+ERrCa_;;eXJ)`g=l2B$c} z!gBmo<%;yIAiON1TK@WG#7}0?`uuz3N{Gk3l%EOj6bl$bK33u0tQ}WfA{ZUQsG08{ z=aN#%Sp$&)xR$`It_S%`nZ0-a`$HX2)_;#PdG`6h3px$+*2hz%{j0!I4Js)XE+}k` z5f$BEyY2qd+?!rIn?+E$I--wjWD8i+JV>*9>>^kGD_&eU?TYff=11jhF!v~%%_S>r(F8|pHf81A@*3&^L)A7+dSHM% zTP<5~g)}xne)3VGs2yIpkzEkcMCMf(!K_TCB}Pd*RnMJs7ixp`u>gds*%*%JT?jnt zKvY?LQ5f;<0}hciUzz_sXjWhW#Yp?k%H0$GBRnJlNu_;n z*02AE&Pxz#hojpP_o0?!9hC-bw_fDosm5G1woer<9Ra$XZk_kkbZ~~ek5}Qpspv8B zW=V5`D;_KB4;t;&t!s03T*2Vw-}kveUZG z7o;YILUtfNX3&Y8|4Ae95FvImzTFMBh^2tAzX@4lf8vRz?>LjVY|tnQ#MtjVc~n)Y zxw=MySLzy`5u6%2NJ4uIb6sv z#GHB<;sJ`cK(4*0F`pNmV3)bblWGLbALb*n*0voCsMrT-rY$U1aHW%eJ%Y6JOeITs z+g>lbqD%!>f#&G5B|T9Bk&j@-{yG?`^Wxu+1T-s%z|w4hC0;!cfQx&;@Xkt8xGLx` z*HyanT3(=I^oB5wz8`psRi6nk@~wNR=<3*iE7*c@vGPa0UL>cmrN+oD*AvQJ$h5R8 zi~4Bjb!@^uKkD%$WF6(5S@r`dg1Au39AzNCSq23|1*MDq*{mq!QjKlG2n#O~Hw@>A zNeR-jYp5Jud77z;%d!cdx1BtrpW8F%<^8*UrS%X1_yFzk2woZoR>h_TdfT*H9~#D- zVbg{~6E{(g2UpP^TZ^3zXg3WJMRofaM1bIQIrKG%z5hnn4P&tU*RFa*jM-_(y4R6O zCc_?O25pD98!k`M+oXtQuIjyt;X~@|}e)BUKa=Owk-3)VB;h$hD`Y)9KZ?(UZ3V zEjL*0DtMXx1bRyaEBcD8L1@#^G;S7HfcbN>*e5qFg58~*Fus1vXGmPBzRpNBmP`89 zEz3bHc&Vk`b1j=L%WvHekl|X9C8;g+rpq(t=f+=;>e@9m|KO#9SSm9*>VNdz5CXLi zZKnK=hF7xCUlH&i(vr;sax=fT#QN2-D^~Zz}PsTn$C-Q)K9Y zpVMDxhw)FBqO*O4s07!H0~5Aj=c?`l67~dB_wm9HNFHoyYx$(pNM*n2?P^x}P2p zd^*s!doehwLgDwXY$8157xdCRckJu7D!SN&$c)+%Ot@LO!O#+BxDA)+yP$$SyfoYS zBbR;q==^E_Aer^(LpwQ;)1{|a|ayhmd7{PBgCf#2h-?AQA|oQ>-gC)qDNM?#02^t4KVt9X#@ zE>+4u9%Z$FShYX{MYiPE&y=8~;-SVXuI<%C1#G$)NGD1cBRFOdpi-6PGG_VFY;g90 z?H3RSw?iNdhU(832X_7dyzv=` zgle8_uQLrA9=H3ivOhzAIoP?o2Hc5{P1R7R$90an&gb!L9>FY{ zQ%i8l#o>KDKh^eB61b#KM6L&g{0WRNg9l)M%-w1kj!6~$Z2~?!6$ydOr^8d~Jclg= zJReTtd0D$M_jUPsbb|c<0JOE?Ro60$L?hxpp8j_z*kTP)@PJDMRiQ8ZvJHd`X||-j z6&M>&f4gw`jX{mf*TQtS7sWZV$D)IZTk0Y3B`-s=SA-)Bp9LQ4vU>jG5n{I>kBTkL z&t<8up-Y$fBUz1LqK3Op&v2-;OxUk^BSMAy9U7-}E6k`K!RqFGH1p*_713QSb{86)le8i%DX7k(B?h zyLdvt`Ifg%O_quV!Oc8RW_GagT;72Y(7tUXGqi+%%hy(N=Rl>9B=AOHVMg({k0{$r zL@wTeAM8w({5qJp5jz)FM#w72AZo1{O`Ze^AU);OtX&b@nwio-*XPwycB&oWM?k0G zJ0^;;qyyw>690YC^z4e6&vzFV6;ul23HN7or{%OlfcVb@<`mER(iO&q-UjiMpIv1~ z-%lxJY&B1*uV}dtlnen@#S$LQ+jL{uf7?Kz3~PquCKIJ5GZC3Ate_x0_cTb1h^g7S z15ml2ENJEQ=sGkxHGtQ@Kx3{|f6HWl)N9Z&G}`U|p8A-jhP{s8wotwS0{uf~?yno| z-X&102IB=FwkCqFr_m|lqE$gW`JXnyigs`7&dzRiR!U`xIh5hK#ba2XDEdk7=OGWy-vr9)YN8u z6f6%avElKa@4JOy4a4TC;`WyMQsco6Wl@zfTj}RqJg`W4)IUtg_-H&?M6^na2M;~G;ml}pR4a02GR@E^Nf!gfPnRnNp_|S$0w!bT zQ3865w7(yAzUu>-PKt!%_3yJEx2pgjfAxO@mK(;xT+VxO=*<&z2pI4ZK6gij`05zG zdQ;9x4PzWsGseS2iHiVi&t`ZzaQ9c}6f#L5p{t1DZgzy6?OL!ABJ-ABs$65+2x~$d z(IHosGv*nB(0?9=S7#mjH^4Fz4&88tO{SVTAZVM0wDm$QR#1zqx5h|+JeA3T&V|ra zudon(-rf7ap7~gEj1WT5p!Md|Gq4ho%9FDS2Mwb+nOw9Ys4)*H=(1-rPS0(%=N>|e zIhoBM9bJxx%7YsDBv=*~k>O%|>E9Gbwe{8Sz$*Q=YsyLD#iE4HTxh9XjJu!O`_!`a z?i4)wr2ntsmI$ac;EUP}hOX`b`S4yNS9ri^Ka#jM`}4z#m-B8W@#gc~KY=)dZ!r}? zZBk#PE`n-|g$NCQq7B6op2g=o+17+zy#-IoYr$rd^z(O<-hvC+G_jahL9WGPs;Ni; zslK51wvU#craQdTfehFF7>*QVv25OM^kK2oD&hl3q1iDATqv7)Uc@w_l*5r97KF;o z1o6KH$u-v#1E5OtB%Sc3nEmCEBEFb1V?mMVW{+h2!*)W8Ph^ZycE)qx-&(c#Of1d> zDiJa=Qe3-rpXt{MG-d-e=A~8tQ`dla#V#@48VwIcd_9ccG4z#ycvb%Hg zY^eiIb0hJC3{S(aLDrb*pGYM`KLdsZi0@oCi>BC#J@3<_Cwaf(+pRWNDIsfdI*05! z89I*)tIb@bpuiV;9fi=#OmF@^y*eI|fU+N{y#HD-n&_-V=RtM$@fkT{5$wcPIw{Y! z+6>+WRCZn9X1xXTHAB+08~4UT4tl2h_Tb8Md~0Av|J%ei_6KuunMY$!exb84#omOX z(lsOPZ%0iBfRHiOfX_NoOm!#4uA63Q#_?bN`Y4nl=)sO|2oCy$clvx-8VNeIM&|+h0)VY-1;+d#TMEcj+Lzc09 z5O~AhX$wl7T%Wq(pNUGwfjR=(*P;21HAdf)ocP?L1}GG1z9$k1hPcC4p4#8u2Cacx z1(##%`FlAe#7hd8$kS}GgCxOa4k3AM3twOE>M)@m&g@i;4nNt12-GiP_^I6I@r=<# zlC_x@wWy`zcZdpisJgacSay>IEZ%LGJ8Kv2JIxb>^Wz`C30;1dQ1jZi+MjSb;P_dL zykx#Q>AgkJgAGQj9RQ-^*d#jG7e;9Plyz=_t_fM&WvixB6YV(vd$!;Ta*Uy6JVp4W zi9T}ecrCMPc8Vt%n@_j^cd$4v0wk?gaDSo?v*$OEMeNWTY2?OyQrs3%RhL?vYTSYs z!(rA?#+0sIkDsnND~+(fk(A~%{}q9};ZJ)1&i)Gu#lLI7aG5l*)L#&E`36VNryX%? zG4T%Vz}6a*<8lLvt)@k3DPubbgy$$c^$iI)@+n6;pCoyp0XIog_UC6N;13a(>R`jU z83H21KmD@(x_%>&e6VC?=+xx7pex`7pSx0j>8KMZOC;cY2JhWvA0LR`6oXWUK=1c( zGoA-vv9R-l(-h)qL1b>F$;G@x!#IQe2|W_=_)y6yeO1wK!12si@v5H0B!dg!(ym6o z0=g%`!KQU7rd_?S>PLZR%ID~4+5l@TCP|weOZZWtwsRhbppZzY|Lv{iactFonZyzi zqUKbZPw2l;H-C@D{OGI}#v`g0t*bLMa5SjV&C|Ic@a@o?3LDE%3d%M2z25)YDsM0JPxglQMyIs&(-(SP*k$hC}1&sbH_!|^kfLl1ui~zaM z;Ho6Elb@ z;gx*7SGqtE(n-V07mZ<*B^x6T582gBRg$^xVvkuP6?)ph_$*+0O9NlM3HnEQf~t<9 zS`9}y3H~;gX)(zDa0)|2#QfRelT7J5hz-xtn9eT4e5C?aJ~@%n?Tb{xl7)#OTom1J zEBVesj<>;TF#kFX>JBDRDeaQzv}UZxvOXW%hB;3*uQj7VMRylo(_b8flxr?zhtOls zZ_4XW{7v1Sgq;AzoN4=WE}9J?a<3Kw56uql6Ia@waly~6K6N+rBJxnN>aRWfg<8EAS=W4t5K6!J1M9sJVG+Z=@-f%zGy!QGW7^p(gXe#f zKfk;g(lZMI4i5c#JM()1$!}np7V$@ZE1iENBB2$BaCa378n}lS2};9YUuV|^Tj0HN z(?x?)ko1pdHrMFr8XMS>D4&V zAI~Hl?@;V;$o>|Xk$thjA^?-_X-+vye_mAs}wGr-=;V*Pi-Bkdpfy2!3bVlZ&I{V9~LAtZ}>7w>veCJe*zgrHV`2x6bM9OYrFg%~VXz#KQuZ}Vw|oDdtT zy~0ermOr*V$i1n`!cW3+yCN>pJJbCLbf>{qFMiRCW80Yjeuo>b`6Zj$0czI6mqiS+ z)6j})*l4f3if2v^uZMxn2{ajWo)~>i4~PH8)WR18Hs#u&koFu0Stj@QDDFE==qp|1 z5T?wbY!-|;ejFufAPv7U4ejx}K16R9Lnp_{GoEsTMD%c_<#~=ZPp57SY^_SbV{(9- zYwY(?&F}#UQwaH=ZjqQ*%$DYXq#~^h|CO~>ZbI!#vaVQinPO^E#;)gvz5@ytbJ`P% zsG6_PJXn&Sesa3Dx*B+$JpUHXFaxh(37T7Eoc*epDUpjmKPJ*6( z%_kaf_WU|`yoBt0+O?15<2|O%pKa1TXoYS#bW_oeKY&G!$4q@wjYjb_T4o8-$V^kr3 z$x(qI^Zd?P7Yz@rK;B~ST|U%XRhIV+YJlztBMA#-%e5yR{Zgys+#s;hLE0uQ!3jSe zirb6@wLtO_iy(Y_>C#T*-&|USP|0}Y7^ zFKwY6mS&|p>>bm%5gS50bdg7cvhRJJBsO;7DpHH$HT}u&%47sd>?HimdL@)nqsX~{ zty!n|)1D&MM7}2v?o%&$&L*B0jo+Dz6%s;RKi=+OkW5`LR#oXMs^Bp%FZMi26Xf z93CYHt5aiy55?^3^S{-({Xj91$AepC$GPEvu^J&q^@SYnpIW3HB4XnXB%Ly;A!q_h zkNK{9Qf>|@xY!2U6%P26b^vBh2Fgd6@4d{uTa?!KG_r$%yJVW+OQ)0z`zLgkq*y)~ z3Dwp503_y1B@~Zj#(8QDC~1DbdKKjoK=(vxGLpk)`E%QgyUat<=cxnQDKdg(4!z6~ z=Cy>`|HAE^Jgi!U;$EcBMA6p^cXgsF)^)eNqYShxB^9VUa!wF_dAjZE3&v~Fzs(%` zi9Vm4ME49%@12HQ0m>3tz%!l+#SAd-Tv~UqxjL+sR7r2zrg#1(P7-FjY%2jP7 z)cHCqRrXgY=BA1a^G>oFf@4Gz9CgALofWnZY7~!K+7n9wvhllY^R;(c$ zV?A+29#@1vsol>gcdtt@KG_xUmS;%j;23(&J762=IkHFhr3~wPmYPUh-;X`m6Tx)= zw-K*I;2L>Q_y9UTPw+nX|o>Uotl8aLG$uHYjjg|D<$5(=fio|iFzJG=3UmE9QhP^A1_r(bRc(qAQBeBdjFrm z^sOqK$4fiK>$z;P6KG`gDl*yUG~r1M6~jiKTnTO~jIzCXcmXt1YcfBEA9RLXzj4%; zvBj>ToAue&Mwu~&+XwpUT{Rv4yh^VZp!s3b*J+Z9Ru^0ZeJ19oY#OPHqT4vJ-msh3 zMS6U8J$+L5Et`|w70j)_y0D0o!1=1oWidCwCG;~8SR;c*A{qe+hks^2z451G*Y zOAu#EmjG5h@ z0RNkpJ_5h((Rs_h9*{{V-TVOT#xO5fN@uk_{(`0if-hC3n@)Mgat)bq7nf&!u}Slm*V>X^uPz zw<*b7Nd_U!@sY;ZKAXUAT8Dw+x73>-(?wf3h73dd_Wkr^pP0r|*FIO8J3^fJ5knC5 zB}8!@V5Z|wD<+dPTkS>EVqMeyQdiyK3c9x>pJ>qU0N{uexIwqC+8>FBR9V6>V`)KS z;&dKkakB~i%ck>To;+^8W=v_ze-XeQu~2*#U}8uxaJP}4J^j+1L#Pp2A&cWEedwQ4 z<68WM0;=x-X>org&f_bBL$aV|DHJdL2^6^HH+HGMg08>5a|*WrqP(b^=n8IPsIPtNOfIiI)fWK7K! zhVb;==i_OONOS0{P*HRMoe>LaI}OHy?LDI2$#BJYlw%sx2)D^2U3cosSR4I$Ps8%3 ze3x6;qG#5DkoT@=jt)C8cwER?o=taz^*1jYwi&T0GF<67+-oG zTwc$Sba1B%&tb4aAIAxOS8U3$|6e}0aNHe&5a%6o|D>(%e0Y5 z{9UL*2ts<0Na(B9FZl!W!7-7rIC_ph-Rf#Rx!<{B$n!F7Si-=)cY+YDervQLLF?r1 zVst~u8VkoCuos@oo83?mSCzKWrbNOblCF9U?r}=Eo|<}8f2^tlb{pTW&|DpY9$}d4 zAAvMV1-R{~U;P6`tfoB5L-7(I_#UuZD=GCQmu#DLWBIDM!P{#^uWPhwZ2V(Ibhv(> zD;=^t_xFhsc_~TNk1APia%v}n{=A-lMj;kk5@D9`WNx~!Q_K>$NKq;e9vMQi3FAA( zVd0T>AI$oN%}8A?A7uw2Oytm(Y!B~S(Yw6@&K0RO@#rwa^I$dK+61t@YHTh;C@W>O$XO+}Tkf1;3Fuu_e&HJ^EfSA*8 z+Z^j5gc%_cILaCX1)@778~2Z5AB2$_b%P>J(U;2rK;Al^gvSt1+R+ip&sx0(qiuUccgE*7#pmDrt-R{hB)ro{Km`ZQ=!@|YuwE>2# z&_eoOC@#Px>7N|r&hz~HHV(HKe?rS>b2B^c_t*r$Kb}P+r^l-v18k1J_W%F7&Y?`k zykWsK5XlOEYFZ+*vq*RG8ASo4Z=iJGFB9wNT$;Nzv+NaNH4W0rUN;3izdjky2=%`! zt1L!wwmZ86jvuq973uZzfX+8juKAFk!rhLnf7|4mEO6*AEP3JzjNI*-z+;H7m{^1= zDCeM4g*+pRG$<2^fbl**ASlDuQjmELvW}K=?=mZM4F$q+uno}#T|>UN?v=0AB)5cu z%J8ZNzTa=IhAN?mlO$oiomdl{_zw&FD}H=3Rmh3_MUJxG=q6EkxaFd9UpR2p2CpNW z9NKqUDe7b|)?=q)^;qSraa=LnZYp64Hl#ef+NqPo1ZHK1-p|w0x{2Acm>^!|k-nLBP<_T~RRZX;-XYwLs^2Otu?1M&0uY+`ga+;_KgC~3Ft?Jn?>#D4#? zbZUC^>?71)F@py!>nbcBibK=BKV2^3=FHwICh?}cLu9=EKDNotJl~A$m2Tt1%eqq| zsa6h@3Ik78X(nDMwJ=!i3h}9OZF_bk@%2TZci#h#bqBUsOLViFn%S=#)pTi78kv5} zl;2KecOj_;&Q-9mr4!+Srr+i~UoBLl+v0poGj|Z#2;upa(PZAyNVoLsHMz6*&7(io zAG60C01fFN`IkdeD~HsY%?Gzp-12_B`ZAx7pE~P+IPM3D9iDMRz{_z%kjB{i@D81X zj{9zb@9pL9%rK5@Kw{hV=0&xkNk+!sL)E-5A-b4Y<8v-)y&*^|pL<@-C{7(s4=*|O zlQZ}dDSC3K`pbW}@^?1H)EQ@(0g>nj&sfh+H4ZDhOSX&MC=zv2I&e1V%();}{I8E4 zHmAj0X6m{g9{w*2VDzUfPpYlU*|7sx9+>q)U&@(1sM+P`90p{>8C&1*53Kb>Jq#=N zy)cq$Hg>}ov|1@a$4?DhmZBXu(1@)zfJkiF7rlNiZ^wk_5++Fao2Z5^wz0)x2vwDU zFNxkNZISf>*Vlsm0F=*ka!HH&#=X}s(NtAfmj@mJRIilLMp24|+S%J>+f=JOd9$>% zA79+;)ApGhU@tM`odi73s+ZVG>)&668o`ZQx$|aD2b^X>9H$=`>6r*|LCv>0*@L4U zs`6G5m}@d<)UCwt@W6|u*QTkv#RXYi1~>qx?kOEz+qQWHJfQv~k6-zH{+}-L6k+Q- zgJ%MCm}?MP6f`(_O?_VFIPrpxNhF;}ZGK}OVVrZFVekL+Y7 zOtW6qN#yN7d!>SUpj_{oXhR|!Piuo3B2B+?DY%OSn=lknh_2G-J8Izqt6_CQ(txqPbOV<(JS5AP zup;4lm|W@2T;BbVTLA=DSW(xM2t>YtwY&qkK!>tEL`O$?lLYPVi)GU1`+K)YNbsB> zg$Rr06`Ud;CB|JOP(@uQyNu&_=Q!>5N8RPaHz&~n2Zyv;S-a45&fhkx3|it_l=^oe zDo{#I2sKO{QpdH&Tzq4TSi|U1$VR7Y6<&FsteJmLOm*!kT}uH9wY#bn;nPmC;s_DX#|B5?+AxqR|T4BvGG_zxJ;@{bOJTrXDT z`nq&r%eu%dxa#85Hi!+$jsJWxMukMX%24m8Ge%QHYXA@!oBjFZNtrV~>wj#%#zp#& zR;c&M+~B3qTj={(m&BB9{M^X#-*FRg(h2a?puFG(3Tw_*R@nfm4xv@+j_ntkcirPKeR zQ+LoVstq4KL58^Tjs8+2b{)X;jYpFZ7kENVc~%e2C}o~SjeDHN(o)5|B;t3-Zx8jT zU&;TAt#)cf#>EuBIlx7|-?P1j4BIkK`PY{o$YGPj+oS>Qe@Zg8%*4er;iHg5z}vev zk-rc>g%Dfmb$h$Rs@PQ9B!BygkXf-Eyg zTzRBPEWWR>H}nM2Nq0OjmU-R(B3>MJu@%hCW=)$VWb&Gqdnki%rn=1(e7+B~U-6!y zraXFd&HJ#V23ZksrG2u>G;PU+!@~4-&_-xgG3sTH>{6xG@D_k`Q;Gg7%Di1fDI~z!l511*WrI<110^k7$v_tb49skUDRj zliWKTlq%Y+cg={>C^?3k#}(NA8d7cCkvKsST}v|NF;lNLZwSpn1-nxbslXEtCCYIy zu~t&CXe#3(#LTV-6!7Sp1s7;eWEMBun--F6HK?Vfj%p^{ZlY$E^li;s^$DXaObB!A z&eBpYWf3t{#uvMvW%ZB6#2GI8qfuP4qwsOB>OcQ&%Xm(WN$Or|Vr5J+D z=X$9UYD096jqpZ10ZgXZP)zGM9oC-mlu18APhAj2+rlm3PULSsj&<1mu0 zjsA2(09ik?hj?9i#?niaJ&1$)DRyUt{1tK;5MqU=odb`?zOr7gCV^mwff6l<16D$P84s%G^q&7veDLNjq{ zufwh%S(syUFo=PyH7-mdXld8_I1|GY?u!yn4{fgLH#PVZ60y~*VN&}-moYP6RwkQL z!74u3O_-qeYH|{KxY9+R10PwJF@NeG-S%$Cih_7l0^|Qll)bQHj}}0Evmyu~*^*z^ z!!|y&-Q=`S!z1Cz>)L|`&rSyz>K`ZavzDxa=&p^J_@UYG$M{W{o%@x@Te&sO5_(=_ z<|Eu7EoKa(e`frY_SNGJY7R5|xG##7WIgWZ+-B-l0ttUxbdmF_vgBY4EU9Tv4;fOl z#n~Z|2RJ?dr4^H@uE0+9k6$h451qk|Us|y|csA!d9McrgvzRuyatm69K^ysXQNxY- zFb1JALpe?y%}`lvgwk}`6FK>|Gy!tz7EtX%iOfYr5T4YTRw8tmARsKPk*$Sd?*j*WOu5)kLbJ6^BcoGW__JUP#x)s)HeGmHKiOx!`w1`y zCn?qG8Q64nvt>IXZ?n3;+eMDuJoAd)jV0C-cLq!H^!!~$p8|FwY1I_H-ql4O8yweO zy=@5^_ulQqwS)Z+-FB38oKFfm6L|tapHq7v>(La)GgnXQl#Vd?-_V-X?tyG+pRK~9 zGh-snsHU_2j0R<0*y&0F4d3pJi#R7jV5B}A8@>9^=6C``3)&$UuYKh~-A}6qN9g=1 z$jWgXslM^ObUyeS(5dEenX@tL<_ z@@~JHd44>IV^f=7H}C%>elhb%!3&p1JVB?2bqAz=lwvo-#A=wlhi*l~RubHLxFAbr zp25pNCCsl0ur-xB4j|~X+Bj)XdW?M%e@+G_xXFzJyVffpK4py$aUy$%CV(b^Ty zb4Q396&i`FL)cxqk!yi9)eEpSFOU5m7=AlII5;ne)7N6C|G~+R3gB0MrP?}c-SFsl z8juMn_Jc>qiLP3QfMp(qQODA=3bg7n)9(95o*6#@l&;sQQ!}t;=6DB^Ve}KoVsDAK zM^KnYE=Z-pB-Cfxd!%;ELLngXxN)yogyLE5f`{8~lQ(<~GT}2cc@1=96}jsXwakLR zeO+QpZrx-HHC4gMxA#^iLRW=J3B;rr+xIc*&sfAtLAPd2x3#pVz~Hld+O=N z2*o&J5*lGeOeXhX^~{2(vI(&^?+?ltlNQ-osMGvwWk8+ewnxLDfFmVkBt7{5t5gPS$0x6G&hNj4a2>Gy~bW*`(F5A z!?W%{*%RM-r;J{e4alXWL)Nqy{{El6FB45sW0Z|z#cB~rMLf|QJJtAlPhTtHytN$f z$OXB>GV!AidOxw+@cw$E=O}WvR5El^L`Uk__})P#);Trx7V$I&liS+Eo|mS--}Scn zO6LJ~b%V3#a(jNJA3`XlaQ<|@ca7BT-+R@(Y;*`(U$3Uba~;TTiU2unfBj?H>0RH( zPHDduF2GscP@e>$QiN17l*L&uUGTpOl?d>pTt~*>j*Td(mYXLJN{#~7As&=`G4ub* z-xX97qkH5dTNPk6eU^^K9j{`zg}8FeZt@1H`*bqr2dUJ6+YJ*jmCO^y^#fV+vRNPfr z-e-1>jRmf6CcDfBFm1znu&%Ty> zYF(4e95&|2h(#r1`e+k>Kt2Jq;z(X}veW-#?@hz0?!We7cAK^&bB54HnF^(ydD!N8 ziUtzOEJ_&)6&sbILWUwFnJQD}AycEM$e39&W=w`6JnOURy6*pT-^c&?y?Nf<$8jCk z3$ge2`x(}7u5+CW=D~~2z>u*sS6|S6v2H#%NG}`b9#~Ypp0u$Sd=WAj6x(^N7RrhJ zTFc*DiD06C4fLc9g-9WOnmr_-mQG2j;eV_Sgu2e!u_C+q*k#oJ(yk`2n@r z_h!L00BpTDbpNPrxxl1!BG4FA>^yn}1Kv5BZ4gQ>G1pLq8;k>0SG`B*oVWC(U3vjX zBpTpKIXs~gWk7mp5cqS&aYi0@nqsK}nUcR8x-{PWh8!qV$&^-;3uI)LGR^EKO{XJ$ zw4mR?%tn3pgxkK?GEyHHrE;Pi$(m+Jb%e1W+S|wM zW6ykZ;S8WlBhbiQxPx)~AZ%6JjZed<%Hz^q{4q(y_}wEEg73F{@ul~M)SC-~&AQ?X zv4_b(Ghc)s4zH0^S%vFa0pN!2Bf|I|c2qvgKD@mN`MbyVz zJPKW_wWro4M>KD-pGK9s zz*kuA2B25xCo)GL{CV%56ByCiCc-_$*ssgmrUB$?8~bxqOKs!^Tj<2&BWgVv?z>N>BPfQ+n$$biA2)W}Ggha6C#MFHkAw9k9R~WNBc+fFb zLX1ZM$y}g1C_80W8(6n^NS!odigu_f%UJ<~X60H);Em00r38u@MbygFtL4WfmKA&} zz!>7AitpfRM*w>{grdR*=m#x$nF6wMoYi@C+=c;fP}s~MQ3<`B)KXQYvVIZo0|KkIx?n{xt;xxa>Z*eE5Y=qMtT-8?kjn3mC4iK1GP#y7W#?5^YozMW{ z#gVugRLF?=dO&)ruw{Fk!SvbfC4AJjuc$9EvYi6i085iwY(5C8SVLY_{5o{~xzKy<#b%hUG-#FBBtP5)LK0)1?e4QMeZ>ak zlvl2eF-oI=q(!+h+qfHGC0`xb57stv%2)QEYV%(A;#O)EXOV(HyR_qFJ(3ec2C! z`X4}nfT>6+ClADQ3-7p}-CKpj0_Ledt?vsxeUKfT9z62W}w4F8~|44VW3YCPVB3O2DA~77b@YVcUb{- zvh8AOLhk|*bFKgs!&*Sv&?M7{_xz#Z4|yIuFb}L}kZ*^8?|0B}48O!UvRMW+G(Du9oveDzN zJ?jcEjP_Lza1D$1Xa0lYso|9%r;50w#wEdS8mwudRsjR&b;*tCkY3o;@$xGjY%M_d zg2;#cHJz%I4Q&{VgDI%Bt{`TQ9x?gs%$s z_}3--eBDF@rDs4Qd$6C&T`^WwH*4XbVJaQcjVQhHWBrEGSjkAgq>4OBw9w=xV~qTz z?W_H`c}P{HOGG|8eX0JP=joKBwo4sP&-AOKdX3dwBpdQb?R_yfp8W#7h7T~&D|>=R z>?x!Whi)-0Om%k@ljdh4vC3se%RjXOlCAEn@C(Ig#2J%guA##KHxCyX>MiZV2ddRY37TCg{2p%1YZ)P2kH{X822H(4>p{gP(Nr+!89YigLCOi>Z!52Lgse@rmZ znV}{p!RLFS@*1(n9mIlyLM>KT_R1Q{odEQ_0AyTejAVuDxL`bc#iPf2_SbnpUr52% zYc!u!B~$-)8P17N_8b%nypbowlfjo1#e{`koZ(BGogwe{)(}NLF+yY|B`t-QxcHJL zC&;7$62%XwRUK8yCx*cL#@v^x#ZQ74ne^iNu9dDOZptaDpwg9Of<+pNs@fhHM$A>3 zQo-`7AyCu!qLya8t}=V=g1kmFn_*B$$jkOO?qWc-^S(_y7OP`(YYg-t^K!17wishe zfXT%Aq4ei8O|^VS5`HT#kMVbVQ7^TSUD}X6MkF%!ff9EwQf}Q_Lodk{f;uQbp5XLl z#+M?+Aha_Aod6{(38018t{y;nj19FiA)(x&V_p+(7ssGL2!zQB*B^QpZsDFi=mw?d znd=9Vemd^n@Yyd6DYjy()&rI0lt)fW1QyShPvnF#uthR1G*(ZpuPn{%HnDiE5V7~Y zqFB1&!)g1&WPKZyHK_Y8^%^itBGuTw?60u_-=4#EL(8(6 znF!tJMV)Kq1M7C!B9x7sQm?iK)e@u;(<{~oh>-a0Uw-jN9&bReXHi$f*@yS1k7JMA zqEJbOMzyZ(8Ogm0lF_ISLURa7hj;FVnQ@D+6%k+FQ+Dts=V;1)G|72Vw+Gs=hPZb% zZok6_^H-Hyb5KDlAv#6UdGi2Q2@pqkr-%pKOmXd2^wUvw5{bdlV|yHD*iE@5Y=dPW zi~lA|H@Jrl=eAkh15_GkG{{Msgh0Y|ybx-@HTJ(GepyVk zv;6_q(}F($?T-i1y*SW;7r62n*o$${==tT_*vhLPLX|a@Li>?wf3f+58onEcXSzt@ z_k;ex-ju{YgFB zw_=ab#WNB2e12?{7)Y&qiE>2W0s5{mh#r0)w{!06_x=GH)0c~wkc1{Bh6&j}%rcfM z8)`GbL@#D*irckzI>AWp&ZW2f@b|0xFB@Lp#+rYJBbwe7GCzwg&9&}-6PRyUx7}7n z&N0XD#w{^ag$s9c?UW|slkY>Dfz0LEWK^K|2r8hi5TA`qtwD#f_s{3{d&EN3H74A* zQ2O~vthTP!P4-`#G!Lw)so)UG za{1mADTr!wWMH=S3%kGZE)QiF3BW-$+?hxI3hN+x%HOjnq4Tcu37hbd*Rjl6^YR{- zOYsF8Y5@>~0g<13?L`Bx*c`2GOL;%={a&H;rF`34A5Fc9%dSWZ846fDBxo=@A;{ko zHfFd2NAv^g-}rS6Bs= zYRga9wKmJ9S?wR{5?f!}gEs)-m@9x-6&D_|F`2xXyz}1CK6fZRk8&fy1n-|@wi@Y$ z3h?J%%xRA+s^h6>K$hu4m+sscXt#Ij_OOcQ;9 zXj;pGB;RS7lKa!qADFlz14ydP&=AbEsnyItV%g(gz>~=Af&XO#=Pn%?ZkSNFkZa(W zw8LvMmL@+1rcDJ0-O)^z^IdeAVc*~Rk3HzdHH|k??6On)WA^9ybkvSzZ~-SygK}tC zQ7*Z~8fqirBviI+%IyG^i3!KoOFoTB3fT_=-S@nVn+C=Nqtpl+8}tG<>Lo}Y>|NT; zCDKEYzixXvXLM~Uo(;)R_{szM-sVmJ8A~BwAp>Bs$^!b$|ML5JxOoOV}$yPF* zW^OyQ5HDX?_v;Ju9x3*Gj6f`+zfZB4?s&{`%Y(q&3-xia%rUyMm5PWoDZPJvy_sDa z9LT_FTu}}^fFrRd&m9D8;kNAYEY|2!)brG8pPvg>o$a5t?jun(2&fh?OyXLY4G!mo z=~P9Ek*r{oB|lLoPP}eeLjpDSxRnN~9vBv355%_+3-f=>MJ!`YWxyrbAazL6T`f8u zZ8wLuj43Nfy9Z@8Y&(31eg3KktQ4w`7E~8spPz+8jY4-X2uA?V-b~eQFG3 ziVsI8)=t$uw7B2L95D;9!}%}03~UE4XF>H<#Tt-WNny$CucgpF)!m#|>)Qw2ZTc5I zhuhp#pipzvO$z1msme7)j5#jm8r{K2YQTs)5dWSu472;LTgEXtN#DO-c86C!)pe+H zqxk228+dBoQ_L-^p~P*BC-QAWo>)~^T^&SC0@1qP-f?gk0!nch^cfuVL{Q%%2f@+k z!_>Izz`NZYxT-%tUgaUMk2_}yV03hYkob&Ln%2ki<*hhD2PekV1751dOZli zx}a&ql-Iw&(!P7EMIFTP4)!1JpMDN7{RQevsQ`M#+uV_PTWqt(2roalJ`NHoA{gL1YA!7S8LifcUy)V>zp|cSQAY-IA!-5 zh5129eq+a3w$`GL!AuDTbl83le-e7#Jrk#UUcOxk9$Ni#ddZggoDx@k{uH@J_ zrq<}##A{sSd^9(R!j<8i8se>-u8Eo8b4e+{b}06Q{ZZC@2fa^OQ4jx1(k4fPaGV{n zUym^A4dN>3>yy9QlC+9#-{1WgIpo3D`0u~!1T!;#OoJ{{?%~|Z#ds#XJYT#v6$V0! zG?*(_jx<-Ny3>311>A%HLS0@_tWNpeHLuIS{>XZD{Picq8>l;mIqk|hNbEb#elI0l zjNK(e3fUzNt3FXH5g`S1(^c6~LGvL`NJwtziS1 zM|)?Zo!DD{mCC|DksNl>DJ+mB%kWA_8gS zbeASJ|9TCoGNV*r<$ToI_YYW%yk9k85F11T-sGYF>yIDG$l~*RNN6Bb`|6$b8Kw{< zvH^3k*n2(%8mLdpM;kvLa)8?F2Y{ObY+*nwSWS{nxMZgV-Bq?;W`!f zCp4fKIG@I^M;`jEbyhX4Lj9<{mt@`+f;~K_2@;sn;Yz<4F9V%V{e<*N$=MAqFcHg8 z-YjYSsbx0`aLg)B2sjWxDf3)6Z$fBu=+8!_elSc5$4(51%Mn*3!N=@-sg6}|XT1Oo zE}c6f3qL(UMLYB#P>{N6LBDU8Y#(ahOV{I=IOYLWlV{t_`SOZ#$v1)*0~1RQ0+3KL zYJ2>#2HhdQwLkawCI^PUCC)0X{h+VlBpIh{d0G1t;`qDj{+F)y+%klQMKpn0b?)=? zcRXhe8!Jlp`R#06_~mB{n#jl_-so3H^i|L0@X-?`h9|0(?Hg3f++nqTU#FO&ncDU_ zO_yySLm};jwXMfd>AwS%G+{(z)s_>6GDRQew`e4o(vn|57xAfe6>+^cAbjn@y79+L zUr4!n&?cGX!4>DWBM+C)`>mWDt3@-{e}nG-R6_@3dpzZaSuvoEUHquf{6OAw@ck~E z^7IIl4xkv8MMy-j=l%izo6MF#(4fmupms&AJgUD9B=(9|&L1%Wo}N&}Fcg>iLqqGH zE<owgoPREnsDdc*8U!YgLa7Jp; zGcr#aoDDMuCXAL$e*?3faWw_(W*i9l#$WCtY3{yC2vC7#a}5zL<50K$tg?f_4a0wF z9AHmxyLu%4s4JKVfm3@Y`z4#D;~)fnN$W^P?fP+P?=R)4mZpNtBzct@@nfDPdcMs- z+Am@6h+f=InM~WWz_82sD1U*0{d5AEqDMT(?`C?gf_H;$9K=}jCRj&yhrRJfgG?x3>ZeicRYXl1+KZRDi2{kt$o+d zGN_E*s0MlAUxvF6u0y}$eWcZ!|2$yntCyOQT1Wt}KI;-2l|OGXaZh8Sm0um+dHOTp zbAz%;JFY;rB=Xi;sXlHQ&B_Jk>DXS&WM^|=Pv7VU>?(vMDAzoM~1IBv)tQ@THu?aPtn?AYbce><%~h#L~g%x*^JTS6RM1chN8A0xq~g` zJC<5X&Rd-{$cC^Uamw%AmlU<$=w#qyQ1+K_l&&7k)ZE2l7}0jJz+T@30L%O53V$SM zqGn7Kqqt&9Gof|915vC&mTCW~CB7a33yxjuQ7t*M8GzFZL5#E~H}uD*{4<*H+XP`UpEf(|)bNZL7_w1vY`xaTjfao_pxJZi7dnY?g^pOs zeG-@Zm<^;7=}K)>OAR<1XJgTPKZ2*OzhfNg%~ zOC?mp)1fU|gqvAeebZ$8U`Rd%(o&|;W1~==m4Mll6}7zLkCiJ9`^-B&5LSO@d%%$m z)R3GZ(LeJ>{T+|5iyK?Ttygy&cYqSiPsYnjPl2TpSlY-yApbL#NhI4mLH7k zeXCb{)_hL^0S;kKen-cykkwSjYT;{yRVd!^)u&JeUdT|>Nuvty*ub6F3) zbZuI*yaxGr+N=U@3pKqM1e_WkKIzIMU#13FP-o` z-rv{w#DHZgk|p<-7)6aJt3Q?aSNmO14SP>Gg@O8MU?WO?hrX{lvD8E4_8vtfRiyYE zzrfBH@f7QJ&25_A)-3_p`00?w(R@uVxB^NO#)%^y5ujv1LH?0yneRH1p)cv3Zm;;*u=TteJDiHnc)XEPTYc z9TJy?D4^s(F6#9SI4QR$|A zo&6{qqtl@OFc!cUHM|r9+*qkA+se0s(N1L$GRwEU@u}eSE9#%nlA+Fh5<0T?oe1qp z{<|v?coL)w>}o{m>EByEGZv2`7!alQiz57Au?C>zLI~R_I%lBl+x5cR{k$16sp}6b zSN!j#$nH{FvxsM*QcextrWLj0h#FQ|P3?1VE=??p{u!w%POHb~&xD3(y9l%EwmMoK z7FgUFm@Gs|tFu*kypraKTI#*k#zTIMw)S32=N@#*6|BfTY_xOuRCuVrZ1O{*_lP_U z5njf0xhHA|B48@Z>x6Gr3&F8VcQ+N9Oh`dWrqa5-vruRPjmBfp5+pt?^pI%fhY`l_ zVLtla2S$Mu7`r`r?xP0Yz;TLNEColceX2>|qZ-x5*lQV_qyJ~9w%LMnOiJs!{Ef~D z=s3y>4Bp4?pN1~i-zn!Y>r?0bq9CC39clmB4`rZ)OI?zU_3X;%D}!IupkdtvN6y)J zS5AWdn7iKD0vCK&fxeU#pKL~mLcj-X07+6CaU^oHB)6s|EHxAYELTGgQ=een99XUCsvbB6~x!r>X6=I>>2>%`Fm#0oO z%>vWG?$56uUPh54w>q}gucf&DUR$ab?_cR#8bS;bLwhdr69r)vS0)e1(RINfs=W^g zj;yS#XPT3XAbk$n^M#eXzL~URsuow9p837IpR)A5)XIVIOAT!dPPHcCEI~g*n6sz; z_dCbg5SSDh%wYZcJS7Gfo#yYgt^`Ikl|XTm>tb*MXqMVJy);1Q2FIc~0P7hInj{U7 zdnM9+p9Q6#;gkK#u_pIsYJkNvmCUD4DhA!0)HW`!FQ+9S5&k`Wsd^vq+AlVHh>$0c z>gZYnOlH7Y=(4D{F3?PHgaYqgI&(?u4{#vi5QO?y`9GrfI9#W-d;Tt`D2x5EQ1tTw zrURAiw}GahxYfyxk$l8!_7VLfI|2`48HAWg&_C7d zP5{EX7ix(y0IS-!`An%drYg7K`8N;1QPE_2pM|eE=~voMZ~o{s?bz>;;_h>_zK6(D zw}Z3Mfl%-uz^=`)et~wB7XXlIhe^T2hN?$N1kyINRg_rFPIeegf!gA$jHfLZpa&rp zP@5wV1YYuNf5n*qGn?4nqx8!+4!lwW8k)O4)?Lj)-st9?Xt-Y@wSMEl&UEFLpPxbm zlN>W<_q%d0?m&kHUyq5QVq~;n8RpmQP7z5K=P)LJDY}HoRJa4%%%c}zyy*}Xis?Fm z4}C-qh#I_rDjGh`z@Se+zen(Q1f7*RI02WBWlOceu(DGeQ0T}|ycdaP08Bp`gT{wq zU(x2iFd^~+rimtxAI#8;ng-b(5%G!sRfN;c$xi;xl4(#z@yg9! zrnpCN>Xb7H;L+JT%uR^#diLb4RXi1gMyQqN3gw305GDJg27lr~q`5{fW`oKlHBp-2}K6 z14lM?FH?tds>l&&O4|CRQ2nC0p?~BN>{h+9Ka10_TXd%;mLZP{N_$B#qMeyQM^~%< z=PvnTm|pi!PaE&Au1?(fv2qol*O2rIG~=uy{xo?JC0M1QDl%54+yc|ntK|1x2Y4-P zvGu7_(-^DxJ_&mjWJNMDlvmvzJZ%az7GeEPexOj;Z)y`N_VM3grcQ4ZIbFaarr=@T zFv}f`D;%LFDzC{eyZ{nubs0dqHpN1z&76r2KNwgo44S@+C{p>*P1Lya-R)h1Q08FN zkK5QhAw#rAAdL)~Z}CHSsk6b*dF9fhS!{;Vi(qZxl<&mEpA%^Nt?zri$$z?b{-N))73$dUfxqS#Tz9QUs8QGtSEy}F%dxNslHGkNPq7vq-J;W zc>oXL^PPiy*o72ez0$`I9;S<5f9qLZ*+y_&zH~cX`I|+gL5L4|mxZ?d@(noPnktCn zuN5SpF;lFbxCSbS65h|BQF}_Dr-kEdG>Gx&HXhu1zgIQ6hl(jA2zbi^A*8sC=d?nE+kk8~DfK6{E8@*neUa0S$U9!KY@AerwH-)=)O&~JJQh=tL z@%Y-cJO^~fg||g;W^cYbF1pyCMq+Lz4gS|b-ihd^6bkGy-y`j+8HhDI@54FBvZ_|p zwgH~~Md)D=Xfq*g?AK8m!nvLk2D0OOR(K04=(--ffeA0E;AWL~uN0|AArZblYyV_;d8}1SdXD(^i-_25r{%<(+U+ z$yZJild2K+@lnbnvYB(j>P187KH? z;7YDCs+gQ{<}3tn_|8VqX)ij!6c{ty{rQ7yX8PqEehS~nKf$RTtx2fRirLx5uT}v@ zLJua%zihSZh4tEtiTARG0e#xg4p31Hw6lMYbBcglyP3oLhwFbFWT0QAr4Y6uBweQh z1auN*smazZMKIYf`~wWhH3)Fbo6PVP|1U0UKB*)-~a{jO~7ty(KvRIfObH5qL1oitol0>{r6Dw;qz?X?WovV4jujuiPYInE$LoH#t_hG1@0u-Xfcx? z`Xw`T`rLF3r;k7KcK#RY0%ba}i$~@x+9(E`aSfIu&eX~0PRmbDWV?hsVX<^paRq+3 z=(rkyF@)D47L8g&k_gQemuCLmx~DaWK@%-&b>+wPj1Z_t6}61CX4a;?*m{EznfFjE z?2|)=GO)8OVVIe$$C&ljosrbpp*uJqsH5-BWTL#v{*2xV_|>lKW3NtZdd3T^O+W9i zIWlCg8Nu_DE;0-}QIp}aTVy0jFtI}~HQ-KiPT?q6f%sQ@!E`h3J4ym-`g_n28-fWb zvxEz9q9nZMY-NU{P2?ADk$;KBkZ5uup5O>9tWVCbfcECuoO~Frz%#pztwWZ0K-oo@ z=jb9z0fdw&nWax&^Zmrb?@yGWWw18=r1|iwX7Xz!m$?^cGTL3w0J~BK8sFHz%Ti7R zLhGc596(-6gar`5i-F1@Eq$iKe)2;+qIC>^g030dd^liP#T{8@hbl@^;5go;7TtGn z!_f+{l7RYN55+cJyGvi_k?jU=#?-{KGS(?1C}9t#haDZFz(6%-Mk2nT2Bi?_SRZPC zVxnmvH&yuW1BKOq?(bey%}{UjOrPv7F$BRTK{g9F(vv}EcugW+jRf3SFpY&vDSBzJ ziWh-y+D%gLvQymjW*3=HK!D`vAE{`;4U?1;RnmL5f3YHalsT3r_W_^+h;_Y+T$`0T z?Y+j6*MS4OO{tOQW7{c?t=F>#pf4ZL&(zBHffV2%?)}F?T42#c$iFAtUjJhO1nf`= z%KjUb_+tqXV^M~Rkx+f91Kw%A`7;Q1c}!R4$5qAM%|Z?`lbzU;Z7)C$b}{EFShti{ z%Wg-v+};RBanbqyNk0jt$HHW`_PM>HOMB5UxeJ1TICwleubR$NSRG?x3kwpbG3Y9S zc6J?jz8F(Ove~4-TwrD=I7WO(l#>$XZbW$x#FmlZ@7}rIa}-CW*^F{^Ma3j}JbZ_P zNxang=~U%s#(^hAJMV8sm*d+UbLp0i+E}sPAvSsn zl-B7L2D?AK%a&&2IO!M>TV9TZ zS36oqqMMd14Z$tzySQxpz|I4svg_VW3A<$I%Zu3Itd$~<*TJt@!3bU$DX5~LO`9`5 zHW>oRf3M(i)Ob)2vBKSR?T8uM3@v>}e!O0&X+8(H{Rk!9o@ReO$OkAMyM(4&OFA`u z2ix|MZzBoxCwAiQw>qwIr;k!s<2DR=nt&T1XWipOPyv|gJlqn-_@r4L-6NtN$`3-E zx}79pH_QALw_k=|v;zt`PYCc{>VQft2={xT_0VQ0-9t5>ummKZ_i#}ZDw>~|2y%c> zTgDw^sVJU#IWPa!0wB#}fIe7alI%2KUkuR#l{<7qL7hfSg|l$JSZ^cHvZB<#Ju*|I zd{_+1L_Xpo{Z_P#C`A{NqtuUz6&Wao=k=mE(n-pD1wQ8pX5QNL$jzuk<>VLGbc4ir zh|Muj+Syy0`QjSumy_@a$u3yrZlSW8f;zI2uA(6Xwy<3nK~2|tGrpVM24Ugb>1?fP zsRHf5V=y-Hpi>h}J2^2^&rWtUU?enaQvEK7RB;{{Kl5kd)<#@o^b|AFGfH26cvR;| z8U#}g)eJ)Pls*SU!oPj6nwafQoP{80qYaZRhVowRcxG!L zfLtDYj{i1CS$2KOZ{qPgG)&&26IY4>&27Cd#3_jS4p{-o4LhGOW*C!xve}*QN%PBt z4%x7LTHr^|2$~p&6WjJBzK#6xYPtgvsyiaV%DhM2HBMiE z`Zt+$n|eF@z!L{7+M4622T_GU)ipofVh3Tg*+FzegbiAf8S~;;ISy?+B|e^0^r%~8 zx(0t~uoVOLsRjfxPcJw;!?9B;tl#F6kq|x_pCo?xYP`W?v@#bUau>Rzd0Ud-Xav)B zdkBcxQ7rRxHdD31n+NX+EfTG{=2&%cSf??k3T{P83mp5I&8HG1LBPmS9*;u-wxZpx_XVWq?Ces!rge{96Ya0|+C_uU^Q?dyG$Am=HI zY<2JhVo~Yg`-^=3L~mLyX*VK_bY0jJ1RS?|n6h#A`xE3xVC7Az3OlNt+g{xJ31x{G zslLmPO)tf*q8zVznW*-(OtjoWAJ5egS8e3zm4^Kc-guv~BB z!|;{UU@fi>yw%0N;n-0at+K=3}*8j6%vJ82+aV$0HSR z7MZDDn3iP=_g1?Bf-zG<-QRU9!=VB5iub;keLkfKRoU_0iV_f6={l9zHVbo))J*aa zocO@DaW*){PbU3mgpy_}lznQR2m<)*|Qp^e}aEut;jSW9+FX4@h9 zy2D^|hd70i%@xD+9Z&k!?A!&Q*mJhaFp78xG=3u>-m&IwYr2`THZLZ?t+#g8PJ8q7b@6Rw#uL=^JQn71^?k70 zW;jT^&A9Bnm`ILfwur&;WX7&W`JcC79+d%_zwHFjXc}Exw0QjTn^PhpB5EeD#{~cJ z;h7NeB5ZFCScAS^t3YvQp6bj5fsmwSQ+`lmc>Df(RvIjF>v#v zbNywkzSByW&s%gtqB%!(x)Bz=9lXt(<=M}dv4g?`eicw5dy@~Xr7|#S!VXlHg$-ja;J--FLVhL%p9e;xqJ&TX+2oEOy$(rz?{?r!$mIp!V`vsO4&TUpr7_ES z(Oc8Me#t*ZevxK|CTj~6N;6!7NPh4d)=3F-kVT8t+SW_8-viAdNrSl4E7|zf4Z2~t zTtlhMKY=xzapubqRocxC)PCw`|DAn3ZS&C7;2fVC zPlZ_cN~fSTH)aEa`du@4k=G~y(7ie&cv*(e9*H$Uxaw zX0AhZ86s|a_nn(a;c-ejvF4k}xi98IuUZ-W6G7r5s{NBpP>zyIya{}rxb^xIOmJp| z0w9J|C)zUuPR&}kSeurv?+cp$m9!^qATN;s(ZiKPPJA2X23+(LBB&zT0ksf~CicNf zp6d}pGt$%>pLIsN?4EQe5F0^{Awe^yT90B~0M-k10*?U~N081OdSMS`Cyj6V0)`0x zq=E&_Fly?vhP2B>Q{R*L!|@+qDsB9;t!VP7DV(J* zK9y~Kl=PVlw^L%D9z(5hbI_i_)*9@xdzr0}aVJE^`AjFOu9QUqfkn%<=hD^4 zWB{s>|Mn64nE7VYdk5{aZZ7&&k}`f$>+9h0)8twX1!H> z)IE|6{^_yffeqLJA!8EIW&lfu3oHWlfwN7?q$uiasLAgYd3A0h)L{^Z0@t?mh50P& zJ-^iO@ffIS-LZe=$cn*9W763k!$4n%Dy)4D@*R!8c^v}f;9xlMj4}*_Eu@P~xVhTl z04iErV3$Zh-hq(i2+8b(Yf)d0ll_-MMiopRM*@29(~n2Eybh2zbSO}OLr!XDLQ~G6 z_69({*^~w3=}<3Ro}&Pl&G*-3hw>4f3sVjhFk)30;o!0yI~GbDzzEdU?QS|7a0@p^ zmyo~;F%Ai(EV#NsxZxGVCVDZT1PFo$h(PfRN_wGm{;|?{|0YKG0SmzRxeQfW*)+4J zi7<|RAJr*H@>D?Qvd>UHS?Fkdj4~X+*JvcuN>Yad+2Hh!K zV1ipf1b_saXgo1l2m41s_`XI{R6yhaIhCg%S#Q9Dv~Qz|;E0sM0$rbI=z_dWFu9VA zD(2;z5@!bwDCFitrp*Cj3iD&1Up;XE(}QlgG%e~VG`N|ruz1~Dtj+VRxCW4>!w#{z z0!qz5Mac65Bkbk#*2RjaNlL;H7?w~%*g|=WmuJ_p+Z*nP0nkBOl}OJGix5$X0Nt&> z?uv-|s*b2pkOl#@Fy(S6hIIg;twbJCRu^^k>+|2+bRlhvc9uW^2Yk@$Bi3-Hy(nDo z*Q!%%G8PIiWv)4qsKI+oU z+PygX{jqQ}03Swu7&M2bIeDtHKycqJ$jrJcS)u%tL~#5InNVOpGdHcAUG{I`PJl|g zx#orwgcOVl@LV}aavm()M2A&P8QCN*sxE&b2Tc&8wFe}m?}5}I3Z*s?er+#S^1~!h zfwrG8(i?}$oZKAr)-(XQ4>OGWc7@w1XEu@r&< zz%<#Xve?Pz56b@h$@G#7y!PQd3a{mRTK`s9p$c7-s?(CqICPTB9i5#{K;xn-S>3?~ zP+*i5^U#cGG_tVjD46^A-9!)gyxfA+&IJKC;oD?Ch>+b zbCL_qkB=%Zl)g#IhI_sZLcJr&Mqq`$(jdoiUgxZAAuuw7I<(qvZCuRlRP&^Dh?T^F zJ{}3M4Qt`n>q)t^UDC9GZjNEX*u;winE<+sKgx+jK4bt|fZl+n?spr|H=MZ37*31S zCrt#p_;d|&_KTd52bBP*IacpUebRD-YO7|+a3RFVI)4khTQLV2>y}7%P_s+5s=js+ z>a;pwSZ(r42%Gk5a2vs~i6~a}>r9-~`J`LBqztN{CEx{T#LREm+}qC?fPtV6y9C%@ zY_H8{u+{lp>C{VL=#K+kLpW8rA@o+cZ?Dkk=0u~ao z)f@YzdfZewX!4#xV9W}um2z>9<5r9vaQwD3Al&bh%qSNcniD7V{K3ZVu?RFlv|UkB zjkKwE2-SJIrfM}Dz4eQ;o7RGa10KLPY(!_n`S-XF)|P53PV+Zjok@ ziiNFPW9LJy)i!t-#N_W(^MA5NT`paCSkSw$5kA9VW+^@}0riz|q8Oz{m&s>H*40d^ z9O*SSqYs8U%VY@9FM|Gim(y*y?uXwOzhmlE5gVPDJo!2SuDl+levGtTJqt*2n*rJm zDbhJBUr_NWy{~U~a^r>YMpT$C=765P(uvzv<8sxDa!^}tXNN@(~mW7!nGcTLTwbLz^O^=30}Mi>ATpc_rji;YT%z} z*~C1WlkHkWrXFdvBtviZaR{+*{|&K?d@%7kcBuX@mp*X(;@n8HQ!pwx(u{R&QwQU9yTzZM^8+ya7$9(O$^zZj#lWd`~M z^>p98A0+oj6HNJx(lA}Gz5q`}y(QTd`YxXpb6t4N2yCUkTYKotkJ)aNDgBA>Q7PA! zUQ~{J4WNdcs>JXy48=m>=JnBvT zTOI9u20C5I*7`0Z{;2tTE*&o{=?lWIyHzz`F$O>MU#T62lC0~Jd269l%daV%D7g?u zOb)^VOlH58*D)fJdRN?_;`s-%5OO5{!oVnvybV^wv)gCs)w@h0p$72}r)2}!WIgiu zM}uy)KiRbILT zny`XXv5FNPSIJj(9J_5b>C?U%E&hjqe?;f#lX-^1JctuX~I{h9mOEDi&Eb`U26L-D7bh%L~~Nst-xEe1Cv+Enf5SHWhqv<>bce}VnSeBb?Dkk0rX zNxe~a?N000MJrti;Kjgore4$K9eiP%@?4(=nTeRY@%Rc4G5 zbk86r-;VM8-Wmzb62{IDCIVeNKQNSV^)w3@5XW+bxQS7h==)nq15~ApxW4Ga5G~1L zQ@qe4$X`3}xEF)NiZc|!7W>vMdB}2nhtu9lHMg21P?Oo}cj$`}L`bIie(`SNuG)I? z=A99&`55|zTY~czF%=6lSzI$XEy3TUcE#x1lwSL!5#r5&v-Ce3KA>;L4?(;t-noP4 z%IH#Uk!|G^(IR6&&Rbyoq^fAmD?$+^zwpR%ZaD1!;N6M8P?miD!_NO?VaXftUm2eN*&mT+5$Cf1zUY6r8xWW#p1EDPjTZ_r_#sE&gC}!F3UZh zX)S+Gutq59ojw#|#ZmWU%QCbSYMv_}7jTfTLrjteR1eF#2q-;pHP1WrDC7YzJMO^g z00fSna-|>5PfET1Gb`BKcdmzS=U>tgw%&XI^-#fd0+Y9QxF58C1+D4mtvr{Bhz;kJ zbn)QcJVwK6Q#Lq zH=O@;XonWw=TU8Ok94Z?>uKHkW8A95ugAp(_yVYaR0e_;`Z1#|)d_w*hukUnjn5iV zRJ;bre#6;7p{+^jjCk1)6OuYft5pvLB_ft_5L36f)az-`_`vRZ%$rZkxz(%R%(D10 z%u0D0L&D-Vpq&4Dl}L3oZhkq^H(&cb6zlkreDeL(%4Bt2hpW)n@#%S1vqBuf=`La^ zD?($li0jSH%dK5DU2n)#d2%F4^umBDz+F(cs|Q+QTrZ~GV)^D0VoyN_uWx(90UK$I zMflBc_2&P>cb`GueWLku*N&xy6i@k-cFrTI>Qlk53l)&e8yZC)>2$TVidK^)`IBc%#BnfEO2CuXeBD0r__S4rC%x zBzH1a2px6rfx9^66r!e5wNyFt9>BRY4Z5|V3pIR_H4B$t@4$WB1fc$XG)in0)4&>6 z^|lxqH>+HU#O9>8y^GC?Riw#Y-kV%}$1T0>YA3ciD^N)dJ!4hNR#2W|oA~EL2KVP( znz8&{OMh*k^ZMDGG7TgMVwmWg3VdnAc6 zY=FNw>wh^b1N$ha8-F~D(Dq;Pi3`%X3if78qX4zoLUAwu%$sd14$z6yoUFXXslTdnJNp5mf#Pr5 zrO8FNh^Y%DB@9Y_{GLj!paAkaANrRNITw+JKK=N-%q{2jC9Euabz-xI4ND=UPS#0D z>RkrlZo$lN1dAahJ*ZLatxPqN4}!Gc)d=9D-J;IjBN3fQq>gaNUYV z(H&0kXx46qp=M8xiLS1&BUI&Hu1Urngk|CfsVFu z@t(Mq7!r=*)=K+1ei-zlUrqj2ICSmsV3imQDJb>;G3umzx34PRKR-$hgSbrusNr;W zM8T|_M+ynf3cp)Lp=H~$`kW1vp%?qN`*0_H60DoJ;OF~O!SY-+K6heu%4VZf|6g~U zL5PZUrte|HsCORcP0wo0hlxlf2-%_)pol0eDoDAn=cJ_YedGPKaLxQJ>&QV>#hjjw zhArh>Y|qzz4qNQc2wE2$jmaY_V~!bxkFq1xTkVMgjC+E2R!zcd=mlds<`WXM@Mg5N zBK#YOcP<1iP^336jQwe6dwQr5Zhzv%Q}&hZueLf^Uh@4jalt;HI%^>QH7F$|C39wkU*XcI^85DMz@E$AKXGF&66u0bvy(48;_jpSr&aVxmLMbL0;!x-jT<9 zk*Qc&7HQLgu|pBkQ13`|jr(>+F`FVj$ny}sErn*^YJ5QgYu=egci4iA7oUnT!AyRu z6IO`}f9CF0>j78om06!l<2J7R?uid$oNiY4z`-6mP4z?&NN)*+JD~Np#9TqKEOxCi zd4b8_fny)TcO~Yls=Fjzw8n~FI6Yi1fFa)@(4D;;tAq7Xn6~uheb+F>*6LYV;ktcY zvu52l&c*@X$e^~HfaZGS& zp@;M6A+DiIrR9;IQKShHwq45Y2>KLkA*h}#Lx3;d#$pKPc&IxFw4IE2=(7ABus zU5T5JURt=w8n*Ta%dWo8PSvb(wP`lo@6W3OG5y>DaTpUC1HDzBtrEQ~IwD0pgWAUp zpKg_PI&QC@*H>KJqEk950|IALH`(HEJOYx?w01s>==j|`b8WPhs+Xr=P-PX^n0B9U zo|-;WStizg^5>b#>(i#yKwZg)0T~Vn|J?oL1T5itZp9F@b!x}MwX+&avWMLqhw36z zoUZl`gZ5txh%8n-oAh4-20=zManG}@I=>&T|K9B&GbLcw;#L+$v#lJ)>GiY;cRMW% zjmN!HO6et3Z1E#-{{Ss8H52BF26!zSxy<*c?tRRozD&nS(8}rykuTT{>SoO_yTmZ@ z|6%W~!=l>X_EAMt48Wj736m65LOQmBN=kPK!q6ZoT?Uc{NQcA>lF}UpA{|3Wt1xs( z%peSLp2b%8H++BZIscvOI_HnQFXhs4&03%J)O|nqy>ETyawkVMr{wu4loTe`2>{5R(x4li^N?;tYB$`~3jd439roO=RJTa>gxidOF&2?eem1|L0K>r4aDh~n)B8T`2Fl>aM0d6aoaQpU^T0NdUC{w=?W%VE63 z7x>2SPf+HIw#sXqoYw;@l&8*4cJa?Pu>t;lG|Z!@1$hb8@_E~ z#O8tl$U!T?`!6T&7NJiy1_e4jL~hDiB4l5#Wt#|tkmIEnb2I$|HWe)=6#0^R^XN5G zcVBl4!Ca*;+<%^fFNddM*zD3k_ZOykMfc(^2}h2Q7@iS$893C1?xHI5chB+NvR&Vp zG1$(}jfOY(ueMpYp%}}Kn!PLNU^a_al49yYe8jmdgm?wcN6mNL4e<1X;Yqpm?*;VH z*=72@vACZ=@4pR6WYm~vi4Kw?lsU~}i9}IEYHY&f1EATB0ISWpJHmP#&E{0s>lX!D z@#xhRIkpwA7%j!qiIS!E2Dwkq-j;6CuCWrN4Ps$iHEiX$(`oUh}P3D=&}XUOK@ho!!#t{^e+M(Vp1P ztwM!WuL%uVc0f^Wt?b!zLebqRfw_OwHn*6KsRp7*oq1-?dl~a*Z#s>l^zMmeJDx~b zbJXV`kK>8={dQ>b^7n138fvSf$QzPGMY=I@oB?z0kfvmBg2Mu=sl7n4Cw)8^eoM2; zN@(ECu!M}}RM+z!GyJC)lc0>ilSnNR{)QwhZf#|~&s#40^VZc*A-R$_n8oovO3v3tJ7c zXsM3@2<<$c30#Bc#z%TbB^h#6z1DPli41g#G9H}Ki_6#6={vU zKXp`g-u2O6jcmkYt)rdG#0#`S5mK|Sz=6`5(Plf{e%pSqy_6kzZ-M%}I^pNWc&clY zk)uE^8Oq#NPp-_!5rWGz%w@%AeA3X&~ESv7{(=4Z|`Y<<>< z8qrxrRSQc|O20HJqmt)yZsF@aH<#0601O_5DuUIRg2NX%GFJ(QOEJmj?{lEK=80LE z@)CB3;=zD)izeadLpPKSOj@J1|O8+}f-$q5F-ZbV}=5fEr<4tzAvJX5>5 z5OkD-#)|d^*tLmniBwgo)q0tR@s*gnPI++_{1pm&!kfuYc@kge+k-=p8h;WBh{W*r3^kLsJv3IH@KRcv4kACdCwM;&vWlQt8~Yb#kqG&cZf^- z7QKPJX!Bm2_o((B*Nk$rlR$L2fb0RJNVZ@ifWIB{GHe9o1IEoQ;W>zmZXNY*liQm5 zxs?TBCyn!qB5ef}BpnHseyncR<~T(cb=-p9r|2*Ac5MYn=1p>*bLuppziKm^n_tg& zvw`7*YF|+jnyj_BbRfdw#43nax5UoP#|+KgEDG)^^M6nniy~*v$kHsEh;NvW-KSu( zd(Rz4?vk*YCrTR?pGKsAaaaE(J^8*NeODWNtleceA2ne>oVYP z@080kaA$tTgoCa^z8peIEm7DnI7?eA{M*L@-xuw>7+*D=6ya0z@ z;uRly&%$$jx3sjM;?LKf^~Ua&hYCDiiSL|No^+~V(DqHS`cB=y#2VQ)v7a5t^A9|@owo5zx9eU&7%=* zPM-Yxer^%^97Q(rsn-2;VV9oW)4ks+Xy@Pe9o$QpAL0OJ!abTUTJp}cSI(yP#K?xHQZO^U9tlu;X;}1Nw$c(lEaA(3sz8}s(3QR&Z#-qG!FSIq1|mvJ;!-0Rht z6}N9Uq)qY$IGA@VIf^uyK=$X;bMo>8lyVA%v@&#@`rdIsIpnJ&v5xw?__ zOAyLbxSltKOonrO%Ii!_=&iXAkxWFbPxq>&VdXGYLy6gf!u05fbM?%j<@-1Xy~G8t zH>Y+81Fi>kA-gQWOpmH?IVM5Uoq)be(?0X)!0`*8pl!a=)_e+LiO>1(U;HT>DZPJO zt2Y9|!xGf@0;3V+%`tqk3Ly50dii_wCx?wcA#3NeFnUZReO6iP-~(6hR-Z?UI}vBy zD1oi4`V?Ie(fm#+eXOonS#D&I`o{SAT2`<6th+i{lusW)({iQsrlKiyB+q~V-2hZZ zZp)smXCOO%c8La&`NxFJzX(UY(>UvPM(F-`!;D*9KWSaNNX~PAslJsdEDYYXajUK% zn`DoR(CBX}vKi9$T84cY$Z(wZ!+?DfbUgAwO$1fiBQ>Y z4t3tfpQ0z}+ZjU#edk5pR-S%+|F~lOlSmZ1r|x)~a@$u*)q_j-(}vF!{T*jXS&n?D zif8UQI>;#HA`i|7Z*uV~3H?y%qzv3fh=0$H-G>VinRA6D5UE7PyI6;Z+eE?Mdu@+o z%^tw55{jCY={p3sO5t7#K}6GCY#oMDbEDO;+(sa zvP1DTXi6D%aJ@L^mL$jc1CEEIJ|j-L&bY zK>orV`6}f7{(h*?dO&>z1p{e9Dr9)Am37w0jR_!t-c!%CeIBFl%Ioa`9I86fj7g@U z=sVz;tt4hkpZOXiW&doyBGN^;|N0NRho~>ow zs(*8rATe_6k`z|StoI|Zgf6QkC~gmoDUo05Ea@w9?|OKMwtsFL_*0_9uS|#lR81hV zhPV^+lCns7OE(m~*I!h%#q`er74jvt3l}-|#CyYhthJKMWwPtn)4d-GigL}_K|h4qpu zPmQi)UzNEpbXYbb6;8Cu_Lr+Tc#B=!c&<3jE6z<#0!Pg$WAN(9xJGt*M0&c@MhlB6 zbH8W5;L!iDIwr|?5sfT5=bJRq@Wd=RKutv;r}pG{o$qL|rXN-@z&J4)aV$&*d1$`* zN82TIJ)dy(G99qyqh{7sXQ;mPQA^Kjzpq7(3jvQ(T*>F@d$fD zOndiQ1*7i96$Pd&o{7plJ;<7W@q+LpC-IAsn+LG)x|N-JvJ@4$D`iQb_0 z8Fs&TmbsHd{yt~3q!8%XfrRHw(Ao2d_i3GH_N1I6ISe|k@z#FQ<0}0^vYHOd$n__B z880WgO|zi}#gWm*wZSUW@<@D}&g>%8uAL3!3nPT%iXx|x<-m;nl#H{7QS<_U#l&fK z5nXDC@ksHMAc&~kS7^r$)FFJbMG zW@lRO+bXZ-?&Vgre_imH5O#KPH5CeF#L%{LId1x1r2mxs zT552&xD5tbhPq<)`BKNJNwk@56r#nLLYM%h&A$N%FJSpM0R|U;kLNpxbAN)@T!n`n zIC4kz_}Qg$AKC&`wpb&XI^_&=rwH8~U(dd0huO;{`;JAJ!#V;*@vvGZe z6AwUNzwN};Ju&q1x%Y;4l<(ZTj@yN|jqESaR~FP~qyuvD&J+Lpu{V;!ZJ3y9P&c5M zhfWvE*digZ15zA0@b}QmUqIb$`wgHHtr_zb3t}A;#amY(ZYtVNAPO*|vQJmB8w1VG zB4)kJ2?Y)Y+yg1JHER|havKT-0!ik(j;|YHKs>-6(wQu1rsHb1i8Tcl`QsUJ;A|qg z00#;OlfMWA7)0dADil=GH^1x`e+uS4Fe^xO<_sX5vp&}r2;#G!z#yAFQqMWMY9GF1 z{}tqxSh0A1Spr*Ylm~}+TT20=zP2-8IwI@~;>QiH6Y(ry#FmeB26l4pMMVG(P6*f~ ziB^Ii7RyioPYT~{uyW`)`F>vfkyH6rUUqL(43l0EAvATS^W=V1+`UJW1A>UIg=m8;R81IIHNWyrW zytaqS9-HC=?BAB8;~DfcSG z)x>%f1`B;N-)&z&+6oBu5f;^knmQGc_X#T-m(2HKnqF-J60=^R^aQbL%+?T?k6XAB zFla-CB1$cjVb!xk{{TF-V&Xp{zY;$q8zgDxkHDOpIdT8~(>cA#C4=@s%cnFJ4op`= zec@f4i?W2TzMrPdK&;Cor+k{-eOYo?k>jqnpChhX|MZRI!!L`rSR2bUIS*_r{v1RF z>9$=i1@*hP7ylC-rlM+Yf8cb_iq&b$cu28YZzG2jN?Y9bMCl=c1 zM#+EI+Dq~}RGymGUw&sC9`3ViB7BfC8UK{E12o9uaud7O0RxwW zSzQ2W_8F~2YUX*Z;l{H0=y}FG#z%t7+EYz~FGSwE4Ow|9W+nKGU^jZxOsgBkvJJBy zbT?s8qCMBHqE41)MYw(D(Yw(#bTsBL<%soBxBlS%SkqaYI zw}fv=J@;ADyXXD4qAHbC?dEp-VOo>-Rv&175K3z1;&><_5BsTQ4b#WtrxpwSf{v+w zmv6+cFXU=b-grJf@aE37cL)0kS=fz)NlbU_4I>~e-)dUpfVKSiNf`F@<0p#-VQWDo zXsXm*N1ZY_VQT&vI8wTe7cmk(zW~b%3&kpTPoXU0%Z$n5P|&k4Y|`E>eSl++{}vtPssLX1Vn9`j4LaApxEMcp{WSaM&)pLC~>WrvqD2D>!Q+;bUBHUm5!2z z&AReCr?*y2wp^QkKt9wXlAH77B!V79;fS9$sIjVKA6;IT4!6OEBj%ctM4kY`eRa(* z0oCNWW$~M@&kkmGmz-J2W^uV(b+v2;Hx{-|OVhM*Nf77f|Y^nwzQ*2LbzrJ(MDb((#HjZy%X0JVH;# zcK7((^H_Lm?-nD7^3A;R#SDuki@Hvh>AJ7o(g155PN**kD=)_qH74@>g0H*BXH6r( zPaiRr%>+w5*LO3wAgdPbSRjB`H}o6wf2MMW+>HAifMT%3^x?_zy7&WkK;YBan24W2 ztvXw3>u2$rOL}rsuX|>-nRpQj5?!r=9}-oz6}nIo>&=*_$GV`q|L$ppYz&|By#)2b znutJpRgZokSVUKaufE?H5CFxkF?h#|Fhc1>^Mr_Tfn%v00OEY$F6cXODR63cuMc(A zEyG5D^o{n#E5_Fkk>AU3ZEoH&pI@}t2e0_RqRoxY;VHd|MCln%IO%C2c0la_WqH zd`Uaee1}AoV@>u>t@pjBs9I9$@$~kbuuge7jRgwr%gbYV^aZSm=Px8xQD_a3HbGvU zjXkce{RG6GWQ0#6@F3txL0)$(zdWy&Oqh1z#x}xvL0gmZ={ZOwf~i33G}x+ek)9Ad zCB<|TPyFbj*Fm}GB+~lG{N>{ybLsIt;9eMct!S&*dN@yYN)j+*_&dEr^yXC_yQ5j8)u?B_&cs1N$PEtq^TlkmD;^B zlh}q);Rl(j3o+QCX?~#@%Vp-=`cb<|zm>3o@*g=t14mP;(l~3k>oY{lN7huN-z207nK?a|4 zz3?0;-G!nm(27MwuPPLnP8ry}-Afo4FugE$^p=10pj7XxnJZETQP};fNcEB_wl;Qr z?c>$zJF7A_`v-QBP_9^v1UQnBP#*EIkof0eyd^R!Ml;8XWU_pXpVM2Y%ZB!Skxl* z74Yb-dle!jpsH4VV6#G+hb$`c6`zkX4@K0s8tz=mr`ao4P4g!lKzqTN(gxirBWk_h zB4$wz>r~BL9qB0g(1R)SiP&Mld#Z98DK5A{2Z4(n*+3uv@VbqqOL9iOW7r2@F{t-L z%-J%0!Y;06=G!14W8Io(b$q3u9S)%wB}Jz(ICO(}&$OsO)s6ICkM+$7%DajsEzI+n zG#wXyykxn(0r$zp$+qK@F7fz72@ZJy&+U(lS01C0NRlJvok*jei}?YCYgCk|yK|bm zCm3W1Y?ow}OdVIJ50sfe8I_WF^!~kt4=v5HFLBBWH-vw9ww%X!eAhvRfZbcIiylF} z`H945k`3>}I;Bf^ovL#}t1c^=nrz4I*YijWlx=Dc+TYToO5NufD&|Co zvu4!`fn}|?@(G)lm$iJm4sb{`MYomjPJF|d6x(oM8y{7?3Ax7!y#Qqf*FFjNM$GHa7-dTZFktugZl-2*Wb#BP}rb5N2Y=2a*?__y5c&tO-Q zsv{3>iWR#VEzj2LxeVd@C|3cfycXw*uNc}M^jk14QFo=NU#sA1wdQUc;YZ|vmyVJx zRm_VE7H1Vf3(0(cx96eh?X89FvB%;YcRq$QfXrqgc2|pWB701GwC~R>|F6B!9uP6l%1*nQmG(?9y0Os> zgr9dSsd=wW8IDGgxd})`cQK4SoKTuZ0%4SSDvhs-#Y6^Dhzam}04GyX`DoG4tuo%0 zXuHn@MBrQBbQ6m`z-!tCt}Vt{t~X`M*`|8UR52;cd-%=AA#2;-ocLh6%V*}$tztwg z7VDVS)Tx2a2tb|srxrTpF|at6d_IY-U9N-oD*c-&?yaO0uzMO7mt`LPyKwR7Gl}e* z65*ppqX)af6Q%;ipYp<#B8f0CB3&J}dFChnawJD0#7?6Pq%n{cObWm1%@u=fyn*xl zdamc3B|?wuIMo6|{YjJLr&U%=+Y$M7>3?Qo|8i~uUP}NY*51Mu05fcBZk3g$xz%hE zL;MuNbps-g&@y5*l}y>TX#yJ43K0<(nolTPZ3j{hvhpt4Hx%?ZVqde?b@!1Tcb%!m zPtVRud1vI8uIl*jXP>#Ki@Iuxtt)tK6b}TkrOW>_ac65_7Ed3MM~!f{r61Mg$CT68ZqP)0MqV zoEza9srNeivlJ!MfXyj8Pc31RWYMEjI(OFhKY0n6Mvkjy!=A{(&;~9YZ2b|uzf{Zq z(0kh0z{swU4-HjF*NN z;QeeTJ3$w>59IGfVR73$+4qs;mN(^+JKN-fv32bHGPFmta)-uMR6J<3{RUy5*iS@k z%ju`G_diw`ASe@4AUaUl;`Smv|I~u-)lll+46C104`lT5L0ZDSzYKcQG=Omu__tRu z;_}hoK5iRo&|axJ?yCOO^g5G~W$s|Po=ez?t#Cnen%sN~a<2Xw@0x;5tNsBXE26xH zP(v>A+2h&msqrMLuy|m_dgoA#Ld#3gl zqT*+AYsAbS0T8d6Q#MXN1(xC{Z6H3(eTe~vNI(83;^RKvz-!d`fX}*L6=Wx5-3hQf zjnd{Eb;P1od1zu@VnACUp&Jaz2Y3=Jt}k?#1y$TQ>mvFd*7GQR!AG`x-uL22kA+<) z46?^cM?;%js1tDTAlX-l_d&qsisR(%ThyAVlEQz0y51LXmj#oSjg(nM{(=G_XORT^ zT{Q_IQ)N%OdY3oqruVPy_?;=-@BfXR`Cd}9DUXPW76$B_G5gX1&73F}_7zN4bF$ei z3J(K)Y`%1qqD`bP^pr#Mt9ib-AfE~{ zH%25uD|g(`-x4q&HUTf$s9ew`hTWuRIKL=_p;vK<;J_4I6^#^=O8`>}yQfvr4FN~2 z_5SHSl3qyDxDi>iA*G(B`E@pQANA(Ogm`2@s}KiUQscq3i31fdz^pKt-#=B27D}0SUHK{suf{iyH-JxcEL>ONEw$fCXLFdX5tsdRKvZz> z-AlK34QY55i3>FgbfE7Dc(CQoo?6 zUz3L4Upmo;ATl;@GJ%k%k%}Ne-_L6$g-NiA5LKsBWP#uAub?#(&RDmr6_%*=5!rL> zN!<~$ucztYzpwJwE^DTrk=0E~Q@j?Z|@F=7ea`5#4cx)~%LdSN@hb zK_01kca%BkIJ1%X8+AQdas1p3w^DxtJZVvB{<(9cs#hR+~mE1IqN0{5MkieYRAyBDn z$??YTIJ&`PUm)q`PY1@Iux$=Z5mei`ow+d&N(*0KW;N(-$Kx-;vMF^o&pqs(g*c}a~#6m-09MJcT zuILQDs6cePw7~_k0{DK?Vgyt>Np#Q`GBfnQ$jq{|K$Ngtv z9WO1?AT3e{jq1XLH6vL!zHEIuQ^hqrbg8)8DdNBpx*sICsgC5LA@WOs9nLVsZx1{k ztQ1Ti(YX4udN6X`UOcphX|aS^5oeg@p|y1aYXlxH*{+v~y44=8Qhl4He%E~ez5^D> z9avuy68z&G@Rz`Ux{h!|`PpyBfp!&EIr!!?%=EKR&=mg6Yd`kM!>JtjV4bkmpcB3< z7c8)n#_h?*ZJG!}cU2{^**EWz5D~Zpdh1b$Ia_iZ%1AqT$xLGZDLaW`cC>Dg(z7Kh z-`hZmX$a~=1)p;SKTJoVzob<;_lwmzTFAcSeEnIG3S|De0?qs0%>pz!eR~0<_il}B z5lVt^AbI_%_#(|GI3UU-3-H30&lL{@@`I@-p)Wk7&X4PgH(tYAO)2HsZt0M6ZamKG z)NW}|Z`HpS3NoxN+Tc#A)XD?%{Z{Ebcc7pzOZB0gZexh|_J)xl2jmD{7YRx5K0MCJ z{tpL)Y$dW5qIxF?b_`@D0u#H+%-L}ZCNMRejYr2EKn9B%7Y4_N4K3S*h0UoK2#_>h z$9ZI`5Uaq^m?!4v1;n)ts+7G_^-F+m#1R0YRb^B&8x6UdLx(pm>Qpef%GkfH4Rn9WK~d`h^Q#S$kl5K8Vl~} zuBPxC*8bqYAKv{nZfEKx<;f1gh!Fj}Dp=!0Y z2S@$B_!LRt@ou9l?@i^ z7faX_!$7XxIXBq-euB}#q9`G2FlJaw{>HOa9P#2`UOXG$J9Epgit#H{#sQzEyMl&P z7ybgpb&@?YwN*9}dK4k2C43}g5B-Sk?2J?#J#b_a?c=U@^_A+`cGBJ3;{3bIUR?V? zCULa3vzJQ6nZb4JnbvnjxrfULfu$mNs-6Ny=RS`Fb(=0S)f(0HA2H+*bgfmLHTmqWQFgla;W=1i)+|+Gvaf%*K@IeM`FJ* zL-tUN5plIwnpe0WZA%0wR$X-yJhNh}@!7U%h|N*Np7W#n0$`n!tgkVXVsv(1HZKuE z-}b2ZR*I2Z%V&c@mr;G%-Pdt7)R+HK3g(K$kST=tw2G85O&q(nS^yNm>_NgS;>n3- zxVx_<&Mr7fUz&bhz5b_je#Go~ZCa$h_EFtJ7+1NFaRs73kR5~Rf^+F?x(FQ2l3#FYj#SU1~AJknCf1tP1988uKOebc5Ui)(}269xnTfB z-IQ?%b`sq9Gdi>_v(>6HSa0|!X75S?eg=AJMfCDPmAF+3;n~|(I^4%on5Dko7A#HI z*K2|h7)5e9xexBUDlZqw@m1j0Cl3xaXT)8|{yPVRfj+j?xr+Q7q)s2hpW(hF1Cl9J z!Tr*o9iy12Kg@Zk)KNT#S?TYf@2@W5(~(qFs1W>b8Q|}n;A?uwk%kKUqIism?2g^e z>jSLgeV~2W5tU~VH#!3hqmf`F6#;6P7{qT33?EKs*KDoVE!msGKExF0qGv`O%&rt$ z0(~o)%ho!Mx9bCFyV;~G0+fP)>ypE3^dTUydyz0pt)cr&{;Rs>0G;S4BzU>YZZ~a? z?7m@{l_y>2mFxit&m`sfVJ5LkBfT;Q5%mYRg2x?UoP}}f(ZVF#P$h@JXyAI!6UGz< zHOy!4wd|2fy>5IsJYR3$i3E49*!;`34R7}|#eHM!#8P4X>#8^v5qy?E+h}cjyOjI- zQ$<0iBC*_oUZQd}a+r*-mqjTQtZ&g1Lz&ZIP?*^lATK;$YAhvzl6$SCFkf#%?z)pV zE|u<;d&Xayn_F;JB8id&#~r#fG-kVrGfCVzPD#QfTWH4{w-`uBwe@PNa=LSq2$UD# zMW#S!mQA;wuO1Bu{V~ZJI^|Z}Z;@FD@1H3)t9zXxqxU)8#dB!eAVc)z-Gobb{^HlZ z?PREwJx6;{JKUO9<**dSBRD({0zW~3j#+vrO4!9l8!{Y_A$0@ITc^{gIn+~O*3T|% z(*sm)h}yPs0jYghW@+|PYR(RzPlV&(yGN3a%&#BaBwYVTjxT4 zT}l#e@1ynQZ$P8P0{ba{rW77qTA0V!S?XR#FbdWZe1six#L9E@u>I+JzSodc-&l^l z6op)Mex^H+sL--pWvTDAHX(W$$M9QgKgRi+z)AIZ3Zt`DULf*OU{-((hXL#8O3khB z?u=Vb?Ahsbd;@nh{KLxwjQ82)YsmeNXh!H-%5ELhAXY}uXeaH*n zHklKI*#6@V!cE`y2K@Sb~Pv8Womq%sex@SO(=Ys>sm(={HmmyZk0uAD%>crUH|E`Gt{U;KlyEn)1cR39r;C`v6*&JVG!1_mE z5q9O)M%#8}rP-(P8zJ-&UP~_$Q;Um>n+<`Ad9CN&ljHw=AO7 zS{?ZSWW1opz0%dR%r5GL%KB>ffjHs+^Y=$CHmR2+6YnN_l7iJ2LV;=_DkX$JgO%g= zsrf(sVlu?%Xs}xfzfUpZh@}#&zXAYNPO=(O;Ak6%Y*$snI<=lQ@Mcv=PeVCuEL8=K zfM9m9_8eUScru37i9!31hf+_NdZ13#7*H%w#t+*3xOG-aC#QM2?-`Z=f!s9RNmsV*<9-p*>Sy|W8g z4n?Z)!a5qAyKDCD#*(w#B@OJVn=Em#C^5BCyN5FMF{2x+P6f1GpxFEQtTj}|PA!e~ z=Bcu3%T&LkMa;SHP%7?ZFJ$e{eLNKP_C8nW>wu;Dn|Lrit!)%X`SP=y+ z{2B%LaI3(D^5kt7U?w$qi7h@+Oa*SPOHmM4?<(4$oMm%Nk6&Uhi72(%_ELHM>rFcA zZgJ7!C*<^J-hdCZb16-C?>OY$rcgW-jH+GMH79zkuesm2DK!KXC@QA`;hTX@a}4LK z!Jx@j75ToIJHf6sFZ8z$m<7e=g`X08p}3rpkWPAOjQ z6H@v`*@MHHy^OW0S(&X58u$mSR9r^p7|vMFc}rwmZED1g@;0W8`*K>vNUW_2v|XM1 zLUA4W&i*pY+rr9Qr&L)!e`8Vc3JtQPY6}vFUAh^u5k|*$No!D_ml-PXf+hO?>gD)_ zLhCng_c&WQRh6DsmJzSe_kMtZ;zZ>jrTrCwD>GkBd zBvw}8+DsV+?(HkCg)RnL3?;al2e;amXdl?MaIEJn7fdy*npMq3&fgMu9p*~BrjxW$ z5j)||q3r%6hEOF#TF&tu$L%es2bQOO0n$aqYjxaS&p;6(*Ge@-dj_^kw>UeOf$)@F zB&0**)bAghuk?IceR?!7)~1}T?xxhyhuTnmO2ZhdarkPW|rCs3&bW}?DL#uSr}>0)z|g7G~wGY&ZMjrZcI0vJLq zCZ=8xl7({Dl%<9DX=e9?YA8yk=ci%r+C2Ti?3G@czyjUd^tcSnBd**REPpuN8ot21 z6!H9e$lxYI(HYW1W@vq@ZpheUNGLwr%(2E1Ri7U!aTc;BpK<{cfe*^Y7!~KbaPrHW zS{ojd*O;_TE(V!188!OZXE;?Nb@_fCFi*g%v1`~rkSf!kJ3tXn+F;zky>4@dg}Jy zqXQ(oz9xay(;Ib*{QYJrf%a5Jf!~0lllOiJrn}-rVa(cj9xvqi8~iMc+}^-bFEG;c zP`U>)x~iNUwCn4-f-v%2*wR>%LTc0?oHFF|@8FQ+&D+7MM$D zaAj5F3_@)K_2p7s_&vOGoJ*BN8W>!q4x7IGLpGT#k|3tzUV9cU1kR0CRNcRIY2Pc> zRY{0_18n+FGgp-j>J(%iRug1z7OKXj!xy^|Ht9yCI&Gd1N%NZ^PI`C zfJCTcb3SwS41ufI)D7`mggYi!B(u;4o$;9fgzx5MZZ~3~rPgg_(rynNhXLF4^$XJ1rxm8B93b~_6g&%R zB!>EIA|Zxti{WS@QWv;7Om2{RL#txc? z^m!seuxfDjWCTVsAlCM})A&@lio$EMn~jk->OV|~t(H|rc|oAmAZ4fKaEpEtnsUEF zSP^OL`{ArF8!ZY#Q9?DdL=`VlByG~zyV`SpWSHgmjol{u;4m@*-_Awg{$WvFulbPI z)s1b>79Xi3JfdVuKxT`TpTF{q-)jR3zzW8Ss=ZQovu|Lcaau_fYNO^t7=~&rh)FT4 zt_3}(pf1<^Zo5se?c;stT6Dj_vI^hR6jX;ge0tNLX(NgChGC~kq@H?sCeOWL+{A)e zN=Hye#2@-3`tz4;hbxUViq?aSO*~N4+#PkQCYSA`Tx&y&Muno)y1Dfx>}ZagmDbXe zkEAeA2>M3lFxw;*Da)a5D;&KWj#)Z6vPf7N*_suOKhXWzrWZ&VH3C|$8eMW;PT zzBE#ji#;hRy*RF%8ntc(kg4M01!dCrR*?UthNk84w3Lf+x(iWNo;jTR>FOL@n~xiC z)J@7k0ccj2o=`O1twVD*Vw{aLRNz|xa)0}eV2^IYOsT0SBC#%$V*$p1@$~Aw8W;YM zooIc5BF7K&GwVLC9GGobnZ_f7DhB5hd(5wI-&Z7NHjO;w%Qq;$w&x=An?TZF!@@wr z$DKC79&Ref=nTDH0`ecVlL7czovDG@Wh$)i*1-4QNj5_HnK|X`i0p`HwU)+0uC5o1 z$^(rYvp!JS;+3<4gk0T#%D!y%xNW%H@$<92J2M5OR+6Wt6Lz*58dclBuL??1siFH@ zL54|iFNI;9Hd|A__4;jPxq5e4pbn?S(AA~uPtQ5vpw!fuU4qh>bE)VG4mGGfBdnwD zl@LlxQZ93O(=MUW_93omsV&Mv{>&e41gEc}=d?=Qt6}f$O)JAd82|C;!QL1(&+>;L zKT&e7K!(Vg8d~$fTavTYTblFy-8HU+NjM!*Dx>ahE5WgKHsa4P zwZ#Be*v<_kgz`HCmfK2(-7?E9Ft}k64M;`aSy9f}1)d+?3JXstob0X6KXr}@dm?gA zfQ2;?pgG#0rtJ%?G+PGH5nt{O`okMRmUYD!2K&M%sbC&G%o=(RnRotJtEeGXARYP2 zLvD}Lp1}W6_%@xJf!>L7 zIE4DB?h3T_RD2cKP#Brf;s^Ts^KWA5-sK44d(zy*8-G9E7V1fMI!tEI1`z%fk&dcB zDG-!o+STw-=Z}}!1N=)(oU>w5%FD!43v*Cs)X+UqTU$Y;SvVCOHKc0mD%u({Buy!| zQvdHhFN?(YN9e3Z&AOVQ`&n ziD@&8T?a|XX)Z}=`%6ClHs7P`(4rqt001CxP7IPK?V71+<6EhFgWc*g>)ubMUk}0# z)liK5e70;$yw=TM{Y*QrZ?#ChlwHSI!wW1dOGFAC;-UxCr=$&Ybq;>-QeL&4Ub^`4 zEB>o}CCXyOarN9JvTPD70gJyGZBF;f! zy$KSBRdMY6DLXZStjolY=_6(jpsl5U^*Nb1X(jYHL1Cc%q+h@;PY5Rk@|h!V=3BPh z3gnx^v=q9ZrQ@7jx8Ox>E9gVHUQY?6KKT35T$A|%Iz#d>i!f}dO(uJZOxOD1>td1Q zu+yH(r>pH%72SKU`NW8p8vqJII>6Ba#ek^2Qxn_8QBXUq2i5!tD#u%9r}GWjWxKsR z`kzApvLj}XB!Uf*F^eOBHfSUnAX)wO+Vep$qC@5Yk-$7z;)+c(D3?7$tt|oC!H0BH z)w)02*D2N42EU#vHFBLTls5szHvB!b(C+IyuGN!D@s?Q~pAGtudDYZ4ruEyGKj=9g zbc$$n0%f$0nUbmsp-}wqZ<>AHuHk%SDoDuWnK_bD#{=JS3eu7zJw%>7kt^NUfI8kg zA#w<=8Tcg;8d}qei{kHlgcLMpEUk|>89AnrnFgLtI6DVnY07&-Ej{~b5?Y%U^lgrs=G7pBjWaOrGGUu`dATC%f;QI6By$vHQq7Ee;_S?J zTa^47Dh1Dbw$=;~Ebjg|mzz|FGOhs0OFPiKD|y)nUfUg1MlEER`Z4**myL6*E@a&U z#$^hmw{HFZo}_<$f#DAavyt`?ba6cKptr>U*r_r;Jt~CaQlN2oq5~4WHC3-V;YIXa z-V>;qwtv(Ibt4&V34diV`I>9_m>Zt+PrZ$mFWt(S>QVOnN3)@Xo`Uh6BC@QCg*7ZJ zuo8kyt6)Gk1?KBqjrc3;X)_I)!!l5lXir(-^Rka7sVIQHJ}WK9(oTEesz%lLRuBOj z7JD4BjfWr*_iaRUi~}izqwZv1_v@1QD>#a0KT_JYzNlpded-d45Vl@2`KQx+lu!#u za3?eqx8v^19Va|d^hkzO1nZOufl_&%DJpA%t8h>!9mRe?@A$g+F%yreT;3eWuwa?C zzCTXZ<=}yJF)PQk`<9s)?Cb9SM3aB+;_ngJI{T45cC%0wYKgBv+KdD`!F)_bu-H6u z+o)$UZgAvkYO#mc%;5?>)|Tw^POpIlCoS>G#31P8p;;q& z7IC)(1F9=?gx8iFJn0Y(jZJ` zonm*84yRbF{996G`mY8{27A4xq*q?_T4Hdd(+9{dWw7v&McP6^!!~@Z6^oSrFfn>T zThLZ|CjqP=%+)F-_3kAR-raf3@Dg_DG&rlF^}+(GsTIE53?YGCNCfFAJk+EfUv~`V z)XGoQ>>X-G7HYw_JwACIkmKkC@D%_Y8pJ80S3n;{m>d1${m}uLe;(mC*$05-=lTR( zjZ@FjMLro;xC@lr5o1{oB|_hT;aXt4DmAh>W0jiZaZh9dxe5T+gD1A`Z-tpRxyAm1 z$BmW`ag{O;!Gn))EMGC%h1PJztiQ>Nl zO|LA-8G0(A)J)Z(^K=9!3EIa2Uy?iteJt(;Lc_bfA@-{b#!(86Jxx}yI?iz3l|8JH zYWdE`PtvemY9FW&GLN1-EVTIHc+fNwRd$BP!1Rm$W?G5h#kJ-T-WBq=6oJ*OD^;sr zJ@~uSuWhIL42M7HxHoXX@=?wA(Jd-+uV_^K>O|(c&4D)G9ki|+io)IJZ^eQsZ}_)p z0>t-QN870+@rm0T6EmS!;kLcqs8bUNVxCb~xxA=c3uLoIBgZbXLN{RgVd1rkZA?kG zsa*U>-L_sward9&_dDya_}7AqQc%jrRTMCBya_{E9wXFj)iZ$$14dthMe2O$hZx?b zKiljKnPh2ed&}ZGe=w_KC~%sb!WUtBYCZnTiyz`#4%z31$oeC8M|}!2u+a9!@9g?S zT{xrcm~{#;XeUa@EdV#%$n%01i)-oG6XvwiSFliurjBQ$jNt=t;fP20*v z>Bl9RO|f+YQ+XjfgTI{v$V?lsYXxwROWf$hjWL!fq<;t0xFNv-A&463Ro)4wEID;3 z5fmOdKUb%>C&_tyJ<3hR3DEO^vBv@Bt>je6$FMf&sLa3W;T4LAuJQMyL~80~NxD-6 z>+%sK}F7&Tc&jn%i?AuSeU`Njvu_$EfrvEXyoVB=qLF zhKt3(lbL;b4#Fb!wQd{-EthUoRYZJb#d>fFh6(tCg|IB{sK$5lJeyD`j7$r-W-@*k z;g=jq!Iv}2YAj*t#Eo_@xuV$p!yn3j)O(94ek`y`fGC-OI=NofA$>9pp0c>GDN1;& z)ukHSH_g>scT#0hL~o|7TBwxO*%|aQF<_zTSY|-|htt9<%dCH}62yKwL3WLuqOYf? z=X5D6`wsmFDR`uYat?+}N7|^0yK2l8B}iz&E2x$7a2aQqMArYrtU;UYWxY-pBB-bm ztgIUUv9LzZ6DnvlFud7u#9*HkzMdc3{(9sHj=SwzHSH-?=BDQ)I2{ajX+uy$u?gL^ zC}Oi21IX3}Zd8TPU~`IIubzt@LI?&IgF4j)*Sdr_m+BD3Usv<1(S>R@ zgz7UCzXi1WAhEZXSA@`#Atatz_aghWd9Sb@$P)slF6#|V)-PDv$$&i4;cP8Bq?G+7 zLVp&Gd8}6RmIOf`{7j78@=N>bLhMF7S6hUr=snVH7UqFx{0aRy;A;6OS^%P`mFlZ$ z)(&mq;F9+ft?{uhxeXGGa+;z(W|f$O((n{y3wCsA6cn^Q2UIgt(o5>!4As)w<(~Y} zd-D*Ci`&@&%r0zu3p3+F~(EE&unAurEOGgaI>IOE2S7V}kO`LbQFhO%q} zg4!ux_0ry=zfSINrS3ik=($?b-^2~|O;7V8=eF3Z+@fIrXb#wl)`(NH-SLroQa-mU zQ+ort0wA*zUR?baH*0KofOkosrPj<)Pbd4dgyAmut*Nk&f~*R1_>-7OH{_@GJ3aa~6RzlX(z8_| zmDHjy+&&k6R~Nq{?;n0)_7WzorniJC{^jZalYIZ1@iv_6+f0#l3p<_C9knEDh+aPqq|M<`U>xajj2S`$@GxXo$X4u2>wq3gp?!R?i zQuPm~dgp_a_Ch~g^hFAL_ka2mzk0)+P}gz{zA>kHJs>Fmea-**lXgF(PX3;3j?fSO zPj_bLLHL?Njb-t&aP$w4;xHk08|8-ja-yX^T>w2R6HV$C>r2ftC_7f4zD5?+$+P ztIL3u#*zaLd*!bmE}6ehJ=qetR3dc2`tL6jbKhoecx0iED*{m~m|toaRs(~z%p;np z#tNvl2drS9dS$}mR~^?_CjhLx`Csq>uW84l43@M)fmP<#Q&TVb;WiP;l)nnV zx<~$k>?9(LZg5!50j%n$YA>CO)3HcKv;1-d)|vJTtW}T&ar!b$5a>&-a4&13lIE9Y zVA8B}DEA=Bmur=Pz6@PAr3^mrfmysFL|(81Ywy1e?6yJ ofgc$4zZmZ-66MP+T?hU%vn_t_5?$+XgaHUVUHx3vIVCg!0G2%3&;S4c literal 0 HcmV?d00001 diff --git a/3party/asio/doc/async_child_agent_chain.png b/3party/asio/doc/async_child_agent_chain.png new file mode 100644 index 0000000000000000000000000000000000000000..4ffebf46733a652e28e37abde6ed742b87d7ffeb GIT binary patch literal 156939 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 z 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 literal 0 HcmV?d00001 diff --git a/3party/asio/doc/async_op2.png b/3party/asio/doc/async_op2.png new file mode 100644 index 0000000000000000000000000000000000000000..cf7cb43db709e2d85e3cfc68d04419349efa8189 GIT binary patch literal 36247 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 EKl+p-uK)l5 literal 0 HcmV?d00001 diff --git a/3party/asio/doc/async_op_init_complete.png b/3party/asio/doc/async_op_init_complete.png new file mode 100644 index 0000000000000000000000000000000000000000..516009a7f1ae50dddd774e81d53eca218da9f81f GIT binary patch literal 57136 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 literal 0 HcmV?d00001 diff --git a/3party/asio/doc/async_op_model.png b/3party/asio/doc/async_op_model.png new file mode 100644 index 0000000000000000000000000000000000000000..408bd84dca382960075e9ca0179c2e697ee154c8 GIT binary patch literal 59945 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 B>URJD literal 0 HcmV?d00001 diff --git a/3party/asio/doc/async_op_phases.png b/3party/asio/doc/async_op_phases.png new file mode 100644 index 0000000000000000000000000000000000000000..6680bdcba3e8ab5d6c7aeb7130e9f6ffac7ffd6b GIT binary patch literal 105557 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

HnJArc{C>&>N?mThRFP`=oo1r-{KwPl9j} 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 o3x0nF!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/3party/asio/doc/caution.png b/3party/asio/doc/caution.png new file mode 100644 index 0000000000000000000000000000000000000000..5b7809ca4a9c8d778087522e5ce04b6e90099595 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/3party/asio/doc/completion_token_model.png b/3party/asio/doc/completion_token_model.png new file mode 100644 index 0000000000000000000000000000000000000000..a7728d1a5262014d7826b8dc44c26e6fb0c983a8 GIT binary patch literal 145275 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

j8|ktc!FUoI?*)Pz#Gc7 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

w+D6Uyudsw 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 z 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

Bhs<5Onea;fpQ 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 HRp9>vxIg8a literal 0 HcmV?d00001 diff --git a/3party/asio/doc/draft.png b/3party/asio/doc/draft.png new file mode 100644 index 0000000000000000000000000000000000000000..0084708c9b8287c51efa6b40b8d492854191455e GIT binary patch literal 17454 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 literal 0 HcmV?d00001 diff --git a/3party/asio/doc/examples/diffs/allocation/server.cpp.html b/3party/asio/doc/examples/diffs/allocation/server.cpp.html new file mode 100644 index 0000000..e5007e0 --- /dev/null +++ b/3party/asio/doc/examples/diffs/allocation/server.cpp.html @@ -0,0 +1,297 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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 ··​{89 ··​{
92 ····​typedef·​handler_allocator<U>·​other;​
93 ··​};​
94
95 ··​bool·​operator==(const·​handler_allocator&·​other)​·​const
96 ··​{
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 class·​session115 class·​session
121 ··​:​·​public·boost:​:​enable_shared_from_th​is<session>116 ··​:​·​public·​std:​:​enable_shared_from_th​is<session>
122 {117 {
123 public:​118 public:​
124 ··​session(asio:​:​io_context&·io_context)​119 ··​session(tcp:​:​socket·socket)​
125 ····​:​·​socket_(io_context)​120 ····​:​·​socket_(std:​:​move(socket)​)​
126 ··​{121 ··​{
127 ··​}122 ··​}
128 123
129 ··tcp:​:​socket&·​socket()​124 ··void·​start()​
130 ··​{125 ··​{
131 ····return·socket_;​126 ····do_read()​;​
132 ··​}127 ··​}
133 128
134 ··void·start()​129 private:​
130 ··​void·​do_read()​
135 ··​{131 ··​{
132 ····​auto·​self(shared_from_this​()​)​;​
136 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​133 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​
137 ········​asio:​:​bind_allocator(134 ········​asio:​:​bind_allocator(
138 ··········​handler_allocator<int​>(handler_memory_)​,​135 ··········​handler_allocator<int​>(handler_memory_)​,​
139 ··········boost:​:​bind(&session:​:​handle_read,​136 ··········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·length)​
140 ············shared_from_this()​,​137 ··········{
141 ············asio:​:​placeholders:​:​error,​138 ············​if·(!ec)​
142 ············asio:​:​placeholders:​:​bytes_transferred)​)​)​;​139 ············{
140 ··············​do_write(length)​;​
141 ············​}
142 ··········​})​)​;​
143 ··​}143 ··​}
144 144
145 ··​void·handle_read(const·asio:​:​error_code&·error,​145 ··​void·​do_write(std:​:​size_t·length)​
146 ······size_t·bytes_transferred)​
147 ··​{146 ··​{
148 ····if·​(!error)​147 ····auto·self(shared_from_this​()​)​;​
149 ····{148 ····asio:​:​async_write(socket_,​·asio:​:​buffer(data_,​·length)​,​
150 ······​asio:​:​async_write(socket_,​149 ········​asio:​:​bind_allocator(
151 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​150 ··········handler_allocator<int​>(handler_memory_)​,​
152 ··········asio:​:​bind_allocator(151 ··········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
153 ············handler_allocator<int​>(handler_memory_)​,​152 ··········{
154 ············boost:​:​bind(&session:​:​handle_write,​153 ············​if·(!ec)​
155 ··············shared_from_this()​,​154 ············{
156 ··············asio:​:​placeholders:​:​error)​)​)​;​155 ··············do_read()​;​
157 ····​}156 ············​}
157 ··········​})​)​;​
158 ··​}158 ··​}
159 159
160 ··​void·​handle_write(const·​asio:​:​error_code&·​error)​
161 ··​{
162 ····​if·​(!error)​
163 ····​{
164 ······​socket_.​async_read_some(asio:​:​buffer(data_)​,​
165 ··········​asio:​:​bind_allocator(
166 ············​handler_allocator<int​>(handler_memory_)​,​
167 ············​boost:​:​bind(&session:​:​handle_read,​
168 ··············​shared_from_this()​,​
169 ··············​asio:​:​placeholders:​:​error,​
170 ··············​asio:​:​placeholders:​:​bytes_transferred)​)​)​;​
171 ····​}
172 ··​}
173
174 private:​
175 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​160 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​
176 ··​tcp:​:​socket·​socket_;​161 ··​tcp:​:​socket·​socket_;​
177 162
178 ··​/​/​·​Buffer·​used·​to·​store·​data·​received·​from·​the·​client.​163 ··​/​/​·​Buffer·​used·​to·​store·​data·​received·​from·​the·​client.​
179 ··boost:​:​array<char,​·​1024>·​data_;​164 ··​std:​:​array<char,​·​1024>·​data_;​
180 165
181 ··​/​/​·​The·​memory·​to·​use·​for·​handler-​based·​custom·​memory·​allocation.​166 ··​/​/​·​The·​memory·​to·​use·​for·​handler-​based·​custom·​memory·​allocation.​
182 ··​handler_memory·​handler_memory_;​167 ··​handler_memory·​handler_memory_;​
183 };​168 };​
184 169
185 typedef·​boost:​:​shared_ptr<session>·​session_ptr;​
186
187 class·​server170 class·​server
188 {171 {
189 public:​172 public:​
190 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​173 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​
191 ····​:​·​io_context_(io_contex​t)​,​174 ····​:​·acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
192 ······acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
193 ··​{175 ··​{
194 ····session_ptr·new_session(new·session(io_context_)​)​;​176 ····do_accept()​;​
195 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​
196 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
197 ··········asio:​:​placeholders:​:​error)​)​;​
198 ··​}177 ··​}
199 178
200 ··void·handle_accept(session​_ptr·new_session,​179 private:​
201 ······const·asio:​:​error_code&·error)​180 ··void·do_accept()​
202 ··​{181 ··​{
203 ····if·(!error)​182 ····acceptor_.​async_accept(
204 ····{183 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
205 ······new_session-​>start()​;​184 ········{
206 ····}185 ··········if·(!ec)​
186 ··········​{
187 ············​std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>start()​;​
188 ··········​}
207 189
208 ····new_session.​reset(new·session(io_context_)​)​;​190 ··········do_accept()​;​
209 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​191 ········})​;​
210 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
211 ··········asio:​:​placeholders:​:​error)​)​;​
212 ··​}192 ··​}
213 193
214 private:​
215 ··​asio:​:​io_context&·​io_context_;​
216 ··​tcp:​:​acceptor·​acceptor_;​194 ··​tcp:​:​acceptor·​acceptor_;​
217 };​195 };​
218 196
219 int·​main(int·​argc,​·​char*·​argv[])​197 int·​main(int·​argc,​·​char*·​argv[])​
220 {198 {
221 ··​try199 ··​try
222 ··​{200 ··​{
223 ····​if·​(argc·​!=·​2)​201 ····​if·​(argc·​!=·​2)​
224 ····​{202 ····​{
225 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​203 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​
226 ······​return·​1;​204 ······​return·​1;​
227 ····​}205 ····​}
228 206
229 ····​asio:​:​io_context·​io_context;​207 ····​asio:​:​io_context·​io_context;​
230 208 ····server·s(io_context,​·std:​:​atoi(argv[1])​)​;​
231 ····using·namespace·std;​·/​/​·For·atoi.​
232 ····server·s(io_context,​·atoi(argv[1])​)​;​
233
234 ····​io_context.​run()​;​209 ····​io_context.​run()​;​
235 ··​}210 ··​}
236 ··​catch·​(std:​:​exception&·​e)​211 ··​catch·​(std:​:​exception&·​e)​
237 ··​{212 ··​{
238 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​213 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
239 ··​}214 ··​}
240 215
241 ··​return·​0;​216 ··​return·​0;​
242 }217 }
+ +

+ diff --git a/3party/asio/doc/examples/diffs/buffers/reference_counted.cpp.html b/3party/asio/doc/examples/diffs/buffers/reference_counted.cpp.html new file mode 100644 index 0000000..43786e9 --- /dev/null +++ b/3party/asio/doc/examples/diffs/buffers/reference_counted.cpp.html @@ -0,0 +1,181 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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()​51 ··void·​start()​
52 ··​{52 ··​{
53 ····return·socket_;​53 ····do_write()​;​
54 ··​}54 ··​}
55 55
56 ··void·start()​56 private:​
57 ··​void·​do_write()​
57 ··​{58 ··​{
58 ····using·namespace·​std;​·/​/​·For·time_t,​·time·and·ctime.​59 ····​std:​:​time_t·now·=·std:​:​time(0)​;​
59 ····time_t·now·=·time(0)​;​60 ····shared_const_buffer·buffer(std:​:​ctime(&now)​)​;​
60 ····shared_const_buffer·buffer(ctime(&now)​)​;​61
62 ····​auto·​self(shared_from_this​()​)​;​
61 ····​asio:​:​async_write(socket_,​·​buffer,​63 ····​asio:​:​async_write(socket_,​·​buffer,​
62 ········boost:​:​bind(&session:​:​handle_write,​·​shared_from_this()​)​)​;​64 ········[self](std:​:​error_code·/​*ec*/​,​·​std:​:​size_t·/​*length*/​)​
65 ········​{
66 ········​})​;​
63 ··​}67 ··​}
64 68
65 ··​void·​handle_write()​
66 ··​{
67 ··​}
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/chat/chat_client.cpp.html b/3party/asio/doc/examples/diffs/chat/chat_client.cpp.html new file mode 100644 index 0000000..6dab77d --- /dev/null +++ b/3party/asio/doc/examples/diffs/chat/chat_client.cpp.html @@ -0,0 +1,238 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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 ··​{54 ··​{
51 ····​if·(!error)​55 ····asio:​:​async_connect(socket_​,​·endpoints,​
52 ····{56 ········[this](std:​:​error_code·ec,​·tcp:​:​endpoint)​
53 ······asio:​:​async_read(socket_,​57 ········{
54 ··········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​58 ··········​if·(!ec)​
55 ··········boost:​:​bind(&chat_client:​:​handle_read_header,​·this,​59 ··········{
56 ············asio:​:​placeholders:​:​error)​)​;​60 ············do_read_header()​;​
57 ····​}61 ··········​}
62 ········​})​;​
58 ··​}63 ··​}
59 64
60 ··​void·handle_read_header(co​nst·asio:​:​error_code&·error)​65 ··​void·​do_read_header()​
61 ··​{66 ··​{
62 ····if·(!error·&&·read_msg_.​decode_header()​)​67 ····asio:​:​async_read(socket_,​
63 ····{68 ········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
64 ······asio:​:​async_read(socket_,​69 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
65 ··········asio:​:​buffer(read_msg_.​body()​,​·read_msg_.​body_length()​)​,​70 ········{
66 ··········boost:​:​bind(&chat_client:​:​handle_read_body,​·this,​71 ··········if·(!ec·&&·read_msg_.​decode_header()​)​
67 ············asio:​:​placeholders:​:​error)​)​;​72 ··········{
68 ····}73 ············do_read_body()​;​
69 ····else74 ··········}
70 ····{75 ··········else
71 ······do_close()​;​76 ··········{
72 ····}77 ············socket_.​close()​;​
78 ··········​}
79 ········​})​;​
73 ··​}80 ··​}
74 81
75 ··​void·handle_read_body(cons​t·asio:​:​error_code&·error)​82 ··​void·​do_read_body()​
76 ··​{83 ··​{
77 ····​if·(!error)​84 ····asio:​:​async_read(socket_,​
78 ····{85 ········asio:​:​buffer(read_msg_.​body()​,​·read_msg_.​body_length()​)​,​
79 ······std:​:​cout.​write(read_msg_.​body()​,​·read_msg_.​body_length()​)​;​86 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
80 ······std:​:​cout·<<·"\n";​87 ········{
81 ······asio:​:​async_read(socket_,​88 ··········if·(!ec)​
82 ··········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​89 ··········{
83 ··········boost:​:​bind(&chat_client:​:​handle_read_header,​·this,​90 ············std:​:​cout.​write(read_msg_.​body()​,​·read_msg_.​body_length()​)​;​
84 ············asio:​:​placeholders:​:​error)​)​;​91 ············​std:​:​cout·<<·"\n";​
85 ····}92 ············do_read_header()​;​
86 ····else93 ··········}
87 ····{94 ··········else
88 ······do_close()​;​95 ··········{
89 ····}96 ············socket_.​close()​;​
97 ··········​}
98 ········​})​;​
90 ··​}99 ··​}
91 100
92 ··​void·​do_write(chat_message​·msg)​101 ··​void·​do_write()​
93 ··​{102 ··​{
94 ····bool·write_in_progress·=·!write_msgs_.​empty()​;​103 ····asio:​:​async_write(socket_,​
95 ····​write_msgs_.​push_back(msg)​;​104 ········asio:​:​buffer(write_msgs_.​front()​.​data()​,​
96 ····if·(!write_in_progress)​105 ··········write_msgs_.​front()​.​length()​)​,​
97 ····{106 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
98 ······asio:​:​async_write(socket_,​107 ········{
99 ··········asio:​:​buffer(write_msgs_.​front()​.​data()​,​108 ··········​if·(!ec)​
100 ············write_msgs_.​front()​.​length()​)​,​109 ··········{
101 ··········boost:​:​bind(&chat_client:​:​handle_write,​·this,​110 ············write_msgs_.​pop_front()​;​
102 ············asio:​:​placeholders:​:​error)​)​;​111 ············​if·(!write_msgs_.​empty()​)​
103 ····}112 ············{
113 ··············​do_write()​;​
114 ············​}
115 ··········​}
116 ··········​else
117 ··········​{
118 ············​socket_.​close()​;​
119 ··········​}
120 ········​})​;​
104 ··​}121 ··​}
105 122
106 ··​void·​handle_write(const·​asio:​:​error_code&·​error)​
107 ··​{
108 ····​if·​(!error)​
109 ····​{
110 ······​write_msgs_.​pop_front()​;​
111 ······​if·​(!write_msgs_.​empty()​)​
112 ······​{
113 ········​asio:​:​async_write(socket_,​
114 ············​asio:​:​buffer(write_msgs_.​front()​.​data()​,​
115 ··············​write_msgs_.​front()​.​length()​)​,​
116 ············​boost:​:​bind(&chat_client:​:​handle_write,​·​this,​
117 ··············​asio:​:​placeholders:​:​error)​)​;​
118 ······​}
119 ····​}
120 ····​else
121 ····​{
122 ······​do_close()​;​
123 ····​}
124 ··​}
125
126 ··​void·​do_close()​
127 ··​{
128 ····​socket_.​close()​;​
129 ··​}
130
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/chat/chat_message.hpp.html b/3party/asio/doc/examples/diffs/chat/chat_message.hpp.html new file mode 100644 index 0000000..48b6634 --- /dev/null +++ b/3party/asio/doc/examples/diffs/chat/chat_message.hpp.html @@ -0,0 +1,136 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 ··​enum21 ··static·constexpr·std:​:​size_t·header_length·=·4;​
22 ··{22 ··static·constexpr·std:​:​size_t·max_body_length·=·512;​
23 ····header_length·=·4,​
24 ····max_body_length·=·512
25 ··};​
26 23
27 ··​chat_message()​24 ··​chat_message()​
28 ····​:​·​body_length_(0)​25 ····​:​·​body_length_(0)​
29 ··​{26 ··​{
30 ··​}27 ··​}
31 28
32 ··​const·​char*·​data()​·​const29 ··​const·​char*·​data()​·​const
33 ··​{30 ··​{
34 ····​return·​data_;​31 ····​return·​data_;​
35 ··​}32 ··​}
36 33
37 ··​char*·​data()​34 ··​char*·​data()​
38 ··​{35 ··​{
39 ····​return·​data_;​36 ····​return·​data_;​
40 ··​}37 ··​}
41 38
42 ··​size_t·​length()​·​const39 ··std:​:​size_t·​length()​·​const
43 ··​{40 ··​{
44 ····​return·​header_length·​+·​body_length_;​41 ····​return·​header_length·​+·​body_length_;​
45 ··​}42 ··​}
46 43
47 ··​const·​char*·​body()​·​const44 ··​const·​char*·​body()​·​const
48 ··​{45 ··​{
49 ····​return·​data_·​+·​header_length;​46 ····​return·​data_·​+·​header_length;​
50 ··​}47 ··​}
51 48
52 ··​char*·​body()​49 ··​char*·​body()​
53 ··​{50 ··​{
54 ····​return·​data_·​+·​header_length;​51 ····​return·​data_·​+·​header_length;​
55 ··​}52 ··​}
56 53
57 ··​size_t·​body_length()​·​const54 ··std:​:​size_t·​body_length()​·​const
58 ··​{55 ··​{
59 ····​return·​body_length_;​56 ····​return·​body_length_;​
60 ··​}57 ··​}
61 58
62 ··​void·​body_length(size_t·​new_length)​59 ··​void·​body_length(std:​:​size_t·​new_length)​
63 ··​{60 ··​{
64 ····​body_length_·​=·​new_length;​61 ····​body_length_·​=·​new_length;​
65 ····​if·​(body_length_·​>·​max_body_length)​62 ····​if·​(body_length_·​>·​max_body_length)​
66 ······​body_length_·​=·​max_body_length;​63 ······​body_length_·​=·​max_body_length;​
67 ··​}64 ··​}
68 65
69 ··​bool·​decode_header()​66 ··​bool·​decode_header()​
70 ··​{67 ··​{
71 ····​using·​namespace·​std;​·​/​/​·​For·​strncat·​and·​atoi.​
72 ····​char·​header[header_length·​+·​1]·​=·​"";​68 ····​char·​header[header_length·​+·​1]·​=·​"";​
73 ····​strncat(header,​·​data_,​·​header_length)​;​69 ····std:​:​strncat(header,​·​data_,​·​header_length)​;​
74 ····​body_length_·​=·​atoi(header)​;​70 ····​body_length_·​=·std:​:​atoi(header)​;​
75 ····​if·​(body_length_·​>·​max_body_length)​71 ····​if·​(body_length_·​>·​max_body_length)​
76 ····​{72 ····​{
77 ······​body_length_·​=·​0;​73 ······​body_length_·​=·​0;​
78 ······​return·​false;​74 ······​return·​false;​
79 ····​}75 ····​}
80 ····​return·​true;​76 ····​return·​true;​
81 ··​}77 ··​}
82 78
83 ··​void·​encode_header()​79 ··​void·​encode_header()​
84 ··​{80 ··​{
85 ····​using·​namespace·​std;​·​/​/​·​For·​sprintf·​and·​memcpy.​
86 ····​char·​header[header_length·​+·​1]·​=·​"";​81 ····​char·​header[header_length·​+·​1]·​=·​"";​
87 ····​sprintf(header,​·​"%4d",​·​static_cast<int>(body​_length_)​)​;​82 ····std:​:​sprintf(header,​·​"%4d",​·​static_cast<int>(body​_length_)​)​;​
88 ····​memcpy(data_,​·​header,​·​header_length)​;​83 ····std:​:​memcpy(data_,​·​header,​·​header_length)​;​
89 ··​}84 ··​}
90 85
91 private:​86 private:​
92 ··​char·​data_[header_length·​+·​max_body_length];​87 ··​char·​data_[header_length·​+·​max_body_length];​
93 ··​size_t·​body_length_;​88 ··std:​:​size_t·​body_length_;​
94 };​89 };​
95 90
96 #endif·​/​/​·​CHAT_MESSAGE_HPP91 #endif·​/​/​·​CHAT_MESSAGE_HPP
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/chat/chat_server.cpp.html b/3party/asio/doc/examples/diffs/chat/chat_server.cpp.html new file mode 100644 index 0000000..180ee38 --- /dev/null +++ b/3party/asio/doc/examples/diffs/chat/chat_server.cpp.html @@ -0,0 +1,303 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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,​47 ······​participant-​>deliver(msg)​;​
50 ··········participant,​·boost:​:​placeholders:​:​_1)​)​;​
51 ··​}48 ··​}
52 49
53 ··​void·​leave(chat_participan​t_ptr·​participant)​50 ··​void·​leave(chat_participan​t_ptr·​participant)​
54 ··​{51 ··​{
55 ····​participants_.​erase(participant)​;​52 ····​participants_.​erase(participant)​;​
56 ··​}53 ··​}
57 54
58 ··​void·​deliver(const·​chat_message&·​msg)​55 ··​void·​deliver(const·​chat_message&·​msg)​
59 ··​{56 ··​{
60 ····​recent_msgs_.​push_back(msg)​;​57 ····​recent_msgs_.​push_back(msg)​;​
61 ····​while·​(recent_msgs_.​size()​·​>·​max_recent_msgs)​58 ····​while·​(recent_msgs_.​size()​·​>·​max_recent_msgs)​
62 ······​recent_msgs_.​pop_front()​;​59 ······​recent_msgs_.​pop_front()​;​
63 60
64 ····std:​:​for_each(participants​_.​begin()​,​·​participants_.​end()​,​61 ····​for·(auto·participant:​·​participants_)​
65 ········boost:​:​bind(&chat_participan​t:​:​deliver,​62 ······​participant-​>deliver(msg)​;​
66 ··········boost:​:​placeholders:​:​_1,​·boost:​:​ref(msg)​)​)​;​
67 ··​}63 ··​}
68 64
69 private:​65 private:​
70 ··​std:​:​set<chat_participant_​ptr>·​participants_;​66 ··​std:​:​set<chat_participant_​ptr>·​participants_;​
71 ··​enum·​{·​max_recent_msgs·​=·​100·​};​67 ··​enum·​{·​max_recent_msgs·​=·​100·​};​
72 ··​chat_message_queue·​recent_msgs_;​68 ··​chat_message_queue·​recent_msgs_;​
73 };​69 };​
74 70
75 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​71 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
76 72
77 class·​chat_session73 class·​chat_session
78 ··​:​·​public·​chat_participant,​74 ··​:​·​public·​chat_participant,​
79 ····​public·boost:​:​enable_shared_from_th​is<chat_session>75 ····​public·​std:​:​enable_shared_from_th​is<chat_session>
80 {76 {
81 public:​77 public:​
82 ··​chat_session(asio:​:​io_context&·io_context,​·​chat_room&·​room)​78 ··​chat_session(tcp:​:​socket·socket,​·​chat_room&·​room)​
83 ····​:​·​socket_(io_context)​,​79 ····​:​·​socket_(std:​:​move(socket)​)​,​
84 ······​room_(room)​80 ······​room_(room)​
85 ··​{81 ··​{
86 ··​}82 ··​}
87 83
88 ··​tcp:​:​socket&·​socket()​
89 ··​{
90 ····​return·​socket_;​
91 ··​}
92
93 ··​void·​start()​84 ··​void·​start()​
94 ··​{85 ··​{
95 ····​room_.​join(shared_from_this​()​)​;​86 ····​room_.​join(shared_from_this​()​)​;​
96 ····asio:​:​async_read(socket_,​87 ····do_read_header()​;​
97 ········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
98 ········boost:​:​bind(
99 ··········&chat_session:​:​handle_read_header,​·shared_from_this()​,​
100 ··········asio:​:​placeholders:​:​error)​)​;​
101 ··​}88 ··​}
102 89
103 ··​void·​deliver(const·​chat_message&·​msg)​90 ··​void·​deliver(const·​chat_message&·​msg)​
104 ··​{91 ··​{
105 ····​bool·​write_in_progress·​=·​!write_msgs_.​empty()​;​92 ····​bool·​write_in_progress·​=·​!write_msgs_.​empty()​;​
106 ····​write_msgs_.​push_back(msg)​;​93 ····​write_msgs_.​push_back(msg)​;​
107 ····​if·​(!write_in_progress)​94 ····​if·​(!write_in_progress)​
108 ····​{95 ····​{
109 ······asio:​:​async_write(socket_,​96 ······do_write()​;​
110 ··········asio:​:​buffer(write_msgs_.​front()​.​data()​,​
111 ············write_msgs_.​front()​.​length()​)​,​
112 ··········boost:​:​bind(&chat_session:​:​handle_write,​·shared_from_this()​,​
113 ············asio:​:​placeholders:​:​error)​)​;​
114 ····​}97 ····​}
115 ··​}98 ··​}
116 99
117 ··void·handle_read_header(co​nst·asio:​:​error_code&·error)​100 private:​
101 ··​void·​do_read_header()​
118 ··​{102 ··​{
119 ····if·(!error·&&·read_msg_.​decode_header()​)​103 ····auto·self(shared_from_this​()​)​;​
120 ····{104 ····asio:​:​async_read(socket_,​
121 ······​asio:​:​async_read(socket_,​105 ········​asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
122 ··········asio:​:​buffer(read_msg_.​body()​,​·read_msg_.​body_length()​)​,​106 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
123 ··········boost:​:​bind(&chat_session:​:​handle_read_body,​·shared_from_this()​,​107 ········{
124 ············asio:​:​placeholders:​:​error)​)​;​108 ··········if·(!ec·&&·read_msg_.​decode_header()​)​
125 ····}109 ··········{
126 ····​else110 ············do_read_body()​;​
127 ····{111 ··········}
128 ······room_.​leave(shared_from_thi​s()​)​;​112 ··········else
129 ····}113 ··········{
114 ············​room_.​leave(shared_from_thi​s()​)​;​
115 ··········​}
116 ········​})​;​
130 ··​}117 ··​}
131 118
132 ··​void·handle_read_body(cons​t·asio:​:​error_code&·error)​119 ··​void·​do_read_body()​
133 ··​{120 ··​{
134 ····if·​(!error)​121 ····auto·self(shared_from_this​()​)​;​
135 ····{122 ····asio:​:​async_read(socket_,​
136 ······​room_.​deliver(read_msg_)​;​123 ········asio:​:​buffer(read_msg_.​body()​,​·read_msg_.​body_length()​)​,​
137 ······asio:​:​async_read(socket_,​124 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
138 ··········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​125 ········{
139 ··········boost:​:​bind(&chat_session:​:​handle_read_header,​·shared_from_this()​,​126 ··········​if·(!ec)​
140 ············asio:​:​placeholders:​:​error)​)​;​127 ··········{
141 ····}128 ············room_.​deliver(read_msg_)​;​
142 ····​else129 ············do_read_header()​;​
143 ····{130 ··········}
144 ······room_.​leave(shared_from_thi​s()​)​;​131 ··········else
145 ····}132 ··········{
133 ············​room_.​leave(shared_from_thi​s()​)​;​
134 ··········​}
135 ········​})​;​
146 ··​}136 ··​}
147 137
148 ··​void·handle_write(const·asio:​:​error_code&·error)​138 ··​void·​do_write()​
149 ··​{139 ··​{
150 ····if·​(!error)​140 ····auto·self(shared_from_this​()​)​;​
151 ····{141 ····asio:​:​async_write(socket_,​
152 ······​write_msgs_.​pop_front()​;​142 ········asio:​:​buffer(write_msgs_.​front()​.​data()​,​
153 ······if·(!write_msgs_.​empty()​)​143 ··········write_msgs_.​front()​.​length()​)​,​
154 ······{144 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
155 ········asio:​:​async_write(socket_,​145 ········{
156 ············asio:​:​buffer(write_msgs_.​front()​.​data()​,​146 ··········​if·(!ec)​
157 ··············write_msgs_.​front()​.​length()​)​,​147 ··········{
158 ············boost:​:​bind(&chat_session:​:​handle_write,​·shared_from_this()​,​148 ············write_msgs_.​pop_front()​;​
159 ··············asio:​:​placeholders:​:​error)​)​;​149 ············​if·(!write_msgs_.​empty()​)​
160 ······}150 ············{
161 ····}151 ··············do_write()​;​
162 ····else152 ············}
163 ····{153 ··········}
164 ······room_.​leave(shared_from_thi​s()​)​;​154 ··········else
165 ····}155 ··········{
156 ············​room_.​leave(shared_from_thi​s()​)​;​
157 ··········​}
158 ········​})​;​
166 ··​}159 ··​}
167 160
168 private:​
169 ··​tcp:​:​socket·​socket_;​161 ··​tcp:​:​socket·​socket_;​
170 ··​chat_room&·​room_;​162 ··​chat_room&·​room_;​
171 ··​chat_message·​read_msg_;​163 ··​chat_message·​read_msg_;​
172 ··​chat_message_queue·​write_msgs_;​164 ··​chat_message_queue·​write_msgs_;​
173 };​165 };​
174 166
175 typedef·​boost:​:​shared_ptr<chat_sessi​on>·​chat_session_ptr;​
176
177 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​167 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
178 168
179 class·​chat_server169 class·​chat_server
180 {170 {
181 public:​171 public:​
182 ··​chat_server(asio:​:​io_context&·​io_context,​172 ··​chat_server(asio:​:​io_context&·​io_context,​
183 ······​const·​tcp:​:​endpoint&·​endpoint)​173 ······​const·​tcp:​:​endpoint&·​endpoint)​
184 ····​:​·io_context_(io_contex​t)​,​174 ····​:​·acceptor_(io_context,​·endpoint)​
185 ······acceptor_(io_context,​·endpoint)​
186 ··​{175 ··​{
187 ····start_accept()​;​176 ····do_accept()​;​
188 ··​}177 ··​}
189 178
190 ··void·start_accept()​179 private:​
180 ··​void·​do_accept()​
191 ··​{181 ··​{
192 ····chat_session_ptr·new_session(new·chat_session(io_conte​xt_,​·room_)​)​;​182 ····​acceptor_.​async_accept(
193 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​183 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
194 ········boost:​:​bind(&chat_server:​:​handle_accept,​·this,​·new_session,​184 ········{
195 ··········asio:​:​placeholders:​:​error)​)​;​185 ··········​if·(!ec)​
196 ··}186 ··········{
187 ············​std:​:​make_shared<chat_sess​ion>(std:​:​move(socket)​,​·​room_)​-​>start()​;​
188 ··········​}
197 189
198 ··void·handle_accept(chat_se​ssion_ptr·session,​190 ··········do_accept()​;​
199 ······const·asio:​:​error_code&·error)​191 ········})​;​
200 ··{
201 ····if·(!error)​
202 ····{
203 ······session-​>start()​;​
204 ····}
205
206 ····start_accept()​;​
207 ··​}192 ··​}
208 193
209 private:​
210 ··​asio:​:​io_context&·​io_context_;​
211 ··​tcp:​:​acceptor·​acceptor_;​194 ··​tcp:​:​acceptor·​acceptor_;​
212 ··​chat_room·​room_;​195 ··​chat_room·​room_;​
213 };​196 };​
214 197
215 typedef·​boost:​:​shared_ptr<chat_serve​r>·​chat_server_ptr;​
216 typedef·​std:​:​list<chat_server_ptr>​·​chat_server_list;​
217
218 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​198 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
219 199
220 int·​main(int·​argc,​·​char*·​argv[])​200 int·​main(int·​argc,​·​char*·​argv[])​
221 {201 {
222 ··​try202 ··​try
223 ··​{203 ··​{
224 ····​if·​(argc·​<·​2)​204 ····​if·​(argc·​<·​2)​
225 ····​{205 ····​{
226 ······​std:​:​cerr·​<<·​"Usage:​·​chat_server·​<port>·​[<port>·​.​.​.​]\n";​206 ······​std:​:​cerr·​<<·​"Usage:​·​chat_server·​<port>·​[<port>·​.​.​.​]\n";​
227 ······​return·​1;​207 ······​return·​1;​
228 ····​}208 ····​}
229 209
230 ····​asio:​:​io_context·​io_context;​210 ····​asio:​:​io_context·​io_context;​
231 211
232 ····​chat_server_list·​servers;​212 ····std:​:​list<chat_server>·​servers;​
233 ····​for·​(int·​i·​=·​1;​·​i·​<·​argc;​·​++i)​213 ····​for·​(int·​i·​=·​1;​·​i·​<·​argc;​·​++i)​
234 ····​{214 ····​{
235 ······using·​namespace·​std;​·/​/​·For·atoi.​215 ······tcp:​:​endpoint·endpoint(tcp:​:​v4()​,​·​std:​:​atoi(argv[i])​)​;​
236 ······tcp:​:​endpoint·endpoint(tcp:​:​v4()​,​·atoi(argv[i])​)​;​216 ······servers.​emplace_back(io_conte​xt,​·endpoint)​;​
237 ······chat_server_ptr·server(new·chat_server(io_contex​t,​·endpoint)​)​;​
238 ······servers.​push_back(server)​;​
239 ····​}217 ····​}
240 218
241 ····​io_context.​run()​;​219 ····​io_context.​run()​;​
242 ··​}220 ··​}
243 ··​catch·​(std:​:​exception&·​e)​221 ··​catch·​(std:​:​exception&·​e)​
244 ··​{222 ··​{
245 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​223 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
246 ··​}224 ··​}
247 225
248 ··​return·​0;​226 ··​return·​0;​
249 }227 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/deferred/deferred_1.cpp.html b/3party/asio/doc/examples/diffs/deferred/deferred_1.cpp.html new file mode 100644 index 0000000..d71ca28 --- /dev/null +++ b/3party/asio/doc/examples/diffs/deferred/deferred_1.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff deferred/deferred_1.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/deferred/deferred_2.cpp.html b/3party/asio/doc/examples/diffs/deferred/deferred_2.cpp.html new file mode 100644 index 0000000..8aede37 --- /dev/null +++ b/3party/asio/doc/examples/diffs/deferred/deferred_2.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff deferred/deferred_2.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/echo/async_tcp_echo_server.cpp.html b/3party/asio/doc/examples/diffs/echo/async_tcp_echo_server.cpp.html new file mode 100644 index 0000000..5f7e8e9 --- /dev/null +++ b/3party/asio/doc/examples/diffs/echo/async_tcp_echo_server.cpp.html @@ -0,0 +1,181 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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 ··​{35 ··​{
43 ····if·​(!error)​36 ····auto·self(shared_from_this​()​)​;​
44 ····{37 ····socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​
45 ······asio:​:​async_write(socket_,​38 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·length)​
46 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​39 ········{
47 ··········boost:​:​bind(&session:​:​handle_write,​·this,​40 ··········​if·(!ec)​
48 ············asio:​:​placeholders:​:​error)​)​;​41 ··········{
49 ····}42 ············do_write(length)​;​
50 ····else43 ··········}
51 ····{44 ········})​;​
52 ······delete·this;​
53 ····}
54 ··​}45 ··​}
55 46
56 ··​void·handle_write(const·asio:​:​error_code&·error)​47 ··​void·​do_write(std:​:​size_t·length)​
57 ··​{48 ··​{
58 ····if·​(!error)​49 ····auto·self(shared_from_this​()​)​;​
59 ····{50 ····asio:​:​async_write(socket_,​·asio:​:​buffer(data_,​·length)​,​
60 ······socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​51 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
61 ··········boost:​:​bind(&session:​:​handle_read,​·this,​52 ········{
62 ············asio:​:​placeholders:​:​error,​53 ··········​if·(!ec)​
63 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​54 ··········{
64 ····}55 ············do_read()​;​
65 ····else56 ··········}
66 ····{57 ········})​;​
67 ······delete·this;​
68 ····}
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 ··········{
82 ············​std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>start()​;​
83 ··········​}
94 84
95 ··void·handle_accept(session​*·new_session,​85 ··········do_accept()​;​
96 ······const·asio:​:​error_code&·error)​86 ········})​;​
97 ··{
98 ····if·(!error)​
99 ····{
100 ······new_session-​>start()​;​
101 ····}
102 ····else
103 ····{
104 ······delete·new_session;​
105 ····}
106
107 ····start_accept()​;​
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/echo/async_udp_echo_server.cpp.html b/3party/asio/doc/examples/diffs/echo/async_udp_echo_server.cpp.html new file mode 100644 index 0000000..c806f18 --- /dev/null +++ b/3party/asio/doc/examples/diffs/echo/async_udp_echo_server.cpp.html @@ -0,0 +1,133 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/echo/blocking_tcp_echo_client.cpp.html b/3party/asio/doc/examples/diffs/echo/blocking_tcp_echo_client.cpp.html new file mode 100644 index 0000000..ecba89d --- /dev/null +++ b/3party/asio/doc/examples/diffs/echo/blocking_tcp_echo_client.cpp.html @@ -0,0 +1,100 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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:​:​socket·​s(io_context)​;​
32 ····​tcp:​:​resolver·​resolver(io_context)​;​33 ····​tcp:​:​resolver·​resolver(io_context)​;​
33 ····tcp:​:​resolver:​:​results_type·endpoints·=34 ····asio:​:​connect(s,​·resolver.​resolve(argv[1],​·argv[2])​)​;​
34 ······resolver.​resolve(tcp:​:​v4()​,​·argv[1],​·argv[2])​;​
35 35
36 ····​tcp:​:​socket·​s(io_context)​;​
37 ····​asio:​:​connect(s,​·​endpoints)​;​
38
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/echo/blocking_tcp_echo_server.cpp.html b/3party/asio/doc/examples/diffs/echo/blocking_tcp_echo_server.cpp.html new file mode 100644 index 0000000..4df076e --- /dev/null +++ b/3party/asio/doc/examples/diffs/echo/blocking_tcp_echo_server.cpp.html @@ -0,0 +1,119 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/echo/blocking_udp_echo_client.cpp.html b/3party/asio/doc/examples/diffs/echo/blocking_udp_echo_client.cpp.html new file mode 100644 index 0000000..f23ed2f --- /dev/null +++ b/3party/asio/doc/examples/diffs/echo/blocking_udp_echo_client.cpp.html @@ -0,0 +1,99 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/echo/blocking_udp_echo_server.cpp.html b/3party/asio/doc/examples/diffs/echo/blocking_udp_echo_server.cpp.html new file mode 100644 index 0000000..3980338 --- /dev/null +++ b/3party/asio/doc/examples/diffs/echo/blocking_udp_echo_server.cpp.html @@ -0,0 +1,93 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/executors/actor.cpp.html b/3party/asio/doc/examples/diffs/executors/actor.cpp.html new file mode 100644 index 0000000..f066005 --- /dev/null +++ b/3party/asio/doc/examples/diffs/executors/actor.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff executors/actor.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/executors/bank_account_1.cpp.html b/3party/asio/doc/examples/diffs/executors/bank_account_1.cpp.html new file mode 100644 index 0000000..9efda92 --- /dev/null +++ b/3party/asio/doc/examples/diffs/executors/bank_account_1.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff executors/bank_account_1.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/executors/bank_account_2.cpp.html b/3party/asio/doc/examples/diffs/executors/bank_account_2.cpp.html new file mode 100644 index 0000000..de7f6f7 --- /dev/null +++ b/3party/asio/doc/examples/diffs/executors/bank_account_2.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff executors/bank_account_2.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/executors/fork_join.cpp.html b/3party/asio/doc/examples/diffs/executors/fork_join.cpp.html new file mode 100644 index 0000000..c2b79c8 --- /dev/null +++ b/3party/asio/doc/examples/diffs/executors/fork_join.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff executors/fork_join.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/executors/pipeline.cpp.html b/3party/asio/doc/examples/diffs/executors/pipeline.cpp.html new file mode 100644 index 0000000..fe06977 --- /dev/null +++ b/3party/asio/doc/examples/diffs/executors/pipeline.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff executors/pipeline.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/executors/priority_scheduler.cpp.html b/3party/asio/doc/examples/diffs/executors/priority_scheduler.cpp.html new file mode 100644 index 0000000..2c1a25c --- /dev/null +++ b/3party/asio/doc/examples/diffs/executors/priority_scheduler.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff executors/priority_scheduler.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/files/async_file_copy.cpp.html b/3party/asio/doc/examples/diffs/files/async_file_copy.cpp.html new file mode 100644 index 0000000..9c9b289 --- /dev/null +++ b/3party/asio/doc/examples/diffs/files/async_file_copy.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff files/async_file_copy.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/files/blocking_file_copy.cpp.html b/3party/asio/doc/examples/diffs/files/blocking_file_copy.cpp.html new file mode 100644 index 0000000..076f0e8 --- /dev/null +++ b/3party/asio/doc/examples/diffs/files/blocking_file_copy.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff files/blocking_file_copy.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/fork/daemon.cpp.html b/3party/asio/doc/examples/diffs/fork/daemon.cpp.html new file mode 100644 index 0000000..ac1ba59 --- /dev/null +++ b/3party/asio/doc/examples/diffs/fork/daemon.cpp.html @@ -0,0 +1,237 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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,​36 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*n*/​)​
38 ··········this,​·boost:​:​placeholders:​:​_1)​)​;​37 ········{
39 ··}38 ··········if·(!ec)​
39 ··········​{
40 ············​using·​namespace·​std;​·​/​/​·​For·​time_t,​·​time·​and·​ctime;​
41 ············​time_t·​now·​=·​time(0)​;​
42 ············​std:​:​string·​message·​=·​ctime(&now)​;​
40 43
41 ··void·handle_receive(const·asio:​:​error_code&·ec)​44 ············std:​:​error_code·​ignored_ec;​
42 ··{45 ············socket_.​send_to(asio:​:​buffer(message)​,​
43 ····​if·(!ec)​46 ················remote_endpoint_,​·0,​·ignored_ec)​;​
44 ····{47 ··········}
45 ······using·namespace·std;​·/​/​·For·time_t,​·time·and·ctime;​
46 ······time_t·now·=·time(0)​;​
47 ······std:​:​string·message·=·ctime(&now)​;​
48 48
49 ······asio:​:​error_code·ignored_ec;​49 ··········receive()​;​
50 ······socket_.​send_to(asio:​:​buffer(message)​,​50 ········})​;​
51 ··········remote_endpoint_,​·0,​·ignored_ec)​;​
52 ····}
53
54 ····start_receive()​;​
55 ··​}51 ··​}
56 52
57 ··​udp:​:​socket·​socket_;​53 ··​udp:​:​socket·​socket_;​
58 ··​udp:​:​endpoint·​remote_endpoint_;​54 ··​udp:​:​endpoint·​remote_endpoint_;​
59 ··boost:​:​array<char,​·​1>·​recv_buffer_;​55 ··​std:​:​array<char,​·​1>·​recv_buffer_;​
60 };​56 };​
61 57
62 int·​main()​58 int·​main()​
63 {59 {
64 ··​try60 ··​try
65 ··​{61 ··​{
66 ····​asio:​:​io_context·​io_context;​62 ····​asio:​:​io_context·​io_context;​
67 63
68 ····​/​/​·​Initialise·​the·​server·​before·​becoming·​a·​daemon.​·​If·​the·​process·​is64 ····​/​/​·​Initialise·​the·​server·​before·​becoming·​a·​daemon.​·​If·​the·​process·​is
69 ····​/​/​·​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
70 ····​/​/​·​user.​66 ····​/​/​·​user.​
71 ····​udp_daytime_server·​server(io_context)​;​67 ····​udp_daytime_server·​server(io_context)​;​
72 68
73 ····​/​/​·​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
74 ····​/​/​·​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
75 ····​/​/​·​re-​read·​of·​a·​configuration·​file.​71 ····​/​/​·​re-​read·​of·​a·​configuration·​file.​
76 ····​asio:​:​signal_set·​signals(io_context,​·​SIGINT,​·​SIGTERM)​;​72 ····​asio:​:​signal_set·​signals(io_context,​·​SIGINT,​·​SIGTERM)​;​
77 ····​signals.​async_wait(73 ····​signals.​async_wait(
78 ········boost:​:​bind(&asio:​:​io_context:​:​stop,​·&io_context)​)​;​74 ········[&](std:​:​error_code·/​*ec*/​,​·int·/​*signo*/​)​
75 ········​{
76 ··········​io_context.​stop()​;​
77 ········​})​;​
79 78
80 ····​/​/​·​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
81 ····​/​/​·​io_context·​cleans·​up·​any·​internal·​resources,​·​such·​as·​threads,​·​that·​may80 ····​/​/​·​io_context·​cleans·​up·​any·​internal·​resources,​·​such·​as·​threads,​·​that·​may
82 ····​/​/​·​interfere·​with·​forking.​81 ····​/​/​·​interfere·​with·​forking.​
83 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​82 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​
84 83
85 ····​/​/​·​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
86 ····​/​/​·​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
87 ····​/​/​·​also·​a·​prerequisite·​for·​the·​subsequent·​call·​to·​setsid()​.​86 ····​/​/​·​also·​a·​prerequisite·​for·​the·​subsequent·​call·​to·​setsid()​.​
88 ····​if·​(pid_t·​pid·​=·​fork()​)​87 ····​if·​(pid_t·​pid·​=·​fork()​)​
89 ····​{88 ····​{
90 ······​if·​(pid·​>·​0)​89 ······​if·​(pid·​>·​0)​
91 ······​{90 ······​{
92 ········​/​/​·​We're·​in·​the·​parent·​process·​and·​need·​to·​exit.​91 ········​/​/​·​We're·​in·​the·​parent·​process·​and·​need·​to·​exit.​
93 ········​/​/​92 ········​/​/​
94 ········​/​/​·​When·​the·​exit()​·​function·​is·​used,​·​the·​program·​terminates·​without93 ········​/​/​·​When·​the·​exit()​·​function·​is·​used,​·​the·​program·​terminates·​without
95 ········​/​/​·​invoking·​local·​variables'·​destructors.​·​Only·​global·​variables·​are94 ········​/​/​·​invoking·​local·​variables'·​destructors.​·​Only·​global·​variables·​are
96 ········​/​/​·​destroyed.​·​As·​the·​io_context·​object·​is·​a·​local·​variable,​·​this·​means95 ········​/​/​·​destroyed.​·​As·​the·​io_context·​object·​is·​a·​local·​variable,​·​this·​means
97 ········​/​/​·​we·​do·​not·​have·​to·​call:​96 ········​/​/​·​we·​do·​not·​have·​to·​call:​
98 ········​/​/​97 ········​/​/​
99 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_parent)​;​98 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_parent)​;​
100 ········​/​/​99 ········​/​/​
101 ········​/​/​·​However,​·​this·​line·​should·​be·​added·​before·​each·​call·​to·​exit()​·​if100 ········​/​/​·​However,​·​this·​line·​should·​be·​added·​before·​each·​call·​to·​exit()​·​if
102 ········​/​/​·​using·​a·​global·​io_context·​object.​·​An·​additional·​call:​101 ········​/​/​·​using·​a·​global·​io_context·​object.​·​An·​additional·​call:​
103 ········​/​/​102 ········​/​/​
104 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​103 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​
105 ········​/​/​104 ········​/​/​
106 ········​/​/​·​should·​also·​precede·​the·​second·​fork()​.​105 ········​/​/​·​should·​also·​precede·​the·​second·​fork()​.​
107 ········​exit(0)​;​106 ········​exit(0)​;​
108 ······​}107 ······​}
109 ······​else108 ······​else
110 ······​{109 ······​{
111 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"First·​fork·​failed:​·​%m")​;​110 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"First·​fork·​failed:​·​%m")​;​
112 ········​return·​1;​111 ········​return·​1;​
113 ······​}112 ······​}
114 ····​}113 ····​}
115 114
116 ····​/​/​·​Make·​the·​process·​a·​new·​session·​leader.​·​This·​detaches·​it·​from·​the115 ····​/​/​·​Make·​the·​process·​a·​new·​session·​leader.​·​This·​detaches·​it·​from·​the
117 ····​/​/​·​terminal.​116 ····​/​/​·​terminal.​
118 ····​setsid()​;​117 ····​setsid()​;​
119 118
120 ····​/​/​·​A·​process·​inherits·​its·​working·​directory·​from·​its·​parent.​·​This·​could·​be119 ····​/​/​·​A·​process·​inherits·​its·​working·​directory·​from·​its·​parent.​·​This·​could·​be
121 ····​/​/​·​on·​a·​mounted·​filesystem,​·​which·​means·​that·​the·​running·​daemon·​would120 ····​/​/​·​on·​a·​mounted·​filesystem,​·​which·​means·​that·​the·​running·​daemon·​would
122 ····​/​/​·​prevent·​this·​filesystem·​from·​being·​unmounted.​·​Changing·​to·​the·​root121 ····​/​/​·​prevent·​this·​filesystem·​from·​being·​unmounted.​·​Changing·​to·​the·​root
123 ····​/​/​·​directory·​avoids·​this·​problem.​122 ····​/​/​·​directory·​avoids·​this·​problem.​
124 ····​chdir("/​")​;​123 ····​chdir("/​")​;​
125 124
126 ····​/​/​·​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.​
127 ····​/​/​·​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
128 ····​/​/​·​daemon,​·​so·​the·​mask·​is·​cleared.​127 ····​/​/​·​daemon,​·​so·​the·​mask·​is·​cleared.​
129 ····​umask(0)​;​128 ····​umask(0)​;​
130 129
131 ····​/​/​·​A·​second·​fork·​ensures·​the·​process·​cannot·​acquire·​a·​controlling·​terminal.​130 ····​/​/​·​A·​second·​fork·​ensures·​the·​process·​cannot·​acquire·​a·​controlling·​terminal.​
132 ····​if·​(pid_t·​pid·​=·​fork()​)​131 ····​if·​(pid_t·​pid·​=·​fork()​)​
133 ····​{132 ····​{
134 ······​if·​(pid·​>·​0)​133 ······​if·​(pid·​>·​0)​
135 ······​{134 ······​{
136 ········​exit(0)​;​135 ········​exit(0)​;​
137 ······​}136 ······​}
138 ······​else137 ······​else
139 ······​{138 ······​{
140 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"Second·​fork·​failed:​·​%m")​;​139 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"Second·​fork·​failed:​·​%m")​;​
141 ········​return·​1;​140 ········​return·​1;​
142 ······​}141 ······​}
143 ····​}142 ····​}
144 143
145 ····​/​/​·​Close·​the·​standard·​streams.​·​This·​decouples·​the·​daemon·​from·​the·​terminal144 ····​/​/​·​Close·​the·​standard·​streams.​·​This·​decouples·​the·​daemon·​from·​the·​terminal
146 ····​/​/​·​that·​started·​it.​145 ····​/​/​·​that·​started·​it.​
147 ····​close(0)​;​146 ····​close(0)​;​
148 ····​close(1)​;​147 ····​close(1)​;​
149 ····​close(2)​;​148 ····​close(2)​;​
150 149
151 ····​/​/​·​We·​don't·​want·​the·​daemon·​to·​have·​any·​standard·​input.​150 ····​/​/​·​We·​don't·​want·​the·​daemon·​to·​have·​any·​standard·​input.​
152 ····​if·​(open("/​dev/​null",​·​O_RDONLY)​·​<·​0)​151 ····​if·​(open("/​dev/​null",​·​O_RDONLY)​·​<·​0)​
153 ····​{152 ····​{
154 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​open·​/​dev/​null:​·​%m")​;​153 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​open·​/​dev/​null:​·​%m")​;​
155 ······​return·​1;​154 ······​return·​1;​
156 ····​}155 ····​}
157 156
158 ····​/​/​·​Send·​standard·​output·​to·​a·​log·​file.​157 ····​/​/​·​Send·​standard·​output·​to·​a·​log·​file.​
159 ····​const·​char*·​output·​=·​"/​tmp/​asio.​daemon.​out";​158 ····​const·​char*·​output·​=·​"/​tmp/​asio.​daemon.​out";​
160 ····​const·​int·​flags·​=·​O_WRONLY·​|·​O_CREAT·​|·​O_APPEND;​159 ····​const·​int·​flags·​=·​O_WRONLY·​|·​O_CREAT·​|·​O_APPEND;​
161 ····​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;​
162 ····​if·​(open(output,​·​flags,​·​mode)​·​<·​0)​161 ····​if·​(open(output,​·​flags,​·​mode)​·​<·​0)​
163 ····​{162 ····​{
164 ······​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)​;​
165 ······​return·​1;​164 ······​return·​1;​
166 ····​}165 ····​}
167 166
168 ····​/​/​·​Also·​send·​standard·​error·​to·​the·​same·​log·​file.​167 ····​/​/​·​Also·​send·​standard·​error·​to·​the·​same·​log·​file.​
169 ····​if·​(dup(1)​·​<·​0)​168 ····​if·​(dup(1)​·​<·​0)​
170 ····​{169 ····​{
171 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​dup·​output·​descriptor:​·​%m")​;​170 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​dup·​output·​descriptor:​·​%m")​;​
172 ······​return·​1;​171 ······​return·​1;​
173 ····​}172 ····​}
174 173
175 ····​/​/​·​Inform·​the·​io_context·​that·​we·​have·​finished·​becoming·​a·​daemon.​·​The174 ····​/​/​·​Inform·​the·​io_context·​that·​we·​have·​finished·​becoming·​a·​daemon.​·​The
176 ····​/​/​·​io_context·​uses·​this·​opportunity·​to·​create·​any·​internal·​file·​descriptors175 ····​/​/​·​io_context·​uses·​this·​opportunity·​to·​create·​any·​internal·​file·​descriptors
177 ····​/​/​·​that·​need·​to·​be·​private·​to·​the·​new·​process.​176 ····​/​/​·​that·​need·​to·​be·​private·​to·​the·​new·​process.​
178 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_child)​;​177 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_child)​;​
179 178
180 ····​/​/​·​The·​io_context·​can·​now·​be·​used·​normally.​179 ····​/​/​·​The·​io_context·​can·​now·​be·​used·​normally.​
181 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​started")​;​180 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​started")​;​
182 ····​io_context.​run()​;​181 ····​io_context.​run()​;​
183 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​stopped")​;​182 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​stopped")​;​
184 ··​}183 ··​}
185 ··​catch·​(std:​:​exception&·​e)​184 ··​catch·​(std:​:​exception&·​e)​
186 ··​{185 ··​{
187 ····​syslog(LOG_ERR·​|·​LOG_USER,​·​"Exception:​·​%s",​·​e.​what()​)​;​186 ····​syslog(LOG_ERR·​|·​LOG_USER,​·​"Exception:​·​%s",​·​e.​what()​)​;​
188 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​187 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​
189 ··​}188 ··​}
190 }189 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/fork/process_per_connection.cpp.html b/3party/asio/doc/examples/diffs/fork/process_per_connection.cpp.html new file mode 100644 index 0000000..e53abd0 --- /dev/null +++ b/3party/asio/doc/examples/diffs/fork/process_per_connection.cpp.html @@ -0,0 +1,230 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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 ········​})​;​
42 ··​}55 ··​}
43 56
44 ··​void·handle_signal_wait()​57 ··​void·​accept()​
45 ··​{58 ··​{
46 ····/​/​·Only·the·parent·process·should·check·for·this·signal.​·We·can·determine59 ····​acceptor_.​async_accept(
47 ····/​/​·whether·we·are·in·the·parent·by·checking·if·​the·acceptor·is·still·open.​60 ········[this](std:​:​error_code·​ec,​·​tcp:​:​socket·new_socket)​
48 ····if·(acceptor_.​is_open()​)​61 ········{
49 ····{62 ··········if·(!ec)​
50 ······/​/​·Reap·completed·child·processes·so·that·we·don't·end·up·with·zombies.​63 ··········{
51 ······​int·status·=·0;​64 ············/​/​·Take·ownership·of·the·newly·accepted·socket.​
52 ······while·(waitpid(-​1,​·&status,​·WNOHANG)​·>·0)​·{}65 ············socket_·=·​std:​:​move(new_socket)​;​
53 66
54 ······start_signal_wait()​;​67 ············/​/​·Inform·the·io_context·that·we·are·about·to·fork.​·The·io_context
55 ····}68 ············/​/​·cleans·up·any·internal·resources,​·such·as·threads,​·that·may
56 ··}69 ············/​/​·interfere·with·forking.​
70 ············​io_context_.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​
57 71
58 ··void·start_accept()​72 ············if·(fork()​·==·0)​
59 ··​{73 ············​{
60 ····acceptor_.​async_accept(socket_,​74 ··············/​/​·Inform·the·io_context·that·the·fork·is·finished·and·that·this
61 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·boost:​:​placeholders:​:​_1)​)​;​75 ··············/​/​·is·the·child·process.​·The·io_context·uses·this·opportunity·to
62 ··}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)​;​
63 79
64 ··void·handle_accept(const·asio:​:​error_code&·ec)​80 ··············/​/​·The·child·won't·be·accepting·new·connections,​·so·we·can·close
65 ··{81 ··············/​/​·the·acceptor.​·It·remains·open·in·the·parent.​
66 ····if·(!ec)​82 ··············acceptor_.​close()​;​
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 83
73 ······​if·(fork()​·==·0)​84 ··············/​/​·The·child·process·is·not·interested·in·processing·the·SIGCHLD
74 ······{85 ··············/​/​·signal.​
75 ········/​/​·Inform·the·io_context·that·the·fork·is·finished·and·that·this·is·the86 ··············​signal_.​cancel()​;​
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 87
80 ········/​/​·The·child·won't·be·accepting·new·connections,​·so·we·can·close·the88 ··············read()​;​
81 ········/​/​·acceptor.​·It·remains·open·in·the·parent.​89 ············}
82 ········acceptor_.​close()​;​90 ············else
91 ············​{
83 92
84 ········/​/​·The·child·process·​is·not·interested·in·processing·the·SIGCHLD·signal.​93 ··············/​/​·Inform·the·​io_context·that·the·fork·is·finished·(or·failed)​
85 ········​signal_.​cancel()​;​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)​;​
86 98
87 ········start_read()​;​99 ··············/​/​·The·parent·process·can·now·close·the·newly·accepted·socket.​·It
88 ······}100 ··············/​/​·remains·open·in·the·child.​
89 ······​else101 ··············socket_.​close()​;​
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 102
97 ········socket_.​close()​;​103 ··············accept()​;​
98 ········start_accept()​;​104 ············}
99 ······​}105 ··········​}
100 ····}106 ··········else
101 ····else107 ··········{
102 ····{108 ············std:​:​cerr·<<·"Accept·error:​·"·<<·ec.​message()​·<<·std:​:​endl;​
103 ······std:​:​cerr·<<·"Accept·error:​·"·<<·ec.​message()​·<<·std:​:​endl;​109 ············accept()​;​
104 ······start_accept()​;​110 ··········}
105 ····​}111 ········​})​;​
106 ··​}112 ··​}
107 113
108 ··​void·start_read()​114 ··​void·​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,​117 ········[this](std:​:​error_code·ec,​·std:​:​size_t·length)​
112 ··········boost:​:​placeholders:​:​_1,​·boost:​:​placeholders:​:​_2)​)​;​118 ········{
119 ··········​if·​(!ec)​
120 ············​write(length)​;​
121 ········​})​;​
113 ··​}122 ··​}
114 123
115 ··​void·handle_read(const·asio:​:​error_code&·ec,​·std:​:​size_t·​length)​124 ··​void·write(std:​:​size_t·​length)​
116 ··​{125 ··​{
117 ····​if·​(!ec)​
118 ······​start_write(length)​;​
119 ··​}
120
121 ··​void·​start_write(std:​:​size_t·​length)​
122 ··​{
123 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data_,​·​length)​,​126 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data_,​·​length)​,​
124 ········boost:​:​bind(&server:​:​handle_write,​·this,​·boost:​:​placeholders:​:​_1)​)​;​127 ········[this](std:​:​error_code·ec,​·​std:​:​size_t·/​*length*/​)​
128 ········​{
129 ··········​if·​(!ec)​
130 ············​read()​;​
131 ········​})​;​
125 ··​}132 ··​}
126 133
127 ··​void·​handle_write(const·​asio:​:​error_code&·​ec)​
128 ··​{
129 ····​if·​(!ec)​
130 ······​start_read()​;​
131 ··​}
132
133 ··​asio:​:​io_context&·​io_context_;​134 ··​asio:​:​io_context&·​io_context_;​
134 ··​asio:​:​signal_set·​signal_;​135 ··​asio:​:​signal_set·​signal_;​
135 ··​tcp:​:​acceptor·​acceptor_;​136 ··​tcp:​:​acceptor·​acceptor_;​
136 ··​tcp:​:​socket·​socket_;​137 ··​tcp:​:​socket·​socket_;​
137 ··boost:​:​array<char,​·​1024>·​data_;​138 ··​std:​:​array<char,​·​1024>·​data_;​
138 };​139 };​
139 140
140 int·​main(int·​argc,​·​char*·​argv[])​141 int·​main(int·​argc,​·​char*·​argv[])​
141 {142 {
142 ··​try143 ··​try
143 ··​{144 ··​{
144 ····​if·​(argc·​!=·​2)​145 ····​if·​(argc·​!=·​2)​
145 ····​{146 ····​{
146 ······​std:​:​cerr·​<<·​"Usage:​·​process_per_connectio​n·​<port>\n";​147 ······​std:​:​cerr·​<<·​"Usage:​·​process_per_connectio​n·​<port>\n";​
147 ······​return·​1;​148 ······​return·​1;​
148 ····​}149 ····​}
149 150
150 ····​asio:​:​io_context·​io_context;​151 ····​asio:​:​io_context·​io_context;​
151 152
152 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​153 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
153 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​154 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​
154 155
155 ····​io_context.​run()​;​156 ····​io_context.​run()​;​
156 ··​}157 ··​}
157 ··​catch·​(std:​:​exception&·​e)​158 ··​catch·​(std:​:​exception&·​e)​
158 ··​{159 ··​{
159 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​160 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​
160 ··​}161 ··​}
161 }162 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/futures/daytime_client.cpp.html b/3party/asio/doc/examples/diffs/futures/daytime_client.cpp.html new file mode 100644 index 0000000..528b998 --- /dev/null +++ b/3party/asio/doc/examples/diffs/futures/daytime_client.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff futures/daytime_client.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/handler_tracking/async_tcp_echo_server.cpp.html b/3party/asio/doc/examples/diffs/handler_tracking/async_tcp_echo_server.cpp.html new file mode 100644 index 0000000..098e1af --- /dev/null +++ b/3party/asio/doc/examples/diffs/handler_tracking/async_tcp_echo_server.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff handler_tracking/async_tcp_echo_server.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/handler_tracking/custom_tracking.hpp.html b/3party/asio/doc/examples/diffs/handler_tracking/custom_tracking.hpp.html new file mode 100644 index 0000000..0d7e225 --- /dev/null +++ b/3party/asio/doc/examples/diffs/handler_tracking/custom_tracking.hpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff handler_tracking/custom_tracking.hpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/connection.cpp.html b/3party/asio/doc/examples/diffs/http/server/connection.cpp.html new file mode 100644 index 0000000..52ed60c --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/connection.cpp.html @@ -0,0 +1,150 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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)​
45 ········​{
46 ··········​request_parser:​:​result_type·​result;​
47 ··········​std:​:​tie(result,​·​std:​:​ignore)​·​=·​request_parser_.​parse(
48 ··············​request_,​·​buffer_.​data()​,​·​buffer_.​data()​·​+·​bytes_transferred)​;​
54 49
55 ····​if·​(result)​50 ··········​if·​(result·==·request_parser:​:​good)​
56 ····​{51 ··········​{
57 ······​request_handler_.​handle_request(reques​t_,​·​reply_)​;​52 ············​request_handler_.​handle_request(reques​t_,​·​reply_)​;​
58 ······asio:​:​async_write(socket_,​·reply_.​to_buffers()​,​53 ············do_write()​;​
59 ··········boost:​:​bind(&connection:​:​handle_write,​·shared_from_this()​,​54 ··········}
60 ············asio:​:​placeholders:​:​error)​)​;​55 ··········else·if·(result·==·request_parser:​:​bad)​
61 ····}56 ··········{
62 ····​else·if·(!result)​57 ············reply_·=·reply:​:​stock_reply(reply:​:​bad_request)​;​
63 ····{58 ············do_write()​;​
64 ······reply_·=·reply:​:​stock_reply(reply:​:​bad_request)​;​59 ··········}
65 ······asio:​:​async_write(socket_,​·reply_.​to_buffers()​,​60 ··········else
66 ··········boost:​:​bind(&connection:​:​handle_write,​·shared_from_this()​,​61 ··········{
67 ············asio:​:​placeholders:​:​error)​)​;​62 ············do_read()​;​
68 ····​}63 ··········​}
69 ····else64 ········}
70 ····{65 ········else·if·(ec·!=·asio:​:​error:​:​operation_aborted)​
71 ······socket_.​async_read_some(asio:​:​buffer(buffer_)​,​66 ········{
72 ··········boost:​:​bind(&connection:​:​handle_read,​·shared_from_this()​,​67 ··········​connection_manager_.​stop(shared_from_this​()​)​;​
73 ············asio:​:​placeholders:​:​error,​68 ········}
74 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​69 ······})​;​
75 ····}
76 ··}
77 ··else·if·(e·!=·asio:​:​error:​:​operation_aborted)​
78 ··{
79 ····connection_manager_.​stop(shared_from_this​()​)​;​
80 ··}
81 }70 }
82 71
83 void·​connection:​:​handle_write(const·asio:​:​error_code&·e)​72 void·​connection:​:​do_write()​
84 {73 {
85 ··if·​(!e)​74 ··auto·self(shared_from_this​()​)​;​
86 ··{75 ··asio:​:​async_write(socket_,​·reply_.​to_buffers()​,​
87 ····/​/​·Initiate·graceful·connection·closure.​76 ······[this,​·self](std:​:​error_code·ec,​·std:​:​size_t)​
88 ····asio:​:​error_code·ignored_ec;​77 ······{
89 ····socket_.​shutdown(asio:​:​ip:​:​tcp:​:​socket:​:​shutdown_both,​·​ignored_ec)​;​78 ········​if·(!ec)​
90 ··}79 ········{
80 ··········​/​/​·​Initiate·​graceful·​connection·​closure.​
81 ··········​asio:​:​error_code·​ignored_ec;​
82 ··········​socket_.​shutdown(asio:​:​ip:​:​tcp:​:​socket:​:​shutdown_both,​
83 ············​ignored_ec)​;​
84 ········​}
91 85
92 ··​if·​(e·​!=·​asio:​:​error:​:​operation_aborted)​86 ········​if·​(ec·​!=·​asio:​:​error:​:​operation_aborted)​
93 ··​{87 ········​{
94 ····​connection_manager_.​stop(shared_from_this​()​)​;​88 ··········​connection_manager_.​stop(shared_from_this​()​)​;​
95 ··​}89 ········​}
90 ······​})​;​
96 }91 }
97 92
98 }·​/​/​·​namespace·​server93 }·​/​/​·​namespace·​server
99 }·​/​/​·​namespace·​http94 }·​/​/​·​namespace·​http
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/connection.hpp.html b/3party/asio/doc/examples/diffs/http/server/connection.hpp.html new file mode 100644 index 0000000..0837ba3 --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/connection.hpp.html @@ -0,0 +1,128 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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;​
34
35 ··​/​/​/​·​Construct·​a·​connection·​with·​the·​given·​socket.​
36 ··​explicit·​connection(asio:​:​ip:​:​tcp:​:​socket·​socket,​
37 ······​connection_manager&·​manager,​·​request_handler&·​handler)​;​37 ······​connection_manager&·​manager,​·​request_handler&·​handler)​;​
38 38
39 ··​/​/​/​·​Get·​the·​socket·​associated·​with·​the·​connection.​
40 ··​asio:​:​ip:​:​tcp:​:​socket&·​socket()​;​
41
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/connection_manager.cpp.html b/3party/asio/doc/examples/diffs/http/server/connection_manager.cpp.html new file mode 100644 index 0000000..cdab55f --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/connection_manager.cpp.html @@ -0,0 +1,82 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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,​·boost:​:​placeholders:​:​_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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/connection_manager.hpp.html b/3party/asio/doc/examples/diffs/http/server/connection_manager.hpp.html new file mode 100644 index 0000000..7d16f3a --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/connection_manager.hpp.html @@ -0,0 +1,90 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/header.hpp.html b/3party/asio/doc/examples/diffs/http/server/header.hpp.html new file mode 100644 index 0000000..d5c7d90 --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/header.hpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff http/server/header.hpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/main.cpp.html b/3party/asio/doc/examples/diffs/http/server/main.cpp.html new file mode 100644 index 0000000..d777563 --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/main.cpp.html @@ -0,0 +1,84 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/mime_types.cpp.html b/3party/asio/doc/examples/diffs/http/server/mime_types.cpp.html new file mode 100644 index 0000000..2dcda20 --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/mime_types.cpp.html @@ -0,0 +1,86 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/mime_types.hpp.html b/3party/asio/doc/examples/diffs/http/server/mime_types.hpp.html new file mode 100644 index 0000000..f770c48 --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/mime_types.hpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff http/server/mime_types.hpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/reply.cpp.html b/3party/asio/doc/examples/diffs/http/server/reply.cpp.html new file mode 100644 index 0000000..f1e0289 --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/reply.cpp.html @@ -0,0 +1,296 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/reply.hpp.html b/3party/asio/doc/examples/diffs/http/server/reply.hpp.html new file mode 100644 index 0000000..cb5224d --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/reply.hpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff http/server/reply.hpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/request.hpp.html b/3party/asio/doc/examples/diffs/http/server/request.hpp.html new file mode 100644 index 0000000..1de3621 --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/request.hpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff http/server/request.hpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/request_handler.cpp.html b/3party/asio/doc/examples/diffs/http/server/request_handler.cpp.html new file mode 100644 index 0000000..7fe0a22 --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/request_handler.cpp.html @@ -0,0 +1,162 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/request_handler.hpp.html b/3party/asio/doc/examples/diffs/http/server/request_handler.hpp.html new file mode 100644 index 0000000..aba6eca --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/request_handler.hpp.html @@ -0,0 +1,89 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/request_parser.cpp.html b/3party/asio/doc/examples/diffs/http/server/request_parser.cpp.html new file mode 100644 index 0000000..d935425 --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/request_parser.cpp.html @@ -0,0 +1,355 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/request_parser.hpp.html b/3party/asio/doc/examples/diffs/http/server/request_parser.hpp.html new file mode 100644 index 0000000..8f63216 --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/request_parser.hpp.html @@ -0,0 +1,138 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/server.cpp.html b/3party/asio/doc/examples/diffs/http/server/server.cpp.html new file mode 100644 index 0000000..f1c96fe --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/server.cpp.html @@ -0,0 +1,144 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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)​)​;​
36 34
35 ··​do_await_stop()​;​
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 {59 {
60 ··new_connection_.​reset(new·connection(io_context​_,​60 ··acceptor_.​async_accept(
61 ········connection_manager_,​·request_handler_)​)​;​61 ······[this](std:​:​error_code·ec,​·asio:​:​ip:​:​tcp:​:​socket·socket)​
62 ··acceptor_.​async_accept(new_conn​ection_-​>socket()​,​62 ······{
63 ······boost:​:​bind(&server:​:​handle_accept,​·​this,​63 ········/​/​·Check·whether·the·server·was·stopped·by·a·signal·before·​this
64 ········asio:​:​placeholders:​:​error)​)​;​64 ········/​/​·completion·handler·had·a·chance·to·run.​
65 }65 ········if·(!acceptor_.​is_open()​)​
66 ········​{
67 ··········​return;​
68 ········​}
66 69
67 void·server:​:​handle_accept(const·asio:​:​error_code&·e)​70 ········if·(!ec)​
68 {71 ········{
69 ··/​/​·Check·whether·the·server·was·stopped·by·a·signal·before·this·completion72 ··········connection_manager_.​start(std:​:​make_shared<connectio​n>(
70 ··/​/​·handler·had·a·chance·to·​run.​73 ··············std:​:​move(socket)​,​·connection_manager_,​·​request_handler_)​)​;​
71 ··if·(!acceptor_.​is_open()​)​74 ········}
72 ··{
73 ····return;​
74 ··}
75 75
76 ··if·(!e)​76 ········do_accept()​;​
77 ··{77 ······})​;​
78 ····connection_manager_.​start(new_connection_​)​;​
79 ··}
80
81 ··start_accept()​;​
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/http/server/server.hpp.html b/3party/asio/doc/examples/diffs/http/server/server.hpp.html new file mode 100644 index 0000000..9178aa0 --- /dev/null +++ b/3party/asio/doc/examples/diffs/http/server/server.hpp.html @@ -0,0 +1,112 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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
41 ··​/​/​/​·Handle·completion·of·an·asynchronous·accept·operation.​42 ··​/​/​/​·Wait·for·a·request·to·​stop·the·server.​
42 ··​void·handle_accept(const·asio:​:​error_code&·e)​;​43 ··​void·​do_await_stop()​;​
43 44
44 ··​/​/​/​·​Handle·​a·​request·​to·​stop·​the·​server.​
45 ··​void·​handle_stop()​;​
46
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/invocation/prioritised_handlers.cpp.html b/3party/asio/doc/examples/diffs/invocation/prioritised_handlers.cpp.html new file mode 100644 index 0000000..c2f2778 --- /dev/null +++ b/3party/asio/doc/examples/diffs/invocation/prioritised_handlers.cpp.html @@ -0,0 +1,247 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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·​:​·​public·​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;​
136 162
163 ··​void·​operator()​()​
164 ··​{
165 ····​std:​:​cout·​<<·​"Low·​priority·​handler\n";​
166 ··​}
167 };​
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/iostreams/http_client.cpp.html b/3party/asio/doc/examples/diffs/iostreams/http_client.cpp.html new file mode 100644 index 0000000..caeed04 --- /dev/null +++ b/3party/asio/doc/examples/diffs/iostreams/http_client.cpp.html @@ -0,0 +1,131 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/local/connect_pair.cpp.html b/3party/asio/doc/examples/diffs/local/connect_pair.cpp.html new file mode 100644 index 0000000..427b156 --- /dev/null +++ b/3party/asio/doc/examples/diffs/local/connect_pair.cpp.html @@ -0,0 +1,201 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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 ··​{
27 ····​read()​;​
28 ··​}28 ··​}
29 29
30 ··stream_protocol:​:​socket&·socket()​30 private:​
31 ··​void·​read()​
31 ··​{32 ··​{
32 ····​return·​socket_;​
33 ··​}
34
35 ··​void·​start()​
36 ··​{
37 ····​/​/​·​Wait·​for·​request.​
38 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​33 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​
39 ········boost:​:​bind(&uppercase_filte​r:​:​handle_read,​34 ········[this](std:​:​error_code·ec,​·std:​:​size_t·size)​
40 ··········this,​·asio:​:​placeholders:​:​error,​35 ········{
41 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​36 ··········​if·(!ec)​
42 ··}37 ··········{
38 ············​/​/​·​Compute·​result.​
39 ············​for·​(std:​:​size_t·​i·​=·​0;​·​i·​<·​size;​·​++i)​
40 ··············​data_[i]·​=·​std:​:​toupper(data_[i])​;​
43 41
44 private:​42 ············/​/​·Send·result.​
45 ··void·handle_read(const·asio:​:​error_code&·ec,​·std:​:​size_t·size)​43 ············write(size)​;​
46 ··{44 ··········}
47 ····if·(!ec)​45 ··········else
48 ····​{46 ··········​{
49 ······/​/​·Compute·result.​47 ············throw·asio:​:​system_error(ec)​;​
50 ······for·(std:​:​size_t·i·=·0;​·i·<·size;​·++i)​48 ··········}
51 ········data_[i]·=·std:​:​toupper(data_[i])​;​49 ········})​;​
52
53 ······/​/​·Send·result.​
54 ······asio:​:​async_write(socket_,​·asio:​:​buffer(data_,​·size)​,​
55 ··········boost:​:​bind(&uppercase_filte​r:​:​handle_write,​
56 ············this,​·asio:​:​placeholders:​:​error)​)​;​
57 ····}
58 ····else
59 ····{
60 ······throw·asio:​:​system_error(ec)​;​
61 ····}
62 ··​}50 ··​}
63 51
64 ··​void·handle_write(const·asio:​:​error_code&·ec)​52 ··​void·​write(std:​:​size_t·size)​
65 ··​{53 ··​{
66 ····​if·(!ec)​54 ····asio:​:​async_write(socket_,​·asio:​:​buffer(data_,​·size)​,​
67 ····{55 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*size*/​)​
68 ······/​/​·Wait·for·request.​56 ········{
69 ······socket_.​async_read_some(asio:​:​buffer(data_)​,​57 ··········if·(!ec)​
70 ··········boost:​:​bind(&uppercase_filte​r:​:​handle_read,​58 ··········{
71 ············this,​·asio:​:​placeholders:​:​error,​59 ············/​/​·Wait·for·request.​
72 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​60 ············​read()​;​
73 ····​}61 ··········​}
74 ····​else62 ··········​else
75 ····​{63 ··········​{
76 ······​throw·​asio:​:​system_error(ec)​;​64 ············​throw·​asio:​:​system_error(ec)​;​
77 ····​}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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/local/fd_passing_stream_client.cpp.html b/3party/asio/doc/examples/diffs/local/fd_passing_stream_client.cpp.html new file mode 100644 index 0000000..3092a69 --- /dev/null +++ b/3party/asio/doc/examples/diffs/local/fd_passing_stream_client.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff local/fd_passing_stream_client.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/local/fd_passing_stream_server.cpp.html b/3party/asio/doc/examples/diffs/local/fd_passing_stream_server.cpp.html new file mode 100644 index 0000000..d0d7b65 --- /dev/null +++ b/3party/asio/doc/examples/diffs/local/fd_passing_stream_server.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff local/fd_passing_stream_server.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/local/iostream_client.cpp.html b/3party/asio/doc/examples/diffs/local/iostream_client.cpp.html new file mode 100644 index 0000000..f7dc21f --- /dev/null +++ b/3party/asio/doc/examples/diffs/local/iostream_client.cpp.html @@ -0,0 +1,102 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/local/stream_client.cpp.html b/3party/asio/doc/examples/diffs/local/stream_client.cpp.html new file mode 100644 index 0000000..89a2227 --- /dev/null +++ b/3party/asio/doc/examples/diffs/local/stream_client.cpp.html @@ -0,0 +1,101 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/local/stream_server.cpp.html b/3party/asio/doc/examples/diffs/local/stream_server.cpp.html new file mode 100644 index 0000000..93e5e01 --- /dev/null +++ b/3party/asio/doc/examples/diffs/local/stream_server.cpp.html @@ -0,0 +1,188 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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()​30 ··void·​start()​
33 ··​{31 ··​{
34 ····return·socket_;​32 ····do_read()​;​
35 ··​}33 ··​}
36 34
37 ··void·start()​35 private:​
36 ··​void·​do_read()​
38 ··​{37 ··​{
38 ····​auto·​self(shared_from_this​()​)​;​
39 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​39 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​
40 ········boost:​:​bind(&session:​:​handle_read,​40 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·length)​
41 ··········shared_from_this()​,​41 ········{
42 ··········asio:​:​placeholders:​:​error,​42 ··········​if·(!ec)​
43 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​43 ············do_write(length)​;​
44 ········​})​;​
44 ··​}45 ··​}
45 46
46 ··​void·handle_read(const·asio:​:​error_code&·error,​47 ··​void·​do_write(std:​:​size_t·length)​
47 ······size_t·bytes_transferred)​
48 ··​{48 ··​{
49 ····if·​(!error)​49 ····auto·self(shared_from_this​()​)​;​
50 ····{50 ····asio:​:​async_write(socket_,​
51 ······​asio:​:​async_write(socket_,​51 ········​asio:​:​buffer(data_,​·length)​,​
52 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​52 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
53 ··········boost:​:​bind(&session:​:​handle_write,​53 ········{
54 ············shared_from_this()​,​54 ··········if·(!ec)​
55 ············asio:​:​placeholders:​:​error)​)​;​55 ············do_read()​;​
56 ····​}56 ········​})​;​
57 ··​}57 ··​}
58 58
59 ··​void·​handle_write(const·​asio:​:​error_code&·​error)​
60 ··​{
61 ····​if·​(!error)​
62 ····​{
63 ······​socket_.​async_read_some(asio:​:​buffer(data_)​,​
64 ··········​boost:​:​bind(&session:​:​handle_read,​
65 ············​shared_from_this()​,​
66 ············​asio:​:​placeholders:​:​error,​
67 ············​asio:​:​placeholders:​:​bytes_transferred)​)​;​
68 ····​}
69 ··​}
70
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/multicast/receiver.cpp.html b/3party/asio/doc/examples/diffs/multicast/receiver.cpp.html new file mode 100644 index 0000000..b28021f --- /dev/null +++ b/3party/asio/doc/examples/diffs/multicast/receiver.cpp.html @@ -0,0 +1,138 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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 ········{
47 ··········​if·​(!ec)​
48 ··········​{
49 ············​std:​:​cout.​write(data_.​data()​,​·​length)​;​
50 ············​std:​:​cout·​<<·​std:​:​endl;​
51 51
52 ······socket_.​async_receive_from(52 ············do_receive()​;​
53 ··········asio:​:​buffer(data_,​·max_length)​,​·sender_endpoint_,​53 ··········}
54 ··········boost:​:​bind(&receiver:​:​handle_receive_from,​·this,​54 ········})​;​
55 ············asio:​:​placeholders:​:​error,​
56 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​
57 ····}
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/multicast/sender.cpp.html b/3party/asio/doc/examples/diffs/multicast/sender.cpp.html new file mode 100644 index 0000000..50e1f5e --- /dev/null +++ b/3party/asio/doc/examples/diffs/multicast/sender.cpp.html @@ -0,0 +1,147 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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 ··​}57 ··​}
50 58
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 ··​}
65
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/nonblocking/third_party_lib.cpp.html b/3party/asio/doc/examples/diffs/nonblocking/third_party_lib.cpp.html new file mode 100644 index 0000000..d73aa2a --- /dev/null +++ b/3party/asio/doc/examples/diffs/nonblocking/third_party_lib.cpp.html @@ -0,0 +1,306 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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(const·asio:​:​any_io_executor&·ex)​
87 ··​{83 ··​{
88 ····​return·​pointer(new·​connection(ex)​)​;​
89 ··​}84 ··​}
90 85
91 ··​tcp:​:​socket&·​socket()​
92 ··​{
93 ····​return·​socket_;​
94 ··​}
95
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(const·asio:​:​any_io_executor&·ex)​95 ··void·do_operations()​
106 ····:​·socket_(ex)​,​
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;​
133 ····}
134 ··}
135 135
136 ··void·handle_read(asio:​:​error_code·ec)​136 ············/​/​·Notify·third·party·library·that·it·can·perform·a·write.​
137 ··{137 ············if·(!ec)​
138 ····read_in_progress_·=·false;​138 ··············session_impl_.​do_write(ec)​;​
139 139
140 ····/​/​·Notify·​third·​party·​library·that·it·can·​perform·​a·​read.​140 ············/​/​·The·​third·​party·​library·successfully·​performed·​a·write·on·the
141 ····​if·(!ec)​141 ············/​/​·socket.​·Start·new·read·or·write·operations·based·on·what·it·now
142 ······session_impl_.​do_read(ec)​;​142 ············/​/​·wants.​
143 ············​if·​(!ec·​||·​ec·​==·​asio:​:​error:​:​would_block)​
144 ··············​do_operations()​;​
143 145
144 ····/​/​·The·third·party·library·successfully·performed·a·read·​on·​the·​socket.​146 ············/​/​·Otherwise,​·an·​error·occurred.​·Closing·​the·​socket·cancels·any
145 ····/​/​·Start·new·read·or·write·operations·based·​on·​what·it·now·wants.​147 ············/​/​·outstanding·asynchronous·read·​or·​write·operations.​·The
146 ····if·(!ec·||·ec·==·asio:​:​error:​:​would_block)​148 ············/​/​·connection·object·will·be·destroyed·automatically·once·those
147 ······​start_operations()​;​149 ············/​/​·outstanding·operations·complete.​
148 150 ············else
149 ····/​/​·Otherwise,​·an·error·occurred.​·Closing·the·​socket·cancels·any·outstanding151 ··············​socket_.​close()​;​
150 ····/​/​·asynchronous·read·or·write·operations.​·The·connection·object·will·be152 ··········})​;​
151 ····/​/​·destroyed·automatically·once·those·outstanding·operations·complete.​153 ····}
152 ····else
153 ······socket_.​close()​;​
154 ··​}154 ··​}
155 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()​)​;​176 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
177 ········​{
178 ··········​if·​(!ec)​
179 ··········​{
180 ············​std:​:​make_shared<connectio​n>(std:​:​move(socket)​)​-​>start()​;​
181 ··········​}
197 182
198 ····acceptor_.​async_accept(new_conn​ection-​>socket()​,​183 ··········do_accept()​;​
199 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_connection,​184 ········})​;​
200 ··········asio:​:​placeholders:​:​error)​)​;​
201 ··​}185 ··​}
202 186
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
211 ····​start_accept()​;​
212 ··​}
213
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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/operations/composed_1.cpp.html b/3party/asio/doc/examples/diffs/operations/composed_1.cpp.html new file mode 100644 index 0000000..55c0f60 --- /dev/null +++ b/3party/asio/doc/examples/diffs/operations/composed_1.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff operations/composed_1.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/operations/composed_2.cpp.html b/3party/asio/doc/examples/diffs/operations/composed_2.cpp.html new file mode 100644 index 0000000..53b27d0 --- /dev/null +++ b/3party/asio/doc/examples/diffs/operations/composed_2.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff operations/composed_2.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/operations/composed_3.cpp.html b/3party/asio/doc/examples/diffs/operations/composed_3.cpp.html new file mode 100644 index 0000000..83a895b --- /dev/null +++ b/3party/asio/doc/examples/diffs/operations/composed_3.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff operations/composed_3.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/operations/composed_4.cpp.html b/3party/asio/doc/examples/diffs/operations/composed_4.cpp.html new file mode 100644 index 0000000..b4d074b --- /dev/null +++ b/3party/asio/doc/examples/diffs/operations/composed_4.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff operations/composed_4.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/operations/composed_5.cpp.html b/3party/asio/doc/examples/diffs/operations/composed_5.cpp.html new file mode 100644 index 0000000..7346ce9 --- /dev/null +++ b/3party/asio/doc/examples/diffs/operations/composed_5.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff operations/composed_5.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/operations/composed_6.cpp.html b/3party/asio/doc/examples/diffs/operations/composed_6.cpp.html new file mode 100644 index 0000000..f77376d --- /dev/null +++ b/3party/asio/doc/examples/diffs/operations/composed_6.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff operations/composed_6.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/operations/composed_7.cpp.html b/3party/asio/doc/examples/diffs/operations/composed_7.cpp.html new file mode 100644 index 0000000..1948a22 --- /dev/null +++ b/3party/asio/doc/examples/diffs/operations/composed_7.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff operations/composed_7.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/operations/composed_8.cpp.html b/3party/asio/doc/examples/diffs/operations/composed_8.cpp.html new file mode 100644 index 0000000..8ab9bcb --- /dev/null +++ b/3party/asio/doc/examples/diffs/operations/composed_8.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff operations/composed_8.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/parallel_group/ranged_wait_for_all.cpp.html b/3party/asio/doc/examples/diffs/parallel_group/ranged_wait_for_all.cpp.html new file mode 100644 index 0000000..cff659f --- /dev/null +++ b/3party/asio/doc/examples/diffs/parallel_group/ranged_wait_for_all.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff parallel_group/ranged_wait_for_all.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/parallel_group/wait_for_all.cpp.html b/3party/asio/doc/examples/diffs/parallel_group/wait_for_all.cpp.html new file mode 100644 index 0000000..890f1a9 --- /dev/null +++ b/3party/asio/doc/examples/diffs/parallel_group/wait_for_all.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff parallel_group/wait_for_all.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/parallel_group/wait_for_one.cpp.html b/3party/asio/doc/examples/diffs/parallel_group/wait_for_one.cpp.html new file mode 100644 index 0000000..ba5862a --- /dev/null +++ b/3party/asio/doc/examples/diffs/parallel_group/wait_for_one.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff parallel_group/wait_for_one.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/parallel_group/wait_for_one_error.cpp.html b/3party/asio/doc/examples/diffs/parallel_group/wait_for_one_error.cpp.html new file mode 100644 index 0000000..04b48d5 --- /dev/null +++ b/3party/asio/doc/examples/diffs/parallel_group/wait_for_one_error.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff parallel_group/wait_for_one_error.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/parallel_group/wait_for_one_success.cpp.html b/3party/asio/doc/examples/diffs/parallel_group/wait_for_one_success.cpp.html new file mode 100644 index 0000000..189a1af --- /dev/null +++ b/3party/asio/doc/examples/diffs/parallel_group/wait_for_one_success.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff parallel_group/wait_for_one_success.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/socks4/socks4.hpp.html b/3party/asio/doc/examples/diffs/socks4/socks4.hpp.html new file mode 100644 index 0000000..0429f51 --- /dev/null +++ b/3party/asio/doc/examples/diffs/socks4/socks4.hpp.html @@ -0,0 +1,185 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/socks4/sync_client.cpp.html b/3party/asio/doc/examples/diffs/socks4/sync_client.cpp.html new file mode 100644 index 0000000..74efef4 --- /dev/null +++ b/3party/asio/doc/examples/diffs/socks4/sync_client.cpp.html @@ -0,0 +1,135 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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·​=
48 ······​*resolver.​resolve(tcp:​:​v4()​,​·​"www.​boost.​org",​·​"http")​.​begin()​;​48 ······​*resolver.​resolve(tcp:​:​v4()​,​·​"www.​boost.​org",​·​"http")​.​begin()​;​
49 49
50 ····​/​/​·​Send·​the·​request·​to·​the·​SOCKS·​4·​server.​50 ····​/​/​·​Send·​the·​request·​to·​the·​SOCKS·​4·​server.​
51 ····​socks4:​:​request·​socks_request(51 ····​socks4:​:​request·​socks_request(
52 ········​socks4:​:​request:​:​connect,​·​http_endpoint,​·​argv[3])​;​52 ········​socks4:​:​request:​:​connect,​·​http_endpoint,​·​argv[3])​;​
53 ····​asio:​:​write(socket,​·​socks_request.​buffers()​)​;​53 ····​asio:​:​write(socket,​·​socks_request.​buffers()​)​;​
54 54
55 ····​/​/​·​Receive·​a·​response·​from·​the·​SOCKS·​4·​server.​55 ····​/​/​·​Receive·​a·​response·​from·​the·​SOCKS·​4·​server.​
56 ····​socks4:​:​reply·​socks_reply;​56 ····​socks4:​:​reply·​socks_reply;​
57 ····​asio:​:​read(socket,​·​socks_reply.​buffers()​)​;​57 ····​asio:​:​read(socket,​·​socks_reply.​buffers()​)​;​
58 58
59 ····​/​/​·​Check·​whether·​we·​successfully·​negotiated·​with·​the·​SOCKS·​4·​server.​59 ····​/​/​·​Check·​whether·​we·​successfully·​negotiated·​with·​the·​SOCKS·​4·​server.​
60 ····​if·​(!socks_reply.​success()​)​60 ····​if·​(!socks_reply.​success()​)​
61 ····​{61 ····​{
62 ······​std:​:​cout·​<<·​"Connection·​failed.​\n";​62 ······​std:​:​cout·​<<·​"Connection·​failed.​\n";​
63 ······​std:​:​cout·​<<·​"status·​=·​0x"·​<<·​std:​:​hex·​<<·​socks_reply.​status()​;​63 ······​std:​:​cout·​<<·​"status·​=·​0x"·​<<·​std:​:​hex·​<<·​socks_reply.​status()​;​
64 ······​return·​1;​64 ······​return·​1;​
65 ····​}65 ····​}
66 66
67 ····​/​/​·​Form·​the·​HTTP·​request.​·​We·​specify·​the·​"Connection:​·​close"·​header·​so·​that67 ····​/​/​·​Form·​the·​HTTP·​request.​·​We·​specify·​the·​"Connection:​·​close"·​header·​so·​that
68 ····​/​/​·​the·​server·​will·​close·​the·​socket·​after·​transmitting·​the·​response.​·​This68 ····​/​/​·​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.​69 ····​/​/​·​will·​allow·​us·​to·​treat·​all·​data·​up·​until·​the·​EOF·​as·​the·​response.​
70 ····​std:​:​string·​request·​=70 ····​std:​:​string·​request·​=
71 ······​"GET·​/​·​HTTP/​1.​0\r\n"71 ······​"GET·​/​·​HTTP/​1.​0\r\n"
72 ······​"Host:​·​www.​boost.​org\r\n"72 ······​"Host:​·​www.​boost.​org\r\n"
73 ······​"Accept:​·​*/​*\r\n"73 ······​"Accept:​·​*/​*\r\n"
74 ······​"Connection:​·​close\r\n\r\n";​74 ······​"Connection:​·​close\r\n\r\n";​
75 75
76 ····​/​/​·​Send·​the·​HTTP·​request.​76 ····​/​/​·​Send·​the·​HTTP·​request.​
77 ····​asio:​:​write(socket,​·​asio:​:​buffer(request)​)​;​77 ····​asio:​:​write(socket,​·​asio:​:​buffer(request)​)​;​
78 78
79 ····​/​/​·​Read·​until·​EOF,​·​writing·​data·​to·​output·​as·​we·​go.​79 ····​/​/​·​Read·​until·​EOF,​·​writing·​data·​to·​output·​as·​we·​go.​
80 ····boost:​:​array<char,​·​512>·​response;​80 ····​std:​:​array<char,​·​512>·​response;​
81 ····asio:​:​error_code·​error;​81 ····​std:​:​error_code·​error;​
82 ····​while·​(std:​:​size_t·​s·​=·​socket.​read_some(82 ····​while·​(std:​:​size_t·​s·​=·​socket.​read_some(
83 ··········​asio:​:​buffer(response)​,​·​error)​)​83 ··········​asio:​:​buffer(response)​,​·​error)​)​
84 ······​std:​:​cout.​write(response.​data()​,​·​s)​;​84 ······​std:​:​cout.​write(response.​data()​,​·​s)​;​
85 ····​if·​(error·​!=·​asio:​:​error:​:​eof)​85 ····​if·​(error·​!=·​asio:​:​error:​:​eof)​
86 ······​throw·asio:​:​system_error(error)​;​86 ······​throw·​std:​:​system_error(error)​;​
87 ··​}87 ··​}
88 ··​catch·​(std:​:​exception&·​e)​88 ··​catch·​(std:​:​exception&·​e)​
89 ··​{89 ··​{
90 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​90 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
91 ··​}91 ··​}
92 92
93 ··​return·​0;​93 ··​return·​0;​
94 }94 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/spawn/echo_server.cpp.html b/3party/asio/doc/examples/diffs/spawn/echo_server.cpp.html new file mode 100644 index 0000000..c02ea2f --- /dev/null +++ b/3party/asio/doc/examples/diffs/spawn/echo_server.cpp.html @@ -0,0 +1,210 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​detached.​hpp>11 #include·​<asio/​detached.​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/​spawn.​hpp>14 #include·​<asio/​spawn.​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/​bind.​hpp>
18 #include·​<boost/​shared_ptr.​hpp>
19 #include·​<boost/​enable_shared_from_th​is.​hpp>
20 #include·​<iostream>17 #include·​<iostream>
18 #include·​<memory>
21 19
22 using·​asio:​:​ip:​:​tcp;​20 using·​asio:​:​ip:​:​tcp;​
23 21
24 class·​session·​:​·​public·boost:​:​enable_shared_from_th​is<session>22 class·​session·​:​·​public·​std:​:​enable_shared_from_th​is<session>
25 {23 {
26 public:​24 public:​
27 ··​explicit·​session(asio:​:​io_context&·​io_context)​25 ··​explicit·​session(asio:​:​io_context&·​io_context,​·tcp:​:​socket·socket)​
28 ····​:​·​strand_(asio:​:​make_strand(io_contex​t)​)​,​26 ····​:​·​socket_(std:​:​move(socket)​)​,​
29 ······socket_(io_context)​,​27 ······timer_(io_context)​,​
30 ······​timer_(io_context)​28 ······strand_(io_context.​get_executor()​)​
31 ··​{29 ··​{
32 ··​}30 ··​}
33 31
34 ··​tcp:​:​socket&·​socket()​
35 ··​{
36 ····​return·​socket_;​
37 ··​}
38
39 ··​void·​go()​32 ··​void·​go()​
40 ··​{33 ··​{
34 ····​auto·​self(shared_from_this​()​)​;​
41 ····​asio:​:​spawn(strand_,​35 ····​asio:​:​spawn(strand_,​
42 ········boost:​:​bind(&session:​:​echo,​36 ········[this,​·self](asio:​:​yield_context·yield)​
43 ··········shared_from_this()​,​·boost:​:​placeholders:​:​_1)​,​37 ········{
44 ········asio:​:​detached_t()​)​;​38 ··········try
39 ··········​{
40 ············​char·​data[128];​
41 ············​for·​(;​;​)​
42 ············​{
43 ··············​timer_.​expires_after(std:​:​chrono:​:​seconds(10)​)​;​
44 ··············​std:​:​size_t·​n·​=·​socket_.​async_read_some(asio:​:​buffer(data)​,​·​yield)​;​
45 ··············​asio:​:​async_write(socket_,​·​asio:​:​buffer(data,​·​n)​,​·​yield)​;​
46 ············​}
47 ··········​}
48 ··········​catch·​(std:​:​exception&·​e)​
49 ··········​{
50 ············​socket_.​close()​;​
51 ············​timer_.​cancel()​;​
52 ··········​}
53 ········​},​·​asio:​:​detached)​;​
54
45 ····​asio:​:​spawn(strand_,​55 ····​asio:​:​spawn(strand_,​
46 ········boost:​:​bind(&session:​:​timeout,​56 ········[this,​·self](asio:​:​yield_context·yield)​
47 ··········shared_from_this()​,​·boost:​:​placeholders:​:​_1)​,​57 ········{
48 ········asio:​:​detached_t()​)​;​58 ··········while·(socket_.​is_open()​)​
59 ··········​{
60 ············​asio:​:​error_code·​ignored_ec;​
61 ············​timer_.​async_wait(yield[igno​red_ec])​;​
62 ············​if·​(timer_.​expiry()​·​<=·​asio:​:​steady_timer:​:​clock_type:​:​now()​)​
63 ··············​socket_.​close()​;​
64 ··········​}
65 ········​},​·​asio:​:​detached)​;​
49 ··​}66 ··​}
50 67
51 private:​68 private:​
52 ··​void·​echo(asio:​:​yield_context·​yield)​
53 ··​{
54 ····​try
55 ····​{
56 ······​char·​data[128];​
57 ······​for·​(;​;​)​
58 ······​{
59 ········​timer_.​expires_after(asio:​:​chrono:​:​seconds(10)​)​;​
60 ········​std:​:​size_t·​n·​=·​socket_.​async_read_some(asio:​:​buffer(data)​,​·​yield)​;​
61 ········​asio:​:​async_write(socket_,​·​asio:​:​buffer(data,​·​n)​,​·​yield)​;​
62 ······​}
63 ····​}
64 ····​catch·​(std:​:​exception&·​e)​
65 ····​{
66 ······​socket_.​close()​;​
67 ······​timer_.​cancel()​;​
68 ····​}
69 ··​}
70
71 ··​void·​timeout(asio:​:​yield_context·​yield)​
72 ··​{
73 ····​while·​(socket_.​is_open()​)​
74 ····​{
75 ······​asio:​:​error_code·​ignored_ec;​
76 ······​timer_.​async_wait(yield[igno​red_ec])​;​
77 ······​if·​(timer_.​expiry()​·​<=·​asio:​:​steady_timer:​:​clock_type:​:​now()​)​
78 ········​socket_.​close()​;​
79 ····​}
80 ··​}
81
82 ··​asio:​:​strand<asio:​:​io_context:​:​executor_type>·​strand_;​
83 ··​tcp:​:​socket·​socket_;​69 ··​tcp:​:​socket·​socket_;​
84 ··​asio:​:​steady_timer·​timer_;​70 ··​asio:​:​steady_timer·​timer_;​
71 ··​asio:​:​strand<asio:​:​io_context:​:​executor_type>·​strand_;​
85 };​72 };​
86 73
87 void·​do_accept(asio:​:​io_context&·​io_context,​
88 ····​unsigned·​short·​port,​·​asio:​:​yield_context·​yield)​
89 {
90 ··​tcp:​:​acceptor·​acceptor(io_context,​·​tcp:​:​endpoint(tcp:​:​v4()​,​·​port)​)​;​
91
92 ··​for·​(;​;​)​
93 ··​{
94 ····​asio:​:​error_code·​ec;​
95 ····​boost:​:​shared_ptr<session>·​new_session(new·​session(io_context)​)​;​
96 ····​acceptor.​async_accept(new_sess​ion-​>socket()​,​·​yield[ec])​;​
97 ····​if·​(!ec)​·​new_session-​>go()​;​
98 ··​}
99 }
100
101 int·​main(int·​argc,​·​char*·​argv[])​74 int·​main(int·​argc,​·​char*·​argv[])​
102 {75 {
103 ··​try76 ··​try
104 ··​{77 ··​{
105 ····​if·​(argc·​!=·​2)​78 ····​if·​(argc·​!=·​2)​
106 ····​{79 ····​{
107 ······​std:​:​cerr·​<<·​"Usage:​·​echo_server·​<port>\n";​80 ······​std:​:​cerr·​<<·​"Usage:​·​echo_server·​<port>\n";​
108 ······​return·​1;​81 ······​return·​1;​
109 ····​}82 ····​}
110 83
111 ····​asio:​:​io_context·​io_context;​84 ····​asio:​:​io_context·​io_context;​
112 85
113 ····​asio:​:​spawn(io_context,​86 ····​asio:​:​spawn(io_context,​
114 ········boost:​:​bind(do_accept,​·boost:​:​ref(io_context)​,​87 ········[&](asio:​:​yield_context·yield)​
115 ··········atoi(argv[1])​,​·boost:​:​placeholders:​:​_1)​,​88 ········{
116 ········asio:​:​detached_t()​)​;​89 ··········tcp:​:​acceptor·acceptor(io_context,​
90 ············​tcp:​:​endpoint(tcp:​:​v4()​,​·​std:​:​atoi(argv[1])​)​)​;​
117 91
92 ··········​for·​(;​;​)​
93 ··········​{
94 ············​asio:​:​error_code·​ec;​
95 ············​tcp:​:​socket·​socket(io_context)​;​
96 ············​acceptor.​async_accept(socket,​·​yield[ec])​;​
97 ············​if·​(!ec)​
98 ············​{
99 ··············​std:​:​make_shared<session>(​io_context,​·​std:​:​move(socket)​)​-​>go()​;​
100 ············​}
101 ··········​}
102 ········​},​
103 ········​[](std:​:​exception_ptr·​e)​
104 ········​{
105 ··········​if·​(e)​
106 ············​std:​:​rethrow_exception(e)​;​
107 ········​})​;​
108
118 ····​io_context.​run()​;​109 ····​io_context.​run()​;​
119 ··​}110 ··​}
120 ··​catch·​(std:​:​exception&·​e)​111 ··​catch·​(std:​:​exception&·​e)​
121 ··​{112 ··​{
122 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​113 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
123 ··​}114 ··​}
124 115
125 ··​return·​0;​116 ··​return·​0;​
126 }117 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/spawn/parallel_grep.cpp.html b/3party/asio/doc/examples/diffs/spawn/parallel_grep.cpp.html new file mode 100644 index 0000000..aa6c9f8 --- /dev/null +++ b/3party/asio/doc/examples/diffs/spawn/parallel_grep.cpp.html @@ -0,0 +1,152 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​detached.​hpp>11 #include·​<asio/​detached.​hpp>
12 #include·​<asio/​dispatch.​hpp>12 #include·​<asio/​dispatch.​hpp>
13 #include·​<asio/​post.​hpp>13 #include·​<asio/​post.​hpp>
14 #include·​<asio/​spawn.​hpp>14 #include·​<asio/​spawn.​hpp>
15 #include·​<asio/​strand.​hpp>15 #include·​<asio/​strand.​hpp>
16 #include·​<asio/​thread_pool.​hpp>16 #include·​<asio/​thread_pool.​hpp>
17 #include·​<boost/​bind/​bind.​hpp>
18 #include·​<fstream>17 #include·​<fstream>
19 #include·​<iostream>18 #include·​<iostream>
20 #include·​<string>19 #include·​<string>
21 20
22 using·​asio:​:​detached_t;​21 using·​asio:​:​detached;​
23 using·​asio:​:​dispatch;​22 using·​asio:​:​dispatch;​
24 using·​asio:​:​spawn;​23 using·​asio:​:​spawn;​
25 using·​asio:​:​strand;​24 using·​asio:​:​strand;​
26 using·​asio:​:​thread_pool;​25 using·​asio:​:​thread_pool;​
27 using·​asio:​:​yield_context;​26 using·​asio:​:​yield_context;​
28 27
29 void·​print_match(std:​:​string·​input_file,​·​std:​:​string·​line)​
30 {
31 ··​std:​:​cout·​<<·​input_file·​<<·​':​'·​<<·​line·​<<·​std:​:​endl;​
32 }
33
34 void·​search_file(std:​:​string·​search_string,​·​std:​:​string·​input_file,​
35 ····​strand<thread_pool:​:​executor_type>·​output_strand,​·​yield_context·​yield)​
36 {
37 ··​std:​:​ifstream·​is(input_file.​c_str()​)​;​
38 ··​std:​:​string·​line;​
39 ··​std:​:​size_t·​line_num·​=·​0;​
40 ··​while·​(std:​:​getline(is,​·​line)​)​
41 ··​{
42 ····​/​/​·​If·​we·​find·​a·​match,​·​send·​a·​message·​to·​the·​output.​
43 ····​if·​(line.​find(search_string)​·​!=·​std:​:​string:​:​npos)​
44 ····​{
45 ······​dispatch(output_stran​d,​·​boost:​:​bind(&print_match,​·​input_file,​·​line)​)​;​
46 ····​}
47
48 ····​/​/​·​Every·​so·​often·​we·​yield·​control·​to·​another·​coroutine.​
49 ····​if·​(++line_num·​%·​10·​==·​0)​
50 ······​post(yield)​;​
51 ··​}
52 }
53
54 int·​main(int·​argc,​·​char*·​argv[])​28 int·​main(int·​argc,​·​char*·​argv[])​
55 {29 {
56 ··​try30 ··​try
57 ··​{31 ··​{
58 ····​if·​(argc·​<·​2)​32 ····​if·​(argc·​<·​2)​
59 ····​{33 ····​{
60 ······​std:​:​cerr·​<<·​"Usage:​·​parallel_grep·​<string>·​<files.​.​.​>\n";​34 ······​std:​:​cerr·​<<·​"Usage:​·​parallel_grep·​<string>·​<files.​.​.​>\n";​
61 ······​return·​1;​35 ······​return·​1;​
62 ····​}36 ····​}
63 37
64 ····​/​/​·​We·​use·​a·​fixed·​size·​pool·​of·​threads·​for·​reading·​the·​input·​files.​·​The38 ····​/​/​·​We·​use·​a·​fixed·​size·​pool·​of·​threads·​for·​reading·​the·​input·​files.​·​The
65 ····​/​/​·​number·​of·​threads·​is·​automatically·​determined·​based·​on·​the·​number·​of39 ····​/​/​·​number·​of·​threads·​is·​automatically·​determined·​based·​on·​the·​number·​of
66 ····​/​/​·​CPUs·​available·​in·​the·​system.​40 ····​/​/​·​CPUs·​available·​in·​the·​system.​
67 ····​thread_pool·​pool;​41 ····​thread_pool·​pool;​
68 42
69 ····​/​/​·​To·​prevent·​the·​output·​from·​being·​garbled,​·​we·​use·​a·​strand·​to·​synchronise43 ····​/​/​·​To·​prevent·​the·​output·​from·​being·​garbled,​·​we·​use·​a·​strand·​to·​synchronise
70 ····​/​/​·​printing.​44 ····​/​/​·​printing.​
71 ····​strand<thread_pool:​:​executor_type>·​output_strand(pool.​get_executor()​)​;​45 ····​strand<thread_pool:​:​executor_type>·​output_strand(pool.​get_executor()​)​;​
72 46
73 ····​/​/​·​Spawn·​a·​new·​coroutine·​for·​each·​file·​specified·​on·​the·​command·​line.​47 ····​/​/​·​Spawn·​a·​new·​coroutine·​for·​each·​file·​specified·​on·​the·​command·​line.​
74 ····​std:​:​string·​search_string·​=·​argv[1];​48 ····​std:​:​string·​search_string·​=·​argv[1];​
75 ····​for·​(int·​argn·​=·​2;​·​argn·​<·​argc;​·​++argn)​49 ····​for·​(int·​argn·​=·​2;​·​argn·​<·​argc;​·​++argn)​
76 ····​{50 ····​{
77 ······​std:​:​string·​input_file·​=·​argv[argn];​51 ······​std:​:​string·​input_file·​=·​argv[argn];​
78 ······​spawn(pool,​52 ······​spawn(pool,​
79 ··········boost:​:​bind(&search_file,​·search_string,​53 ········[=](yield_context·yield)​
80 ············input_file,​·output_strand,​·boost:​:​placeholders:​:​_1)​,​54 ········{
81 ··········​detached_t()​)​;​55 ··········std:​:​ifstream·is(input_file.​c_str()​)​;​
56 ··········​std:​:​string·​line;​
57 ··········​std:​:​size_t·​line_num·​=·​0;​
58 ··········​while·​(std:​:​getline(is,​·​line)​)​
59 ··········​{
60 ············​/​/​·​If·​we·​find·​a·​match,​·​send·​a·​message·​to·​the·​output.​
61 ············​if·​(line.​find(search_string)​·​!=·​std:​:​string:​:​npos)​
62 ············​{
63 ··············​dispatch(output_stran​d,​
64 ··················​[=]
65 ··················​{
66 ····················​std:​:​cout·​<<·​input_file·​<<·​':​'·​<<·​line·​<<·​std:​:​endl;​
67 ··················​})​;​
68 ············​}
69
70 ············​/​/​·​Every·​so·​often·​we·​yield·​control·​to·​another·​coroutine.​
71 ············​if·​(++line_num·​%·​10·​==·​0)​
72 ··············​post(yield)​;​
73 ··········​}
74 ········​},​·​detached)​;​
82 ····​}75 ····​}
83 76
84 ····​/​/​·​Join·​the·​thread·​pool·​to·​wait·​for·​all·​the·​spawned·​tasks·​to·​complete.​77 ····​/​/​·​Join·​the·​thread·​pool·​to·​wait·​for·​all·​the·​spawned·​tasks·​to·​complete.​
85 ····​pool.​join()​;​78 ····​pool.​join()​;​
86 ··​}79 ··​}
87 ··​catch·​(std:​:​exception&·​e)​80 ··​catch·​(std:​:​exception&·​e)​
88 ··​{81 ··​{
89 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​82 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
90 ··​}83 ··​}
91 84
92 ··​return·​0;​85 ··​return·​0;​
93 }86 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/ssl/client.cpp.html b/3party/asio/doc/examples/diffs/ssl/client.cpp.html new file mode 100644 index 0000000..03d9d03 --- /dev/null +++ b/3party/asio/doc/examples/diffs/ssl/client.cpp.html @@ -0,0 +1,217 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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,​34 ········​std:​:​bind(&client:​:​verify_certificate,​·​this,​·_1,​·_2)​)​;​
30 ··········boost:​:​placeholders:​:​_1,​·boost:​:​placeholders:​:​_2)​)​;​
31 35
32 ····asio:​:​async_connect(socket_​.​lowest_layer()​,​·endpoints,​36 ····​connect(endpoints)​;​
33 ········boost:​:​bind(&client:​:​handle_connect,​·this,​
34 ··········asio:​:​placeholders:​:​error)​)​;​
35 ··​}37 ··​}
36 38
39 private:​
37 ··​bool·​verify_certificate(bo​ol·​preverified,​40 ··​bool·​verify_certificate(bo​ol·​preverified,​
38 ······​asio:​:​ssl:​:​verify_context&·​ctx)​41 ······​asio:​:​ssl:​:​verify_context&·​ctx)​
39 ··​{42 ··​{
40 ····​/​/​·​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
41 ····​/​/​·​being·​presented·​is·​valid·​for·​the·​peer.​·​For·​example,​·​RFC·​2818·​describes44 ····​/​/​·​being·​presented·​is·​valid·​for·​the·​peer.​·​For·​example,​·​RFC·​2818·​describes
42 ····​/​/​·​the·​steps·​involved·​in·​doing·​this·​for·​HTTPS.​·​Consult·​the·​OpenSSL45 ····​/​/​·​the·​steps·​involved·​in·​doing·​this·​for·​HTTPS.​·​Consult·​the·​OpenSSL
43 ····​/​/​·​documentation·​for·​more·​details.​·​Note·​that·​the·​callback·​is·​called·​once46 ····​/​/​·​documentation·​for·​more·​details.​·​Note·​that·​the·​callback·​is·​called·​once
44 ····​/​/​·​for·​each·​certificate·​in·​the·​certificate·​chain,​·​starting·​from·​the·​root47 ····​/​/​·​for·​each·​certificate·​in·​the·​certificate·​chain,​·​starting·​from·​the·​root
45 ····​/​/​·​certificate·​authority.​48 ····​/​/​·​certificate·​authority.​
46 49
47 ····​/​/​·​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.​
48 ····​char·​subject_name[256];​51 ····​char·​subject_name[256];​
49 ····​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()​)​;​
50 ····​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)​;​
51 ····​std:​:​cout·​<<·​"Verifying·​"·​<<·​subject_name·​<<·​"\n";​54 ····​std:​:​cout·​<<·​"Verifying·​"·​<<·​subject_name·​<<·​"\n";​
52 55
53 ····​return·​preverified;​56 ····​return·​preverified;​
54 ··​}57 ··​}
55 58
56 ··​void·handle_connect(const·asio:​:​error_code&·​error)​59 ··​void·​connect(const·tcp:​:​resolver:​:​results_type&·​endpoints)​
57 ··​{60 ··​{
58 ····​if·(!error)​61 ····asio:​:​async_connect(socket_​.​lowest_layer()​,​·endpoints,​
59 ····{62 ········[this](const·std:​:​error_code&·error,​
60 ······socket_.​async_handshake(asio:​:​ssl:​:​stream_base:​:​client,​63 ··········const·tcp:​:​endpoint&·/​*endpoint*/​)​
61 ··········boost:​:​bind(&client:​:​handle_handshake,​·this,​64 ········{
62 ············asio:​:​placeholders:​:​error)​)​;​65 ··········​if·(!error)​
63 ····}66 ··········{
64 ····else67 ············handshake()​;​
65 ····{68 ··········}
66 ······std:​:​cout·<<·"Connect·failed:​·"·<<·error.​message()​·<<·"\n";​69 ··········​else
67 ····}70 ··········{
71 ············​std:​:​cout·​<<·​"Connect·​failed:​·​"·​<<·​error.​message()​·​<<·​"\n";​
72 ··········​}
73 ········​})​;​
68 ··​}74 ··​}
69 75
70 ··​void·handle_handshake(cons​t·asio:​:​error_code&·error)​76 ··​void·​handshake()​
71 ··​{77 ··​{
72 ····if·(!error)​78 ····socket_.​async_handshake(asio:​:​ssl:​:​stream_base:​:​client,​
73 ····{79 ········[this](const·std:​:​error_code&·error)​
74 ······std:​:​cout·<<·"Enter·message:​·";​80 ········{
75 ······std:​:​cin.​getline(request_,​·max_length)​;​81 ··········if·(!error)​
76 ······size_t·request_length·=·strlen(request_)​;​82 ··········{
77 83 ············send_request()​;​
78 ······asio:​:​async_write(socket_,​84 ··········}
79 ··········asio:​:​buffer(request_,​·request_length)​,​85 ··········​else
80 ··········boost:​:​bind(&client:​:​handle_write,​·this,​86 ··········{
81 ············asio:​:​placeholders:​:​error,​87 ············​std:​:​cout·<<·"Handshake·failed:​·"·<<·error.​message()​·<<·"\n";​
82 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​88 ··········}
83 ····​}89 ········​})​;​
84 ····else
85 ····{
86 ······std:​:​cout·<<·"Handshake·failed:​·"·<<·error.​message()​·<<·"\n";​
87 ····}
88 ··​}90 ··​}
89 91
90 ··​void·handle_write(const·asio:​:​error_code&·error,​92 ··​void·send_request()​
91 ······size_t·bytes_transferred)​
92 ··​{93 ··​{
93 ····if·(!error)​94 ····std:​:​cout·<<·"Enter·message:​·";​
94 ····{95 ····std:​:​cin.​getline(request_,​·max_length)​;​
95 ······asio:​:​async_read(socket_,​96 ····size_t·request_length·=·std:​:​strlen(request_)​;​
96 ··········asio:​:​buffer(reply_,​·bytes_transferred)​,​97
97 ··········boost:​:​bind(&client:​:​handle_read,​·this,​98 ····asio:​:​async_write(socket_,​
98 ············​asio:​:​placeholders:​:​error,​99 ········​asio:​:​buffer(request_,​·request_length)​,​
99 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​100 ········[this](const·std:​:​error_code&·error,​·std:​:​size_t·length)​
100 ····}101 ········{
101 ····​else102 ··········if·(!error)​
102 ····​{103 ··········​{
103 ······std:​:​cout·<<·"Write·failed:​·"·<<·error.​message()​·<<·"\n";​104 ············receive_response(leng​th)​;​
104 ····​}105 ··········​}
106 ··········​else
107 ··········​{
108 ············​std:​:​cout·​<<·​"Write·​failed:​·​"·​<<·​error.​message()​·​<<·​"\n";​
109 ··········​}
110 ········​})​;​
105 ··​}111 ··​}
106 112
107 ··​void·handle_read(const·asio:​:​error_code&·error,​113 ··​void·receive_response(std:​:​size_t·length)​
108 ······size_t·bytes_transferred)​
109 ··​{114 ··​{
110 ····​if·(!error)​115 ····asio:​:​async_read(socket_,​
111 ····{116 ········asio:​:​buffer(reply_,​·length)​,​
112 ······​std:​:​cout·<<·"Reply:​·";​117 ········[this](const·​std:​:​error_code&·error,​·std:​:​size_t·length)​
113 ······std:​:​cout.​write(reply_,​·bytes_transferred)​;​118 ········{
114 ······std:​:​cout·<<·"\n";​119 ··········if·(!error)​
115 ····}120 ··········{
116 ····​else121 ············std:​:​cout·<<·"Reply:​·";​
117 ····{122 ············std:​:​cout.​write(reply_,​·length)​;​
118 ······std:​:​cout·<<·"Read·failed:​·"·<<·error.​message()​·​<<·​"\n";​123 ············std:​:​cout·​<<·​"\n";​
119 ····​}124 ··········​}
125 ··········​else
126 ··········​{
127 ············​std:​:​cout·​<<·​"Read·​failed:​·​"·​<<·​error.​message()​·​<<·​"\n";​
128 ··········​}
129 ········​})​;​
120 ··​}130 ··​}
121 131
122 private:​132 ··asio:​:​ssl:​:​stream<tcp:​:​socket>·socket_;​
123 ··asio:​:​ssl:​:​stream<asio:​:​ip:​:​tcp:​:​socket>·socket_;​
124 ··​char·​request_[max_length];​133 ··​char·​request_[max_length];​
125 ··​char·​reply_[max_length];​134 ··​char·​reply_[max_length];​
126 };​135 };​
127 136
128 int·​main(int·​argc,​·​char*·​argv[])​137 int·​main(int·​argc,​·​char*·​argv[])​
129 {138 {
130 ··​try139 ··​try
131 ··​{140 ··​{
132 ····​if·​(argc·​!=·​3)​141 ····​if·​(argc·​!=·​3)​
133 ····​{142 ····​{
134 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​143 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​
135 ······​return·​1;​144 ······​return·​1;​
136 ····​}145 ····​}
137 146
138 ····​asio:​:​io_context·​io_context;​147 ····​asio:​:​io_context·​io_context;​
139 148
140 ····asio:​:​ip:​:​tcp:​:​resolver·​resolver(io_context)​;​149 ····​tcp:​:​resolver·​resolver(io_context)​;​
141 ····​asio:​:​ip:​:​tcp:​:​resolver:​:​results_type·endpoints·=150 ····​auto·endpoints·=·resolver.​resolve(argv[1],​·argv[2])​;​
142 ······resolver.​resolve(argv[1],​·argv[2])​;​
143 151
144 ····​asio:​:​ssl:​:​context·​ctx(asio:​:​ssl:​:​context:​:​sslv23)​;​152 ····​asio:​:​ssl:​:​context·​ctx(asio:​:​ssl:​:​context:​:​sslv23)​;​
145 ····​ctx.​load_verify_file("ca.​pem")​;​153 ····​ctx.​load_verify_file("ca.​pem")​;​
146 154
147 ····​client·​c(io_context,​·​ctx,​·​endpoints)​;​155 ····​client·​c(io_context,​·​ctx,​·​endpoints)​;​
148 156
149 ····​io_context.​run()​;​157 ····​io_context.​run()​;​
150 ··​}158 ··​}
151 ··​catch·​(std:​:​exception&·​e)​159 ··​catch·​(std:​:​exception&·​e)​
152 ··​{160 ··​{
153 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​161 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
154 ··​}162 ··​}
155 163
156 ··​return·​0;​164 ··​return·​0;​
157 }165 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/ssl/server.cpp.html b/3party/asio/doc/examples/diffs/ssl/server.cpp.html new file mode 100644 index 0000000..6928dac --- /dev/null +++ b/3party/asio/doc/examples/diffs/ssl/server.cpp.html @@ -0,0 +1,217 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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(asio:​:​ssl:​:​stream<tcp:​:​socket>·socket)​
23 ······asio:​:​ssl:​:​context&·context)​23 ····:​·socket_(std:​:​move(socket)​)​
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 ··​}30 ··​}
39 31
40 ··void·handle_handshake(cons​t·asio:​:​error_code&·error)​32 private:​
33 ··​void·​do_handshake()​
41 ··​{34 ··​{
42 ····if·​(!error)​35 ····auto·self(shared_from_this​()​)​;​
43 ····{36 ····socket_.​async_handshake(asio:​:​ssl:​:​stream_base:​:​server,​·
44 ······socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​37 ········[this,​·self](const·std:​:​error_code&·error)​
45 ··········boost:​:​bind(&session:​:​handle_read,​·this,​38 ········{
46 ············asio:​:​placeholders:​:​error,​39 ··········​if·(!error)​
47 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​40 ··········{
48 ····}41 ············do_read()​;​
49 ····else42 ··········}
50 ····{43 ········})​;​
51 ······delete·this;​
52 ····}
53 ··​}44 ··​}
54 45
55 ··​void·handle_read(const·asio:​:​error_code&·error,​46 ··​void·​do_read()​
56 ······size_t·bytes_transferred)​
57 ··​{47 ··​{
58 ····if·​(!error)​48 ····auto·self(shared_from_this​()​)​;​
59 ····{49 ····socket_.​async_read_some(asio:​:​buffer(data_)​,​
60 ······asio:​:​async_write(socket_,​50 ········[this,​·self](const·std:​:​error_code&·ec,​·std:​:​size_t·length)​
61 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​51 ········{
62 ··········boost:​:​bind(&session:​:​handle_write,​·this,​52 ··········​if·(!ec)​
63 ············asio:​:​placeholders:​:​error)​)​;​53 ··········{
64 ····}54 ············do_write(length)​;​
65 ····else55 ··········}
66 ····{56 ········})​;​
67 ······delete·this;​
68 ····}
69 ··​}57 ··​}
70 58
71 ··​void·handle_write(const·asio:​:​error_code&·error)​59 ··​void·​do_write(std:​:​size_t·length)​
72 ··​{60 ··​{
73 ····if·​(!error)​61 ····auto·self(shared_from_this​()​)​;​
74 ····{62 ····asio:​:​async_write(socket_,​·asio:​:​buffer(data_,​·length)​,​
75 ······socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​63 ········[this,​·self](const·std:​:​error_code&·ec,​
76 ··········boost:​:​bind(&session:​:​handle_read,​·this,​64 ··········​std:​:​size_t·/​*length*/​)​
77 ············asio:​:​placeholders:​:​error,​65 ········{
78 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​66 ··········​if·(!ec)​
79 ····}67 ··········{
80 ····​else68 ············do_read()​;​
81 ····{69 ··········}
82 ······delete·this;​70 ········})​;​
83 ····}
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("dh40​96.​pem")​;​91 ····​context_.​use_tmp_dh_file("dh40​96.​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 ··········{
109 ············​std:​:​make_shared<session>(​
110 ················​asio:​:​ssl:​:​stream<tcp:​:​socket>(
111 ··················​std:​:​move(socket)​,​·​context_)​)​-​>start()​;​
112 ··········​}
125 113
126 ··void·handle_accept(session​*·new_session,​114 ··········do_accept()​;​
127 ······const·asio:​:​error_code&·error)​115 ········})​;​
128 ··{
129 ····if·(!error)​
130 ····{
131 ······new_session-​>start()​;​
132 ····}
133 ····else
134 ····{
135 ······delete·new_session;​
136 ····}
137
138 ····start_accept()​;​
139 ··​}116 ··​}
140 117
141 private:​118 ··tcp:​:​acceptor·acceptor_;​
142 ··asio:​:​io_context&·io_context_;​
143 ··asio:​:​ip:​:​tcp:​:​acceptor·acceptor_;​
144 ··​asio:​:​ssl:​:​context·​context_;​119 ··​asio:​:​ssl:​:​context·​context_;​
145 };​120 };​
146 121
147 int·​main(int·​argc,​·​char*·​argv[])​122 int·​main(int·​argc,​·​char*·​argv[])​
148 {123 {
149 ··​try124 ··​try
150 ··​{125 ··​{
151 ····​if·​(argc·​!=·​2)​126 ····​if·​(argc·​!=·​2)​
152 ····​{127 ····​{
153 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​128 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​
154 ······​return·​1;​129 ······​return·​1;​
155 ····​}130 ····​}
156 131
157 ····​asio:​:​io_context·​io_context;​132 ····​asio:​:​io_context·​io_context;​
158 133
159 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​134 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
160 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​135 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​
161 136
162 ····​io_context.​run()​;​137 ····​io_context.​run()​;​
163 ··​}138 ··​}
164 ··​catch·​(std:​:​exception&·​e)​139 ··​catch·​(std:​:​exception&·​e)​
165 ··​{140 ··​{
166 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​141 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
167 ··​}142 ··​}
168 143
169 ··​return·​0;​144 ··​return·​0;​
170 }145 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/timeouts/async_tcp_client.cpp.html b/3party/asio/doc/examples/diffs/timeouts/async_tcp_client.cpp.html new file mode 100644 index 0000000..b78a128 --- /dev/null +++ b/3party/asio/doc/examples/diffs/timeouts/async_tcp_client.cpp.html @@ -0,0 +1,353 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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,​·this,​134 ··········​std:​:​bind(&client:​:​handle_connect,​
134 ············boost:​:​placeholders:​:​_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,​195 ········​std:​:​bind(&client:​:​handle_read,​·​this,​·_1,​·_2)​)​;​
195 ··········boost:​:​placeholders:​:​_1,​·boost:​:​placeholders:​:​_2)​)​;​
196 ··​}196 ··​}
197 197
198 ··​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)​
199 ··​{199 ··​{
200 ····​if·​(stopped_)​200 ····​if·​(stopped_)​
201 ······​return;​201 ······​return;​
202 202
203 ····​if·​(!ec)​203 ····​if·​(!error)​
204 ····​{204 ····​{
205 ······​/​/​·​Extract·​the·​newline-​delimited·​message·​from·​the·​buffer.​205 ······​/​/​·​Extract·​the·​newline-​delimited·​message·​from·​the·​buffer.​
206 ······​std:​:​string·​line(input_buffer_.​substr(0,​·​n·​-​·​1)​)​;​206 ······​std:​:​string·​line(input_buffer_.​substr(0,​·​n·​-​·​1)​)​;​
207 ······​input_buffer_.​erase(0,​·​n)​;​207 ······​input_buffer_.​erase(0,​·​n)​;​
208 208
209 ······​/​/​·​Empty·​messages·​are·​heartbeats·​and·​so·​ignored.​209 ······​/​/​·​Empty·​messages·​are·​heartbeats·​and·​so·​ignored.​
210 ······​if·​(!line.​empty()​)​210 ······​if·​(!line.​empty()​)​
211 ······​{211 ······​{
212 ········​std:​:​cout·​<<·​"Received:​·​"·​<<·​line·​<<·​"\n";​212 ········​std:​:​cout·​<<·​"Received:​·​"·​<<·​line·​<<·​"\n";​
213 ······​}213 ······​}
214 214
215 ······​start_read()​;​215 ······​start_read()​;​
216 ····​}216 ····​}
217 ····​else217 ····​else
218 ····​{218 ····​{
219 ······​std:​:​cout·​<<·​"Error·​on·​receive:​·​"·​<<·​ec.​message()​·​<<·​"\n";​219 ······​std:​:​cout·​<<·​"Error·​on·​receive:​·​"·​<<·​error.​message()​·​<<·​"\n";​
220 220
221 ······​stop()​;​221 ······​stop()​;​
222 ····​}222 ····​}
223 ··​}223 ··​}
224 224
225 ··​void·​start_write()​225 ··​void·​start_write()​
226 ··​{226 ··​{
227 ····​if·​(stopped_)​227 ····​if·​(stopped_)​
228 ······​return;​228 ······​return;​
229 229
230 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​heartbeat·​message.​230 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​heartbeat·​message.​
231 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer("\n",​·​1)​,​231 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer("\n",​·​1)​,​
232 ········boost:​:​bind(&client:​:​handle_write,​·​this,​·boost:​:​placeholders:​:​_1)​)​;​232 ········​std:​:​bind(&client:​:​handle_write,​·​this,​·​_1)​)​;​
233 ··​}233 ··​}
234 234
235 ··​void·​handle_write(const·asio:​:​error_code&·​ec)​235 ··​void·​handle_write(const·​std:​:​error_code&·​error)​
236 ··​{236 ··​{
237 ····​if·​(stopped_)​237 ····​if·​(stopped_)​
238 ······​return;​238 ······​return;​
239 239
240 ····​if·​(!ec)​240 ····​if·​(!error)​
241 ····​{241 ····​{
242 ······​/​/​·​Wait·​10·​seconds·​before·​sending·​the·​next·​heartbeat.​242 ······​/​/​·​Wait·​10·​seconds·​before·​sending·​the·​next·​heartbeat.​
243 ······​heartbeat_timer_.​expires_after(asio:​:​chrono:​:​seconds(10)​)​;​243 ······​heartbeat_timer_.​expires_after(std:​:​chrono:​:​seconds(10)​)​;​
244 ······​heartbeat_timer_.​async_wait(boost:​:​bind(&client:​:​start_write,​·​this)​)​;​244 ······​heartbeat_timer_.​async_wait(std:​:​bind(&client:​:​start_write,​·​this)​)​;​
245 ····​}245 ····​}
246 ····​else246 ····​else
247 ····​{247 ····​{
248 ······​std:​:​cout·​<<·​"Error·​on·​heartbeat:​·​"·​<<·​ec.​message()​·​<<·​"\n";​248 ······​std:​:​cout·​<<·​"Error·​on·​heartbeat:​·​"·​<<·​error.​message()​·​<<·​"\n";​
249 249
250 ······​stop()​;​250 ······​stop()​;​
251 ····​}251 ····​}
252 ··​}252 ··​}
253 253
254 ··​void·​check_deadline()​254 ··​void·​check_deadline()​
255 ··​{255 ··​{
256 ····​if·​(stopped_)​256 ····​if·​(stopped_)​
257 ······​return;​257 ······​return;​
258 258
259 ····​/​/​·​Check·​whether·​the·​deadline·​has·​passed.​·​We·​compare·​the·​deadline·​against259 ····​/​/​·​Check·​whether·​the·​deadline·​has·​passed.​·​We·​compare·​the·​deadline·​against
260 ····​/​/​·​the·​current·​time·​since·​a·​new·​asynchronous·​operation·​may·​have·​moved·​the260 ····​/​/​·​the·​current·​time·​since·​a·​new·​asynchronous·​operation·​may·​have·​moved·​the
261 ····​/​/​·​deadline·​before·​this·​actor·​had·​a·​chance·​to·​run.​261 ····​/​/​·​deadline·​before·​this·​actor·​had·​a·​chance·​to·​run.​
262 ····​if·​(deadline_.​expiry()​·​<=·​steady_timer:​:​clock_type:​:​now()​)​262 ····​if·​(deadline_.​expiry()​·​<=·​steady_timer:​:​clock_type:​:​now()​)​
263 ····​{263 ····​{
264 ······​/​/​·​The·​deadline·​has·​passed.​·​The·​socket·​is·​closed·​so·​that·​any·​outstanding264 ······​/​/​·​The·​deadline·​has·​passed.​·​The·​socket·​is·​closed·​so·​that·​any·​outstanding
265 ······​/​/​·​asynchronous·​operations·​are·​cancelled.​265 ······​/​/​·​asynchronous·​operations·​are·​cancelled.​
266 ······​socket_.​close()​;​266 ······​socket_.​close()​;​
267 267
268 ······​/​/​·​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
269 ······​/​/​·​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
270 ······​/​/​·​deadline·​is·​set.​270 ······​/​/​·​deadline·​is·​set.​
271 ······​deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​271 ······​deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
272 ····​}272 ····​}
273 273
274 ····​/​/​·​Put·​the·​actor·​back·​to·​sleep.​274 ····​/​/​·​Put·​the·​actor·​back·​to·​sleep.​
275 ····​deadline_.​async_wait(boost:​:​bind(&client:​:​check_deadline,​·​this)​)​;​275 ····​deadline_.​async_wait(std:​:​bind(&client:​:​check_deadline,​·​this)​)​;​
276 ··​}276 ··​}
277 277
278 private:​278 private:​
279 ··​bool·​stopped_;​279 ··​bool·​stopped_·=·false;​
280 ··​tcp:​:​resolver:​:​results_type·​endpoints_;​280 ··​tcp:​:​resolver:​:​results_type·​endpoints_;​
281 ··​tcp:​:​socket·​socket_;​281 ··​tcp:​:​socket·​socket_;​
282 ··​std:​:​string·​input_buffer_;​282 ··​std:​:​string·​input_buffer_;​
283 ··​steady_timer·​deadline_;​283 ··​steady_timer·​deadline_;​
284 ··​steady_timer·​heartbeat_timer_;​284 ··​steady_timer·​heartbeat_timer_;​
285 };​285 };​
286 286
287 int·​main(int·​argc,​·​char*·​argv[])​287 int·​main(int·​argc,​·​char*·​argv[])​
288 {288 {
289 ··​try289 ··​try
290 ··​{290 ··​{
291 ····​if·​(argc·​!=·​3)​291 ····​if·​(argc·​!=·​3)​
292 ····​{292 ····​{
293 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​293 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​
294 ······​return·​1;​294 ······​return·​1;​
295 ····​}295 ····​}
296 296
297 ····​asio:​:​io_context·​io_context;​297 ····​asio:​:​io_context·​io_context;​
298 ····​tcp:​:​resolver·​r(io_context)​;​298 ····​tcp:​:​resolver·​r(io_context)​;​
299 ····​client·​c(io_context)​;​299 ····​client·​c(io_context)​;​
300 300
301 ····​c.​start(r.​resolve(argv[1],​·​argv[2])​)​;​301 ····​c.​start(r.​resolve(argv[1],​·​argv[2])​)​;​
302 302
303 ····​io_context.​run()​;​303 ····​io_context.​run()​;​
304 ··​}304 ··​}
305 ··​catch·​(std:​:​exception&·​e)​305 ··​catch·​(std:​:​exception&·​e)​
306 ··​{306 ··​{
307 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​307 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
308 ··​}308 ··​}
309 309
310 ··​return·​0;​310 ··​return·​0;​
311 }311 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html b/3party/asio/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html new file mode 100644 index 0000000..d8b6f6e --- /dev/null +++ b/3party/asio/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html @@ -0,0 +1,246 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html b/3party/asio/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html new file mode 100644 index 0000000..460e7b3 --- /dev/null +++ b/3party/asio/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html @@ -0,0 +1,258 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 /​/​·​NOTE:​·​This·​example·​uses·​the·​new·​form·​of·​the·​asio:​:​async_result·​trait.​
26 /​/​·​For·​an·​example·​that·​works·​with·​the·​Networking·​TS·​style·​of·​completion·​tokens,​
27 /​/​·​please·​see·​an·​older·​version·​of·​asio.​
28
25 /​/​·​We·​will·​use·​our·​sockets·​only·​with·​an·​io_context.​29 /​/​·​We·​will·​use·​our·​sockets·​only·​with·​an·​io_context.​
26 typedef·​asio:​:​basic_stream_socket<t​cp,​30 using·tcp_socket·=·​asio:​:​basic_stream_socket<
27 ····​asio:​:​io_context:​:​executor_type>·tcp_socket;​31 ····tcp,​·​asio:​:​io_context:​:​executor_type>;​
28 32
29 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​33 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
30 34
31 /​/​·​A·​custom·​completion·​token·​that·​makes·​asynchronous·​operations·​behave·​as35 /​/​·​A·​custom·​completion·​token·​that·​makes·​asynchronous·​operations·​behave·​as
32 /​/​·​though·​they·​are·​blocking·​calls·​with·​a·​timeout.​36 /​/​·​though·​they·​are·​blocking·​calls·​with·​a·​timeout.​
33 struct·​close_after37 struct·​close_after
34 {38 {
35 ··​close_after(asio:​:​chrono:​:​steady_clock:​:​duration·​t,​·​tcp_socket&·​s)​39 ··​close_after(std:​:​chrono:​:​steady_clock:​:​duration·​t,​·​tcp_socket&·​s)​
36 ····​:​·​timeout_(t)​,​·​socket_(s)​40 ····​:​·​timeout_(t)​,​·​socket_(s)​
37 ··​{41 ··​{
38 ··​}42 ··​}
39 43
40 ··​/​/​·​The·​maximum·​time·​to·​wait·​for·​an·​asynchronous·​operation·​to·​complete.​44 ··​/​/​·​The·​maximum·​time·​to·​wait·​for·​an·​asynchronous·​operation·​to·​complete.​
41 ··asio:​:​chrono:​:​steady_clock:​:​duration·​timeout_;​45 ··​std:​:​chrono:​:​steady_clock:​:​duration·​timeout_;​
42 46
43 ··​/​/​·​The·​socket·​to·​be·​closed·​if·​the·​operation·​does·​not·​complete·​in·​time.​47 ··​/​/​·​The·​socket·​to·​be·​closed·​if·​the·​operation·​does·​not·​complete·​in·​time.​
44 ··​tcp_socket&·​socket_;​48 ··​tcp_socket&·​socket_;​
45 };​49 };​
46 50
47 namespace·​asio·​{51 namespace·​asio·​{
48 52
49 /​/​·​The·​async_result·​template·​is·​specialised·​to·​allow·​the·​close_after·​token·​to53 /​/​·​The·​async_result·​template·​is·​specialised·​to·​allow·​the·​close_after·​token·​to
50 /​/​·​be·​used·​with·​asynchronous·​operations·​that·​have·​a·​completion·​signature·​of54 /​/​·​be·​used·​with·​asynchronous·​operations·​that·​have·​a·​completion·​signature·​of
51 /​/​·​void(error_code,​·​T)​.​·​Generalising·​this·​for·​all·​completion·​signature·​forms·​is55 /​/​·​void(error_code,​·​T)​.​·​Generalising·​this·​for·​all·​completion·​signature·​forms·​is
52 /​/​·​left·​as·​an·​exercise·​for·​the·​reader.​56 /​/​·​left·​as·​an·​exercise·​for·​the·​reader.​
53 template·​<typename·​T>57 template·​<typename·​T>
54 class·​async_result<close_af​ter,​·​void(asio:​:​error_code,​·​T)​>58 class·​async_result<close_af​ter,​·​void(std:​:​error_code,​·​T)​>
55 {59 {
56 public:​60 public:​
57 ··​/​/​·An·asynchronous·operation's·initiating·function·​automatically·creates·an61 ··​/​/​·The·initiate()​·function·is·used·to·launch·the·​asynchronous·operation·by
58 ··​/​/​·​completion_handler_ty​pe·object·from·the·token.​·This·function·object·is62 ··​/​/​·​calling·the·operation's·initiation·function·object.​·For·the·close_after
59 ··​/​/​·​then·called·on·completion·​of·​the·asynchronous·operation.​63 ··​/​/​·completion·​token,​·we·use·this·function·to·run·​the·io_context·until·the
60 ··class·completion_handler_ty​pe64 ··/​/​·​operation·is·complete.​
65 ··​template·​<typename·​Init,​·​typename.​.​.​·​Args>
66 ··​static·​T·​initiate(Init·​init,​·​close_after·​token,​·​Args&&.​.​.​·​args)​
61 ··​{67 ··​{
62 ··​public:​
63 ····​completion_handler_ty​pe(const·​close_after&·​token)​
64 ······​:​·​token_(token)​
65 ····​{
66 ····​}
67
68 ····​void·​operator()​(asio:​:​error_code·​ec,​·​T·​t)​
69 ····​{
70 ······​*ec_·​=·​ec;​
71 ······​*t_·​=·​t;​
72 ····​}
73
74 ··​private:​
75 ····​friend·​class·​async_result;​
76 ····​close_after·​token_;​
77 ····​asio:​:​error_code*·​ec_;​
78 ····​T*·​t_;​
79 ··​};​
80
81 ··​/​/​·​The·​async_result·​constructor·​associates·​the·​completion·​handler·​object·​with
82 ··​/​/​·​the·​result·​of·​the·​initiating·​function.​
83 ··​explicit·​async_result(completi​on_handler_type&·​h)​
84 ····​:​·​timeout_(h.​token_.​timeout_)​,​
85 ······​socket_(h.​token_.​socket_)​
86 ··​{
87 ····​h.​ec_·​=·​&ec_;​
88 ····​h.​t_·​=·​&t_;​
89 ··​}
90
91 ··​/​/​·​The·​return_type·​typedef·​determines·​the·​result·​type·​of·​the·​asynchronous
92 ··​/​/​·​operation's·​initiating·​function.​
93 ··​typedef·​T·​return_type;​
94
95 ··​/​/​·​The·​get()​·​function·​is·​used·​to·​obtain·​the·​result·​of·​the·​asynchronous
96 ··​/​/​·​operation's·​initiating·​function.​·​For·​the·​close_after·​completion·​token,​·​we
97 ··​/​/​·​use·​this·​function·​to·​run·​the·​io_context·​until·​the·​operation·​is·​complete.​
98 ··​return_type·​get()​
99 ··​{
100 ····​asio:​:​io_context&·​io_context·​=·​asio:​:​query(68 ····​asio:​:​io_context&·​io_context·​=·​asio:​:​query(
101 ········​socket_.​get_executor()​,​·​asio:​:​execution:​:​context)​;​69 ········token.​socket_.​get_executor()​,​·​asio:​:​execution:​:​context)​;​
102 70
71 ····​/​/​·​Call·​the·​operation's·​initiation·​function·​object·​to·​start·​the·​operation.​
72 ····​/​/​·​A·​lambda·​is·​supplied·​as·​the·​completion·​handler,​·​to·​be·​called·​when·​the
73 ····​/​/​·​operation·​completes.​
74 ····​std:​:​error_code·​error;​
75 ····​T·​result;​
76 ····​init([&](std:​:​error_code·​e,​·​T·​t)​
77 ········​{
78 ··········​error·​=·​e;​
79 ··········​result·​=·​t;​
80 ········​},​·​std:​:​forward<Args>(args)​.​.​.​)​;​
81
103 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state82 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state
104 ····​/​/​·​by·​a·​previous·​operation.​83 ····​/​/​·​by·​a·​previous·​operation.​
105 ····​io_context.​restart()​;​84 ····​io_context.​restart()​;​
106 85
107 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If86 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If
108 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline87 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline
109 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on88 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on
110 ····​/​/​·​the·​socket.​89 ····​/​/​·​the·​socket.​
111 ····​io_context.​run_for(timeout_)​;​90 ····​io_context.​run_for(token.​timeout_)​;​
112 91
113 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context92 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context
114 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not93 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not
115 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out·​and·​the94 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out·​and·​the
116 ····​/​/​·​operation·​is·​still·​incomplete.​95 ····​/​/​·​operation·​is·​still·​incomplete.​
117 ····​if·​(!io_context.​stopped()​)​96 ····​if·​(!io_context.​stopped()​)​
118 ····​{97 ····​{
119 ······​/​/​·​Close·​the·​socket·​to·​cancel·​the·​outstanding·​asynchronous·​operation.​98 ······​/​/​·​Close·​the·​socket·​to·​cancel·​the·​outstanding·​asynchronous·​operation.​
120 ······​socket_.​close()​;​99 ······token.​socket_.​close()​;​
121 100
122 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​101 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​
123 ······​io_context.​run()​;​102 ······​io_context.​run()​;​
124 ····​}103 ····​}
125 104
126 ····​/​/​·​If·​the·​operation·​failed,​·​throw·​an·​exception.​·​Otherwise·​return·​the·​result.​105 ····​/​/​·​If·​the·​operation·​failed,​·​throw·​an·​exception.​·​Otherwise·​return·​the·​result.​
127 ····​return·​ec_·​?·​throw·asio:​:​system_error(ec_)​·​:​·t_;​106 ····​return·​error·​?·​throw·​std:​:​system_error(error)​·​:​·result;​
128 ··​}107 ··​}
129
130 private:​
131 ··​asio:​:​chrono:​:​steady_clock:​:​duration·​timeout_;​
132 ··​tcp_socket&·​socket_;​
133 ··​asio:​:​error_code·​ec_;​
134 ··​T·​t_;​
135 };​108 };​
136 109
137 }·​/​/​·​namespace·​asio110 }·​/​/​·​namespace·​asio
138 111
139 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​112 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
140 113
141 int·​main(int·​argc,​·​char*·​argv[])​114 int·​main(int·​argc,​·​char*·​argv[])​
142 {115 {
143 ··​try116 ··​try
144 ··​{117 ··​{
145 ····​if·​(argc·​!=·​4)​118 ····​if·​(argc·​!=·​4)​
146 ····​{119 ····​{
147 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_client·​<host>·​<port>·​<message>\n";​120 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_client·​<host>·​<port>·​<message>\n";​
148 ······​return·​1;​121 ······​return·​1;​
149 ····​}122 ····​}
150 123
151 ····​asio:​:​io_context·​io_context;​124 ····​asio:​:​io_context·​io_context;​
152 125
153 ····​/​/​·​Resolve·​the·​host·​name·​and·​service·​to·​a·​list·​of·​endpoints.​126 ····​/​/​·​Resolve·​the·​host·​name·​and·​service·​to·​a·​list·​of·​endpoints.​
154 ····​tcp:​:​resolver:​:​results_type·endpoints·=127 ····auto·endpoints·=·​tcp:​:​resolver(io_context)​.​resolve(argv[1],​·argv[2])​;​
155 ······tcp:​:​resolver(io_context)​.​resolve(argv[1],​·argv[2])​;​
156 128
157 ····​tcp_socket·​socket(io_context)​;​129 ····​tcp_socket·​socket(io_context)​;​
158 130
159 ····​/​/​·​Run·​an·​asynchronous·​connect·​operation·​with·​a·​timeout.​131 ····​/​/​·​Run·​an·​asynchronous·​connect·​operation·​with·​a·​timeout.​
160 ····​asio:​:​async_connect(socket,​·​endpoints,​132 ····​asio:​:​async_connect(socket,​·​endpoints,​
161 ········​close_after(asio:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​133 ········​close_after(std:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​
162 134
163 ····​asio:​:​chrono:​:​steady_clock:​:​time_point·time_sent·=135 ····​auto·time_sent·=·std:​:​chrono:​:​steady_clock:​:​now()​;​
164 ······asio:​:​chrono:​:​steady_clock:​:​now()​;​
165 136
166 ····​/​/​·​Run·​an·​asynchronous·​write·​operation·​with·​a·​timeout.​137 ····​/​/​·​Run·​an·​asynchronous·​write·​operation·​with·​a·​timeout.​
167 ····​std:​:​string·​msg·​=·​argv[3]·​+·​std:​:​string("\n")​;​138 ····​std:​:​string·​msg·​=·​argv[3]·​+·​std:​:​string("\n")​;​
168 ····​asio:​:​async_write(socket,​·​asio:​:​buffer(msg)​,​139 ····​asio:​:​async_write(socket,​·​asio:​:​buffer(msg)​,​
169 ········​close_after(asio:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​140 ········​close_after(std:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​
170 141
171 ····​for·​(std:​:​string·​input_buffer;​;​)​142 ····​for·​(std:​:​string·​input_buffer;​;​)​
172 ····​{143 ····​{
173 ······​/​/​·​Run·​an·​asynchronous·​read·​operation·​with·​a·​timeout.​144 ······​/​/​·​Run·​an·​asynchronous·​read·​operation·​with·​a·​timeout.​
174 ······​std:​:​size_t·​n·​=·​asio:​:​async_read_until(sock​et,​145 ······​std:​:​size_t·​n·​=·​asio:​:​async_read_until(sock​et,​
175 ··········​asio:​:​dynamic_buffer(input_​buffer)​,​·​'\n',​146 ··········​asio:​:​dynamic_buffer(input_​buffer)​,​·​'\n',​
176 ··········​close_after(asio:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​147 ··········​close_after(std:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​
177 148
178 ······​std:​:​string·​line(input_buffer.​substr(0,​·​n·​-​·​1)​)​;​149 ······​std:​:​string·​line(input_buffer.​substr(0,​·​n·​-​·​1)​)​;​
179 ······​input_buffer.​erase(0,​·​n)​;​150 ······​input_buffer.​erase(0,​·​n)​;​
180 151
181 ······​/​/​·​Keep·​going·​until·​we·​get·​back·​the·​line·​that·​was·​sent.​152 ······​/​/​·​Keep·​going·​until·​we·​get·​back·​the·​line·​that·​was·​sent.​
182 ······​if·​(line·​==·​argv[3])​153 ······​if·​(line·​==·​argv[3])​
183 ········​break;​154 ········​break;​
184 ····​}155 ····​}
185 156
186 ····​asio:​:​chrono:​:​steady_clock:​:​time_point·time_received·=157 ····​auto·time_received·=·std:​:​chrono:​:​steady_clock:​:​now()​;​
187 ······asio:​:​chrono:​:​steady_clock:​:​now()​;​
188 158
189 ····​std:​:​cout·​<<·​"Round·​trip·​time:​·​";​159 ····​std:​:​cout·​<<·​"Round·​trip·​time:​·​";​
190 ····​std:​:​cout·​<<·asio:​:​chrono:​:​duration_cast<160 ····​std:​:​cout·​<<·​std:​:​chrono:​:​duration_cast<
191 ······asio:​:​chrono:​:​microseconds>(161 ······​std:​:​chrono:​:​microseconds>(
192 ········​time_received·​-​·​time_sent)​.​count()​;​162 ········​time_received·​-​·​time_sent)​.​count()​;​
193 ····​std:​:​cout·​<<·​"·​microseconds\n";​163 ····​std:​:​cout·​<<·​"·​microseconds\n";​
194 ··​}164 ··​}
195 ··​catch·​(std:​:​exception&·​e)​165 ··​catch·​(std:​:​exception&·​e)​
196 ··​{166 ··​{
197 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​167 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
198 ··​}168 ··​}
199 169
200 ··​return·​0;​170 ··​return·​0;​
201 }171 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html b/3party/asio/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html new file mode 100644 index 0000000..215dba9 --- /dev/null +++ b/3party/asio/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html @@ -0,0 +1,196 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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,​63 ········​std:​:​bind(&client:​:​handle_receive,​·_1,​·_2,​·&error,​·&length)​)​;​
62 ··········boost:​:​placeholders:​:​_1,​·boost:​:​placeholders:​:​_2,​·&ec,​·&length)​)​;​
63 64
64 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​65 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​
65 ····​run(timeout)​;​66 ····​run(timeout)​;​
66 67
67 ····​return·​length;​68 ····​return·​length;​
68 ··​}69 ··​}
69 70
70 private:​71 private:​
71 ··​void·​run(asio:​:​chrono:​:​steady_clock:​:​duration·​timeout)​72 ··​void·​run(std:​:​chrono:​:​steady_clock:​:​duration·​timeout)​
72 ··​{73 ··​{
73 ····​/​/​·​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
74 ····​/​/​·​by·​a·​previous·​operation.​75 ····​/​/​·​by·​a·​previous·​operation.​
75 ····​io_context_.​restart()​;​76 ····​io_context_.​restart()​;​
76 77
77 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If78 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If
78 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline79 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline
79 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on80 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on
80 ····​/​/​·​the·​socket.​81 ····​/​/​·​the·​socket.​
81 ····​io_context_.​run_for(timeout)​;​82 ····​io_context_.​run_for(timeout)​;​
82 83
83 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context84 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context
84 ····​/​/​·​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
85 ····​/​/​·​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.​
86 ····​if·​(!io_context_.​stopped()​)​87 ····​if·​(!io_context_.​stopped()​)​
87 ····​{88 ····​{
88 ······​/​/​·​Cancel·​the·​outstanding·​asynchronous·​operation.​89 ······​/​/​·​Cancel·​the·​outstanding·​asynchronous·​operation.​
89 ······​socket_.​cancel()​;​90 ······​socket_.​cancel()​;​
90 91
91 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​92 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​
92 ······​io_context_.​run()​;​93 ······​io_context_.​run()​;​
93 ····​}94 ····​}
94 ··​}95 ··​}
95 96
96 ··​static·​void·​handle_receive(97 ··​static·​void·​handle_receive(
97 ······​const·asio:​:​error_code&·​ec,​·​std:​:​size_t·​length,​98 ······​const·​std:​:​error_code&·​error,​·​std:​:​size_t·​length,​
98 ······asio:​:​error_code*·​out_ec,​·​std:​:​size_t*·​out_length)​99 ······​std:​:​error_code*·​out_error,​·​std:​:​size_t*·​out_length)​
99 ··​{100 ··​{
100 ····​*out_ec·​=·​ec;​101 ····​*out_error·​=·​error;​
101 ····​*out_length·​=·​length;​102 ····​*out_length·​=·​length;​
102 ··​}103 ··​}
103 104
104 private:​105 private:​
105 ··​asio:​:​io_context·​io_context_;​106 ··​asio:​:​io_context·​io_context_;​
106 ··​udp:​:​socket·​socket_;​107 ··​udp:​:​socket·​socket_;​
107 };​108 };​
108 109
109 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​110 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
110 111
111 int·​main(int·​argc,​·​char*·​argv[])​112 int·​main(int·​argc,​·​char*·​argv[])​
112 {113 {
113 ··​try114 ··​try
114 ··​{115 ··​{
115 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​116 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
116 117
117 ····​if·​(argc·​!=·​3)​118 ····​if·​(argc·​!=·​3)​
118 ····​{119 ····​{
119 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_client·​<listen_addr>·​<listen_port>\n";​120 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_client·​<listen_addr>·​<listen_port>\n";​
120 ······​return·​1;​121 ······​return·​1;​
121 ····​}122 ····​}
122 123
123 ····​udp:​:​endpoint·​listen_endpoint(124 ····​udp:​:​endpoint·​listen_endpoint(
124 ········​asio:​:​ip:​:​make_address(argv[1])​,​125 ········​asio:​:​ip:​:​make_address(argv[1])​,​
125 ········​std:​:​atoi(argv[2])​)​;​126 ········​std:​:​atoi(argv[2])​)​;​
126 127
127 ····​client·​c(listen_endpoint)​;​128 ····​client·​c(listen_endpoint)​;​
128 129
129 ····​for·​(;​;​)​130 ····​for·​(;​;​)​
130 ····​{131 ····​{
131 ······​char·​data[1024];​132 ······​char·​data[1024];​
132 ······asio:​:​error_code·​ec;​133 ······​std:​:​error_code·​error;​
133 ······​std:​:​size_t·​n·​=·​c.​receive(asio:​:​buffer(data)​,​134 ······​std:​:​size_t·​n·​=·​c.​receive(asio:​:​buffer(data)​,​
134 ··········asio:​:​chrono:​:​seconds(10)​,​·​ec)​;​135 ··········​std:​:​chrono:​:​seconds(10)​,​·​error)​;​
135 136
136 ······​if·​(ec)​137 ······​if·​(error)​
137 ······​{138 ······​{
138 ········​std:​:​cout·​<<·​"Receive·​error:​·​"·​<<·​ec.​message()​·​<<·​"\n";​·139 ········​std:​:​cout·​<<·​"Receive·​error:​·​"·​<<·​error.​message()​·​<<·​"\n";​·
139 ······​}140 ······​}
140 ······​else141 ······​else
141 ······​{142 ······​{
142 ········​std:​:​cout·​<<·​"Received:​·​";​143 ········​std:​:​cout·​<<·​"Received:​·​";​
143 ········​std:​:​cout.​write(data,​·​n)​;​144 ········​std:​:​cout.​write(data,​·​n)​;​
144 ········​std:​:​cout·​<<·​"\n";​145 ········​std:​:​cout·​<<·​"\n";​
145 ······​}146 ······​}
146 ····​}147 ····​}
147 ··​}148 ··​}
148 ··​catch·​(std:​:​exception&·​e)​149 ··​catch·​(std:​:​exception&·​e)​
149 ··​{150 ··​{
150 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​151 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
151 ··​}152 ··​}
152 153
153 ··​return·​0;​154 ··​return·​0;​
154 }155 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/timeouts/server.cpp.html b/3party/asio/doc/examples/diffs/timeouts/server.cpp.html new file mode 100644 index 0000000..e393c81 --- /dev/null +++ b/3party/asio/doc/examples/diffs/timeouts/server.cpp.html @@ -0,0 +1,514 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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/​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,​59 ····{
62 ··········boost:​:​placeholders:​:​_1,​·boost:​:​ref(msg)​)​)​;​60 ······​s-​>deliver(msg)​;​
61 ····​}
63 ··​}62 ··​}
64 63
65 private:​64 private:​
66 ··​std:​:​set<subscriber_ptr>·​subscribers_;​65 ··​std:​:​set<subscriber_ptr>·​subscribers_;​
67 };​66 };​
68 67
69 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​68 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
70 69
71 /​/​70 /​/​
72 /​/​·​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.​
73 /​/​·​Some·​asynchronous·​operations·​are·​given·​deadlines·​by·​which·​they·​must·​complete.​72 /​/​·​Some·​asynchronous·​operations·​are·​given·​deadlines·​by·​which·​they·​must·​complete.​
74 /​/​·​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
75 /​/​·​session·​object,​·​one·​for·​input·​and·​one·​for·​output:​74 /​/​·​session·​object,​·​one·​for·​input·​and·​one·​for·​output:​
76 /​/​75 /​/​
77 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+·····················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+76 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+······················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
78 /​/​··​|················​|·····················​|················​|77 /​/​··​|················​|······················​|················​|
79 /​/​··​|·​check_deadline·​|<-​-​-​+················​|·​check_deadline·​|<-​-​-​+78 /​/​··​|·​check_deadline·​|<-​-​-​-​-​-​-​+·············​|·​check_deadline·​|<-​-​-​-​-​-​-​+
80 /​/​··​|················​|····|·async_wait()​···​|················​|····|·async_wait()​79 /​/​··​|················​|········|·············​|················​|········|
81 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····|··on·input······​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····|··on·output80 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+········|·············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+········|
82 /​/​··············​|·········|··deadline··················​|·········|··deadline81 /​/​···············​|············|··························​|············|
83 /​/​··············​+-​-​-​-​-​-​-​-​-​+····························+-​-​-​-​-​-​-​-​-​+82 /​/​··async_wait()​·|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····async_wait()​·|····+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
83 /​/​···​on·​input····​|····​|·····​lambda·····​|·····​on·​output···​|····​|·····​lambda·····​|
84 /​/​···​deadline····​+-​-​-​>|·······​in·······​|·····​deadline····​+-​-​-​>|·······​in·······​|
85 /​/​····················​|·​check_deadline·​|······················​|·​check_deadline·​|
86 /​/​····················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+······················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
84 /​/​87 /​/​
85 /​/​·​If·​either·​deadline·​actor·​determines·​that·​the·​corresponding·​deadline·​has88 /​/​·​If·​either·​deadline·​actor·​determines·​that·​the·​corresponding·​deadline·​has
86 /​/​·​expired,​·​the·​socket·​is·​closed·​and·​any·​outstanding·​operations·​are·​cancelled.​89 /​/​·​expired,​·​the·​socket·​is·​closed·​and·​any·​outstanding·​operations·​are·​cancelled.​
87 /​/​90 /​/​
88 /​/​·​The·​input·​actor·​reads·​messages·​from·​the·​socket,​·​where·​messages·​are·​delimited91 /​/​·​The·​input·​actor·​reads·​messages·​from·​the·​socket,​·​where·​messages·​are·​delimited
89 /​/​·​by·​the·​newline·​character:​92 /​/​·​by·​the·​newline·​character:​
90 /​/​93 /​/​
91 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+94 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​+
92 /​/​··​|············​|95 /​/​··​|·············​|
93 /​/​··​|·start_read·​|<-​-​-​+96 /​/​··​|··read_line··​|<-​-​-​-​+
94 /​/​··​|············​|····​|97 /​/​··​|·············​|·····​|
95 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+····​|98 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​+·····​|
96 /​/​··········​|·········​|99 /​/​··········​|···········​|
97 /​/​··​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​+100 /​/​··​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​+
98 /​/​···​read_-​·​|····​|·············​|101 /​/​···​read_-​·​|····​|···lambda····​|
99 /​/​··​until()​·​+-​-​-​>|·handle_read·​|102 /​/​··​until()​·​+-​-​-​>|·····in······​|
100 /​/​···············​|·············​|103 /​/​···············​|··read_line··​|
101 /​/​···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​+104 /​/​···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​+
102 /​/​105 /​/​
103 /​/​·​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
104 /​/​·​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
105 /​/​·​message·​that·​consists·​of·​a·​single·​newline·​character)​·​is·​received,​·​a·​heartbeat108 /​/​·​message·​that·​consists·​of·​a·​single·​newline·​character)​·​is·​received,​·​a·​heartbeat
106 /​/​·​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
107 /​/​·​be·​sent.​110 /​/​·​be·​sent.​
108 /​/​111 /​/​
109 /​/​·​The·​output·​actor·​is·​responsible·​for·​sending·​messages·​to·​the·​client:​112 /​/​·​The·​output·​actor·​is·​responsible·​for·​sending·​messages·​to·​the·​client:​
110 /​/​113 /​/​
111 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+114 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
112 /​/​··​|··············​|<-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+115 /​/​··​|················​|<-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
113 /​/​··​|·​await_output·​|······················​|116 /​/​··​|··​await_output··​|······················​|
114 /​/​··​|··············​|<-​-​-​+·················​|117 /​/​··​|················​|<-​-​-​-​-​-​-​+·············​|
115 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····|·················​|118 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+········|·············​|
116 /​/​······|······|········|·async_wait()​····​|119 /​/​····|············|··········|·············​|
117 /​/​······|······​+-​-​-​-​-​-​-​-​+·················​|120 /​/​····|····async_-​·|··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|
118 /​/​······V·································​|121 /​/​····|·····wait()​·|··|·····lambda·····|····​|
119 /​/​··+-​-​-​-​-​-​-​-​-​-​-​-​-​+···············+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+122 /​/​····|············+-​>|·······in·······|····|
120 /​/​··|·············|·async_write()​·|··············​|123 /​/​····|···············|··await_output··|····​|
121 /​/​··​|·start_write·|-​-​-​-​-​-​-​-​-​-​-​-​-​-​>|·handle_write·​|124 /​/​····​|···············+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|
122 /​/​··|·············|···············|··············​|125 /​/​····V·····································​|
123 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​+···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+126 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
127 /​/​··​|··············​|·​async_write()​·​|····​lambda····​|
128 /​/​··​|··​write_line··​|-​-​-​-​-​-​-​-​-​-​-​-​-​-​>|······​in······​|
129 /​/​··​|··············​|···············​|··​write_line··​|
130 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
124 /​/​131 /​/​
125 /​/​·​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
126 /​/​·​this·​by·​using·​a·​steady_timer·​as·​an·​asynchronous·​condition·​variable.​·​The133 /​/​·​this·​by·​using·​a·​steady_timer·​as·​an·​asynchronous·​condition·​variable.​·​The
127 /​/​·​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.​
128 /​/​135 /​/​
129 /​/​·​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
130 /​/​·​sending·​a·​complete·​message·​is·​30·​seconds.​·​After·​the·​message·​is·​successfully137 /​/​·​sending·​a·​complete·​message·​is·​30·​seconds.​·​After·​the·​message·​is·​successfully
131 /​/​·​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.​
132 /​/​139 /​/​
133 class·​tcp_session140 class·​tcp_session
134 ··​:​·​public·​subscriber,​141 ··​:​·​public·​subscriber,​
135 ····​public·boost:​:​enable_shared_from_th​is<tcp_session>142 ····​public·​std:​:​enable_shared_from_th​is<tcp_session>
136 {143 {
137 public:​144 public:​
138 ··​tcp_session(asio:​:​io_context&·io_context,​·​channel&·​ch)​145 ··​tcp_session(tcp:​:​socket·socket,​·​channel&·​ch)​
139 ····​:​·​channel_(ch)​,​146 ····​:​·​channel_(ch)​,​
140 ······​socket_(io_context)​,​147 ······​socket_(std:​:​move(socket)​)​
141 ······input_deadline_(io_co​ntext)​,​
142 ······non_empty_output_queu​e_(io_context)​,​
143 ······output_deadline_(io_c​ontext)​
144 ··​{148 ··​{
145 ····​input_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​149 ····​input_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
146 ····​output_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​150 ····​output_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
147 151
148 ····​/​/​·​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
149 ····​/​/​·​point·​whenever·​the·​output·​queue·​is·​empty.​·​This·​ensures·​that·​the·​output153 ····​/​/​·​point·​whenever·​the·​output·​queue·​is·​empty.​·​This·​ensures·​that·​the·​output
150 ····​/​/​·​actor·​stays·​asleep·​until·​a·​message·​is·​put·​into·​the·​queue.​154 ····​/​/​·​actor·​stays·​asleep·​until·​a·​message·​is·​put·​into·​the·​queue.​
151 ····​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()​)​;​
152 ··​}156 ··​}
153 157
154 ··​tcp:​:​socket&·​socket()​
155 ··​{
156 ····​return·​socket_;​
157 ··​}
158
159 ··​/​/​·​Called·​by·​the·​server·​object·​to·​initiate·​the·​four·​actors.​158 ··​/​/​·​Called·​by·​the·​server·​object·​to·​initiate·​the·​four·​actors.​
160 ··​void·​start()​159 ··​void·​start()​
161 ··​{160 ··​{
162 ····​channel_.​join(shared_from_this​()​)​;​161 ····​channel_.​join(shared_from_this​()​)​;​
163 162
164 ····start_read()​;​163 ····read_line()​;​
164 ····​check_deadline(input_​deadline_)​;​
165 165
166 ····​input_deadline_.​async_wait(
167 ········​boost:​:​bind(&tcp_session:​:​check_deadline,​
168 ········​shared_from_this()​,​·​&input_deadline_)​)​;​
169
170 ····​await_output()​;​166 ····​await_output()​;​
171 167 ····check_deadline(output​_deadline_)​;​
172 ····output_deadline_.​async_wait(
173 ········boost:​:​bind(&tcp_session:​:​check_deadline,​
174 ········shared_from_this()​,​·&output_deadline_)​)​;​
175 ··​}168 ··​}
176 169
177 private:​170 private:​
178 ··​void·​stop()​171 ··​void·​stop()​
179 ··​{172 ··​{
180 ····​channel_.​leave(shared_from_thi​s()​)​;​173 ····​channel_.​leave(shared_from_thi​s()​)​;​
181 174
182 ····asio:​:​error_code·​ignored_ec;​175 ····​std:​:​error_code·​ignored_error;​
183 ····​socket_.​close(ignored_ec)​;​176 ····​socket_.​close(ignored_error)​;​
184 ····​input_deadline_.​cancel()​;​177 ····​input_deadline_.​cancel()​;​
185 ····​non_empty_output_queu​e_.​cancel()​;​178 ····​non_empty_output_queu​e_.​cancel()​;​
186 ····​output_deadline_.​cancel()​;​179 ····​output_deadline_.​cancel()​;​
187 ··​}180 ··​}
188 181
189 ··​bool·​stopped()​·​const182 ··​bool·​stopped()​·​const
190 ··​{183 ··​{
191 ····​return·​!socket_.​is_open()​;​184 ····​return·​!socket_.​is_open()​;​
192 ··​}185 ··​}
193 186
194 ··​void·​deliver(const·​std:​:​string&·​msg)​187 ··​void·​deliver(const·​std:​:​string&·​msg)​·override
195 ··​{188 ··​{
196 ····​output_queue_.​push_back(msg·​+·​"\n")​;​189 ····​output_queue_.​push_back(msg·​+·​"\n")​;​
197 190
198 ····​/​/​·​Signal·​that·​the·​output·​queue·​contains·​messages.​·​Modifying·​the·​expiry191 ····​/​/​·​Signal·​that·​the·​output·​queue·​contains·​messages.​·​Modifying·​the·​expiry
199 ····​/​/​·​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.​
200 ····​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()​)​;​
201 ··​}194 ··​}
202 195
203 ··​void·start_read()​196 ··​void·read_line()​
204 ··​{197 ··​{
205 ····​/​/​·​Set·​a·​deadline·​for·​the·​read·​operation.​198 ····​/​/​·​Set·​a·​deadline·​for·​the·​read·​operation.​
206 ····​input_deadline_.​expires_after(asio:​:​chrono:​:​seconds(30)​)​;​199 ····​input_deadline_.​expires_after(std:​:​chrono:​:​seconds(30)​)​;​
207 200
208 ····​/​/​·​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​()​)​;​
209 ····​asio:​:​async_read_until(sock​et_,​203 ····​asio:​:​async_read_until(sock​et_,​
210 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·​'\n',​204 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·​'\n',​
211 ········boost:​:​bind(&tcp_session:​:​handle_read,​·​shared_from_this()​,​205 ········[this,​·self](const·std:​:​error_code&·error,​·​std:​:​size_t·n)​
212 ··········boost:​:​placeholders:​:​_1,​·boost:​:​placeholders:​:​_2)​)​;​206 ········{
213 ··}207 ··········/​/​·Check·if·the·session·was·stopped·while·the·operation·was·pending.​
208 ··········​if·​(stopped()​)​
209 ············​return;​
214 210
215 ··void·handle_read(const·asio:​:​error_code&·ec,​·std:​:​size_t·n)​211 ··········if·(!error)​
216 ··​{212 ··········​{
217 ····​if·(stopped()​)​213 ············/​/​·Extract·the·newline-​delimited·message·from·the·buffer.​
218 ······​return;​214 ············std:​:​string·msg(input_buffer_.​substr(0,​·n·-​·1)​)​;​
215 ············​input_buffer_.​erase(0,​·​n)​;​
219 216
220 ····​if·​(!ec)​217 ············​if·​(!msg.​empty()​)​
221 ····​{218 ············​{
222 ······/​/​·Extract·the·newline-​delimited·message·from·the·buffer.​219 ··············channel_.​deliver(msg)​;​
223 ······std:​:​string·msg(input_buffer_.​substr(0,​·n·-​·1)​)​;​220 ············}
224 ······input_buffer_.​erase(0,​·n)​;​221 ············else
222 ············​{
225 223
226 ······​if·(!msg.​empty()​)​224 ··············/​/​·We·received·a·heartbeat·message·from·the·client.​·If·there's
227 ······{225 ··············/​/​·nothing·else·being·sent·or·ready·to·be·sent,​·send·a·heartbeat
228 ········channel_.​deliver(msg)​;​226 ··············/​/​·right·back.​
229 ······}227 ··············if·(output_queue_.​empty()​)​
230 ······else228 ··············{
231 ······{229 ················output_queue_.​push_back("\n")​;​
232 ········/​/​·We·received·a·heartbeat·message·from·the·client.​·If·there's·nothing
233 ········/​/​·else·being·sent·or·ready·to·be·sent,​·send·a·heartbeat·right·back.​
234 ········if·(output_queue_.​empty()​)​
235 ········{
236 ··········output_queue_.​push_back("\n")​;​
237 230
238 ··········​/​/​·​Signal·​that·​the·​output·​queue·​contains·​messages.​·​Modifying·the231 ················​/​/​·​Signal·​that·​the·​output·​queue·​contains·​messages.​·​Modifying
239 ··········​/​/​·​expiry·​will·​wake·​the·​output·​actor,​·​if·​it·​is·​waiting·​on·the·timer.​232 ················​/​/​·the·​expiry·​will·​wake·​the·​output·​actor,​·​if·​it·​is·​waiting·​on
240 ··········non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​min()​)​;​233 ················/​/​·the·timer.​
241 ········}234 ················non_empty_output_queu​e_.​expires_at(
242 ······}235 ····················steady_timer:​:​time_point:​:​min()​)​;​
236 ··············​}
237 ············​}
243 238
244 ······start_read()​;​239 ············read_line()​;​
245 ····​}240 ··········​}
246 ····​else241 ··········​else
247 ····​{242 ··········​{
248 ······​stop()​;​243 ············​stop()​;​
249 ····​}244 ··········​}
245 ········​})​;​
250 ··​}246 ··​}
251 247
252 ··​void·​await_output()​248 ··​void·​await_output()​
253 ··​{249 ··​{
254 ····if·​(stopped()​)​250 ····auto·self(shared_from_this​()​)​;​
255 ······return;​251 ····non_empty_output_queu​e_.​async_wait(
252 ········​[this,​·​self](const·​std:​:​error_code&·​/​*error*/​)​
253 ········​{
254 ··········​/​/​·​Check·​if·​the·​session·​was·​stopped·​while·​the·​operation·​was·​pending.​
255 ··········​if·​(stopped()​)​
256 ············​return;​
256 257
257 ····​if·​(output_queue_.​empty()​)​258 ··········​if·​(output_queue_.​empty()​)​
258 ····​{259 ··········​{
259 ······​/​/​·​There·​are·​no·​messages·​that·​are·​ready·​to·​be·​sent.​·​The·​actor·​goes·to260 ············​/​/​·​There·​are·​no·​messages·​that·​are·​ready·​to·​be·​sent.​·​The·​actor·​goes
260 ······​/​/​·​sleep·​by·​waiting·​on·​the·​non_empty_output_queu​e_·​timer.​·​When·​a·new261 ············​/​/​·to·​sleep·​by·​waiting·​on·​the·​non_empty_output_queu​e_·​timer.​·​When·​a
261 ······​/​/​·​message·​is·​added,​·​the·​timer·​will·​be·​modified·​and·​the·​actor·will·wake.​262 ············​/​/​·new·​message·​is·​added,​·​the·​timer·​will·​be·​modified·​and·​the·​actor
262 ······non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​263 ············/​/​·will·wake.​
263 ······​non_empty_output_queu​e_.​async_wait(264 ············​non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
264 ··········boost:​:​bind(&tcp_session:​:​await_output,​·shared_from_this()​)​)​;​265 ············await_output()​;​
265 ····​}266 ··········​}
266 ····​else267 ··········​else
267 ····​{268 ··········​{
268 ······start_write()​;​269 ············write_line()​;​
269 ····​}270 ··········​}
271 ········​})​;​
270 ··​}272 ··​}
271 273
272 ··​void·start_write()​274 ··​void·write_line()​
273 ··​{275 ··​{
274 ····​/​/​·​Set·​a·​deadline·​for·​the·​write·​operation.​276 ····​/​/​·​Set·​a·​deadline·​for·​the·​write·​operation.​
275 ····​output_deadline_.​expires_after(asio:​:​chrono:​:​seconds(30)​)​;​277 ····​output_deadline_.​expires_after(std:​:​chrono:​:​seconds(30)​)​;​
276 278
277 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​message.​279 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​message.​
280 ····​auto·​self(shared_from_this​()​)​;​
278 ····​asio:​:​async_write(socket_,​281 ····​asio:​:​async_write(socket_,​
279 ········​asio:​:​buffer(output_queue_.​front()​)​,​282 ········​asio:​:​buffer(output_queue_.​front()​)​,​
280 ········boost:​:​bind(&tcp_session:​:​handle_write,​283 ········[this,​·self](const·std:​:​error_code&·error,​·std:​:​size_t·/​*n*/​)​
281 ··········shared_from_this()​,​·boost:​:​placeholders:​:​_1)​)​;​284 ········{
282 ··}285 ··········/​/​·Check·if·the·session·was·stopped·while·the·operation·was·pending.​
286 ··········​if·​(stopped()​)​
287 ············​return;​
283 288
284 ··void·handle_write(const·asio:​:​error_code&·ec)​289 ··········if·(!error)​
285 ··​{290 ··········​{
286 ····if·(stopped()​)​291 ············output_queue_.​pop_front()​;​
287 ······return;​
288 292
289 ····​if·(!ec)​293 ············await_output()​;​
290 ····{294 ··········}
291 ······output_queue_.​pop_front()​;​295 ··········else
292 296 ··········{
293 ······await_output()​;​297 ············stop()​;​
294 ····​}298 ··········​}
295 ····else299 ········})​;​
296 ····{
297 ······stop()​;​
298 ····}
299 ··​}300 ··​}
300 301
301 ··​void·​check_deadline(steady​_timer*·​deadline)​302 ··​void·​check_deadline(steady​_timer&·​deadline)​
302 ··​{303 ··​{
303 ····if·​(stopped()​)​304 ····auto·self(shared_from_this​()​)​;​
304 ······return;​305 ····deadline.​async_wait(
306 ········​[this,​·​self,​·​&deadline](const·​std:​:​error_code&·​/​*error*/​)​
307 ········​{
308 ··········​/​/​·​Check·​if·​the·​session·​was·​stopped·​while·​the·​operation·​was·​pending.​
309 ··········​if·​(stopped()​)​
310 ············​return;​
305 311
306 ····​/​/​·​Check·​whether·​the·​deadline·​has·​passed.​·​We·​compare·​the·​deadline·against312 ··········​/​/​·​Check·​whether·​the·​deadline·​has·​passed.​·​We·​compare·​the·​deadline
307 ····​/​/​·​the·​current·​time·​since·​a·​new·​asynchronous·​operation·​may·have·moved·the313 ··········​/​/​·against·​the·​current·​time·​since·​a·​new·​asynchronous·​operation·​may
308 ····​/​/​·​deadline·​before·​this·​actor·​had·​a·​chance·​to·​run.​314 ··········​/​/​·have·moved·the·​deadline·​before·​this·​actor·​had·​a·​chance·​to·​run.​
309 ····​if·​(deadline-​>expiry()​·​<=·​steady_timer:​:​clock_type:​:​now()​)​315 ··········​if·​(deadline.​expiry()​·​<=·​steady_timer:​:​clock_type:​:​now()​)​
310 ····​{316 ··········​{
311 ······​/​/​·​The·​deadline·​has·​passed.​·​Stop·​the·​session.​·​The·​other·​actors·​will317 ············​/​/​·​The·​deadline·​has·​passed.​·​Stop·​the·​session.​·​The·​other·​actors·​will
312 ······​/​/​·​terminate·​as·​soon·​as·​possible.​318 ············​/​/​·​terminate·​as·​soon·​as·​possible.​
313 ······​stop()​;​319 ············​stop()​;​
314 ····​}320 ··········​}
315 ····​else321 ··········​else
316 ····​{322 ··········​{
317 ······​/​/​·​Put·​the·​actor·​back·​to·​sleep.​323 ············​/​/​·​Put·​the·​actor·​back·​to·​sleep.​
318 ······​deadline-​>async_wait(324 ············check_deadline(deadli​ne)​;​
319 ··········boost:​:​bind(&tcp_session:​:​check_deadline,​325 ··········}
320 ··········shared_from_this()​,​·deadline)​)​;​326 ········})​;​
321 ····}
322 ··​}327 ··​}
323 328
324 ··​channel&·​channel_;​329 ··​channel&·​channel_;​
325 ··​tcp:​:​socket·​socket_;​330 ··​tcp:​:​socket·​socket_;​
326 ··​std:​:​string·​input_buffer_;​331 ··​std:​:​string·​input_buffer_;​
327 ··​steady_timer·​input_deadline_;​332 ··​steady_timer·​input_deadline_{socke​t_.​get_executor()​};​
328 ··​std:​:​deque<std:​:​string>·​output_queue_;​333 ··​std:​:​deque<std:​:​string>·​output_queue_;​
329 ··​steady_timer·​non_empty_output_queu​e_;​334 ··​steady_timer·​non_empty_output_queu​e_{socket_.​get_executor()​};​
330 ··​steady_timer·​output_deadline_;​335 ··​steady_timer·​output_deadline_{sock​et_.​get_executor()​};​
331 };​336 };​
332 337
333 typedef·boost:​:​shared_ptr<tcp_sessio​n>·​tcp_session_ptr;​338 typedef·​std:​:​shared_ptr<tcp_sessio​n>·​tcp_session_ptr;​
334 339
335 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​340 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
336 341
337 class·​udp_broadcaster342 class·​udp_broadcaster
338 ··​:​·​public·​subscriber343 ··​:​·​public·​subscriber
339 {344 {
340 public:​345 public:​
341 ··​udp_broadcaster(asio:​:​io_context&·​io_context,​346 ··​udp_broadcaster(asio:​:​io_context&·​io_context,​
342 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​347 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​
343 ····​:​·​socket_(io_context)​348 ····​:​·​socket_(io_context)​
344 ··​{349 ··​{
345 ····​socket_.​connect(broadcast_end​point)​;​350 ····​socket_.​connect(broadcast_end​point)​;​
346 ····​socket_.​set_option(udp:​:​socket:​:​broadcast(true)​)​;​351 ····​socket_.​set_option(udp:​:​socket:​:​broadcast(true)​)​;​
347 ··​}352 ··​}
348 353
349 private:​354 private:​
350 ··​void·​deliver(const·​std:​:​string&·​msg)​355 ··​void·​deliver(const·​std:​:​string&·​msg)​
351 ··​{356 ··​{
352 ····asio:​:​error_code·​ignored_ec;​357 ····​std:​:​error_code·​ignored_error;​
353 ····​socket_.​send(asio:​:​buffer(msg)​,​·​0,​·​ignored_ec)​;​358 ····​socket_.​send(asio:​:​buffer(msg)​,​·​0,​·​ignored_error)​;​
354 ··​}359 ··​}
355 360
356 ··​udp:​:​socket·​socket_;​361 ··​udp:​:​socket·​socket_;​
357 };​362 };​
358 363
359 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​364 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
360 365
361 class·​server366 class·​server
362 {367 {
363 public:​368 public:​
364 ··​server(asio:​:​io_context&·​io_context,​369 ··​server(asio:​:​io_context&·​io_context,​
365 ······​const·​tcp:​:​endpoint&·​listen_endpoint,​370 ······​const·​tcp:​:​endpoint&·​listen_endpoint,​
366 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​371 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​
367 ····​:​·​io_context_(io_contex​t)​,​372 ····​:​·​io_context_(io_contex​t)​,​
368 ······​acceptor_(io_context,​·​listen_endpoint)​373 ······​acceptor_(io_context,​·​listen_endpoint)​
369 ··​{374 ··​{
370 ····subscriber_ptr·bc(new·udp_broadcaster(io_co​ntext_,​·broadcast_endpoint)​)​;​375 ····​channel_.​join(
371 ····channel_.​join(bc)​;​376 ········std:​:​make_shared<udp_broad​caster>(
377 ··········​io_context_,​·​broadcast_endpoint)​)​;​
372 378
373 ····start_accept()​;​379 ····​accept()​;​
374 ··​}380 ··​}
375 381
376 ··void·start_accept()​382 private:​
383 ··​void·​accept()​
377 ··​{384 ··​{
378 ····tcp_session_ptr·new_session(new·tcp_session(io_contex​t_,​·channel_)​)​;​385 ····acceptor_.​async_accept(
386 ········​[this](const·​std:​:​error_code&·​error,​·​tcp:​:​socket·​socket)​
387 ········​{
388 ··········​if·​(!error)​
389 ··········​{
390 ············​std:​:​make_shared<tcp_sessi​on>(std:​:​move(socket)​,​·​channel_)​-​>start()​;​
391 ··········​}
379 392
380 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​393 ··········accept()​;​
381 ········boost:​:​bind(&server:​:​handle_accept,​394 ········})​;​
382 ··········this,​·new_session,​·boost:​:​placeholders:​:​_1)​)​;​
383 ··​}395 ··​}
384 396
385 ··​void·​handle_accept(tcp_ses​sion_ptr·​session,​
386 ······​const·​asio:​:​error_code&·​ec)​
387 ··​{
388 ····​if·​(!ec)​
389 ····​{
390 ······​session-​>start()​;​
391 ····​}
392
393 ····​start_accept()​;​
394 ··​}
395
396 private:​
397 ··​asio:​:​io_context&·​io_context_;​397 ··​asio:​:​io_context&·​io_context_;​
398 ··​tcp:​:​acceptor·​acceptor_;​398 ··​tcp:​:​acceptor·​acceptor_;​
399 ··​channel·​channel_;​399 ··​channel·​channel_;​
400 };​400 };​
401 401
402 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​402 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
403 403
404 int·​main(int·​argc,​·​char*·​argv[])​404 int·​main(int·​argc,​·​char*·​argv[])​
405 {405 {
406 ··​try406 ··​try
407 ··​{407 ··​{
408 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​408 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
409 409
410 ····​if·​(argc·​!=·​4)​410 ····​if·​(argc·​!=·​4)​
411 ····​{411 ····​{
412 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<listen_port>·​<bcast_address>·​<bcast_port>\n";​412 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<listen_port>·​<bcast_address>·​<bcast_port>\n";​
413 ······​return·​1;​413 ······​return·​1;​
414 ····​}414 ····​}
415 415
416 ····​asio:​:​io_context·​io_context;​416 ····​asio:​:​io_context·​io_context;​
417 417
418 ····​tcp:​:​endpoint·​listen_endpoint(tcp:​:​v4()​,​·​atoi(argv[1])​)​;​418 ····​tcp:​:​endpoint·​listen_endpoint(tcp:​:​v4()​,​·​atoi(argv[1])​)​;​
419 419
420 ····​udp:​:​endpoint·​broadcast_endpoint(420 ····​udp:​:​endpoint·​broadcast_endpoint(
421 ········​asio:​:​ip:​:​make_address(argv[2])​,​·​atoi(argv[3])​)​;​421 ········​asio:​:​ip:​:​make_address(argv[2])​,​·​atoi(argv[3])​)​;​
422 422
423 ····​server·​s(io_context,​·​listen_endpoint,​·​broadcast_endpoint)​;​423 ····​server·​s(io_context,​·​listen_endpoint,​·​broadcast_endpoint)​;​
424 424
425 ····​io_context.​run()​;​425 ····​io_context.​run()​;​
426 ··​}426 ··​}
427 ··​catch·​(std:​:​exception&·​e)​427 ··​catch·​(std:​:​exception&·​e)​
428 ··​{428 ··​{
429 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​429 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
430 ··​}430 ··​}
431 431
432 ··​return·​0;​432 ··​return·​0;​
433 }433 }
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/timers/time_t_timer.cpp.html b/3party/asio/doc/examples/diffs/timers/time_t_timer.cpp.html new file mode 100644 index 0000000..325af85 --- /dev/null +++ b/3party/asio/doc/examples/diffs/timers/time_t_timer.cpp.html @@ -0,0 +1,151 @@ + + + + + + + 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-​2023·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2023·​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 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/type_erasure/line_reader.hpp.html b/3party/asio/doc/examples/diffs/type_erasure/line_reader.hpp.html new file mode 100644 index 0000000..387cdd9 --- /dev/null +++ b/3party/asio/doc/examples/diffs/type_erasure/line_reader.hpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff type_erasure/line_reader.hpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/type_erasure/main.cpp.html b/3party/asio/doc/examples/diffs/type_erasure/main.cpp.html new file mode 100644 index 0000000..d75518e --- /dev/null +++ b/3party/asio/doc/examples/diffs/type_erasure/main.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff type_erasure/main.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/type_erasure/sleep.cpp.html b/3party/asio/doc/examples/diffs/type_erasure/sleep.cpp.html new file mode 100644 index 0000000..5f8a115 --- /dev/null +++ b/3party/asio/doc/examples/diffs/type_erasure/sleep.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff type_erasure/sleep.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/type_erasure/sleep.hpp.html b/3party/asio/doc/examples/diffs/type_erasure/sleep.hpp.html new file mode 100644 index 0000000..1bb62fa --- /dev/null +++ b/3party/asio/doc/examples/diffs/type_erasure/sleep.hpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff type_erasure/sleep.hpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/type_erasure/stdin_line_reader.cpp.html b/3party/asio/doc/examples/diffs/type_erasure/stdin_line_reader.cpp.html new file mode 100644 index 0000000..9fbc847 --- /dev/null +++ b/3party/asio/doc/examples/diffs/type_erasure/stdin_line_reader.cpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff type_erasure/stdin_line_reader.cpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/examples/diffs/type_erasure/stdin_line_reader.hpp.html b/3party/asio/doc/examples/diffs/type_erasure/stdin_line_reader.hpp.html new file mode 100644 index 0000000..86e324f --- /dev/null +++ b/3party/asio/doc/examples/diffs/type_erasure/stdin_line_reader.hpp.html @@ -0,0 +1,39 @@ + + + + + + + HTML Diff type_erasure/stdin_line_reader.hpp + + + + + + + + + + + + +
+ +
+

Modified at 26.04.2023. HTML formatting created by diff2html.

+
+ diff --git a/3party/asio/doc/higher_level_model.png b/3party/asio/doc/higher_level_model.png new file mode 100644 index 0000000000000000000000000000000000000000..e74d16b78757617f4e250c7d34f36d26e21fe0ca GIT binary patch literal 291487 zcmeFZcRZGT8$T{3qM;BKQj$$Fvr|T7WM-4>l}+YVsU#$;$Vm1M*(((xBYS4=mA&~M zXWjR6cU?Ts_xb(v`{(=I_v^m9y2g2a#_>6h_whd7$LS>}BYp(`G(Hv<){z?$*X6OW z4zXZi;WFSIgm6O;bKqM$k7(+- zm1nC-1^YeZAI&G+4H7V^4tTG-g|$EPOyrr9M>>eDAMvnqiKW(mJ0W_H>Qm1H84{9v zFR9L4)uMahNtCp~SjiJMK$oIP6Nt1m@{e>D;DT9>d4;Zy2sO55+tnT)SL=q%yT=E~4A z%aZ%-rL?e(tt%gxB-l<*sq$J#gP@gxFzY4mCf;4WI|p0KNgsJ8xB3c@J`Eshal220 z^Y&0uK9A^2()66l)B{fb_{Ai5WmR>f@3Tb6V{yk<3q{b-Kb4gq_97j=Cti^}|1ktb zR(4R=u~k%>J`qDWBnr%r>ysl}URL%p4lb_^CtI zL15A`QADDoyWO{8$+$YxE7#@U^OdgS1-Xd*s#RQYKyX_Wsc33xx*tQ^w~zO;aK+u8 z*Ken-yR?h%7h?o-2eSV;M$OgP_+B! z!6ZEf26~%ht4Z69l+%oaH<{(S9j9)*G?u@Wli^YIz!G;~0QE@zQT>9#{KEZFj%^8) z+LouP9q`KYeoAxCQemMg*Ecqfxi^Wj?(g#uDB4ml9iIyMWVlF(RcGE`73;}Bk(Ni; zryz3XhjB$2`R)CtLs363*Drzrr@~$d5V@h|<^Lyp79+ zO4Xrl-@p9u{=EZlunfyY8}QQ}7T#O2^$3YNQ-te^_uvKLX%X?~#|b{4v=Zw+u6+UT zkocV!2QD0`63#r%c3#|oYT?D@yEvIgJ02)fm!5y}g6OML%#nN_{_DK{++S&luO%i3 znmq1&`$qQ|MrobOuGz^1kaJ#*rVmn=l#D@brQMu z6~7Yuc20(t<)Q`E3=P-uuBU!p0vAqHy&AfSf8mRNUJSPUA!BA^?s1-R{KSXN$!`;N z-}a{+f9s!iu9dEpuB|=R>gM3H3U(hsn0)Y*tS|LKRnu3gs;;j-Lp4K3tv+>t#L zbK#aXoee!npjx$YwLrDHw6rv%v{3E$(DSudLPfBn>Qs|-tpe*Xtq+kVt2?6 z_k-8{u=QZEcOBnFjK;IEJ5Q)_PG6Ybm#X5OHk|b3`+#X}Yf^JkQ$h5SWLS!Ma&2Qo zlxB=(nyc_erhUj!)k>Kssh?V2$0{V+NQ}nG__1g@5 zw0eJGDQ606F<>$ligzpHcQMVGmYrUHki+ujN zqQ4@)qQ+;^XEvF}FGH{-)BIE(Lg z>KRy^G``5DZff6{Qu9Wa@=k^TXY=z9y z%o@tRYlk+~~ls@~XxQY>9=8o1jWuwB1 z<&p6va!m778e7_zw57E4#~p{I&gQtZ zcj#*O6m`#c=j8WLq;b0p{T%4``P7@om%q@>*pu$mz<-|Kz?s9bXxVm|*wJFKXjpXR z^zetW-2T)*7r!q&p3$_m;~hQ;;L+OEBhyYLy-=DYap4P^(h z=+kGuYLs>XdKLXvNmqKPUB&9ioftw-hm#evtlxUB@SG#gikR1AC?V+G%$LrJXL^%^ z!sN6T`rTWO8>>}wPsEADEB(^Qw>Wei%b!2W@>=}tELywcS(@Xdc^@baRhsRV6oe2k^+?5Q(?_Dk))R$7CS6+L8@LT(eQ z3q&_B4oUOy-f}+gFn~HNB4$#N_PoBE$ATo6HXtBhFe|KbB(=YI=*dr&IX)cJ1Cj@Z zswh>)%m_nVgY<7R#0Lp#JT=ef7=@47$tc#vy*ZX|mCt9ru^_*&JYqUzICS>Jq?gT? z_=~S)LwOUW2bk#nvt^efi|$+Ja;Oz(KK@!!a~glKUwn%u|KTR>+NbiU^6K&*^z;fx zZ?=RpMBFzHZORsHiXags-nvW?Sr_($|C4n^_o-usnFbcGJ-=1IY2oj>zr5K&VRL?T z>W$RvFus+QJGlcSUuH*Q>rCHRa=F)SRtkx3D=I`QooCL^r_%Wt=ea8Ky*yZy(z}&q zU9Fn6SZ+jFS!>ye&2r8&^2v_IoXyV56dGo!;t&fBF^!8__Ige~=ffFoRftm^i>#Zg z3zWVo#U}qqjmTSf$v0e!;|%1S=bR>CBROJf-pZoB;S_$aXQ{fOx_DB$ja6+&cfb3m zAfIz*Ou1j1GjuH)XBjP|GW)AfBuyn%=bp$tY2jMHtl!n4?c$#J!y>cTY$JqXfMS}D z$UY)zIWg^reu1g+5jE=c@ooVNhslTxfg>MSKBzBWUJjn#zcI9-wHZ1$>9h5HBkb5J zWx`hNa_$oDIIh&>ivnZ2o~82j<;U5NbFNVz4Ez_)-`b8H9@;h<1 z$Mu`@=DgQb)u`{9tg&oOq$+>1+syW+gyD6=N$>Zpyjqf4%XUGVi5sKqDo4}ZHW-J} zrF!%V__U<7S4vekTUV!j9U^8!od=vLi|XBbSKel~ZfJpFV?=(SUA64V_`||JM*vC^84ui z`VKZ0))Ql_1Al!-4gN&_c>({yumAdU|I5c%xbU|V@ZX~-?7zQ#h$U+O->-3zdt+Ty zxOU?P{HdU4t*>ukV`OPtB@pffZydTOp=yJLb&>}8Z{H313qP^2use(uZ`FT;Eog%F*1+!iLvT;QX&|@WN~4ZPxQtzrJE?DscX` zv>eqnOKW{9E|yCym(B~~Q&CazTi-R{mA@|b*U#Z^0_TlvZSV22vN||8usE=@SXvvh zvR%1yh4s>9*2|Zf;Tz00P8PPhj?5M|)W0wC_jRu8+vr&v-?KHgw4g$+t9!@N&Q{?3 zdE`d_`sepJ^&O4>xs!#>U(f9XUHeNfA(u$zi-EnT#Q%F z*iql?_H|=(SZWxW;AM8sOZ>m?v+JXOM*91wN;dk|*DTH9m$ricY}Q{t{_{i3AO5Oc2n<6-Cc^PYcv^v6$;N$|?++gO^}A&aPFVQedSnV)s9w=sXE`p?e<**M@{zkc-R zyO_VYz2`6fd>8Ws>H4L41DJf0?Zy zzP79wa0J3wH?Ch*blf-9b0{#dC0uC6GK-oa!GnpV4;!B)!2_ECvip}eZrZ*)#a{9H z#(MGIj@%&+jk=_IbzNS9(|9W;YZ)OhqLeaRpI5*+-(I` zC26HBJ5J4>dV%=VmEx6>S?Ae>U{~Ltb3a0BXG7%h2&sfUu=Zge_|GpIJg}Kh|5T+E z{V%=?*F(MW=zGbE{eQjeuUj8sp~`FS8={o>udWRjp8da%_kR~g-_;{54M`s($50sC zTxNfW>2?NHTFLrE-gsPCPI9RXd?UdC)&J>9WxCr^@>ol<3a9L+_Cx4qf}$Wy=-71Y zKy4SCz_6bq7cSlT{PfjjeaZa-wR&Jx85=nAj>hvtRfXr+M~|^Se;HcC-2-ZzuV25y7^TrcY~}OD2U$Ca4{=cM zW31tP7h;}-eubz<9wZ@>Q3>ZUCyu_Jf6Xf@6Z?Tw(2|`4+H^1$_@5g{;^DCb3E%qf z&ZMwD&Vdky$;p|2e*d42d>|pA1_LVk*?)D^P}TT&EK03yJs4(!v0Zwd2n=Rf;er| z|0^C`O=)>~cf@RWLfK8We#z9Y$viXlzLN6&$`5D5(W5!CeYM=Z&uhcDM|mA4Tg^9E z8ol>$Jf1iyd5XF^xtKxTUaQYgXhYR@_J_d6DL(tDy55x6T5A)@>0q+ORsE^DZ z!JQ)tBKiJ1&cqm-p0R~370l#i+!RNm`9g%-q1#IQRyfgKs3u7PhQr$%b_*RKp)Rss za@$;O&$Aj-UMQN*>B>n`xcYaD|6}07ONRiv_42XbLBDtd(*gWkugT62rd*@hn%$G> zr4iwLdjW_jUI3O!3&p26(WhY4h&@}fVbSe8Tiiijy55p*P#MN;>Dy&lD!}LP#{mAd zW5RX_iX3%jH^CT549-l+#*E`^@k-{E2!|g|R^Qkv?~dkp*U*vw1Bw1Mv;;MjvJ#*5 ze$4F-O%d+rvU);!-)O3IXPeF7+pAXs&h{2{>;~VSwrM#tALZ%un7(}b{TQdaE_cEpl_tAk-5bZ% z{wFpw6U}2?xt4F-x7YGF%$y`YSNNP6>@bYf1(bh~HjrDeDu{5jyYh{_erP?%tmE=% zsOIf^8Si>)9!OE_%9KJM3D<78<7MaH`1bh%x@8L!5z&zd8z0>{RqD32J_a_#q+P1o8gTL{Rc%`+Gem z%>oXV(#`qRwR-mmf}OkJJF|V%XV)aU?|nMrzaGp;pR)AvnA;^vnD9%@MzY2&0+smt zYr`Q~Rx#f4ed8Z-&pu~N%Znc3spFkYS?%4~>K*(3PW(GN{%ko*$s?4_!n_^{kmA%QmaqGDkTR%^Z6a@I@Tx6LcdU6y_dGFNDF@fD^` zo1E}1VwIw+J%i_6&>{^uOzOcHzpW>OxAB}*;F!vm4biuzSHST1r6zy_D zHzPY!KEFYJB1HL)WPiN*T3kutgi7z=4ZY5e%&gv;aMy@Qbc+Ee;G=}N)sj<#7`bw- zVxO%0x&qfiwzRt7^+098(|q=3t-;DiCEvcYrZHbx?x=UmNw|_48mMe8sr!0)y35cU zaXc(!Stcz>8k+bs#5tq~12VnwkIK_s)Ru2ZT5h$OEn1MVkow>fx!94WSy4wm4eIfZ|7QQ-s;_~+FI$26#C}cs&$A? zDbBoZdp@L;c!`n!#=>jx`?^Z@Z+_guzYrVrwo%#0lP1-orPz6;JV`^sygSdz?%*5y zmh_TJ1r8Jie@D>l@KHg@UD>|yJ5oXolg0F}Sm^n*@WOG4x0^5LdZMI!%Q3-Lrerv04RmqxP^kJ88faaQ(Mdh>|X6VIJ41zeSRLt^_20gS$ zt5e}Tlh2^h#(yZ8XwjT-OO)|k%LmPFB3XX_QfZ6HEMiB9vC_&R%G+x_vu>o$(;rln zx%DcZPw}LZ1+p3sM-e+RDB-K zCfd$)Uvb#deL@jzmugy=?-DP?TFmis!P0FZOoMDP-F?gS+iP}Ohjf=nJwE|1N|&D> z$C~10OBj3w*T=e_Nmr8F+*A(vp|6X@WJ<@=eyUW`H(tl6%QY{#w`SVyg)b(0K`{WY zlk_0u?o;$nqVn;YwP+HSCqzG}h)8yQiB)ou3@TrDUG9ii4AHn}`1$GaeDf~(vbama zfjO*FT}{JMy2A9@A%XB_g0D}{{mnA*_d@=tm=^L6HVZ$7vl5p zDXAS{&_;Z6wAIL@g5&t7v)lK!Igqd(jip$kTe`LEUGF+$v(_}lUi;ymi?MovbQqWZ z^oL`Od8KQ$mIf{K#KFqylBk68N%=_mZDVrJw)hO?#Fn`EW9_P?l0LLTX%t)CEwjVE zg0k-D@Ilx^Snp)}e7vQPQ(%P{1_I(B_>I~4n@-*}wtL$dYyXNql|wO!+-b;Pb?NNR zYGo!PVXRU}W0IJ0?7MWAVa5(ldOCL7v4*K4#e2rX)j@1d^Ft}J(b{ZdUc+s^uvr(561CnNn z7V4r|Ji9(q*nDIAo~)7{y<8r!_zl7jO67K=iTIj4SUV zl4YsN*pbkRt@X)tL(QgEt1bpl*OM$7WB~V=ovMC$H5%M}ilC*r;%?u{F%b;wBuu~u zE-uMY`rr-pPeMx&ENh$-x%SQQ&es>`XxvY-YH1vhH))B5;3TxY-c}mi9bvw;zLZbc zSShqUH`bA5=mIal$NWP6da)#?}hVrQSWqxap#M-nB?$ zm$ghd8Y9OX)@=+cZ*8D73v3fLm59|OeLU6I&0E%X7)&f(RV;8)!cRHqK23r!Y$4dC zpnVp6rIW89x<`bhy82S$R1L#Pkc=V5 zyhm`}-|zbLbi+KU^y|wsf?MOVqq14`<-+o6iN=jFH}Z4J%?BEjuF}4_Ct@${N=cl? zvDm6^*)p0sxupfpg05f`awZj9t%oC#b)Qist$W1CVaYka z7IzGNDPaN$*pU2O61#Q*?1u1jh78voC-{d(J*Yxz>W0He%*oKL;noYXS2MjZ)QYb0l+1~>SJ z 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
*$9 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 literal 0 HcmV?d00001 diff --git a/3party/asio/doc/home.png b/3party/asio/doc/home.png new file mode 100644 index 0000000000000000000000000000000000000000..5584aacb097a80e66a5320312b6e4eb017af1a06 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/3party/asio/doc/index.html b/3party/asio/doc/index.html new file mode 100644 index 0000000..f524d4e --- /dev/null +++ b/3party/asio/doc/index.html @@ -0,0 +1,84 @@ + + + +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, Building, and Configuring 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. +

+
Proposed Standard Executors +
+

+ Description of Asio's support for the proposed standard executors library. +

+
Revision History
+

+ Log of Asio changes made in each release. +

+
Index
+

+ Book-style text index of Asio documentation. +

+
+
+
+ +
+
Next
+ + diff --git a/3party/asio/doc/next.png b/3party/asio/doc/next.png new file mode 100644 index 0000000000000000000000000000000000000000..59800b4e87f60c0e3383ede2b384b9be0f5ffe8d GIT binary patch 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+ literal 0 HcmV?d00001 diff --git a/3party/asio/doc/next_disabled.png b/3party/asio/doc/next_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..10a8c59d7b3741260b7bfe918b62d0670cad8433 GIT binary patch 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* literal 0 HcmV?d00001 diff --git a/3party/asio/doc/note.png b/3party/asio/doc/note.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c3c645ab9af6318035b026dd86944b9ddc9114 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/3party/asio/doc/prev_disabled.png b/3party/asio/doc/prev_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3c17e02d156e7494dbab2f9cd66af46af2358c GIT binary patch literal 1109 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 AYybcN literal 0 HcmV?d00001 diff --git a/3party/asio/doc/sync_op.png b/3party/asio/doc/sync_op.png new file mode 100644 index 0000000000000000000000000000000000000000..baa5a567ce17a662a7b4a22d3c7b7a1a0c891d8a GIT binary patch literal 30701 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 NyNZA+Su1T8`ajXzG1dS8 literal 0 HcmV?d00001 diff --git a/3party/asio/doc/tip.png b/3party/asio/doc/tip.png new file mode 100644 index 0000000000000000000000000000000000000000..5c4aab3bb3543191c360387c4af9a3cbaa051345 GIT binary patch literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^l0YoM0VEi-?r};1DW)WEcNYeRRlUkaK;CUn7srr_ zTcwkB3m#VBagbEhuIO1a$!w|j^feEHv@=+|woj32oF*6|l<3XH$!T}Lao)e6jJhoQ z_vr?OZVprC|7iZ8xaicUR0b&zR-JdP408=+?zC0Rn8IN&QLTWhMIcU0X8P7uUN4WB zR_?a_;&p>ll{>(OzfJ4N{OX={Q&zNgO}j31DC;|ya^r9Fjd348&p+!^cT+^sws+=& zCu*T*mRNK3PE;$BNx$Fa_9(Y=&DoXLMFRd#U31O)<`W^F&-o=xbIqK-c?mr!bmn>! zky6TW;ML~4nXw$T{yra=OteL6G!=B;0=?;6;u=vBoS#-wo>-L1;Gm(b>6x3Dp6Z*J zo|&AjV4`QFXQ5zesc&GRZ(yj9T$EW{Qt6OeSzMBtte0A>mr`1gpI4%noS!>!m*Ngk zP=bxiOwUU!DFvFBnrfM1VQy}0X_lO7WM-b2nq**TZkb|inr2~`WR#dJWc*7VsEZGz hD*$LMgOO>4k%_i}w!yxSoa=!y44$rjF6*2UngF(YpwIvS literal 0 HcmV?d00001 diff --git a/3party/asio/doc/up.png b/3party/asio/doc/up.png new file mode 100644 index 0000000000000000000000000000000000000000..17d9c3ec491ae1ba22188ce85985623c92ffa9be GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/3party/asio/doc/up_disabled.png b/3party/asio/doc/up_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e22bc8712192df3a8faa3264b0ec71ff3aaaa96c GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/3party/asio/doc/warning.png b/3party/asio/doc/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..1c33db8f34a8b42b373179b46a2d8d8a10e061a9 GIT binary patch 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> literal 0 HcmV?d00001 diff --git a/3party/asio/include/Makefile.am b/3party/asio/include/Makefile.am new file mode 100644 index 0000000..d7a9b9c --- /dev/null +++ b/3party/asio/include/Makefile.am @@ -0,0 +1,678 @@ +# find . -name "*.*pp" | sed -e 's/^\.\///' | sed -e 's/^.*$/ & \\/' | sort +nobase_include_HEADERS = \ + asio/any_completion_executor.hpp \ + asio/any_completion_handler.hpp \ + asio/any_io_executor.hpp \ + asio/append.hpp \ + asio/as_tuple.hpp \ + asio/associated_allocator.hpp \ + asio/associated_cancellation_slot.hpp \ + asio/associated_executor.hpp \ + asio/associated_immediate_executor.hpp \ + asio/associator.hpp \ + asio/async_result.hpp \ + asio/awaitable.hpp \ + asio/basic_datagram_socket.hpp \ + asio/basic_deadline_timer.hpp \ + asio/basic_file.hpp \ + asio/basic_io_object.hpp \ + asio/basic_random_access_file.hpp \ + asio/basic_raw_socket.hpp \ + asio/basic_readable_pipe.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_file.hpp \ + asio/basic_stream_socket.hpp \ + asio/basic_waitable_timer.hpp \ + asio/basic_writable_pipe.hpp \ + asio/bind_allocator.hpp \ + asio/bind_cancellation_slot.hpp \ + asio/bind_executor.hpp \ + asio/bind_immediate_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/buffer_registration.hpp \ + asio/buffers_iterator.hpp \ + asio/cancellation_signal.hpp \ + asio/cancellation_state.hpp \ + asio/cancellation_type.hpp \ + asio/co_spawn.hpp \ + asio/completion_condition.hpp \ + asio/compose.hpp \ + asio/connect.hpp \ + asio/connect_pipe.hpp \ + asio/consign.hpp \ + asio/coroutine.hpp \ + asio/deadline_timer.hpp \ + asio/defer.hpp \ + asio/deferred.hpp \ + asio/detached.hpp \ + asio/detail/array_fwd.hpp \ + asio/detail/array.hpp \ + asio/detail/assert.hpp \ + asio/detail/atomic_count.hpp \ + asio/detail/base_from_cancellation_state.hpp \ + asio/detail/base_from_completion_cond.hpp \ + asio/detail/bind_handler.hpp \ + asio/detail/blocking_executor_op.hpp \ + asio/detail/buffered_stream_storage.hpp \ + asio/detail/buffer_resize_guard.hpp \ + asio/detail/buffer_sequence_adapter.hpp \ + asio/detail/bulk_executor_op.hpp \ + asio/detail/call_stack.hpp \ + asio/detail/chrono.hpp \ + asio/detail/chrono_time_traits.hpp \ + asio/detail/completion_handler.hpp \ + asio/detail/composed_work.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/exception.hpp \ + asio/detail/executor_function.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/io_uring_descriptor_service.ipp \ + asio/detail/impl/io_uring_file_service.ipp \ + asio/detail/impl/io_uring_service.hpp \ + asio/detail/impl/io_uring_service.ipp \ + asio/detail/impl/io_uring_socket_service_base.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_serial_port_service.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_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/thread_context.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_file_service.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/initiate_defer.hpp \ + asio/detail/initiate_dispatch.hpp \ + asio/detail/initiate_post.hpp \ + asio/detail/io_control.hpp \ + asio/detail/io_object_impl.hpp \ + asio/detail/io_uring_descriptor_read_at_op.hpp \ + asio/detail/io_uring_descriptor_read_op.hpp \ + asio/detail/io_uring_descriptor_service.hpp \ + asio/detail/io_uring_descriptor_write_at_op.hpp \ + asio/detail/io_uring_descriptor_write_op.hpp \ + asio/detail/io_uring_file_service.hpp \ + asio/detail/io_uring_null_buffers_op.hpp \ + asio/detail/io_uring_operation.hpp \ + asio/detail/io_uring_service.hpp \ + asio/detail/io_uring_socket_accept_op.hpp \ + asio/detail/io_uring_socket_connect_op.hpp \ + asio/detail/io_uring_socket_recvfrom_op.hpp \ + asio/detail/io_uring_socket_recvmsg_op.hpp \ + asio/detail/io_uring_socket_recv_op.hpp \ + asio/detail/io_uring_socket_send_op.hpp \ + asio/detail/io_uring_socket_sendto_op.hpp \ + asio/detail/io_uring_socket_service_base.hpp \ + asio/detail/io_uring_socket_service.hpp \ + asio/detail/io_uring_wait_op.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/non_const_lvalue.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_serial_port_service.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_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.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_task.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/source_location.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/utility.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_file_service.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.hpp \ + asio/execution_context.hpp \ + asio/execution/allocator.hpp \ + asio/execution/any_executor.hpp \ + asio/execution/bad_executor.hpp \ + asio/execution/blocking.hpp \ + asio/execution/blocking_adaptation.hpp \ + asio/execution/bulk_execute.hpp \ + asio/execution/bulk_guarantee.hpp \ + asio/execution/connect.hpp \ + asio/execution/context.hpp \ + asio/execution/context_as.hpp \ + asio/execution/detail/as_invocable.hpp \ + asio/execution/detail/as_operation.hpp \ + asio/execution/detail/as_receiver.hpp \ + asio/execution/detail/bulk_sender.hpp \ + asio/execution/detail/submit_receiver.hpp \ + asio/execution/detail/void_receiver.hpp \ + asio/execution/execute.hpp \ + asio/execution/executor.hpp \ + asio/execution/impl/bad_executor.ipp \ + asio/execution/impl/receiver_invocation_error.ipp \ + asio/execution/invocable_archetype.hpp \ + asio/execution/mapping.hpp \ + asio/execution/occupancy.hpp \ + asio/execution/operation_state.hpp \ + asio/execution/outstanding_work.hpp \ + asio/execution/prefer_only.hpp \ + asio/execution/receiver.hpp \ + asio/execution/receiver_invocation_error.hpp \ + asio/execution/relationship.hpp \ + asio/execution/schedule.hpp \ + asio/execution/scheduler.hpp \ + asio/execution/sender.hpp \ + asio/execution/set_done.hpp \ + asio/execution/set_error.hpp \ + asio/execution/set_value.hpp \ + asio/execution/start.hpp \ + asio/execution/submit.hpp \ + asio/executor.hpp \ + asio/executor_work_guard.hpp \ + asio/experimental/append.hpp \ + asio/experimental/as_single.hpp \ + asio/experimental/as_tuple.hpp \ + asio/experimental/awaitable_operators.hpp \ + asio/experimental/basic_channel.hpp \ + asio/experimental/basic_concurrent_channel.hpp \ + asio/experimental/cancellation_condition.hpp \ + asio/experimental/channel.hpp \ + asio/experimental/channel_error.hpp \ + asio/experimental/channel_traits.hpp \ + asio/experimental/co_composed.hpp \ + asio/experimental/co_spawn.hpp \ + asio/experimental/concurrent_channel.hpp \ + asio/experimental/coro.hpp \ + asio/experimental/coro_traits.hpp \ + asio/experimental/deferred.hpp \ + asio/experimental/detail/channel_handler.hpp \ + asio/experimental/detail/channel_message.hpp \ + asio/experimental/detail/channel_operation.hpp \ + asio/experimental/detail/channel_payload.hpp \ + asio/experimental/detail/channel_receive_op.hpp \ + asio/experimental/detail/channel_send_functions.hpp \ + asio/experimental/detail/channel_send_op.hpp \ + asio/experimental/detail/channel_service.hpp \ + asio/experimental/detail/coro_completion_handler.hpp \ + asio/experimental/detail/coro_promise_allocator.hpp \ + asio/experimental/detail/has_signature.hpp \ + asio/experimental/detail/impl/channel_service.hpp \ + asio/experimental/detail/partial_promise.hpp \ + asio/experimental/impl/as_single.hpp \ + asio/experimental/impl/channel_error.ipp \ + asio/experimental/impl/co_composed.hpp \ + asio/experimental/impl/coro.hpp \ + asio/experimental/impl/parallel_group.hpp \ + asio/experimental/impl/promise.hpp \ + asio/experimental/impl/use_coro.hpp \ + asio/experimental/impl/use_promise.hpp \ + asio/experimental/parallel_group.hpp \ + asio/experimental/prepend.hpp \ + asio/experimental/promise.hpp \ + asio/experimental/use_coro.hpp \ + asio/experimental/use_promise.hpp \ + asio/file_base.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/high_resolution_timer.hpp \ + asio.hpp \ + asio/impl/any_completion_executor.ipp \ + asio/impl/any_io_executor.ipp \ + asio/impl/append.hpp \ + asio/impl/as_tuple.hpp \ + asio/impl/awaitable.hpp \ + asio/impl/buffered_read_stream.hpp \ + asio/impl/buffered_write_stream.hpp \ + asio/impl/cancellation_signal.ipp \ + asio/impl/co_spawn.hpp \ + asio/impl/connect.hpp \ + asio/impl/connect_pipe.hpp \ + asio/impl/connect_pipe.ipp \ + asio/impl/consign.hpp \ + asio/impl/deferred.hpp \ + asio/impl/detached.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/multiple_exceptions.ipp \ + asio/impl/prepend.hpp \ + asio/impl/read_at.hpp \ + asio/impl/read.hpp \ + asio/impl/read_until.hpp \ + asio/impl/redirect_error.hpp \ + asio/impl/serial_port_base.hpp \ + asio/impl/serial_port_base.ipp \ + asio/impl/spawn.hpp \ + 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_awaitable.hpp \ + 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/tcp.hpp \ + asio/ip/udp.hpp \ + asio/ip/unicast.hpp \ + asio/ip/v6_only.hpp \ + asio/is_applicable_property.hpp \ + asio/is_contiguous_iterator.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/seq_packet_protocol.hpp \ + asio/local/stream_protocol.hpp \ + asio/multiple_exceptions.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/post.hpp \ + asio/prefer.hpp \ + asio/prepend.hpp \ + asio/query.hpp \ + asio/random_access_file.hpp \ + asio/read_at.hpp \ + asio/read.hpp \ + asio/read_until.hpp \ + asio/readable_pipe.hpp \ + asio/recycling_allocator.hpp \ + asio/redirect_error.hpp \ + asio/registered_buffer.hpp \ + asio/require.hpp \ + asio/require_concept.hpp \ + asio/serial_port_base.hpp \ + asio/serial_port.hpp \ + asio/signal_set_base.hpp \ + asio/signal_set.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/host_name_verification.hpp \ + asio/ssl/impl/context.hpp \ + asio/ssl/impl/context.ipp \ + asio/ssl/impl/error.ipp \ + asio/ssl/impl/host_name_verification.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/static_thread_pool.hpp \ + asio/steady_timer.hpp \ + asio/strand.hpp \ + asio/streambuf.hpp \ + asio/stream_file.hpp \ + asio/system_context.hpp \ + asio/system_error.hpp \ + asio/system_executor.hpp \ + asio/system_timer.hpp \ + asio/this_coro.hpp \ + asio/thread.hpp \ + asio/thread_pool.hpp \ + asio/time_traits.hpp \ + asio/traits/bulk_execute_free.hpp \ + asio/traits/bulk_execute_member.hpp \ + asio/traits/connect_free.hpp \ + asio/traits/connect_member.hpp \ + asio/traits/equality_comparable.hpp \ + asio/traits/execute_free.hpp \ + asio/traits/execute_member.hpp \ + asio/traits/prefer_free.hpp \ + asio/traits/prefer_member.hpp \ + asio/traits/query_free.hpp \ + asio/traits/query_member.hpp \ + asio/traits/query_static_constexpr_member.hpp \ + asio/traits/require_concept_free.hpp \ + asio/traits/require_concept_member.hpp \ + asio/traits/require_free.hpp \ + asio/traits/require_member.hpp \ + asio/traits/schedule_free.hpp \ + asio/traits/schedule_member.hpp \ + asio/traits/set_done_free.hpp \ + asio/traits/set_done_member.hpp \ + asio/traits/set_error_free.hpp \ + asio/traits/set_error_member.hpp \ + asio/traits/set_value_free.hpp \ + asio/traits/set_value_member.hpp \ + asio/traits/start_free.hpp \ + asio/traits/start_member.hpp \ + asio/traits/static_query.hpp \ + asio/traits/static_require.hpp \ + asio/traits/static_require_concept.hpp \ + asio/traits/submit_free.hpp \ + asio/traits/submit_member.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_awaitable.hpp \ + asio/use_future.hpp \ + asio/uses_executor.hpp \ + asio/version.hpp \ + asio/wait_traits.hpp \ + asio/windows/basic_object_handle.hpp \ + asio/windows/basic_overlapped_handle.hpp \ + asio/windows/basic_random_access_handle.hpp \ + asio/windows/basic_stream_handle.hpp \ + asio/windows/object_handle.hpp \ + asio/windows/overlapped_handle.hpp \ + asio/windows/overlapped_ptr.hpp \ + asio/windows/random_access_handle.hpp \ + asio/windows/stream_handle.hpp \ + asio/writable_pipe.hpp \ + asio/write_at.hpp \ + asio/write.hpp \ + asio/yield.hpp + +MAINTAINERCLEANFILES = \ + $(srcdir)/Makefile.in diff --git a/3party/asio/include/Makefile.in b/3party/asio/include/Makefile.in new file mode 100644 index 0000000..8ae22e5 --- /dev/null +++ b/3party/asio/include/Makefile.in @@ -0,0 +1,1216 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 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)` +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@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +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@ +pkgconfigdir = @pkgconfigdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +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/any_completion_executor.hpp \ + asio/any_completion_handler.hpp \ + asio/any_io_executor.hpp \ + asio/append.hpp \ + asio/as_tuple.hpp \ + asio/associated_allocator.hpp \ + asio/associated_cancellation_slot.hpp \ + asio/associated_executor.hpp \ + asio/associated_immediate_executor.hpp \ + asio/associator.hpp \ + asio/async_result.hpp \ + asio/awaitable.hpp \ + asio/basic_datagram_socket.hpp \ + asio/basic_deadline_timer.hpp \ + asio/basic_file.hpp \ + asio/basic_io_object.hpp \ + asio/basic_random_access_file.hpp \ + asio/basic_raw_socket.hpp \ + asio/basic_readable_pipe.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_file.hpp \ + asio/basic_stream_socket.hpp \ + asio/basic_waitable_timer.hpp \ + asio/basic_writable_pipe.hpp \ + asio/bind_allocator.hpp \ + asio/bind_cancellation_slot.hpp \ + asio/bind_executor.hpp \ + asio/bind_immediate_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/buffer_registration.hpp \ + asio/buffers_iterator.hpp \ + asio/cancellation_signal.hpp \ + asio/cancellation_state.hpp \ + asio/cancellation_type.hpp \ + asio/co_spawn.hpp \ + asio/completion_condition.hpp \ + asio/compose.hpp \ + asio/connect.hpp \ + asio/connect_pipe.hpp \ + asio/consign.hpp \ + asio/coroutine.hpp \ + asio/deadline_timer.hpp \ + asio/defer.hpp \ + asio/deferred.hpp \ + asio/detached.hpp \ + asio/detail/array_fwd.hpp \ + asio/detail/array.hpp \ + asio/detail/assert.hpp \ + asio/detail/atomic_count.hpp \ + asio/detail/base_from_cancellation_state.hpp \ + asio/detail/base_from_completion_cond.hpp \ + asio/detail/bind_handler.hpp \ + asio/detail/blocking_executor_op.hpp \ + asio/detail/buffered_stream_storage.hpp \ + asio/detail/buffer_resize_guard.hpp \ + asio/detail/buffer_sequence_adapter.hpp \ + asio/detail/bulk_executor_op.hpp \ + asio/detail/call_stack.hpp \ + asio/detail/chrono.hpp \ + asio/detail/chrono_time_traits.hpp \ + asio/detail/completion_handler.hpp \ + asio/detail/composed_work.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/exception.hpp \ + asio/detail/executor_function.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/io_uring_descriptor_service.ipp \ + asio/detail/impl/io_uring_file_service.ipp \ + asio/detail/impl/io_uring_service.hpp \ + asio/detail/impl/io_uring_service.ipp \ + asio/detail/impl/io_uring_socket_service_base.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_serial_port_service.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_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/thread_context.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_file_service.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/initiate_defer.hpp \ + asio/detail/initiate_dispatch.hpp \ + asio/detail/initiate_post.hpp \ + asio/detail/io_control.hpp \ + asio/detail/io_object_impl.hpp \ + asio/detail/io_uring_descriptor_read_at_op.hpp \ + asio/detail/io_uring_descriptor_read_op.hpp \ + asio/detail/io_uring_descriptor_service.hpp \ + asio/detail/io_uring_descriptor_write_at_op.hpp \ + asio/detail/io_uring_descriptor_write_op.hpp \ + asio/detail/io_uring_file_service.hpp \ + asio/detail/io_uring_null_buffers_op.hpp \ + asio/detail/io_uring_operation.hpp \ + asio/detail/io_uring_service.hpp \ + asio/detail/io_uring_socket_accept_op.hpp \ + asio/detail/io_uring_socket_connect_op.hpp \ + asio/detail/io_uring_socket_recvfrom_op.hpp \ + asio/detail/io_uring_socket_recvmsg_op.hpp \ + asio/detail/io_uring_socket_recv_op.hpp \ + asio/detail/io_uring_socket_send_op.hpp \ + asio/detail/io_uring_socket_sendto_op.hpp \ + asio/detail/io_uring_socket_service_base.hpp \ + asio/detail/io_uring_socket_service.hpp \ + asio/detail/io_uring_wait_op.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/non_const_lvalue.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_serial_port_service.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_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.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_task.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/source_location.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/utility.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_file_service.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.hpp \ + asio/execution_context.hpp \ + asio/execution/allocator.hpp \ + asio/execution/any_executor.hpp \ + asio/execution/bad_executor.hpp \ + asio/execution/blocking.hpp \ + asio/execution/blocking_adaptation.hpp \ + asio/execution/bulk_execute.hpp \ + asio/execution/bulk_guarantee.hpp \ + asio/execution/connect.hpp \ + asio/execution/context.hpp \ + asio/execution/context_as.hpp \ + asio/execution/detail/as_invocable.hpp \ + asio/execution/detail/as_operation.hpp \ + asio/execution/detail/as_receiver.hpp \ + asio/execution/detail/bulk_sender.hpp \ + asio/execution/detail/submit_receiver.hpp \ + asio/execution/detail/void_receiver.hpp \ + asio/execution/execute.hpp \ + asio/execution/executor.hpp \ + asio/execution/impl/bad_executor.ipp \ + asio/execution/impl/receiver_invocation_error.ipp \ + asio/execution/invocable_archetype.hpp \ + asio/execution/mapping.hpp \ + asio/execution/occupancy.hpp \ + asio/execution/operation_state.hpp \ + asio/execution/outstanding_work.hpp \ + asio/execution/prefer_only.hpp \ + asio/execution/receiver.hpp \ + asio/execution/receiver_invocation_error.hpp \ + asio/execution/relationship.hpp \ + asio/execution/schedule.hpp \ + asio/execution/scheduler.hpp \ + asio/execution/sender.hpp \ + asio/execution/set_done.hpp \ + asio/execution/set_error.hpp \ + asio/execution/set_value.hpp \ + asio/execution/start.hpp \ + asio/execution/submit.hpp \ + asio/executor.hpp \ + asio/executor_work_guard.hpp \ + asio/experimental/append.hpp \ + asio/experimental/as_single.hpp \ + asio/experimental/as_tuple.hpp \ + asio/experimental/awaitable_operators.hpp \ + asio/experimental/basic_channel.hpp \ + asio/experimental/basic_concurrent_channel.hpp \ + asio/experimental/cancellation_condition.hpp \ + asio/experimental/channel.hpp \ + asio/experimental/channel_error.hpp \ + asio/experimental/channel_traits.hpp \ + asio/experimental/co_composed.hpp \ + asio/experimental/co_spawn.hpp \ + asio/experimental/concurrent_channel.hpp \ + asio/experimental/coro.hpp \ + asio/experimental/coro_traits.hpp \ + asio/experimental/deferred.hpp \ + asio/experimental/detail/channel_handler.hpp \ + asio/experimental/detail/channel_message.hpp \ + asio/experimental/detail/channel_operation.hpp \ + asio/experimental/detail/channel_payload.hpp \ + asio/experimental/detail/channel_receive_op.hpp \ + asio/experimental/detail/channel_send_functions.hpp \ + asio/experimental/detail/channel_send_op.hpp \ + asio/experimental/detail/channel_service.hpp \ + asio/experimental/detail/coro_completion_handler.hpp \ + asio/experimental/detail/coro_promise_allocator.hpp \ + asio/experimental/detail/has_signature.hpp \ + asio/experimental/detail/impl/channel_service.hpp \ + asio/experimental/detail/partial_promise.hpp \ + asio/experimental/impl/as_single.hpp \ + asio/experimental/impl/channel_error.ipp \ + asio/experimental/impl/co_composed.hpp \ + asio/experimental/impl/coro.hpp \ + asio/experimental/impl/parallel_group.hpp \ + asio/experimental/impl/promise.hpp \ + asio/experimental/impl/use_coro.hpp \ + asio/experimental/impl/use_promise.hpp \ + asio/experimental/parallel_group.hpp \ + asio/experimental/prepend.hpp \ + asio/experimental/promise.hpp \ + asio/experimental/use_coro.hpp \ + asio/experimental/use_promise.hpp \ + asio/file_base.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/high_resolution_timer.hpp \ + asio.hpp \ + asio/impl/any_completion_executor.ipp \ + asio/impl/any_io_executor.ipp \ + asio/impl/append.hpp \ + asio/impl/as_tuple.hpp \ + asio/impl/awaitable.hpp \ + asio/impl/buffered_read_stream.hpp \ + asio/impl/buffered_write_stream.hpp \ + asio/impl/cancellation_signal.ipp \ + asio/impl/co_spawn.hpp \ + asio/impl/connect.hpp \ + asio/impl/connect_pipe.hpp \ + asio/impl/connect_pipe.ipp \ + asio/impl/consign.hpp \ + asio/impl/deferred.hpp \ + asio/impl/detached.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/multiple_exceptions.ipp \ + asio/impl/prepend.hpp \ + asio/impl/read_at.hpp \ + asio/impl/read.hpp \ + asio/impl/read_until.hpp \ + asio/impl/redirect_error.hpp \ + asio/impl/serial_port_base.hpp \ + asio/impl/serial_port_base.ipp \ + asio/impl/spawn.hpp \ + 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_awaitable.hpp \ + 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/tcp.hpp \ + asio/ip/udp.hpp \ + asio/ip/unicast.hpp \ + asio/ip/v6_only.hpp \ + asio/is_applicable_property.hpp \ + asio/is_contiguous_iterator.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/seq_packet_protocol.hpp \ + asio/local/stream_protocol.hpp \ + asio/multiple_exceptions.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/post.hpp \ + asio/prefer.hpp \ + asio/prepend.hpp \ + asio/query.hpp \ + asio/random_access_file.hpp \ + asio/read_at.hpp \ + asio/read.hpp \ + asio/read_until.hpp \ + asio/readable_pipe.hpp \ + asio/recycling_allocator.hpp \ + asio/redirect_error.hpp \ + asio/registered_buffer.hpp \ + asio/require.hpp \ + asio/require_concept.hpp \ + asio/serial_port_base.hpp \ + asio/serial_port.hpp \ + asio/signal_set_base.hpp \ + asio/signal_set.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/host_name_verification.hpp \ + asio/ssl/impl/context.hpp \ + asio/ssl/impl/context.ipp \ + asio/ssl/impl/error.ipp \ + asio/ssl/impl/host_name_verification.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/static_thread_pool.hpp \ + asio/steady_timer.hpp \ + asio/strand.hpp \ + asio/streambuf.hpp \ + asio/stream_file.hpp \ + asio/system_context.hpp \ + asio/system_error.hpp \ + asio/system_executor.hpp \ + asio/system_timer.hpp \ + asio/this_coro.hpp \ + asio/thread.hpp \ + asio/thread_pool.hpp \ + asio/time_traits.hpp \ + asio/traits/bulk_execute_free.hpp \ + asio/traits/bulk_execute_member.hpp \ + asio/traits/connect_free.hpp \ + asio/traits/connect_member.hpp \ + asio/traits/equality_comparable.hpp \ + asio/traits/execute_free.hpp \ + asio/traits/execute_member.hpp \ + asio/traits/prefer_free.hpp \ + asio/traits/prefer_member.hpp \ + asio/traits/query_free.hpp \ + asio/traits/query_member.hpp \ + asio/traits/query_static_constexpr_member.hpp \ + asio/traits/require_concept_free.hpp \ + asio/traits/require_concept_member.hpp \ + asio/traits/require_free.hpp \ + asio/traits/require_member.hpp \ + asio/traits/schedule_free.hpp \ + asio/traits/schedule_member.hpp \ + asio/traits/set_done_free.hpp \ + asio/traits/set_done_member.hpp \ + asio/traits/set_error_free.hpp \ + asio/traits/set_error_member.hpp \ + asio/traits/set_value_free.hpp \ + asio/traits/set_value_member.hpp \ + asio/traits/start_free.hpp \ + asio/traits/start_member.hpp \ + asio/traits/static_query.hpp \ + asio/traits/static_require.hpp \ + asio/traits/static_require_concept.hpp \ + asio/traits/submit_free.hpp \ + asio/traits/submit_member.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_awaitable.hpp \ + asio/use_future.hpp \ + asio/uses_executor.hpp \ + asio/version.hpp \ + asio/wait_traits.hpp \ + asio/windows/basic_object_handle.hpp \ + asio/windows/basic_overlapped_handle.hpp \ + asio/windows/basic_random_access_handle.hpp \ + asio/windows/basic_stream_handle.hpp \ + asio/windows/object_handle.hpp \ + asio/windows/overlapped_handle.hpp \ + asio/windows/overlapped_ptr.hpp \ + asio/windows/random_access_handle.hpp \ + asio/windows/stream_handle.hpp \ + asio/writable_pipe.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/3party/asio/include/asio.hpp b/3party/asio/include/asio.hpp new file mode 100644 index 0000000..a973ab1 --- /dev/null +++ b/3party/asio/include/asio.hpp @@ -0,0 +1,216 @@ +// +// asio.hpp +// ~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software 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/any_completion_executor.hpp" +#include "asio/any_completion_handler.hpp" +#include "asio/any_io_executor.hpp" +#include "asio/append.hpp" +#include "asio/as_tuple.hpp" +#include "asio/associated_allocator.hpp" +#include "asio/associated_cancellation_slot.hpp" +#include "asio/associated_executor.hpp" +#include "asio/associated_immediate_executor.hpp" +#include "asio/associator.hpp" +#include "asio/async_result.hpp" +#include "asio/awaitable.hpp" +#include "asio/basic_datagram_socket.hpp" +#include "asio/basic_deadline_timer.hpp" +#include "asio/basic_file.hpp" +#include "asio/basic_io_object.hpp" +#include "asio/basic_random_access_file.hpp" +#include "asio/basic_raw_socket.hpp" +#include "asio/basic_readable_pipe.hpp" +#include "asio/basic_seq_packet_socket.hpp" +#include "asio/basic_serial_port.hpp" +#include "asio/basic_signal_set.hpp" +#include "asio/basic_socket.hpp" +#include "asio/basic_socket_acceptor.hpp" +#include "asio/basic_socket_iostream.hpp" +#include "asio/basic_socket_streambuf.hpp" +#include "asio/basic_stream_file.hpp" +#include "asio/basic_stream_socket.hpp" +#include "asio/basic_streambuf.hpp" +#include "asio/basic_waitable_timer.hpp" +#include "asio/basic_writable_pipe.hpp" +#include "asio/bind_allocator.hpp" +#include "asio/bind_cancellation_slot.hpp" +#include "asio/bind_executor.hpp" +#include "asio/bind_immediate_executor.hpp" +#include "asio/buffer.hpp" +#include "asio/buffer_registration.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/cancellation_signal.hpp" +#include "asio/cancellation_state.hpp" +#include "asio/cancellation_type.hpp" +#include "asio/co_spawn.hpp" +#include "asio/completion_condition.hpp" +#include "asio/compose.hpp" +#include "asio/connect.hpp" +#include "asio/connect_pipe.hpp" +#include "asio/consign.hpp" +#include "asio/coroutine.hpp" +#include "asio/deadline_timer.hpp" +#include "asio/defer.hpp" +#include "asio/deferred.hpp" +#include "asio/detached.hpp" +#include "asio/dispatch.hpp" +#include "asio/error.hpp" +#include "asio/error_code.hpp" +#include "asio/execution.hpp" +#include "asio/execution/allocator.hpp" +#include "asio/execution/any_executor.hpp" +#include "asio/execution/blocking.hpp" +#include "asio/execution/blocking_adaptation.hpp" +#include "asio/execution/bulk_execute.hpp" +#include "asio/execution/bulk_guarantee.hpp" +#include "asio/execution/connect.hpp" +#include "asio/execution/context.hpp" +#include "asio/execution/context_as.hpp" +#include "asio/execution/execute.hpp" +#include "asio/execution/executor.hpp" +#include "asio/execution/invocable_archetype.hpp" +#include "asio/execution/mapping.hpp" +#include "asio/execution/occupancy.hpp" +#include "asio/execution/operation_state.hpp" +#include "asio/execution/outstanding_work.hpp" +#include "asio/execution/prefer_only.hpp" +#include "asio/execution/receiver.hpp" +#include "asio/execution/receiver_invocation_error.hpp" +#include "asio/execution/relationship.hpp" +#include "asio/execution/schedule.hpp" +#include "asio/execution/scheduler.hpp" +#include "asio/execution/sender.hpp" +#include "asio/execution/set_done.hpp" +#include "asio/execution/set_error.hpp" +#include "asio/execution/set_value.hpp" +#include "asio/execution/start.hpp" +#include "asio/execution_context.hpp" +#include "asio/executor.hpp" +#include "asio/executor_work_guard.hpp" +#include "asio/file_base.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/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/network_v4.hpp" +#include "asio/ip/network_v6.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/tcp.hpp" +#include "asio/ip/udp.hpp" +#include "asio/ip/unicast.hpp" +#include "asio/ip/v6_only.hpp" +#include "asio/is_applicable_property.hpp" +#include "asio/is_contiguous_iterator.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/seq_packet_protocol.hpp" +#include "asio/local/stream_protocol.hpp" +#include "asio/multiple_exceptions.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/post.hpp" +#include "asio/prefer.hpp" +#include "asio/prepend.hpp" +#include "asio/query.hpp" +#include "asio/random_access_file.hpp" +#include "asio/read.hpp" +#include "asio/read_at.hpp" +#include "asio/read_until.hpp" +#include "asio/readable_pipe.hpp" +#include "asio/recycling_allocator.hpp" +#include "asio/redirect_error.hpp" +#include "asio/registered_buffer.hpp" +#include "asio/require.hpp" +#include "asio/require_concept.hpp" +#include "asio/serial_port.hpp" +#include "asio/serial_port_base.hpp" +#include "asio/signal_set.hpp" +#include "asio/signal_set_base.hpp" +#include "asio/socket_base.hpp" +#include "asio/static_thread_pool.hpp" +#include "asio/steady_timer.hpp" +#include "asio/strand.hpp" +#include "asio/stream_file.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/this_coro.hpp" +#include "asio/thread.hpp" +#include "asio/thread_pool.hpp" +#include "asio/time_traits.hpp" +#include "asio/use_awaitable.hpp" +#include "asio/use_future.hpp" +#include "asio/uses_executor.hpp" +#include "asio/version.hpp" +#include "asio/wait_traits.hpp" +#include "asio/windows/basic_object_handle.hpp" +#include "asio/windows/basic_overlapped_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/overlapped_handle.hpp" +#include "asio/windows/overlapped_ptr.hpp" +#include "asio/windows/random_access_handle.hpp" +#include "asio/windows/stream_handle.hpp" +#include "asio/writable_pipe.hpp" +#include "asio/write.hpp" +#include "asio/write_at.hpp" + +#endif // ASIO_HPP diff --git a/3party/asio/include/asio/any_completion_executor.hpp b/3party/asio/include/asio/any_completion_executor.hpp new file mode 100644 index 0000000..420927c --- /dev/null +++ b/3party/asio/include/asio/any_completion_executor.hpp @@ -0,0 +1,342 @@ +// +// any_completion_executor.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ANY_COMPLETION_EXECUTOR_HPP +#define ASIO_ANY_COMPLETION_EXECUTOR_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_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/executor.hpp" +#else // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/execution.hpp" +#endif // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +#include "asio/detail/push_options.hpp" + +namespace asio { + +#if defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +typedef executor any_completion_executor; + +#else // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +/// Polymorphic executor type for use with I/O objects. +/** + * The @c any_completion_executor type is a polymorphic executor that supports + * the set of properties required for the execution of completion handlers. It + * is defined as the execution::any_executor class template parameterised as + * follows: + * @code execution::any_executor< + * execution::prefer_only, + * execution::prefer_only + * execution::prefer_only, + * execution::prefer_only + * > @endcode + */ +class any_completion_executor : +#if defined(GENERATING_DOCUMENTATION) + public execution::any_executor<...> +#else // defined(GENERATING_DOCUMENTATION) + public execution::any_executor< + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + > +#endif // defined(GENERATING_DOCUMENTATION) +{ +public: +#if !defined(GENERATING_DOCUMENTATION) + typedef execution::any_executor< + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + > base_type; + + typedef void supportable_properties_type( + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + ); +#endif // !defined(GENERATING_DOCUMENTATION) + + /// Default constructor. + ASIO_DECL any_completion_executor() ASIO_NOEXCEPT; + + /// Construct in an empty state. Equivalent effects to default constructor. + ASIO_DECL any_completion_executor(nullptr_t) ASIO_NOEXCEPT; + + /// Copy constructor. + ASIO_DECL any_completion_executor( + const any_completion_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Move constructor. + ASIO_DECL any_completion_executor( + any_completion_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor( + execution::any_executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(OtherAnyExecutor e, + typename constraint< + conditional< + !is_same::value + && is_base_of::value, + typename execution::detail::supportable_properties< + 0, supportable_properties_type>::template + is_valid_target, + false_type + >::type::value + >::type = 0) + : base_type(ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, + execution::any_executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, OtherAnyExecutor e, + typename constraint< + conditional< + !is_same::value + && is_base_of::value, + typename execution::detail::supportable_properties< + 0, supportable_properties_type>::template + is_valid_target, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : base_type(std::nothrow, ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_completion_executor(std::nothrow_t, + const any_completion_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_completion_executor(std::nothrow_t, + any_completion_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Construct a polymorphic wrapper for the specified executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(Executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(Executor e, + typename constraint< + conditional< + !is_same::value + && !is_base_of::value, + execution::detail::is_valid_target_executor< + Executor, supportable_properties_type>, + false_type + >::type::value + >::type = 0) + : base_type(ASIO_MOVE_CAST(Executor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct a polymorphic wrapper for the specified executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, Executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, Executor e, + typename constraint< + conditional< + !is_same::value + && !is_base_of::value, + execution::detail::is_valid_target_executor< + Executor, supportable_properties_type>, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : base_type(std::nothrow, ASIO_MOVE_CAST(Executor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Assignment operator. + ASIO_DECL any_completion_executor& operator=( + const any_completion_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Move assignment operator. + ASIO_DECL any_completion_executor& operator=( + any_completion_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Assignment operator that sets the polymorphic wrapper to the empty state. + ASIO_DECL any_completion_executor& operator=(nullptr_t); + + /// Destructor. + ASIO_DECL ~any_completion_executor(); + + /// Swap targets with another polymorphic wrapper. + ASIO_DECL void swap(any_completion_executor& other) ASIO_NOEXCEPT; + + /// Obtain a polymorphic wrapper with the specified property. + /** + * Do not call this function directly. It is intended for use with the + * asio::require and asio::prefer customisation points. + * + * For example: + * @code any_completion_executor ex = ...; + * auto ex2 = asio::require(ex, execution::relationship.fork); @endcode + */ + template + any_completion_executor require(const Property& p, + typename constraint< + traits::require_member::is_valid + >::type = 0) const + { + return static_cast(*this).require(p); + } + + /// Obtain a polymorphic wrapper with the specified property. + /** + * Do not call this function directly. It is intended for use with the + * asio::prefer customisation point. + * + * For example: + * @code any_completion_executor ex = ...; + * auto ex2 = asio::prefer(ex, execution::relationship.fork); @endcode + */ + template + any_completion_executor prefer(const Property& p, + typename constraint< + traits::prefer_member::is_valid + >::type = 0) const + { + return static_cast(*this).prefer(p); + } +}; + +#if !defined(GENERATING_DOCUMENTATION) + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::outstanding_work_t::tracked_t&, int) const; + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::outstanding_work_t::untracked_t&, int) const; + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::relationship_t::fork_t&, int) const; + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::relationship_t::continuation_t&, int) const; + +namespace traits { + +#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +template <> +struct equality_comparable +{ + static const bool is_valid = true; + static const bool is_noexcept = true; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +template +struct execute_member +{ + static const bool is_valid = true; + static const bool is_noexcept = false; + typedef void result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +template +struct query_member : + query_member +{ +}; + +#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) + +template +struct require_member : + require_member +{ + typedef any_completion_executor result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT) + +template +struct prefer_member : + prefer_member +{ + typedef any_completion_executor result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT) + +} // namespace traits + +#endif // !defined(GENERATING_DOCUMENTATION) + +#endif // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#if defined(ASIO_HEADER_ONLY) \ + && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/impl/any_completion_executor.ipp" +#endif // defined(ASIO_HEADER_ONLY) + // && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +#endif // ASIO_ANY_COMPLETION_EXECUTOR_HPP diff --git a/3party/asio/include/asio/any_completion_handler.hpp b/3party/asio/include/asio/any_completion_handler.hpp new file mode 100644 index 0000000..cd11453 --- /dev/null +++ b/3party/asio/include/asio/any_completion_handler.hpp @@ -0,0 +1,762 @@ +// +// any_completion_handler.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ANY_COMPLETION_HANDLER_HPP +#define ASIO_ANY_COMPLETION_HANDLER_HPP + +#include "asio/detail/config.hpp" + +#if (defined(ASIO_HAS_STD_TUPLE) \ + && defined(ASIO_HAS_MOVE) \ + && defined(ASIO_HAS_VARIADIC_TEMPLATES)) \ + || defined(GENERATING_DOCUMENTATION) + +#include +#include +#include +#include +#include "asio/any_completion_executor.hpp" +#include "asio/associated_allocator.hpp" +#include "asio/associated_cancellation_slot.hpp" +#include "asio/associated_executor.hpp" +#include "asio/cancellation_state.hpp" +#include "asio/recycling_allocator.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { +namespace detail { + +class any_completion_handler_impl_base +{ +public: + template + explicit any_completion_handler_impl_base(S&& slot) + : cancel_state_(ASIO_MOVE_CAST(S)(slot), enable_total_cancellation()) + { + } + + cancellation_slot get_cancellation_slot() const ASIO_NOEXCEPT + { + return cancel_state_.slot(); + } + +private: + cancellation_state cancel_state_; +}; + +template +class any_completion_handler_impl : + public any_completion_handler_impl_base +{ +public: + template + any_completion_handler_impl(S&& slot, H&& h) + : any_completion_handler_impl_base(ASIO_MOVE_CAST(S)(slot)), + handler_(ASIO_MOVE_CAST(H)(h)) + { + } + + struct uninit_deleter + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc; + + void operator()(any_completion_handler_impl* ptr) + { + std::allocator_traits::deallocate(alloc, ptr, 1); + } + }; + + struct deleter + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc; + + void operator()(any_completion_handler_impl* ptr) + { + std::allocator_traits::destroy(alloc, ptr); + std::allocator_traits::deallocate(alloc, ptr, 1); + } + }; + + template + static any_completion_handler_impl* create(S&& slot, H&& h) + { + uninit_deleter d{ + (get_associated_allocator)(h, + asio::recycling_allocator())}; + + std::unique_ptr uninit_ptr( + std::allocator_traits::allocate(d.alloc, 1), d); + + any_completion_handler_impl* ptr = + new (uninit_ptr.get()) any_completion_handler_impl( + ASIO_MOVE_CAST(S)(slot), ASIO_MOVE_CAST(H)(h)); + + uninit_ptr.release(); + return ptr; + } + + void destroy() + { + deleter d{ + (get_associated_allocator)(handler_, + asio::recycling_allocator())}; + + d(this); + } + + any_completion_executor executor( + const any_completion_executor& candidate) const ASIO_NOEXCEPT + { + return any_completion_executor(std::nothrow, + (get_associated_executor)(handler_, candidate)); + } + + void* allocate(std::size_t size, std::size_t align) const + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc( + (get_associated_allocator)(handler_, + asio::recycling_allocator())); + + std::size_t space = size + align - 1; + unsigned char* base = + std::allocator_traits::allocate( + alloc, space + sizeof(std::ptrdiff_t)); + + void* p = base; + if (detail::align(align, size, p, space)) + { + std::ptrdiff_t off = static_cast(p) - base; + std::memcpy(static_cast(p) + size, &off, sizeof(off)); + return p; + } + + std::bad_alloc ex; + asio::detail::throw_exception(ex); + return nullptr; + } + + void deallocate(void* p, std::size_t size, std::size_t align) const + { + if (p) + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc( + (get_associated_allocator)(handler_, + asio::recycling_allocator())); + + std::ptrdiff_t off; + std::memcpy(&off, static_cast(p) + size, sizeof(off)); + unsigned char* base = static_cast(p) - off; + + std::allocator_traits::deallocate( + alloc, base, size + align -1 + sizeof(std::ptrdiff_t)); + } + } + + template + void call(Args&&... args) + { + deleter d{ + (get_associated_allocator)(handler_, + asio::recycling_allocator())}; + + std::unique_ptr ptr(this, d); + Handler handler(ASIO_MOVE_CAST(Handler)(handler_)); + ptr.reset(); + + ASIO_MOVE_CAST(Handler)(handler)( + ASIO_MOVE_CAST(Args)(args)...); + } + +private: + Handler handler_; +}; + +template +class any_completion_handler_call_fn; + +template +class any_completion_handler_call_fn +{ +public: + using type = void(*)(any_completion_handler_impl_base*, Args...); + + constexpr any_completion_handler_call_fn(type fn) + : call_fn_(fn) + { + } + + void call(any_completion_handler_impl_base* impl, Args... args) const + { + call_fn_(impl, ASIO_MOVE_CAST(Args)(args)...); + } + + template + static void impl(any_completion_handler_impl_base* impl, Args... args) + { + static_cast*>(impl)->call( + ASIO_MOVE_CAST(Args)(args)...); + } + +private: + type call_fn_; +}; + +template +class any_completion_handler_call_fns; + +template +class any_completion_handler_call_fns : + public any_completion_handler_call_fn +{ +public: + using any_completion_handler_call_fn< + Signature>::any_completion_handler_call_fn; + using any_completion_handler_call_fn::call; +}; + +template +class any_completion_handler_call_fns : + public any_completion_handler_call_fn, + public any_completion_handler_call_fns +{ +public: + template + constexpr any_completion_handler_call_fns(CallFn fn, CallFns... fns) + : any_completion_handler_call_fn(fn), + any_completion_handler_call_fns(fns...) + { + } + + using any_completion_handler_call_fn::call; + using any_completion_handler_call_fns::call; +}; + +class any_completion_handler_destroy_fn +{ +public: + using type = void(*)(any_completion_handler_impl_base*); + + constexpr any_completion_handler_destroy_fn(type fn) + : destroy_fn_(fn) + { + } + + void destroy(any_completion_handler_impl_base* impl) const + { + destroy_fn_(impl); + } + + template + static void impl(any_completion_handler_impl_base* impl) + { + static_cast*>(impl)->destroy(); + } + +private: + type destroy_fn_; +}; + +class any_completion_handler_executor_fn +{ +public: + using type = any_completion_executor(*)( + any_completion_handler_impl_base*, const any_completion_executor&); + + constexpr any_completion_handler_executor_fn(type fn) + : executor_fn_(fn) + { + } + + any_completion_executor executor(any_completion_handler_impl_base* impl, + const any_completion_executor& candidate) const + { + return executor_fn_(impl, candidate); + } + + template + static any_completion_executor impl(any_completion_handler_impl_base* impl, + const any_completion_executor& candidate) + { + return static_cast*>(impl)->executor( + candidate); + } + +private: + type executor_fn_; +}; + +class any_completion_handler_allocate_fn +{ +public: + using type = void*(*)(any_completion_handler_impl_base*, + std::size_t, std::size_t); + + constexpr any_completion_handler_allocate_fn(type fn) + : allocate_fn_(fn) + { + } + + void* allocate(any_completion_handler_impl_base* impl, + std::size_t size, std::size_t align) const + { + return allocate_fn_(impl, size, align); + } + + template + static void* impl(any_completion_handler_impl_base* impl, + std::size_t size, std::size_t align) + { + return static_cast*>(impl)->allocate( + size, align); + } + +private: + type allocate_fn_; +}; + +class any_completion_handler_deallocate_fn +{ +public: + using type = void(*)(any_completion_handler_impl_base*, + void*, std::size_t, std::size_t); + + constexpr any_completion_handler_deallocate_fn(type fn) + : deallocate_fn_(fn) + { + } + + void deallocate(any_completion_handler_impl_base* impl, + void* p, std::size_t size, std::size_t align) const + { + deallocate_fn_(impl, p, size, align); + } + + template + static void impl(any_completion_handler_impl_base* impl, + void* p, std::size_t size, std::size_t align) + { + static_cast*>(impl)->deallocate( + p, size, align); + } + +private: + type deallocate_fn_; +}; + +template +class any_completion_handler_fn_table + : private any_completion_handler_destroy_fn, + private any_completion_handler_executor_fn, + private any_completion_handler_allocate_fn, + private any_completion_handler_deallocate_fn, + private any_completion_handler_call_fns +{ +public: + template + constexpr any_completion_handler_fn_table( + any_completion_handler_destroy_fn::type destroy_fn, + any_completion_handler_executor_fn::type executor_fn, + any_completion_handler_allocate_fn::type allocate_fn, + any_completion_handler_deallocate_fn::type deallocate_fn, + CallFns... call_fns) + : any_completion_handler_destroy_fn(destroy_fn), + any_completion_handler_executor_fn(executor_fn), + any_completion_handler_allocate_fn(allocate_fn), + any_completion_handler_deallocate_fn(deallocate_fn), + any_completion_handler_call_fns(call_fns...) + { + } + + using any_completion_handler_destroy_fn::destroy; + using any_completion_handler_executor_fn::executor; + using any_completion_handler_allocate_fn::allocate; + using any_completion_handler_deallocate_fn::deallocate; + using any_completion_handler_call_fns::call; +}; + +template +struct any_completion_handler_fn_table_instance +{ + static constexpr any_completion_handler_fn_table + value = any_completion_handler_fn_table( + &any_completion_handler_destroy_fn::impl, + &any_completion_handler_executor_fn::impl, + &any_completion_handler_allocate_fn::impl, + &any_completion_handler_deallocate_fn::impl, + &any_completion_handler_call_fn::template impl...); +}; + +template +constexpr any_completion_handler_fn_table +any_completion_handler_fn_table_instance::value; + +} // namespace detail + +template +class any_completion_handler; + +/// An allocator type that forwards memory allocation operations through an +/// instance of @c any_completion_handler. +template +class any_completion_handler_allocator +{ +private: + template + friend class any_completion_handler; + + template + friend class any_completion_handler_allocator; + + const detail::any_completion_handler_fn_table* fn_table_; + detail::any_completion_handler_impl_base* impl_; + + constexpr any_completion_handler_allocator(int, + const any_completion_handler& h) ASIO_NOEXCEPT + : fn_table_(h.fn_table_), + impl_(h.impl_) + { + } + +public: + /// The type of objects that may be allocated by the allocator. + typedef T value_type; + + /// Rebinds an allocator to another value type. + template + struct rebind + { + /// Specifies the type of the rebound allocator. + typedef any_completion_handler_allocator other; + }; + + /// Construct from another @c any_completion_handler_allocator. + template + constexpr any_completion_handler_allocator( + const any_completion_handler_allocator& a) + ASIO_NOEXCEPT + : fn_table_(a.fn_table_), + impl_(a.impl_) + { + } + + /// Equality operator. + constexpr bool operator==( + const any_completion_handler_allocator& other) const ASIO_NOEXCEPT + { + return fn_table_ == other.fn_table_ && impl_ == other.impl_; + } + + /// Inequality operator. + constexpr bool operator!=( + const any_completion_handler_allocator& other) const ASIO_NOEXCEPT + { + return fn_table_ != other.fn_table_ || impl_ != other.impl_; + } + + /// Allocate space for @c n objects of the allocator's value type. + T* allocate(std::size_t n) const + { + return static_cast( + fn_table_->allocate( + impl_, sizeof(T) * n, alignof(T))); + } + + /// Deallocate space for @c n objects of the allocator's value type. + void deallocate(T* p, std::size_t n) const + { + fn_table_->deallocate(impl_, p, sizeof(T) * n, alignof(T)); + } +}; + +/// A protoco-allocator type that may be rebound to obtain an allocator that +/// forwards memory allocation operations through an instance of +/// @c any_completion_handler. +template +class any_completion_handler_allocator +{ +private: + template + friend class any_completion_handler; + + template + friend class any_completion_handler_allocator; + + const detail::any_completion_handler_fn_table* fn_table_; + detail::any_completion_handler_impl_base* impl_; + + constexpr any_completion_handler_allocator(int, + const any_completion_handler& h) ASIO_NOEXCEPT + : fn_table_(h.fn_table_), + impl_(h.impl_) + { + } + +public: + /// @c void as no objects can be allocated through a proto-allocator. + typedef void value_type; + + /// Rebinds an allocator to another value type. + template + struct rebind + { + /// Specifies the type of the rebound allocator. + typedef any_completion_handler_allocator other; + }; + + /// Construct from another @c any_completion_handler_allocator. + template + constexpr any_completion_handler_allocator( + const any_completion_handler_allocator& a) + ASIO_NOEXCEPT + : fn_table_(a.fn_table_), + impl_(a.impl_) + { + } + + /// Equality operator. + constexpr bool operator==( + const any_completion_handler_allocator& other) const ASIO_NOEXCEPT + { + return fn_table_ == other.fn_table_ && impl_ == other.impl_; + } + + /// Inequality operator. + constexpr bool operator!=( + const any_completion_handler_allocator& other) const ASIO_NOEXCEPT + { + return fn_table_ != other.fn_table_ || impl_ != other.impl_; + } +}; + +/// Polymorphic wrapper for completion handlers. +/** + * The @c any_completion_handler class template is a polymorphic wrapper for + * completion handlers that propagates the associated executor, associated + * allocator, and associated cancellation slot through a type-erasing interface. + * + * When using @c any_completion_handler, specify one or more completion + * signatures as template parameters. These will dictate the arguments that may + * be passed to the handler through the polymorphic interface. + * + * Typical uses for @c any_completion_handler include: + * + * @li Separate compilation of asynchronous operation implementations. + * + * @li Enabling interoperability between asynchronous operations and virtual + * functions. + */ +template +class any_completion_handler +{ +#if !defined(GENERATING_DOCUMENTATION) +private: + template + friend class any_completion_handler_allocator; + + template + friend struct associated_executor; + + const detail::any_completion_handler_fn_table* fn_table_; + detail::any_completion_handler_impl_base* impl_; +#endif // !defined(GENERATING_DOCUMENTATION) + +public: + /// The associated allocator type. + using allocator_type = any_completion_handler_allocator; + + /// The associated cancellation slot type. + using cancellation_slot_type = cancellation_slot; + + /// Construct an @c any_completion_handler in an empty state, without a target + /// object. + constexpr any_completion_handler() + : fn_table_(nullptr), + impl_(nullptr) + { + } + + /// Construct an @c any_completion_handler in an empty state, without a target + /// object. + constexpr any_completion_handler(nullptr_t) + : fn_table_(nullptr), + impl_(nullptr) + { + } + + /// Construct an @c any_completion_handler to contain the specified target. + template ::type> + any_completion_handler(H&& h, + typename constraint< + !is_same::type, any_completion_handler>::value + >::type = 0) + : fn_table_( + &detail::any_completion_handler_fn_table_instance< + Handler, Signatures...>::value), + impl_(detail::any_completion_handler_impl::create( + (get_associated_cancellation_slot)(h), ASIO_MOVE_CAST(H)(h))) + { + } + + /// Move-construct an @c any_completion_handler from another. + /** + * After the operation, the moved-from object @c other has no target. + */ + any_completion_handler(any_completion_handler&& other) ASIO_NOEXCEPT + : fn_table_(other.fn_table_), + impl_(other.impl_) + { + other.fn_table_ = nullptr; + other.impl_ = nullptr; + } + + /// Move-assign an @c any_completion_handler from another. + /** + * After the operation, the moved-from object @c other has no target. + */ + any_completion_handler& operator=( + any_completion_handler&& other) ASIO_NOEXCEPT + { + any_completion_handler( + ASIO_MOVE_CAST(any_completion_handler)(other)).swap(*this); + return *this; + } + + /// Assignment operator that sets the polymorphic wrapper to the empty state. + any_completion_handler& operator=(nullptr_t) ASIO_NOEXCEPT + { + any_completion_handler().swap(*this); + return *this; + } + + /// Destructor. + ~any_completion_handler() + { + if (impl_) + fn_table_->destroy(impl_); + } + + /// Test if the polymorphic wrapper is empty. + constexpr explicit operator bool() const ASIO_NOEXCEPT + { + return impl_ != nullptr; + } + + /// Test if the polymorphic wrapper is non-empty. + constexpr bool operator!() const ASIO_NOEXCEPT + { + return impl_ == nullptr; + } + + /// Swap the content of an @c any_completion_handler with another. + void swap(any_completion_handler& other) ASIO_NOEXCEPT + { + std::swap(fn_table_, other.fn_table_); + std::swap(impl_, other.impl_); + } + + /// Get the associated allocator. + allocator_type get_allocator() const ASIO_NOEXCEPT + { + return allocator_type(0, *this); + } + + /// Get the associated cancellation slot. + cancellation_slot_type get_cancellation_slot() const ASIO_NOEXCEPT + { + return impl_->get_cancellation_slot(); + } + + /// Function call operator. + /** + * Invokes target completion handler with the supplied arguments. + * + * This function may only be called once, as the target handler is moved from. + * The polymorphic wrapper is left in an empty state. + * + * Throws @c std::bad_function_call if the polymorphic wrapper is empty. + */ + template + auto operator()(Args&&... args) + -> decltype(fn_table_->call(impl_, ASIO_MOVE_CAST(Args)(args)...)) + { + if (detail::any_completion_handler_impl_base* impl = impl_) + { + impl_ = nullptr; + return fn_table_->call(impl, ASIO_MOVE_CAST(Args)(args)...); + } + std::bad_function_call ex; + asio::detail::throw_exception(ex); + } + + /// Equality operator. + friend constexpr bool operator==( + const any_completion_handler& a, nullptr_t) ASIO_NOEXCEPT + { + return a.impl_ == nullptr; + } + + /// Equality operator. + friend constexpr bool operator==( + nullptr_t, const any_completion_handler& b) ASIO_NOEXCEPT + { + return nullptr == b.impl_; + } + + /// Inequality operator. + friend constexpr bool operator!=( + const any_completion_handler& a, nullptr_t) ASIO_NOEXCEPT + { + return a.impl_ != nullptr; + } + + /// Inequality operator. + friend constexpr bool operator!=( + nullptr_t, const any_completion_handler& b) ASIO_NOEXCEPT + { + return nullptr != b.impl_; + } +}; + +template +struct associated_executor, Candidate> +{ + using type = any_completion_executor; + + static type get(const any_completion_handler& handler, + const Candidate& candidate = Candidate()) ASIO_NOEXCEPT + { + return handler.fn_table_->executor(handler.impl_, + any_completion_executor(std::nothrow, candidate)); + } +}; + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#endif // (defined(ASIO_HAS_STD_TUPLE) + // && defined(ASIO_HAS_MOVE) + // && defined(ASIO_HAS_VARIADIC_TEMPLATES)) + // || defined(GENERATING_DOCUMENTATION) + +#endif // ASIO_ANY_COMPLETION_HANDLER_HPP diff --git a/3party/asio/include/asio/any_io_executor.hpp b/3party/asio/include/asio/any_io_executor.hpp new file mode 100644 index 0000000..7a77c90 --- /dev/null +++ b/3party/asio/include/asio/any_io_executor.hpp @@ -0,0 +1,359 @@ +// +// any_io_executor.hpp +// ~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ANY_IO_EXECUTOR_HPP +#define ASIO_ANY_IO_EXECUTOR_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_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/executor.hpp" +#else // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/execution.hpp" +# include "asio/execution_context.hpp" +#endif // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +#include "asio/detail/push_options.hpp" + +namespace asio { + +#if defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +typedef executor any_io_executor; + +#else // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +/// Polymorphic executor type for use with I/O objects. +/** + * The @c any_io_executor type is a polymorphic executor that supports the set + * of properties required by I/O objects. It is defined as the + * execution::any_executor class template parameterised as follows: + * @code execution::any_executor< + * execution::context_as_t, + * execution::blocking_t::never_t, + * execution::prefer_only, + * execution::prefer_only, + * execution::prefer_only, + * execution::prefer_only, + * execution::prefer_only + * > @endcode + */ +class any_io_executor : +#if defined(GENERATING_DOCUMENTATION) + public execution::any_executor<...> +#else // defined(GENERATING_DOCUMENTATION) + public execution::any_executor< + execution::context_as_t, + execution::blocking_t::never_t, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + > +#endif // defined(GENERATING_DOCUMENTATION) +{ +public: +#if !defined(GENERATING_DOCUMENTATION) + typedef execution::any_executor< + execution::context_as_t, + execution::blocking_t::never_t, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + > base_type; + + typedef void supportable_properties_type( + execution::context_as_t, + execution::blocking_t::never_t, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + ); +#endif // !defined(GENERATING_DOCUMENTATION) + + /// Default constructor. + ASIO_DECL any_io_executor() ASIO_NOEXCEPT; + + /// Construct in an empty state. Equivalent effects to default constructor. + ASIO_DECL any_io_executor(nullptr_t) ASIO_NOEXCEPT; + + /// Copy constructor. + ASIO_DECL any_io_executor(const any_io_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Move constructor. + ASIO_DECL any_io_executor(any_io_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_io_executor(execution::any_executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_io_executor(OtherAnyExecutor e, + typename constraint< + conditional< + !is_same::value + && is_base_of::value, + typename execution::detail::supportable_properties< + 0, supportable_properties_type>::template + is_valid_target, + false_type + >::type::value + >::type = 0) + : base_type(ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, + execution::any_executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, OtherAnyExecutor e, + typename constraint< + conditional< + !is_same::value + && is_base_of::value, + typename execution::detail::supportable_properties< + 0, supportable_properties_type>::template + is_valid_target, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : base_type(std::nothrow, ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_io_executor(std::nothrow_t, + const any_io_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_io_executor(std::nothrow_t, + any_io_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Construct a polymorphic wrapper for the specified executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_io_executor(Executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_io_executor(Executor e, + typename constraint< + conditional< + !is_same::value + && !is_base_of::value, + execution::detail::is_valid_target_executor< + Executor, supportable_properties_type>, + false_type + >::type::value + >::type = 0) + : base_type(ASIO_MOVE_CAST(Executor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct a polymorphic wrapper for the specified executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, Executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, Executor e, + typename constraint< + conditional< + !is_same::value + && !is_base_of::value, + execution::detail::is_valid_target_executor< + Executor, supportable_properties_type>, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : base_type(std::nothrow, ASIO_MOVE_CAST(Executor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Assignment operator. + ASIO_DECL any_io_executor& operator=( + const any_io_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Move assignment operator. + ASIO_DECL any_io_executor& operator=( + any_io_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Assignment operator that sets the polymorphic wrapper to the empty state. + ASIO_DECL any_io_executor& operator=(nullptr_t); + + /// Destructor. + ASIO_DECL ~any_io_executor(); + + /// Swap targets with another polymorphic wrapper. + ASIO_DECL void swap(any_io_executor& other) ASIO_NOEXCEPT; + + /// Obtain a polymorphic wrapper with the specified property. + /** + * Do not call this function directly. It is intended for use with the + * asio::require and asio::prefer customisation points. + * + * For example: + * @code any_io_executor ex = ...; + * auto ex2 = asio::require(ex, execution::blocking.possibly); @endcode + */ + template + any_io_executor require(const Property& p, + typename constraint< + traits::require_member::is_valid + >::type = 0) const + { + return static_cast(*this).require(p); + } + + /// Obtain a polymorphic wrapper with the specified property. + /** + * Do not call this function directly. It is intended for use with the + * asio::prefer customisation point. + * + * For example: + * @code any_io_executor ex = ...; + * auto ex2 = asio::prefer(ex, execution::blocking.possibly); @endcode + */ + template + any_io_executor prefer(const Property& p, + typename constraint< + traits::prefer_member::is_valid + >::type = 0) const + { + return static_cast(*this).prefer(p); + } +}; + +#if !defined(GENERATING_DOCUMENTATION) + +template <> +ASIO_DECL any_io_executor any_io_executor::require( + const execution::blocking_t::never_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::blocking_t::possibly_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::outstanding_work_t::tracked_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::outstanding_work_t::untracked_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::relationship_t::fork_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::relationship_t::continuation_t&, int) const; + +namespace traits { + +#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +template <> +struct equality_comparable +{ + static const bool is_valid = true; + static const bool is_noexcept = true; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +template +struct execute_member +{ + static const bool is_valid = true; + static const bool is_noexcept = false; + typedef void result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +template +struct query_member : + query_member +{ +}; + +#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) + +template +struct require_member : + require_member +{ + typedef any_io_executor result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT) + +template +struct prefer_member : + prefer_member +{ + typedef any_io_executor result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT) + +} // namespace traits + +#endif // !defined(GENERATING_DOCUMENTATION) + +#endif // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#if defined(ASIO_HEADER_ONLY) \ + && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/impl/any_io_executor.ipp" +#endif // defined(ASIO_HEADER_ONLY) + // && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +#endif // ASIO_ANY_IO_EXECUTOR_HPP diff --git a/3party/asio/include/asio/append.hpp b/3party/asio/include/asio/append.hpp new file mode 100644 index 0000000..9ac4a95 --- /dev/null +++ b/3party/asio/include/asio/append.hpp @@ -0,0 +1,78 @@ +// +// append.hpp +// ~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_APPEND_HPP +#define ASIO_APPEND_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_TUPLE) \ + && defined(ASIO_HAS_VARIADIC_TEMPLATES)) \ + || defined(GENERATING_DOCUMENTATION) + +#include +#include "asio/detail/type_traits.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +/// Completion token type used to specify that the completion handler +/// arguments should be passed additional values after the results of the +/// operation. +template +class append_t +{ +public: + /// Constructor. + template + ASIO_CONSTEXPR explicit append_t( + ASIO_MOVE_ARG(T) completion_token, + ASIO_MOVE_ARG(V)... values) + : token_(ASIO_MOVE_CAST(T)(completion_token)), + values_(ASIO_MOVE_CAST(V)(values)...) + { + } + +//private: + CompletionToken token_; + std::tuple values_; +}; + +/// Completion token type used to specify that the completion handler +/// arguments should be passed additional values after the results of the +/// operation. +template +ASIO_NODISCARD inline ASIO_CONSTEXPR append_t< + typename decay::type, typename decay::type...> +append(ASIO_MOVE_ARG(CompletionToken) completion_token, + ASIO_MOVE_ARG(Values)... values) +{ + return append_t< + typename decay::type, typename decay::type...>( + ASIO_MOVE_CAST(CompletionToken)(completion_token), + ASIO_MOVE_CAST(Values)(values)...); +} + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#include "asio/impl/append.hpp" + +#endif // (defined(ASIO_HAS_STD_TUPLE) + // && defined(ASIO_HAS_VARIADIC_TEMPLATES)) + // || defined(GENERATING_DOCUMENTATION) + +#endif // ASIO_APPEND_HPP diff --git a/3party/asio/include/asio/as_tuple.hpp b/3party/asio/include/asio/as_tuple.hpp new file mode 100644 index 0000000..96ac47c --- /dev/null +++ b/3party/asio/include/asio/as_tuple.hpp @@ -0,0 +1,139 @@ +// +// as_tuple.hpp +// ~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_AS_TUPLE_HPP +#define ASIO_AS_TUPLE_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_TUPLE) \ + && defined(ASIO_HAS_VARIADIC_TEMPLATES)) \ + || defined(GENERATING_DOCUMENTATION) + +#include "asio/detail/type_traits.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +/// A @ref completion_token adapter used to specify that the completion handler +/// arguments should be combined into a single tuple argument. +/** + * The as_tuple_t class is used to indicate that any arguments to the + * completion handler should be combined and passed as a single tuple argument. + * The arguments are first moved into a @c std::tuple and that tuple is then + * passed to the completion handler. + */ +template +class as_tuple_t +{ +public: + /// Tag type used to prevent the "default" constructor from being used for + /// conversions. + struct default_constructor_tag {}; + + /// Default constructor. + /** + * This constructor is only valid if the underlying completion token is + * default constructible and move constructible. The underlying completion + * token is itself defaulted as an argument to allow it to capture a source + * location. + */ + ASIO_CONSTEXPR as_tuple_t( + default_constructor_tag = default_constructor_tag(), + CompletionToken token = CompletionToken()) + : token_(ASIO_MOVE_CAST(CompletionToken)(token)) + { + } + + /// Constructor. + template + ASIO_CONSTEXPR explicit as_tuple_t( + ASIO_MOVE_ARG(T) completion_token) + : token_(ASIO_MOVE_CAST(T)(completion_token)) + { + } + + /// Adapts an executor to add the @c as_tuple_t completion token as the + /// default. + template + struct executor_with_default : InnerExecutor + { + /// Specify @c as_tuple_t as the default completion token type. + typedef as_tuple_t default_completion_token_type; + + /// Construct the adapted executor from the inner executor type. + template + executor_with_default(const InnerExecutor1& ex, + typename constraint< + conditional< + !is_same::value, + is_convertible, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : InnerExecutor(ex) + { + } + }; + + /// Type alias to adapt an I/O object to use @c as_tuple_t as its + /// default completion token type. +#if defined(ASIO_HAS_ALIAS_TEMPLATES) \ + || defined(GENERATING_DOCUMENTATION) + template + using as_default_on_t = typename T::template rebind_executor< + executor_with_default >::other; +#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) + // || defined(GENERATING_DOCUMENTATION) + + /// Function helper to adapt an I/O object to use @c as_tuple_t as its + /// default completion token type. + template + static typename decay::type::template rebind_executor< + executor_with_default::type::executor_type> + >::other + as_default_on(ASIO_MOVE_ARG(T) object) + { + return typename decay::type::template rebind_executor< + executor_with_default::type::executor_type> + >::other(ASIO_MOVE_CAST(T)(object)); + } + +//private: + CompletionToken token_; +}; + +/// Adapt a @ref completion_token to specify that the completion handler +/// arguments should be combined into a single tuple argument. +template +ASIO_NODISCARD inline +ASIO_CONSTEXPR as_tuple_t::type> +as_tuple(ASIO_MOVE_ARG(CompletionToken) completion_token) +{ + return as_tuple_t::type>( + ASIO_MOVE_CAST(CompletionToken)(completion_token)); +} + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#include "asio/impl/as_tuple.hpp" + +#endif // (defined(ASIO_HAS_STD_TUPLE) + // && defined(ASIO_HAS_VARIADIC_TEMPLATES)) + // || defined(GENERATING_DOCUMENTATION) + +#endif // ASIO_AS_TUPLE_HPP diff --git a/3party/asio/include/asio/associated_allocator.hpp b/3party/asio/include/asio/associated_allocator.hpp new file mode 100644 index 0000000..8e86467 --- /dev/null +++ b/3party/asio/include/asio/associated_allocator.hpp @@ -0,0 +1,233 @@ +// +// associated_allocator.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software 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/associator.hpp" +#include "asio/detail/functional.hpp" +#include "asio/detail/type_traits.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +template +struct associated_allocator; + +namespace detail { + +template +struct has_allocator_type : false_type +{ +}; + +template +struct has_allocator_type::type> + : true_type +{ +}; + +template +struct associated_allocator_impl +{ + typedef void asio_associated_allocator_is_unspecialised; + + typedef A type; + + static type get(const T&) ASIO_NOEXCEPT + { + return type(); + } + + static const type& get(const T&, const A& a) ASIO_NOEXCEPT + { + return a; + } +}; + +template +struct associated_allocator_impl::type> +{ + typedef typename T::allocator_type type; + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_allocator())) + { + return t.get_allocator(); + } + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t, const A&) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_allocator())) + { + return t.get_allocator(); + } +}; + +template +struct associated_allocator_impl::value + >::type, + typename void_type< + typename associator::type + >::type> : associator +{ +}; + +} // 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 or a (possibly const) reference to @c + * type. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t,a) and with return type @c type or a (possibly const) reference to @c + * type. + */ +template > +struct associated_allocator +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_allocator_impl +#endif // !defined(GENERATING_DOCUMENTATION) +{ +#if defined(GENERATING_DOCUMENTATION) + /// If @c T has a nested type @c allocator_type, T::allocator_type. + /// Otherwise @c Allocator. + typedef see_below type; + + /// If @c T has a nested type @c allocator_type, returns + /// t.get_allocator(). Otherwise returns @c type(). + static decltype(auto) get(const T& t) ASIO_NOEXCEPT; + + /// If @c T has a nested type @c allocator_type, returns + /// t.get_allocator(). Otherwise returns @c a. + static decltype(auto) get(const T& t, const Allocator& a) ASIO_NOEXCEPT; +#endif // defined(GENERATING_DOCUMENTATION) +}; + +/// Helper function to obtain an object's associated allocator. +/** + * @returns associated_allocator::get(t) + */ +template +ASIO_NODISCARD 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 +ASIO_NODISCARD inline ASIO_AUTO_RETURN_TYPE_PREFIX2( + typename associated_allocator::type) +get_associated_allocator(const T& t, const Allocator& a) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_allocator::get(t, a))) +{ + 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 detail { + +template +struct associated_allocator_forwarding_base +{ +}; + +template +struct associated_allocator_forwarding_base::asio_associated_allocator_is_unspecialised, + void + >::value + >::type> +{ + typedef void asio_associated_allocator_is_unspecialised; +}; + +} // namespace detail + +#if defined(ASIO_HAS_STD_REFERENCE_WRAPPER) \ + || defined(GENERATING_DOCUMENTATION) + +/// Specialisation of associated_allocator for @c std::reference_wrapper. +template +struct associated_allocator, Allocator> +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_allocator_forwarding_base +#endif // !defined(GENERATING_DOCUMENTATION) +{ + /// Forwards @c type to the associator specialisation for the unwrapped type + /// @c T. + typedef typename associated_allocator::type type; + + /// Forwards the request to get the allocator to the associator specialisation + /// for the unwrapped type @c T. + static type get(reference_wrapper t) ASIO_NOEXCEPT + { + return associated_allocator::get(t.get()); + } + + /// Forwards the request to get the allocator to the associator specialisation + /// for the unwrapped type @c T. + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + reference_wrapper t, const Allocator& a) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_allocator::get(t.get(), a))) + { + return associated_allocator::get(t.get(), a); + } +}; + +#endif // defined(ASIO_HAS_STD_REFERENCE_WRAPPER) + // || defined(GENERATING_DOCUMENTATION) + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#endif // ASIO_ASSOCIATED_ALLOCATOR_HPP diff --git a/3party/asio/include/asio/associated_cancellation_slot.hpp b/3party/asio/include/asio/associated_cancellation_slot.hpp new file mode 100644 index 0000000..65d82b6 --- /dev/null +++ b/3party/asio/include/asio/associated_cancellation_slot.hpp @@ -0,0 +1,238 @@ +// +// associated_cancellation_slot.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software 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_CANCELLATION_SLOT_HPP +#define ASIO_ASSOCIATED_CANCELLATION_SLOT_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/detail/config.hpp" +#include "asio/associator.hpp" +#include "asio/cancellation_signal.hpp" +#include "asio/detail/functional.hpp" +#include "asio/detail/type_traits.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +template +struct associated_cancellation_slot; + +namespace detail { + +template +struct has_cancellation_slot_type : false_type +{ +}; + +template +struct has_cancellation_slot_type::type> + : true_type +{ +}; + +template +struct associated_cancellation_slot_impl +{ + typedef void asio_associated_cancellation_slot_is_unspecialised; + + typedef S type; + + static type get(const T&) ASIO_NOEXCEPT + { + return type(); + } + + static const type& get(const T&, const S& s) ASIO_NOEXCEPT + { + return s; + } +}; + +template +struct associated_cancellation_slot_impl::type> +{ + typedef typename T::cancellation_slot_type type; + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_cancellation_slot())) + { + return t.get_cancellation_slot(); + } + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t, const S&) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_cancellation_slot())) + { + return t.get_cancellation_slot(); + } +}; + +template +struct associated_cancellation_slot_impl::value + >::type, + typename void_type< + typename associator::type + >::type> : associator +{ +}; + +} // namespace detail + +/// Traits type used to obtain the cancellation_slot 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 + * CancellationSlot shall be a type meeting the CancellationSlot requirements. + * + * Specialisations shall meet the following requirements, where @c t is a const + * reference to an object of type @c T, and @c s is an object of type @c + * CancellationSlot. + * + * @li Provide a nested typedef @c type that identifies a type meeting the + * CancellationSlot requirements. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t) and with return type @c type or a (possibly const) reference to @c + * type. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t,s) and with return type @c type or a (possibly const) reference to @c + * type. + */ +template +struct associated_cancellation_slot +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_cancellation_slot_impl +#endif // !defined(GENERATING_DOCUMENTATION) +{ +#if defined(GENERATING_DOCUMENTATION) + /// If @c T has a nested type @c cancellation_slot_type, + /// T::cancellation_slot_type. Otherwise + /// @c CancellationSlot. + typedef see_below type; + + /// If @c T has a nested type @c cancellation_slot_type, returns + /// t.get_cancellation_slot(). Otherwise returns @c type(). + static decltype(auto) get(const T& t) ASIO_NOEXCEPT; + + /// If @c T has a nested type @c cancellation_slot_type, returns + /// t.get_cancellation_slot(). Otherwise returns @c s. + static decltype(auto) get(const T& t, + const CancellationSlot& s) ASIO_NOEXCEPT; +#endif // defined(GENERATING_DOCUMENTATION) +}; + +/// Helper function to obtain an object's associated cancellation_slot. +/** + * @returns associated_cancellation_slot::get(t) + */ +template +ASIO_NODISCARD inline typename associated_cancellation_slot::type +get_associated_cancellation_slot(const T& t) ASIO_NOEXCEPT +{ + return associated_cancellation_slot::get(t); +} + +/// Helper function to obtain an object's associated cancellation_slot. +/** + * @returns associated_cancellation_slot::get(t, st) + */ +template +ASIO_NODISCARD inline ASIO_AUTO_RETURN_TYPE_PREFIX2( + typename associated_cancellation_slot::type) +get_associated_cancellation_slot(const T& t, + const CancellationSlot& st) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_cancellation_slot::get(t, st))) +{ + return associated_cancellation_slot::get(t, st); +} + +#if defined(ASIO_HAS_ALIAS_TEMPLATES) + +template +using associated_cancellation_slot_t = + typename associated_cancellation_slot::type; + +#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) + +namespace detail { + +template +struct associated_cancellation_slot_forwarding_base +{ +}; + +template +struct associated_cancellation_slot_forwarding_base::asio_associated_cancellation_slot_is_unspecialised, + void + >::value + >::type> +{ + typedef void asio_associated_cancellation_slot_is_unspecialised; +}; + +} // namespace detail + +#if defined(ASIO_HAS_STD_REFERENCE_WRAPPER) \ + || defined(GENERATING_DOCUMENTATION) + +/// Specialisation of associated_cancellation_slot for @c +/// std::reference_wrapper. +template +struct associated_cancellation_slot, CancellationSlot> +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_cancellation_slot_forwarding_base +#endif // !defined(GENERATING_DOCUMENTATION) +{ + /// Forwards @c type to the associator specialisation for the unwrapped type + /// @c T. + typedef typename associated_cancellation_slot::type type; + + /// Forwards the request to get the cancellation slot to the associator + /// specialisation for the unwrapped type @c T. + static type get(reference_wrapper t) ASIO_NOEXCEPT + { + return associated_cancellation_slot::get(t.get()); + } + + /// Forwards the request to get the cancellation slot to the associator + /// specialisation for the unwrapped type @c T. + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get(reference_wrapper t, + const CancellationSlot& s) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_cancellation_slot::get(t.get(), s))) + { + return associated_cancellation_slot::get(t.get(), s); + } +}; + +#endif // defined(ASIO_HAS_STD_REFERENCE_WRAPPER) + // || defined(GENERATING_DOCUMENTATION) + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#endif // ASIO_ASSOCIATED_CANCELLATION_SLOT_HPP diff --git a/3party/asio/include/asio/associated_executor.hpp b/3party/asio/include/asio/associated_executor.hpp new file mode 100644 index 0000000..9227989 --- /dev/null +++ b/3party/asio/include/asio/associated_executor.hpp @@ -0,0 +1,253 @@ +// +// associated_executor.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software 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/associator.hpp" +#include "asio/detail/functional.hpp" +#include "asio/detail/type_traits.hpp" +#include "asio/execution/executor.hpp" +#include "asio/is_executor.hpp" +#include "asio/system_executor.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +template +struct associated_executor; + +namespace detail { + +template +struct has_executor_type : false_type +{ +}; + +template +struct has_executor_type::type> + : true_type +{ +}; + +template +struct associated_executor_impl +{ + typedef void asio_associated_executor_is_unspecialised; + + typedef E type; + + static type get(const T&) ASIO_NOEXCEPT + { + return type(); + } + + static const type& get(const T&, const E& e) ASIO_NOEXCEPT + { + return e; + } +}; + +template +struct associated_executor_impl::type> +{ + typedef typename T::executor_type type; + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_executor())) + { + return t.get_executor(); + } + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t, const E&) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_executor())) + { + return t.get_executor(); + } +}; + +template +struct associated_executor_impl::value + >::type, + typename void_type< + typename associator::type + >::type> : associator +{ +}; + +} // 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 or a (possibly const) reference to @c + * type. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t,e) and with return type @c type or a (possibly const) reference to @c + * type. + */ +template +struct associated_executor +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_executor_impl +#endif // !defined(GENERATING_DOCUMENTATION) +{ +#if defined(GENERATING_DOCUMENTATION) + /// If @c T has a nested type @c executor_type, T::executor_type. + /// Otherwise @c Executor. + typedef see_below type; + + /// If @c T has a nested type @c executor_type, returns + /// t.get_executor(). Otherwise returns @c type(). + static decltype(auto) get(const T& t) ASIO_NOEXCEPT; + + /// If @c T has a nested type @c executor_type, returns + /// t.get_executor(). Otherwise returns @c ex. + static decltype(auto) get(const T& t, const Executor& ex) ASIO_NOEXCEPT; +#endif // defined(GENERATING_DOCUMENTATION) +}; + +/// Helper function to obtain an object's associated executor. +/** + * @returns associated_executor::get(t) + */ +template +ASIO_NODISCARD 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 +ASIO_NODISCARD inline ASIO_AUTO_RETURN_TYPE_PREFIX2( + typename associated_executor::type) +get_associated_executor(const T& t, const Executor& ex, + typename constraint< + is_executor::value || execution::is_executor::value + >::type = 0) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_executor::get(t, ex))) +{ + return associated_executor::get(t, ex); +} + +/// Helper function to obtain an object's associated executor. +/** + * @returns associated_executor::get(t, ctx.get_executor()) + */ +template +ASIO_NODISCARD inline typename associated_executor::type +get_associated_executor(const T& t, ExecutionContext& ctx, + typename constraint::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 detail { + +template +struct associated_executor_forwarding_base +{ +}; + +template +struct associated_executor_forwarding_base::asio_associated_executor_is_unspecialised, + void + >::value + >::type> +{ + typedef void asio_associated_executor_is_unspecialised; +}; + +} // namespace detail + +#if defined(ASIO_HAS_STD_REFERENCE_WRAPPER) \ + || defined(GENERATING_DOCUMENTATION) + +/// Specialisation of associated_executor for @c std::reference_wrapper. +template +struct associated_executor, Executor> +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_executor_forwarding_base +#endif // !defined(GENERATING_DOCUMENTATION) +{ + /// Forwards @c type to the associator specialisation for the unwrapped type + /// @c T. + typedef typename associated_executor::type type; + + /// Forwards the request to get the executor to the associator specialisation + /// for the unwrapped type @c T. + static type get(reference_wrapper t) ASIO_NOEXCEPT + { + return associated_executor::get(t.get()); + } + + /// Forwards the request to get the executor to the associator specialisation + /// for the unwrapped type @c T. + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + reference_wrapper t, const Executor& ex) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_executor::get(t.get(), ex))) + { + return associated_executor::get(t.get(), ex); + } +}; + +#endif // defined(ASIO_HAS_STD_REFERENCE_WRAPPER) + // || defined(GENERATING_DOCUMENTATION) + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#endif // ASIO_ASSOCIATED_EXECUTOR_HPP diff --git a/3party/asio/include/asio/associated_immediate_executor.hpp b/3party/asio/include/asio/associated_immediate_executor.hpp new file mode 100644 index 0000000..54bced1 --- /dev/null +++ b/3party/asio/include/asio/associated_immediate_executor.hpp @@ -0,0 +1,297 @@ +// +// associated_immediate_executor.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software 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_IMMEDIATE_EXECUTOR_HPP +#define ASIO_ASSOCIATED_IMMEDIATE_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/associator.hpp" +#include "asio/detail/functional.hpp" +#include "asio/detail/type_traits.hpp" +#include "asio/execution/blocking.hpp" +#include "asio/execution/executor.hpp" +#include "asio/execution_context.hpp" +#include "asio/is_executor.hpp" +#include "asio/require.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +template +struct associated_immediate_executor; + +namespace detail { + +template +struct has_immediate_executor_type : false_type +{ +}; + +template +struct has_immediate_executor_type::type> + : true_type +{ +}; + +template +struct default_immediate_executor +{ + typedef typename require_result::type type; + + static type get(const E& e) ASIO_NOEXCEPT + { + return asio::require(e, execution::blocking.never); + } +}; + +template +struct default_immediate_executor::value + >::type, + typename enable_if< + is_executor::value + >::type> +{ + class type : public E + { + public: + template + explicit type(const Executor1& e, + typename constraint< + conditional< + !is_same::value, + is_convertible, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : E(e) + { + } + + type(const type& other) ASIO_NOEXCEPT + : E(static_cast(other)) + { + } + +#if defined(ASIO_HAS_MOVE) + type(type&& other) ASIO_NOEXCEPT + : E(ASIO_MOVE_CAST(E)(other)) + { + } +#endif // defined(ASIO_HAS_MOVE) + + template + void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const + { + this->post(ASIO_MOVE_CAST(Function)(f), a); + } + + friend bool operator==(const type& a, const type& b) ASIO_NOEXCEPT + { + return static_cast(a) == static_cast(b); + } + + friend bool operator!=(const type& a, const type& b) ASIO_NOEXCEPT + { + return static_cast(a) != static_cast(b); + } + }; + + static type get(const E& e) ASIO_NOEXCEPT + { + return type(e); + } +}; + +template +struct associated_immediate_executor_impl +{ + typedef void asio_associated_immediate_executor_is_unspecialised; + + typedef typename default_immediate_executor::type type; + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T&, const E& e) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((default_immediate_executor::get(e))) + { + return default_immediate_executor::get(e); + } +}; + +template +struct associated_immediate_executor_impl::type> +{ + typedef typename T::immediate_executor_type type; + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t, const E&) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_immediate_executor())) + { + return t.get_immediate_executor(); + } +}; + +template +struct associated_immediate_executor_impl::value + >::type, + typename void_type< + typename associator::type + >::type> : associator +{ +}; + +} // namespace detail + +/// Traits type used to obtain the immediate 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 or a (possibly const) reference to @c + * type. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t,e) and with return type @c type or a (possibly const) reference to @c + * type. + */ +template +struct associated_immediate_executor +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_immediate_executor_impl +#endif // !defined(GENERATING_DOCUMENTATION) +{ +#if defined(GENERATING_DOCUMENTATION) + /// If @c T has a nested type @c immediate_executor_type, + // T::immediate_executor_type. Otherwise @c Executor. + typedef see_below type; + + /// If @c T has a nested type @c immediate_executor_type, returns + /// t.get_immediate_executor(). Otherwise returns + /// asio::require(ex, asio::execution::blocking.never). + static decltype(auto) get(const T& t, const Executor& ex) ASIO_NOEXCEPT; +#endif // defined(GENERATING_DOCUMENTATION) +}; + +/// Helper function to obtain an object's associated executor. +/** + * @returns associated_immediate_executor::get(t, ex) + */ +template +ASIO_NODISCARD inline ASIO_AUTO_RETURN_TYPE_PREFIX2( + typename associated_immediate_executor::type) +get_associated_immediate_executor(const T& t, const Executor& ex, + typename constraint< + is_executor::value || execution::is_executor::value + >::type = 0) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_immediate_executor::get(t, ex))) +{ + return associated_immediate_executor::get(t, ex); +} + +/// Helper function to obtain an object's associated executor. +/** + * @returns associated_immediate_executor::get(t, ctx.get_executor()) + */ +template +ASIO_NODISCARD inline typename associated_immediate_executor::type +get_associated_immediate_executor(const T& t, ExecutionContext& ctx, + typename constraint::value>::type = 0) ASIO_NOEXCEPT +{ + return associated_immediate_executor::get(t, ctx.get_executor()); +} + +#if defined(ASIO_HAS_ALIAS_TEMPLATES) + +template +using associated_immediate_executor_t = + typename associated_immediate_executor::type; + +#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) + +namespace detail { + +template +struct associated_immediate_executor_forwarding_base +{ +}; + +template +struct associated_immediate_executor_forwarding_base::asio_associated_immediate_executor_is_unspecialised, + void + >::value + >::type> +{ + typedef void asio_associated_immediate_executor_is_unspecialised; +}; + +} // namespace detail + +#if defined(ASIO_HAS_STD_REFERENCE_WRAPPER) \ + || defined(GENERATING_DOCUMENTATION) + +/// Specialisation of associated_immediate_executor for +/// @c std::reference_wrapper. +template +struct associated_immediate_executor, Executor> +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_immediate_executor_forwarding_base +#endif // !defined(GENERATING_DOCUMENTATION) +{ + /// Forwards @c type to the associator specialisation for the unwrapped type + /// @c T. + typedef typename associated_immediate_executor::type type; + + /// Forwards the request to get the executor to the associator specialisation + /// for the unwrapped type @c T. + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + reference_wrapper t, const Executor& ex) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_immediate_executor::get(t.get(), ex))) + { + return associated_immediate_executor::get(t.get(), ex); + } +}; + +#endif // defined(ASIO_HAS_STD_REFERENCE_WRAPPER) + // || defined(GENERATING_DOCUMENTATION) + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#endif // ASIO_ASSOCIATED_IMMEDIATE_EXECUTOR_HPP diff --git a/3party/asio/include/asio/associator.hpp b/3party/asio/include/asio/associator.hpp new file mode 100644 index 0000000..e954c44 --- /dev/null +++ b/3party/asio/include/asio/associator.hpp @@ -0,0 +1,35 @@ +// +// associator.hpp +// ~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ASSOCIATOR_HPP +#define ASIO_ASSOCIATOR_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 { + +/// Used to generically specialise associators for a type. +template