From 17593cde2ccb08dad596bc4d5718c598a8513cf8 Mon Sep 17 00:00:00 2001 From: Tristan Stenner Date: Tue, 5 Oct 2021 19:29:14 +0200 Subject: [PATCH 1/8] Add asio to thirdparty/ --- thirdparty/asio/asio.hpp | 188 + thirdparty/asio/asio/any_io_executor.hpp | 300 ++ thirdparty/asio/asio/associated_allocator.hpp | 177 + .../asio/associated_cancellation_slot.hpp | 177 + thirdparty/asio/asio/associated_executor.hpp | 222 + thirdparty/asio/asio/associator.hpp | 35 + thirdparty/asio/asio/async_result.hpp | 1265 ++++++ thirdparty/asio/asio/awaitable.hpp | 133 + .../asio/asio/basic_datagram_socket.hpp | 1303 ++++++ thirdparty/asio/asio/basic_deadline_timer.hpp | 703 +++ thirdparty/asio/asio/basic_io_object.hpp | 290 ++ thirdparty/asio/asio/basic_raw_socket.hpp | 1294 ++++++ .../asio/asio/basic_seq_packet_socket.hpp | 798 ++++ thirdparty/asio/asio/basic_serial_port.hpp | 907 ++++ thirdparty/asio/asio/basic_signal_set.hpp | 576 +++ thirdparty/asio/asio/basic_socket.hpp | 1915 ++++++++ .../asio/asio/basic_socket_acceptor.hpp | 2598 +++++++++++ .../asio/asio/basic_socket_iostream.hpp | 407 ++ .../asio/asio/basic_socket_streambuf.hpp | 687 +++ thirdparty/asio/asio/basic_stream_socket.hpp | 1120 +++++ thirdparty/asio/asio/basic_streambuf.hpp | 452 ++ thirdparty/asio/asio/basic_streambuf_fwd.hpp | 36 + thirdparty/asio/asio/basic_waitable_timer.hpp | 821 ++++ .../asio/asio/bind_cancellation_slot.hpp | 721 +++ thirdparty/asio/asio/bind_executor.hpp | 754 ++++ thirdparty/asio/asio/buffer.hpp | 2496 +++++++++++ thirdparty/asio/asio/buffered_read_stream.hpp | 253 ++ .../asio/asio/buffered_read_stream_fwd.hpp | 25 + thirdparty/asio/asio/buffered_stream.hpp | 279 ++ thirdparty/asio/asio/buffered_stream_fwd.hpp | 25 + .../asio/asio/buffered_write_stream.hpp | 245 + .../asio/asio/buffered_write_stream_fwd.hpp | 25 + thirdparty/asio/asio/buffers_iterator.hpp | 521 +++ thirdparty/asio/asio/cancellation_signal.hpp | 359 ++ thirdparty/asio/asio/cancellation_state.hpp | 187 + thirdparty/asio/asio/cancellation_type.hpp | 174 + thirdparty/asio/asio/co_spawn.hpp | 471 ++ thirdparty/asio/asio/completion_condition.hpp | 218 + thirdparty/asio/asio/compose.hpp | 136 + thirdparty/asio/asio/connect.hpp | 1136 +++++ thirdparty/asio/asio/coroutine.hpp | 328 ++ thirdparty/asio/asio/deadline_timer.hpp | 38 + thirdparty/asio/asio/defer.hpp | 130 + thirdparty/asio/asio/detached.hpp | 112 + thirdparty/asio/asio/detail/array.hpp | 38 + thirdparty/asio/asio/detail/array_fwd.hpp | 34 + thirdparty/asio/asio/detail/assert.hpp | 32 + thirdparty/asio/asio/detail/atomic_count.hpp | 64 + .../detail/base_from_cancellation_state.hpp | 163 + .../asio/detail/base_from_completion_cond.hpp | 69 + thirdparty/asio/asio/detail/bind_handler.hpp | 1071 +++++ .../asio/asio/detail/blocking_executor_op.hpp | 107 + .../asio/asio/detail/buffer_resize_guard.hpp | 66 + .../asio/detail/buffer_sequence_adapter.hpp | 650 +++ .../asio/detail/buffered_stream_storage.hpp | 126 + .../asio/asio/detail/bulk_executor_op.hpp | 88 + thirdparty/asio/asio/detail/call_stack.hpp | 125 + thirdparty/asio/asio/detail/chrono.hpp | 66 + .../asio/asio/detail/chrono_time_traits.hpp | 190 + .../asio/asio/detail/completion_handler.hpp | 88 + .../asio/asio/detail/concurrency_hint.hpp | 94 + .../detail/conditionally_enabled_event.hpp | 120 + .../detail/conditionally_enabled_mutex.hpp | 149 + thirdparty/asio/asio/detail/config.hpp | 1954 ++++++++ .../asio/asio/detail/consuming_buffers.hpp | 414 ++ thirdparty/asio/asio/detail/cstddef.hpp | 31 + thirdparty/asio/asio/detail/cstdint.hpp | 60 + thirdparty/asio/asio/detail/date_time_fwd.hpp | 34 + .../asio/detail/deadline_timer_service.hpp | 335 ++ .../asio/asio/detail/dependent_type.hpp | 36 + .../asio/asio/detail/descriptor_ops.hpp | 139 + .../asio/asio/detail/descriptor_read_op.hpp | 148 + .../asio/asio/detail/descriptor_write_op.hpp | 148 + .../asio/asio/detail/dev_poll_reactor.hpp | 222 + thirdparty/asio/asio/detail/epoll_reactor.hpp | 276 ++ thirdparty/asio/asio/detail/event.hpp | 48 + .../detail/eventfd_select_interrupter.hpp | 83 + .../asio/asio/detail/executor_function.hpp | 204 + thirdparty/asio/asio/detail/executor_op.hpp | 84 + .../asio/asio/detail/fd_set_adapter.hpp | 39 + thirdparty/asio/asio/detail/fenced_block.hpp | 80 + thirdparty/asio/asio/detail/functional.hpp | 44 + thirdparty/asio/asio/detail/future.hpp | 33 + .../asio/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/asio/detail/gcc_x86_fenced_block.hpp | 99 + thirdparty/asio/asio/detail/global.hpp | 52 + .../asio/detail/handler_alloc_helpers.hpp | 288 ++ .../asio/asio/detail/handler_cont_helpers.hpp | 45 + .../asio/detail/handler_invoke_helpers.hpp | 80 + .../asio/asio/detail/handler_tracking.hpp | 264 ++ .../asio/detail/handler_type_requirements.hpp | 559 +++ thirdparty/asio/asio/detail/handler_work.hpp | 525 +++ thirdparty/asio/asio/detail/hash_map.hpp | 331 ++ .../detail/impl/buffer_sequence_adapter.ipp | 118 + .../asio/asio/detail/impl/descriptor_ops.ipp | 608 +++ .../asio/detail/impl/dev_poll_reactor.hpp | 99 + .../asio/detail/impl/dev_poll_reactor.ipp | 460 ++ .../asio/asio/detail/impl/epoll_reactor.hpp | 109 + .../asio/asio/detail/impl/epoll_reactor.ipp | 817 ++++ .../impl/eventfd_select_interrupter.ipp | 171 + .../asio/detail/impl/handler_tracking.ipp | 396 ++ .../asio/asio/detail/impl/kqueue_reactor.hpp | 113 + .../asio/asio/detail/impl/kqueue_reactor.ipp | 599 +++ .../asio/asio/detail/impl/null_event.ipp | 74 + .../detail/impl/pipe_select_interrupter.ipp | 129 + .../asio/asio/detail/impl/posix_event.ipp | 63 + .../asio/asio/detail/impl/posix_mutex.ipp | 46 + .../asio/asio/detail/impl/posix_thread.ipp | 84 + .../asio/asio/detail/impl/posix_tss_ptr.ipp | 46 + .../impl/reactive_descriptor_service.ipp | 223 + .../impl/reactive_serial_port_service.ipp | 149 + .../impl/reactive_socket_service_base.ipp | 300 ++ .../detail/impl/resolver_service_base.ipp | 158 + .../asio/asio/detail/impl/scheduler.ipp | 659 +++ .../asio/asio/detail/impl/select_reactor.hpp | 124 + .../asio/asio/detail/impl/select_reactor.ipp | 357 ++ .../asio/detail/impl/service_registry.hpp | 94 + .../asio/detail/impl/service_registry.ipp | 197 + .../asio/detail/impl/signal_set_service.ipp | 668 +++ .../asio/asio/detail/impl/socket_ops.ipp | 3964 +++++++++++++++++ .../detail/impl/socket_select_interrupter.ipp | 185 + .../detail/impl/strand_executor_service.hpp | 354 ++ .../detail/impl/strand_executor_service.ipp | 158 + .../asio/asio/detail/impl/strand_service.hpp | 87 + .../asio/asio/detail/impl/strand_service.ipp | 202 + .../asio/asio/detail/impl/thread_context.ipp | 35 + .../asio/asio/detail/impl/throw_error.ipp | 66 + .../asio/detail/impl/timer_queue_ptime.ipp | 97 + .../asio/asio/detail/impl/timer_queue_set.ipp | 101 + .../asio/asio/detail/impl/win_event.ipp | 76 + .../detail/impl/win_iocp_handle_service.ipp | 525 +++ .../asio/detail/impl/win_iocp_io_context.hpp | 120 + .../asio/detail/impl/win_iocp_io_context.ipp | 608 +++ .../impl/win_iocp_serial_port_service.ipp | 192 + .../impl/win_iocp_socket_service_base.ipp | 821 ++++ .../asio/asio/detail/impl/win_mutex.ipp | 84 + .../detail/impl/win_object_handle_service.ipp | 448 ++ .../asio/detail/impl/win_static_mutex.ipp | 136 + .../asio/asio/detail/impl/win_thread.ipp | 150 + .../asio/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 + .../asio/asio/detail/impl/winsock_init.ipp | 82 + thirdparty/asio/asio/detail/io_control.hpp | 84 + .../asio/asio/detail/io_object_impl.hpp | 172 + .../asio/asio/detail/is_buffer_sequence.hpp | 312 ++ thirdparty/asio/asio/detail/is_executor.hpp | 126 + .../asio/asio/detail/keyword_tss_ptr.hpp | 70 + .../asio/asio/detail/kqueue_reactor.hpp | 252 ++ thirdparty/asio/asio/detail/limits.hpp | 26 + .../asio/detail/local_free_on_block_exit.hpp | 59 + .../asio/asio/detail/macos_fenced_block.hpp | 62 + thirdparty/asio/asio/detail/memory.hpp | 133 + thirdparty/asio/asio/detail/mutex.hpp | 48 + .../asio/asio/detail/non_const_lvalue.hpp | 54 + thirdparty/asio/asio/detail/noncopyable.hpp | 43 + thirdparty/asio/asio/detail/null_event.hpp | 106 + .../asio/asio/detail/null_fenced_block.hpp | 47 + thirdparty/asio/asio/detail/null_global.hpp | 59 + thirdparty/asio/asio/detail/null_mutex.hpp | 64 + thirdparty/asio/asio/detail/null_reactor.hpp | 68 + .../asio/asio/detail/null_signal_blocker.hpp | 69 + .../asio/asio/detail/null_socket_service.hpp | 519 +++ .../asio/asio/detail/null_static_mutex.hpp | 60 + thirdparty/asio/asio/detail/null_thread.hpp | 67 + thirdparty/asio/asio/detail/null_tss_ptr.hpp | 68 + thirdparty/asio/asio/detail/object_pool.hpp | 171 + .../asio/asio/detail/old_win_sdk_compat.hpp | 214 + thirdparty/asio/asio/detail/op_queue.hpp | 162 + thirdparty/asio/asio/detail/operation.hpp | 38 + .../asio/detail/pipe_select_interrupter.hpp | 89 + thirdparty/asio/asio/detail/pop_options.hpp | 149 + thirdparty/asio/asio/detail/posix_event.hpp | 175 + .../asio/asio/detail/posix_fd_set_adapter.hpp | 118 + thirdparty/asio/asio/detail/posix_global.hpp | 80 + thirdparty/asio/asio/detail/posix_mutex.hpp | 76 + .../asio/asio/detail/posix_signal_blocker.hpp | 85 + .../asio/asio/detail/posix_static_mutex.hpp | 64 + thirdparty/asio/asio/detail/posix_thread.hpp | 109 + thirdparty/asio/asio/detail/posix_tss_ptr.hpp | 79 + thirdparty/asio/asio/detail/push_options.hpp | 218 + .../detail/reactive_descriptor_service.hpp | 509 +++ .../asio/detail/reactive_null_buffers_op.hpp | 98 + .../detail/reactive_serial_port_service.hpp | 237 + .../asio/detail/reactive_socket_accept_op.hpp | 242 + .../detail/reactive_socket_connect_op.hpp | 123 + .../asio/detail/reactive_socket_recv_op.hpp | 159 + .../detail/reactive_socket_recvfrom_op.hpp | 164 + .../detail/reactive_socket_recvmsg_op.hpp | 145 + .../asio/detail/reactive_socket_send_op.hpp | 162 + .../asio/detail/reactive_socket_sendto_op.hpp | 156 + .../asio/detail/reactive_socket_service.hpp | 605 +++ .../detail/reactive_socket_service_base.hpp | 652 +++ .../asio/asio/detail/reactive_wait_op.hpp | 98 + thirdparty/asio/asio/detail/reactor.hpp | 32 + thirdparty/asio/asio/detail/reactor_fwd.hpp | 40 + thirdparty/asio/asio/detail/reactor_op.hpp | 71 + .../asio/asio/detail/reactor_op_queue.hpp | 212 + .../asio/asio/detail/recycling_allocator.hpp | 105 + thirdparty/asio/asio/detail/regex_fwd.hpp | 44 + .../asio/asio/detail/resolve_endpoint_op.hpp | 140 + thirdparty/asio/asio/detail/resolve_op.hpp | 45 + .../asio/asio/detail/resolve_query_op.hpp | 150 + .../asio/asio/detail/resolver_service.hpp | 145 + .../asio/detail/resolver_service_base.hpp | 158 + thirdparty/asio/asio/detail/scheduler.hpp | 229 + .../asio/asio/detail/scheduler_operation.hpp | 78 + .../asio/detail/scheduler_thread_info.hpp | 40 + thirdparty/asio/asio/detail/scoped_lock.hpp | 101 + thirdparty/asio/asio/detail/scoped_ptr.hpp | 87 + .../asio/asio/detail/select_interrupter.hpp | 46 + .../asio/asio/detail/select_reactor.hpp | 248 ++ .../asio/asio/detail/service_registry.hpp | 164 + .../asio/asio/detail/signal_blocker.hpp | 44 + .../asio/asio/detail/signal_handler.hpp | 90 + thirdparty/asio/asio/detail/signal_init.hpp | 47 + thirdparty/asio/asio/detail/signal_op.hpp | 49 + .../asio/asio/detail/signal_set_service.hpp | 229 + thirdparty/asio/asio/detail/socket_holder.hpp | 98 + thirdparty/asio/asio/detail/socket_ops.hpp | 383 ++ thirdparty/asio/asio/detail/socket_option.hpp | 316 ++ .../asio/detail/socket_select_interrupter.hpp | 91 + thirdparty/asio/asio/detail/socket_types.hpp | 417 ++ .../asio/asio/detail/solaris_fenced_block.hpp | 62 + .../asio/asio/detail/source_location.hpp | 45 + thirdparty/asio/asio/detail/static_mutex.hpp | 52 + thirdparty/asio/asio/detail/std_event.hpp | 188 + .../asio/asio/detail/std_fenced_block.hpp | 62 + thirdparty/asio/asio/detail/std_global.hpp | 70 + thirdparty/asio/asio/detail/std_mutex.hpp | 73 + .../asio/asio/detail/std_static_mutex.hpp | 81 + thirdparty/asio/asio/detail/std_thread.hpp | 71 + .../asio/detail/strand_executor_service.hpp | 173 + .../asio/asio/detail/strand_service.hpp | 144 + thirdparty/asio/asio/detail/string_view.hpp | 47 + thirdparty/asio/asio/detail/thread.hpp | 60 + .../asio/asio/detail/thread_context.hpp | 51 + thirdparty/asio/asio/detail/thread_group.hpp | 99 + .../asio/asio/detail/thread_info_base.hpp | 256 ++ thirdparty/asio/asio/detail/throw_error.hpp | 53 + .../asio/asio/detail/throw_exception.hpp | 51 + thirdparty/asio/asio/detail/timer_queue.hpp | 389 ++ .../asio/asio/detail/timer_queue_base.hpp | 68 + .../asio/asio/detail/timer_queue_ptime.hpp | 103 + .../asio/asio/detail/timer_queue_set.hpp | 66 + .../asio/asio/detail/timer_scheduler.hpp | 35 + .../asio/asio/detail/timer_scheduler_fwd.hpp | 40 + thirdparty/asio/asio/detail/tss_ptr.hpp | 69 + thirdparty/asio/asio/detail/type_traits.hpp | 156 + .../asio/asio/detail/variadic_templates.hpp | 294 ++ thirdparty/asio/asio/detail/wait_handler.hpp | 90 + thirdparty/asio/asio/detail/wait_op.hpp | 49 + thirdparty/asio/asio/detail/win_event.hpp | 164 + .../asio/asio/detail/win_fd_set_adapter.hpp | 149 + .../asio/asio/detail/win_fenced_block.hpp | 90 + thirdparty/asio/asio/detail/win_global.hpp | 71 + .../asio/detail/win_iocp_handle_read_op.hpp | 117 + .../asio/detail/win_iocp_handle_service.hpp | 403 ++ .../asio/detail/win_iocp_handle_write_op.hpp | 110 + .../asio/asio/detail/win_iocp_io_context.hpp | 345 ++ .../asio/detail/win_iocp_null_buffers_op.hpp | 127 + .../asio/asio/detail/win_iocp_operation.hpp | 96 + .../asio/detail/win_iocp_overlapped_op.hpp | 96 + .../asio/detail/win_iocp_overlapped_ptr.hpp | 171 + .../detail/win_iocp_serial_port_service.hpp | 232 + .../asio/detail/win_iocp_socket_accept_op.hpp | 338 ++ .../detail/win_iocp_socket_connect_op.hpp | 135 + .../asio/detail/win_iocp_socket_recv_op.hpp | 124 + .../detail/win_iocp_socket_recvfrom_op.hpp | 133 + .../detail/win_iocp_socket_recvmsg_op.hpp | 125 + .../asio/detail/win_iocp_socket_send_op.hpp | 118 + .../asio/detail/win_iocp_socket_service.hpp | 659 +++ .../detail/win_iocp_socket_service_base.hpp | 832 ++++ .../asio/asio/detail/win_iocp_thread_info.hpp | 34 + .../asio/asio/detail/win_iocp_wait_op.hpp | 128 + thirdparty/asio/asio/detail/win_mutex.hpp | 78 + .../asio/detail/win_object_handle_service.hpp | 195 + .../asio/asio/detail/win_static_mutex.hpp | 74 + thirdparty/asio/asio/detail/win_thread.hpp | 147 + thirdparty/asio/asio/detail/win_tss_ptr.hpp | 79 + thirdparty/asio/asio/detail/winapp_thread.hpp | 124 + thirdparty/asio/asio/detail/wince_thread.hpp | 124 + .../asio/asio/detail/winrt_async_manager.hpp | 305 ++ .../asio/asio/detail/winrt_async_op.hpp | 65 + .../asio/asio/detail/winrt_resolve_op.hpp | 125 + .../asio/detail/winrt_resolver_service.hpp | 212 + .../asio/detail/winrt_socket_connect_op.hpp | 98 + .../asio/asio/detail/winrt_socket_recv_op.hpp | 119 + .../asio/asio/detail/winrt_socket_send_op.hpp | 110 + .../asio/detail/winrt_ssocket_service.hpp | 250 ++ .../detail/winrt_ssocket_service_base.hpp | 362 ++ .../asio/detail/winrt_timer_scheduler.hpp | 147 + thirdparty/asio/asio/detail/winrt_utils.hpp | 106 + thirdparty/asio/asio/detail/winsock_init.hpp | 128 + .../asio/asio/detail/work_dispatcher.hpp | 151 + .../asio/asio/detail/wrapped_handler.hpp | 327 ++ thirdparty/asio/asio/dispatch.hpp | 121 + thirdparty/asio/asio/error.hpp | 356 ++ thirdparty/asio/asio/error_code.hpp | 202 + thirdparty/asio/asio/execution.hpp | 48 + thirdparty/asio/asio/execution/allocator.hpp | 337 ++ .../asio/asio/execution/any_executor.hpp | 2346 ++++++++++ .../asio/asio/execution/bad_executor.hpp | 47 + thirdparty/asio/asio/execution/blocking.hpp | 1551 +++++++ .../asio/execution/blocking_adaptation.hpp | 1212 +++++ .../asio/asio/execution/bulk_execute.hpp | 397 ++ .../asio/asio/execution/bulk_guarantee.hpp | 1215 +++++ thirdparty/asio/asio/execution/connect.hpp | 489 ++ thirdparty/asio/asio/execution/context.hpp | 233 + thirdparty/asio/asio/execution/context_as.hpp | 221 + .../asio/execution/detail/as_invocable.hpp | 152 + .../asio/execution/detail/as_operation.hpp | 105 + .../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 + thirdparty/asio/asio/execution/execute.hpp | 283 ++ thirdparty/asio/asio/execution/executor.hpp | 252 ++ .../asio/asio/execution/impl/bad_executor.ipp | 40 + .../impl/receiver_invocation_error.ipp | 36 + .../asio/execution/invocable_archetype.hpp | 71 + thirdparty/asio/asio/execution/mapping.hpp | 1116 +++++ thirdparty/asio/asio/execution/occupancy.hpp | 226 + .../asio/asio/execution/operation_state.hpp | 94 + .../asio/asio/execution/outstanding_work.hpp | 867 ++++ .../asio/asio/execution/prefer_only.hpp | 331 ++ thirdparty/asio/asio/execution/receiver.hpp | 280 ++ .../execution/receiver_invocation_error.hpp | 48 + .../asio/asio/execution/relationship.hpp | 865 ++++ thirdparty/asio/asio/execution/schedule.hpp | 287 ++ thirdparty/asio/asio/execution/scheduler.hpp | 86 + thirdparty/asio/asio/execution/sender.hpp | 311 ++ thirdparty/asio/asio/execution/set_done.hpp | 250 ++ thirdparty/asio/asio/execution/set_error.hpp | 250 ++ thirdparty/asio/asio/execution/set_value.hpp | 483 ++ thirdparty/asio/asio/execution/start.hpp | 247 + thirdparty/asio/asio/execution/submit.hpp | 450 ++ thirdparty/asio/asio/execution_context.hpp | 412 ++ thirdparty/asio/asio/executor.hpp | 347 ++ thirdparty/asio/asio/executor_work_guard.hpp | 302 ++ thirdparty/asio/asio/experimental/append.hpp | 71 + .../asio/asio/experimental/as_single.hpp | 135 + .../asio/asio/experimental/as_tuple.hpp | 131 + .../asio/experimental/awaitable_operators.hpp | 536 +++ .../experimental/cancellation_condition.hpp | 155 + thirdparty/asio/asio/experimental/coro.hpp | 1055 +++++ .../asio/asio/experimental/deferred.hpp | 605 +++ .../detail/completion_handler_erasure.hpp | 158 + .../detail/coro_promise_allocator.hpp | 118 + .../asio/experimental/detail/coro_traits.hpp | 183 + .../experimental/detail/partial_promise.hpp | 176 + .../asio/asio/experimental/impl/append.hpp | 217 + .../asio/asio/experimental/impl/as_single.hpp | 229 + .../asio/asio/experimental/impl/as_tuple.hpp | 246 + .../asio/asio/experimental/impl/deferred.hpp | 104 + .../asio/experimental/impl/parallel_group.hpp | 432 ++ .../asio/asio/experimental/impl/prepend.hpp | 217 + .../asio/asio/experimental/impl/promise.hpp | 98 + .../asio/asio/experimental/parallel_group.hpp | 154 + thirdparty/asio/asio/experimental/prepend.hpp | 71 + thirdparty/asio/asio/experimental/promise.hpp | 605 +++ .../asio/asio/experimental/use_coro.hpp | 282 ++ .../asio/asio/generic/basic_endpoint.hpp | 193 + .../asio/asio/generic/datagram_protocol.hpp | 123 + .../asio/asio/generic/detail/endpoint.hpp | 133 + .../asio/generic/detail/impl/endpoint.ipp | 110 + thirdparty/asio/asio/generic/raw_protocol.hpp | 121 + .../asio/asio/generic/seq_packet_protocol.hpp | 122 + .../asio/asio/generic/stream_protocol.hpp | 127 + thirdparty/asio/asio/handler_alloc_hook.hpp | 104 + .../asio/asio/handler_continuation_hook.hpp | 54 + thirdparty/asio/asio/handler_invoke_hook.hpp | 111 + .../asio/asio/high_resolution_timer.hpp | 44 + thirdparty/asio/asio/impl/awaitable.hpp | 760 ++++ .../asio/asio/impl/buffered_read_stream.hpp | 498 +++ .../asio/asio/impl/buffered_write_stream.hpp | 478 ++ thirdparty/asio/asio/impl/co_spawn.hpp | 346 ++ thirdparty/asio/asio/impl/compose.hpp | 687 +++ thirdparty/asio/asio/impl/connect.hpp | 904 ++++ thirdparty/asio/asio/impl/defer.hpp | 256 ++ thirdparty/asio/asio/impl/detached.hpp | 130 + thirdparty/asio/asio/impl/dispatch.hpp | 251 ++ thirdparty/asio/asio/impl/error.ipp | 128 + thirdparty/asio/asio/impl/error_code.ipp | 206 + .../asio/asio/impl/execution_context.hpp | 109 + .../asio/asio/impl/execution_context.ipp | 82 + thirdparty/asio/asio/impl/executor.hpp | 300 ++ thirdparty/asio/asio/impl/executor.ipp | 43 + .../asio/asio/impl/handler_alloc_hook.ipp | 62 + thirdparty/asio/asio/impl/io_context.hpp | 444 ++ thirdparty/asio/asio/impl/io_context.ipp | 175 + .../asio/asio/impl/multiple_exceptions.ipp | 49 + thirdparty/asio/asio/impl/post.hpp | 256 ++ thirdparty/asio/asio/impl/read.hpp | 1199 +++++ thirdparty/asio/asio/impl/read_at.hpp | 733 +++ thirdparty/asio/asio/impl/read_until.hpp | 3315 ++++++++++++++ thirdparty/asio/asio/impl/redirect_error.hpp | 609 +++ .../asio/asio/impl/serial_port_base.hpp | 59 + .../asio/asio/impl/serial_port_base.ipp | 554 +++ thirdparty/asio/asio/impl/spawn.hpp | 517 +++ thirdparty/asio/asio/impl/src.hpp | 86 + thirdparty/asio/asio/impl/system_context.hpp | 34 + thirdparty/asio/asio/impl/system_context.ipp | 92 + thirdparty/asio/asio/impl/system_executor.hpp | 185 + thirdparty/asio/asio/impl/thread_pool.hpp | 354 ++ thirdparty/asio/asio/impl/thread_pool.ipp | 141 + thirdparty/asio/asio/impl/use_awaitable.hpp | 291 ++ thirdparty/asio/asio/impl/use_future.hpp | 1028 +++++ thirdparty/asio/asio/impl/write.hpp | 1100 +++++ thirdparty/asio/asio/impl/write_at.hpp | 644 +++ thirdparty/asio/asio/io_context.hpp | 1550 +++++++ thirdparty/asio/asio/io_context_strand.hpp | 376 ++ thirdparty/asio/asio/io_service.hpp | 33 + thirdparty/asio/asio/io_service_strand.hpp | 20 + thirdparty/asio/asio/ip/address.hpp | 290 ++ thirdparty/asio/asio/ip/address_v4.hpp | 355 ++ .../asio/asio/ip/address_v4_iterator.hpp | 162 + thirdparty/asio/asio/ip/address_v4_range.hpp | 134 + thirdparty/asio/asio/ip/address_v6.hpp | 382 ++ .../asio/asio/ip/address_v6_iterator.hpp | 183 + thirdparty/asio/asio/ip/address_v6_range.hpp | 129 + thirdparty/asio/asio/ip/bad_address_cast.hpp | 53 + thirdparty/asio/asio/ip/basic_endpoint.hpp | 291 ++ thirdparty/asio/asio/ip/basic_resolver.hpp | 1076 +++++ .../asio/asio/ip/basic_resolver_entry.hpp | 113 + .../asio/asio/ip/basic_resolver_iterator.hpp | 192 + .../asio/asio/ip/basic_resolver_query.hpp | 244 + .../asio/asio/ip/basic_resolver_results.hpp | 311 ++ thirdparty/asio/asio/ip/detail/endpoint.hpp | 141 + .../asio/asio/ip/detail/impl/endpoint.ipp | 199 + .../asio/asio/ip/detail/socket_option.hpp | 566 +++ thirdparty/asio/asio/ip/host_name.hpp | 42 + thirdparty/asio/asio/ip/icmp.hpp | 115 + thirdparty/asio/asio/ip/impl/address.hpp | 67 + thirdparty/asio/asio/ip/impl/address.ipp | 239 + thirdparty/asio/asio/ip/impl/address_v4.hpp | 67 + thirdparty/asio/asio/ip/impl/address_v4.ipp | 210 + thirdparty/asio/asio/ip/impl/address_v6.hpp | 67 + thirdparty/asio/asio/ip/impl/address_v6.ipp | 350 ++ .../asio/asio/ip/impl/basic_endpoint.hpp | 43 + thirdparty/asio/asio/ip/impl/host_name.ipp | 54 + thirdparty/asio/asio/ip/impl/network_v4.hpp | 54 + thirdparty/asio/asio/ip/impl/network_v4.ipp | 216 + thirdparty/asio/asio/ip/impl/network_v6.hpp | 53 + thirdparty/asio/asio/ip/impl/network_v6.ipp | 185 + thirdparty/asio/asio/ip/multicast.hpp | 191 + thirdparty/asio/asio/ip/network_v4.hpp | 261 ++ thirdparty/asio/asio/ip/network_v6.hpp | 235 + thirdparty/asio/asio/ip/resolver_base.hpp | 129 + .../asio/asio/ip/resolver_query_base.hpp | 43 + thirdparty/asio/asio/ip/tcp.hpp | 155 + thirdparty/asio/asio/ip/udp.hpp | 111 + thirdparty/asio/asio/ip/unicast.hpp | 70 + thirdparty/asio/asio/ip/v6_only.hpp | 69 + .../asio/asio/is_applicable_property.hpp | 61 + thirdparty/asio/asio/is_executor.hpp | 46 + thirdparty/asio/asio/is_read_buffered.hpp | 59 + thirdparty/asio/asio/is_write_buffered.hpp | 59 + thirdparty/asio/asio/local/basic_endpoint.hpp | 247 + thirdparty/asio/asio/local/connect_pair.hpp | 101 + .../asio/asio/local/datagram_protocol.hpp | 80 + .../asio/asio/local/detail/endpoint.hpp | 139 + .../asio/asio/local/detail/impl/endpoint.ipp | 131 + .../asio/asio/local/stream_protocol.hpp | 90 + thirdparty/asio/asio/multiple_exceptions.hpp | 58 + thirdparty/asio/asio/packaged_task.hpp | 126 + thirdparty/asio/asio/placeholders.hpp | 151 + .../asio/asio/posix/basic_descriptor.hpp | 708 +++ .../asio/posix/basic_stream_descriptor.hpp | 501 +++ thirdparty/asio/asio/posix/descriptor.hpp | 37 + .../asio/asio/posix/descriptor_base.hpp | 90 + .../asio/asio/posix/stream_descriptor.hpp | 37 + thirdparty/asio/asio/post.hpp | 126 + thirdparty/asio/asio/prefer.hpp | 734 +++ thirdparty/asio/asio/query.hpp | 324 ++ thirdparty/asio/asio/read.hpp | 1388 ++++++ thirdparty/asio/asio/read_at.hpp | 738 +++ thirdparty/asio/asio/read_until.hpp | 3031 +++++++++++++ thirdparty/asio/asio/redirect_error.hpp | 66 + thirdparty/asio/asio/require.hpp | 571 +++ thirdparty/asio/asio/require_concept.hpp | 352 ++ thirdparty/asio/asio/serial_port.hpp | 36 + thirdparty/asio/asio/serial_port_base.hpp | 167 + thirdparty/asio/asio/signal_set.hpp | 28 + thirdparty/asio/asio/socket_base.hpp | 559 +++ thirdparty/asio/asio/spawn.hpp | 344 ++ thirdparty/asio/asio/ssl.hpp | 28 + thirdparty/asio/asio/ssl/context.hpp | 761 ++++ thirdparty/asio/asio/ssl/context_base.hpp | 209 + .../asio/ssl/detail/buffered_handshake_op.hpp | 119 + thirdparty/asio/asio/ssl/detail/engine.hpp | 170 + .../asio/asio/ssl/detail/handshake_op.hpp | 67 + .../asio/asio/ssl/detail/impl/engine.ipp | 363 ++ .../asio/ssl/detail/impl/openssl_init.ipp | 165 + thirdparty/asio/asio/ssl/detail/io.hpp | 425 ++ .../asio/asio/ssl/detail/openssl_init.hpp | 101 + .../asio/asio/ssl/detail/openssl_types.hpp | 34 + .../asio/ssl/detail/password_callback.hpp | 66 + thirdparty/asio/asio/ssl/detail/read_op.hpp | 72 + .../asio/asio/ssl/detail/shutdown_op.hpp | 69 + .../asio/asio/ssl/detail/stream_core.hpp | 206 + .../asio/asio/ssl/detail/verify_callback.hpp | 62 + thirdparty/asio/asio/ssl/detail/write_op.hpp | 76 + thirdparty/asio/asio/ssl/error.hpp | 125 + .../asio/asio/ssl/host_name_verification.hpp | 90 + thirdparty/asio/asio/ssl/impl/context.hpp | 67 + thirdparty/asio/asio/ssl/impl/context.ipp | 1245 ++++++ thirdparty/asio/asio/ssl/impl/error.ipp | 102 + .../asio/ssl/impl/host_name_verification.ipp | 73 + .../asio/ssl/impl/rfc2818_verification.ipp | 164 + thirdparty/asio/asio/ssl/impl/src.hpp | 29 + .../asio/asio/ssl/rfc2818_verification.hpp | 98 + thirdparty/asio/asio/ssl/stream.hpp | 972 ++++ thirdparty/asio/asio/ssl/stream_base.hpp | 52 + thirdparty/asio/asio/ssl/verify_context.hpp | 67 + thirdparty/asio/asio/ssl/verify_mode.hpp | 63 + thirdparty/asio/asio/static_thread_pool.hpp | 31 + thirdparty/asio/asio/steady_timer.hpp | 42 + thirdparty/asio/asio/strand.hpp | 569 +++ thirdparty/asio/asio/streambuf.hpp | 33 + thirdparty/asio/asio/system_context.hpp | 90 + thirdparty/asio/asio/system_error.hpp | 131 + thirdparty/asio/asio/system_executor.hpp | 684 +++ thirdparty/asio/asio/system_timer.hpp | 42 + thirdparty/asio/asio/this_coro.hpp | 191 + thirdparty/asio/asio/thread.hpp | 92 + thirdparty/asio/asio/thread_pool.hpp | 1131 +++++ thirdparty/asio/asio/time_traits.hpp | 86 + .../asio/asio/traits/bulk_execute_free.hpp | 114 + .../asio/asio/traits/bulk_execute_member.hpp | 114 + thirdparty/asio/asio/traits/connect_free.hpp | 112 + .../asio/asio/traits/connect_member.hpp | 112 + .../asio/asio/traits/equality_comparable.hpp | 104 + thirdparty/asio/asio/traits/execute_free.hpp | 108 + .../asio/asio/traits/execute_member.hpp | 108 + thirdparty/asio/asio/traits/prefer_free.hpp | 108 + thirdparty/asio/asio/traits/prefer_member.hpp | 108 + thirdparty/asio/asio/traits/query_free.hpp | 108 + thirdparty/asio/asio/traits/query_member.hpp | 108 + .../traits/query_static_constexpr_member.hpp | 108 + .../asio/asio/traits/require_concept_free.hpp | 108 + .../asio/traits/require_concept_member.hpp | 108 + thirdparty/asio/asio/traits/require_free.hpp | 108 + .../asio/asio/traits/require_member.hpp | 108 + thirdparty/asio/asio/traits/schedule_free.hpp | 108 + .../asio/asio/traits/schedule_member.hpp | 108 + thirdparty/asio/asio/traits/set_done_free.hpp | 108 + .../asio/asio/traits/set_done_member.hpp | 108 + .../asio/asio/traits/set_error_free.hpp | 112 + .../asio/asio/traits/set_error_member.hpp | 112 + .../asio/asio/traits/set_value_free.hpp | 234 + .../asio/asio/traits/set_value_member.hpp | 234 + thirdparty/asio/asio/traits/start_free.hpp | 108 + thirdparty/asio/asio/traits/start_member.hpp | 108 + thirdparty/asio/asio/traits/static_query.hpp | 108 + .../asio/asio/traits/static_require.hpp | 123 + .../asio/traits/static_require_concept.hpp | 124 + thirdparty/asio/asio/traits/submit_free.hpp | 112 + thirdparty/asio/asio/traits/submit_member.hpp | 112 + thirdparty/asio/asio/ts/buffer.hpp | 24 + thirdparty/asio/asio/ts/executor.hpp | 35 + thirdparty/asio/asio/ts/internet.hpp | 40 + thirdparty/asio/asio/ts/io_context.hpp | 20 + thirdparty/asio/asio/ts/net.hpp | 26 + thirdparty/asio/asio/ts/netfwd.hpp | 254 ++ thirdparty/asio/asio/ts/socket.hpp | 27 + thirdparty/asio/asio/ts/timer.hpp | 26 + thirdparty/asio/asio/unyield.hpp | 21 + thirdparty/asio/asio/use_awaitable.hpp | 166 + thirdparty/asio/asio/use_future.hpp | 160 + thirdparty/asio/asio/uses_executor.hpp | 71 + thirdparty/asio/asio/version.hpp | 23 + thirdparty/asio/asio/wait_traits.hpp | 56 + .../asio/asio/windows/basic_object_handle.hpp | 435 ++ .../asio/windows/basic_overlapped_handle.hpp | 361 ++ .../windows/basic_random_access_handle.hpp | 510 +++ .../asio/asio/windows/basic_stream_handle.hpp | 494 ++ .../asio/asio/windows/object_handle.hpp | 38 + .../asio/asio/windows/overlapped_handle.hpp | 39 + .../asio/asio/windows/overlapped_ptr.hpp | 145 + .../asio/windows/random_access_handle.hpp | 37 + .../asio/asio/windows/stream_handle.hpp | 37 + thirdparty/asio/asio/write.hpp | 1346 ++++++ thirdparty/asio/asio/write_at.hpp | 746 ++++ thirdparty/asio/asio/yield.hpp | 23 + 588 files changed, 155367 insertions(+) create mode 100644 thirdparty/asio/asio.hpp create mode 100644 thirdparty/asio/asio/any_io_executor.hpp create mode 100644 thirdparty/asio/asio/associated_allocator.hpp create mode 100644 thirdparty/asio/asio/associated_cancellation_slot.hpp create mode 100644 thirdparty/asio/asio/associated_executor.hpp create mode 100644 thirdparty/asio/asio/associator.hpp create mode 100644 thirdparty/asio/asio/async_result.hpp create mode 100644 thirdparty/asio/asio/awaitable.hpp create mode 100644 thirdparty/asio/asio/basic_datagram_socket.hpp create mode 100644 thirdparty/asio/asio/basic_deadline_timer.hpp create mode 100644 thirdparty/asio/asio/basic_io_object.hpp create mode 100644 thirdparty/asio/asio/basic_raw_socket.hpp create mode 100644 thirdparty/asio/asio/basic_seq_packet_socket.hpp create mode 100644 thirdparty/asio/asio/basic_serial_port.hpp create mode 100644 thirdparty/asio/asio/basic_signal_set.hpp create mode 100644 thirdparty/asio/asio/basic_socket.hpp create mode 100644 thirdparty/asio/asio/basic_socket_acceptor.hpp create mode 100644 thirdparty/asio/asio/basic_socket_iostream.hpp create mode 100644 thirdparty/asio/asio/basic_socket_streambuf.hpp create mode 100644 thirdparty/asio/asio/basic_stream_socket.hpp create mode 100644 thirdparty/asio/asio/basic_streambuf.hpp create mode 100644 thirdparty/asio/asio/basic_streambuf_fwd.hpp create mode 100644 thirdparty/asio/asio/basic_waitable_timer.hpp create mode 100644 thirdparty/asio/asio/bind_cancellation_slot.hpp create mode 100644 thirdparty/asio/asio/bind_executor.hpp create mode 100644 thirdparty/asio/asio/buffer.hpp create mode 100644 thirdparty/asio/asio/buffered_read_stream.hpp create mode 100644 thirdparty/asio/asio/buffered_read_stream_fwd.hpp create mode 100644 thirdparty/asio/asio/buffered_stream.hpp create mode 100644 thirdparty/asio/asio/buffered_stream_fwd.hpp create mode 100644 thirdparty/asio/asio/buffered_write_stream.hpp create mode 100644 thirdparty/asio/asio/buffered_write_stream_fwd.hpp create mode 100644 thirdparty/asio/asio/buffers_iterator.hpp create mode 100644 thirdparty/asio/asio/cancellation_signal.hpp create mode 100644 thirdparty/asio/asio/cancellation_state.hpp create mode 100644 thirdparty/asio/asio/cancellation_type.hpp create mode 100644 thirdparty/asio/asio/co_spawn.hpp create mode 100644 thirdparty/asio/asio/completion_condition.hpp create mode 100644 thirdparty/asio/asio/compose.hpp create mode 100644 thirdparty/asio/asio/connect.hpp create mode 100644 thirdparty/asio/asio/coroutine.hpp create mode 100644 thirdparty/asio/asio/deadline_timer.hpp create mode 100644 thirdparty/asio/asio/defer.hpp create mode 100644 thirdparty/asio/asio/detached.hpp create mode 100644 thirdparty/asio/asio/detail/array.hpp create mode 100644 thirdparty/asio/asio/detail/array_fwd.hpp create mode 100644 thirdparty/asio/asio/detail/assert.hpp create mode 100644 thirdparty/asio/asio/detail/atomic_count.hpp create mode 100644 thirdparty/asio/asio/detail/base_from_cancellation_state.hpp create mode 100644 thirdparty/asio/asio/detail/base_from_completion_cond.hpp create mode 100644 thirdparty/asio/asio/detail/bind_handler.hpp create mode 100644 thirdparty/asio/asio/detail/blocking_executor_op.hpp create mode 100644 thirdparty/asio/asio/detail/buffer_resize_guard.hpp create mode 100644 thirdparty/asio/asio/detail/buffer_sequence_adapter.hpp create mode 100644 thirdparty/asio/asio/detail/buffered_stream_storage.hpp create mode 100644 thirdparty/asio/asio/detail/bulk_executor_op.hpp create mode 100644 thirdparty/asio/asio/detail/call_stack.hpp create mode 100644 thirdparty/asio/asio/detail/chrono.hpp create mode 100644 thirdparty/asio/asio/detail/chrono_time_traits.hpp create mode 100644 thirdparty/asio/asio/detail/completion_handler.hpp create mode 100644 thirdparty/asio/asio/detail/concurrency_hint.hpp create mode 100644 thirdparty/asio/asio/detail/conditionally_enabled_event.hpp create mode 100644 thirdparty/asio/asio/detail/conditionally_enabled_mutex.hpp create mode 100644 thirdparty/asio/asio/detail/config.hpp create mode 100644 thirdparty/asio/asio/detail/consuming_buffers.hpp create mode 100644 thirdparty/asio/asio/detail/cstddef.hpp create mode 100644 thirdparty/asio/asio/detail/cstdint.hpp create mode 100644 thirdparty/asio/asio/detail/date_time_fwd.hpp create mode 100644 thirdparty/asio/asio/detail/deadline_timer_service.hpp create mode 100644 thirdparty/asio/asio/detail/dependent_type.hpp create mode 100644 thirdparty/asio/asio/detail/descriptor_ops.hpp create mode 100644 thirdparty/asio/asio/detail/descriptor_read_op.hpp create mode 100644 thirdparty/asio/asio/detail/descriptor_write_op.hpp create mode 100644 thirdparty/asio/asio/detail/dev_poll_reactor.hpp create mode 100644 thirdparty/asio/asio/detail/epoll_reactor.hpp create mode 100644 thirdparty/asio/asio/detail/event.hpp create mode 100644 thirdparty/asio/asio/detail/eventfd_select_interrupter.hpp create mode 100644 thirdparty/asio/asio/detail/executor_function.hpp create mode 100644 thirdparty/asio/asio/detail/executor_op.hpp create mode 100644 thirdparty/asio/asio/detail/fd_set_adapter.hpp create mode 100644 thirdparty/asio/asio/detail/fenced_block.hpp create mode 100644 thirdparty/asio/asio/detail/functional.hpp create mode 100644 thirdparty/asio/asio/detail/future.hpp create mode 100644 thirdparty/asio/asio/detail/gcc_arm_fenced_block.hpp create mode 100644 thirdparty/asio/asio/detail/gcc_hppa_fenced_block.hpp create mode 100644 thirdparty/asio/asio/detail/gcc_sync_fenced_block.hpp create mode 100644 thirdparty/asio/asio/detail/gcc_x86_fenced_block.hpp create mode 100644 thirdparty/asio/asio/detail/global.hpp create mode 100644 thirdparty/asio/asio/detail/handler_alloc_helpers.hpp create mode 100644 thirdparty/asio/asio/detail/handler_cont_helpers.hpp create mode 100644 thirdparty/asio/asio/detail/handler_invoke_helpers.hpp create mode 100644 thirdparty/asio/asio/detail/handler_tracking.hpp create mode 100644 thirdparty/asio/asio/detail/handler_type_requirements.hpp create mode 100644 thirdparty/asio/asio/detail/handler_work.hpp create mode 100644 thirdparty/asio/asio/detail/hash_map.hpp create mode 100644 thirdparty/asio/asio/detail/impl/buffer_sequence_adapter.ipp create mode 100644 thirdparty/asio/asio/detail/impl/descriptor_ops.ipp create mode 100644 thirdparty/asio/asio/detail/impl/dev_poll_reactor.hpp create mode 100644 thirdparty/asio/asio/detail/impl/dev_poll_reactor.ipp create mode 100644 thirdparty/asio/asio/detail/impl/epoll_reactor.hpp create mode 100644 thirdparty/asio/asio/detail/impl/epoll_reactor.ipp create mode 100644 thirdparty/asio/asio/detail/impl/eventfd_select_interrupter.ipp create mode 100644 thirdparty/asio/asio/detail/impl/handler_tracking.ipp create mode 100644 thirdparty/asio/asio/detail/impl/kqueue_reactor.hpp create mode 100644 thirdparty/asio/asio/detail/impl/kqueue_reactor.ipp create mode 100644 thirdparty/asio/asio/detail/impl/null_event.ipp create mode 100644 thirdparty/asio/asio/detail/impl/pipe_select_interrupter.ipp create mode 100644 thirdparty/asio/asio/detail/impl/posix_event.ipp create mode 100644 thirdparty/asio/asio/detail/impl/posix_mutex.ipp create mode 100644 thirdparty/asio/asio/detail/impl/posix_thread.ipp create mode 100644 thirdparty/asio/asio/detail/impl/posix_tss_ptr.ipp create mode 100644 thirdparty/asio/asio/detail/impl/reactive_descriptor_service.ipp create mode 100644 thirdparty/asio/asio/detail/impl/reactive_serial_port_service.ipp create mode 100644 thirdparty/asio/asio/detail/impl/reactive_socket_service_base.ipp create mode 100644 thirdparty/asio/asio/detail/impl/resolver_service_base.ipp create mode 100644 thirdparty/asio/asio/detail/impl/scheduler.ipp create mode 100644 thirdparty/asio/asio/detail/impl/select_reactor.hpp create mode 100644 thirdparty/asio/asio/detail/impl/select_reactor.ipp create mode 100644 thirdparty/asio/asio/detail/impl/service_registry.hpp create mode 100644 thirdparty/asio/asio/detail/impl/service_registry.ipp create mode 100644 thirdparty/asio/asio/detail/impl/signal_set_service.ipp create mode 100644 thirdparty/asio/asio/detail/impl/socket_ops.ipp create mode 100644 thirdparty/asio/asio/detail/impl/socket_select_interrupter.ipp create mode 100644 thirdparty/asio/asio/detail/impl/strand_executor_service.hpp create mode 100644 thirdparty/asio/asio/detail/impl/strand_executor_service.ipp create mode 100644 thirdparty/asio/asio/detail/impl/strand_service.hpp create mode 100644 thirdparty/asio/asio/detail/impl/strand_service.ipp create mode 100644 thirdparty/asio/asio/detail/impl/thread_context.ipp create mode 100644 thirdparty/asio/asio/detail/impl/throw_error.ipp create mode 100644 thirdparty/asio/asio/detail/impl/timer_queue_ptime.ipp create mode 100644 thirdparty/asio/asio/detail/impl/timer_queue_set.ipp create mode 100644 thirdparty/asio/asio/detail/impl/win_event.ipp create mode 100644 thirdparty/asio/asio/detail/impl/win_iocp_handle_service.ipp create mode 100644 thirdparty/asio/asio/detail/impl/win_iocp_io_context.hpp create mode 100644 thirdparty/asio/asio/detail/impl/win_iocp_io_context.ipp create mode 100644 thirdparty/asio/asio/detail/impl/win_iocp_serial_port_service.ipp create mode 100644 thirdparty/asio/asio/detail/impl/win_iocp_socket_service_base.ipp create mode 100644 thirdparty/asio/asio/detail/impl/win_mutex.ipp create mode 100644 thirdparty/asio/asio/detail/impl/win_object_handle_service.ipp create mode 100644 thirdparty/asio/asio/detail/impl/win_static_mutex.ipp create mode 100644 thirdparty/asio/asio/detail/impl/win_thread.ipp create mode 100644 thirdparty/asio/asio/detail/impl/win_tss_ptr.ipp create mode 100644 thirdparty/asio/asio/detail/impl/winrt_ssocket_service_base.ipp create mode 100644 thirdparty/asio/asio/detail/impl/winrt_timer_scheduler.hpp create mode 100644 thirdparty/asio/asio/detail/impl/winrt_timer_scheduler.ipp create mode 100644 thirdparty/asio/asio/detail/impl/winsock_init.ipp create mode 100644 thirdparty/asio/asio/detail/io_control.hpp create mode 100644 thirdparty/asio/asio/detail/io_object_impl.hpp create mode 100644 thirdparty/asio/asio/detail/is_buffer_sequence.hpp create mode 100644 thirdparty/asio/asio/detail/is_executor.hpp create mode 100644 thirdparty/asio/asio/detail/keyword_tss_ptr.hpp create mode 100644 thirdparty/asio/asio/detail/kqueue_reactor.hpp create mode 100644 thirdparty/asio/asio/detail/limits.hpp create mode 100644 thirdparty/asio/asio/detail/local_free_on_block_exit.hpp create mode 100644 thirdparty/asio/asio/detail/macos_fenced_block.hpp create mode 100644 thirdparty/asio/asio/detail/memory.hpp create mode 100644 thirdparty/asio/asio/detail/mutex.hpp create mode 100644 thirdparty/asio/asio/detail/non_const_lvalue.hpp create mode 100644 thirdparty/asio/asio/detail/noncopyable.hpp create mode 100644 thirdparty/asio/asio/detail/null_event.hpp create mode 100644 thirdparty/asio/asio/detail/null_fenced_block.hpp create mode 100644 thirdparty/asio/asio/detail/null_global.hpp create mode 100644 thirdparty/asio/asio/detail/null_mutex.hpp create mode 100644 thirdparty/asio/asio/detail/null_reactor.hpp create mode 100644 thirdparty/asio/asio/detail/null_signal_blocker.hpp create mode 100644 thirdparty/asio/asio/detail/null_socket_service.hpp create mode 100644 thirdparty/asio/asio/detail/null_static_mutex.hpp create mode 100644 thirdparty/asio/asio/detail/null_thread.hpp create mode 100644 thirdparty/asio/asio/detail/null_tss_ptr.hpp create mode 100644 thirdparty/asio/asio/detail/object_pool.hpp create mode 100644 thirdparty/asio/asio/detail/old_win_sdk_compat.hpp create mode 100644 thirdparty/asio/asio/detail/op_queue.hpp create mode 100644 thirdparty/asio/asio/detail/operation.hpp create mode 100644 thirdparty/asio/asio/detail/pipe_select_interrupter.hpp create mode 100644 thirdparty/asio/asio/detail/pop_options.hpp create mode 100644 thirdparty/asio/asio/detail/posix_event.hpp create mode 100644 thirdparty/asio/asio/detail/posix_fd_set_adapter.hpp create mode 100644 thirdparty/asio/asio/detail/posix_global.hpp create mode 100644 thirdparty/asio/asio/detail/posix_mutex.hpp create mode 100644 thirdparty/asio/asio/detail/posix_signal_blocker.hpp create mode 100644 thirdparty/asio/asio/detail/posix_static_mutex.hpp create mode 100644 thirdparty/asio/asio/detail/posix_thread.hpp create mode 100644 thirdparty/asio/asio/detail/posix_tss_ptr.hpp create mode 100644 thirdparty/asio/asio/detail/push_options.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_descriptor_service.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_null_buffers_op.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_serial_port_service.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_socket_accept_op.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_socket_connect_op.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_socket_recv_op.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_socket_recvfrom_op.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_socket_recvmsg_op.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_socket_send_op.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_socket_sendto_op.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_socket_service.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_socket_service_base.hpp create mode 100644 thirdparty/asio/asio/detail/reactive_wait_op.hpp create mode 100644 thirdparty/asio/asio/detail/reactor.hpp create mode 100644 thirdparty/asio/asio/detail/reactor_fwd.hpp create mode 100644 thirdparty/asio/asio/detail/reactor_op.hpp create mode 100644 thirdparty/asio/asio/detail/reactor_op_queue.hpp create mode 100644 thirdparty/asio/asio/detail/recycling_allocator.hpp create mode 100644 thirdparty/asio/asio/detail/regex_fwd.hpp create mode 100644 thirdparty/asio/asio/detail/resolve_endpoint_op.hpp create mode 100644 thirdparty/asio/asio/detail/resolve_op.hpp create mode 100644 thirdparty/asio/asio/detail/resolve_query_op.hpp create mode 100644 thirdparty/asio/asio/detail/resolver_service.hpp create mode 100644 thirdparty/asio/asio/detail/resolver_service_base.hpp create mode 100644 thirdparty/asio/asio/detail/scheduler.hpp create mode 100644 thirdparty/asio/asio/detail/scheduler_operation.hpp create mode 100644 thirdparty/asio/asio/detail/scheduler_thread_info.hpp create mode 100644 thirdparty/asio/asio/detail/scoped_lock.hpp create mode 100644 thirdparty/asio/asio/detail/scoped_ptr.hpp create mode 100644 thirdparty/asio/asio/detail/select_interrupter.hpp create mode 100644 thirdparty/asio/asio/detail/select_reactor.hpp create mode 100644 thirdparty/asio/asio/detail/service_registry.hpp create mode 100644 thirdparty/asio/asio/detail/signal_blocker.hpp create mode 100644 thirdparty/asio/asio/detail/signal_handler.hpp create mode 100644 thirdparty/asio/asio/detail/signal_init.hpp create mode 100644 thirdparty/asio/asio/detail/signal_op.hpp create mode 100644 thirdparty/asio/asio/detail/signal_set_service.hpp create mode 100644 thirdparty/asio/asio/detail/socket_holder.hpp create mode 100644 thirdparty/asio/asio/detail/socket_ops.hpp create mode 100644 thirdparty/asio/asio/detail/socket_option.hpp create mode 100644 thirdparty/asio/asio/detail/socket_select_interrupter.hpp create mode 100644 thirdparty/asio/asio/detail/socket_types.hpp create mode 100644 thirdparty/asio/asio/detail/solaris_fenced_block.hpp create mode 100644 thirdparty/asio/asio/detail/source_location.hpp create mode 100644 thirdparty/asio/asio/detail/static_mutex.hpp create mode 100644 thirdparty/asio/asio/detail/std_event.hpp create mode 100644 thirdparty/asio/asio/detail/std_fenced_block.hpp create mode 100644 thirdparty/asio/asio/detail/std_global.hpp create mode 100644 thirdparty/asio/asio/detail/std_mutex.hpp create mode 100644 thirdparty/asio/asio/detail/std_static_mutex.hpp create mode 100644 thirdparty/asio/asio/detail/std_thread.hpp create mode 100644 thirdparty/asio/asio/detail/strand_executor_service.hpp create mode 100644 thirdparty/asio/asio/detail/strand_service.hpp create mode 100644 thirdparty/asio/asio/detail/string_view.hpp create mode 100644 thirdparty/asio/asio/detail/thread.hpp create mode 100644 thirdparty/asio/asio/detail/thread_context.hpp create mode 100644 thirdparty/asio/asio/detail/thread_group.hpp create mode 100644 thirdparty/asio/asio/detail/thread_info_base.hpp create mode 100644 thirdparty/asio/asio/detail/throw_error.hpp create mode 100644 thirdparty/asio/asio/detail/throw_exception.hpp create mode 100644 thirdparty/asio/asio/detail/timer_queue.hpp create mode 100644 thirdparty/asio/asio/detail/timer_queue_base.hpp create mode 100644 thirdparty/asio/asio/detail/timer_queue_ptime.hpp create mode 100644 thirdparty/asio/asio/detail/timer_queue_set.hpp create mode 100644 thirdparty/asio/asio/detail/timer_scheduler.hpp create mode 100644 thirdparty/asio/asio/detail/timer_scheduler_fwd.hpp create mode 100644 thirdparty/asio/asio/detail/tss_ptr.hpp create mode 100644 thirdparty/asio/asio/detail/type_traits.hpp create mode 100644 thirdparty/asio/asio/detail/variadic_templates.hpp create mode 100644 thirdparty/asio/asio/detail/wait_handler.hpp create mode 100644 thirdparty/asio/asio/detail/wait_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_event.hpp create mode 100644 thirdparty/asio/asio/detail/win_fd_set_adapter.hpp create mode 100644 thirdparty/asio/asio/detail/win_fenced_block.hpp create mode 100644 thirdparty/asio/asio/detail/win_global.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_handle_read_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_handle_service.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_handle_write_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_io_context.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_null_buffers_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_operation.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_overlapped_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_overlapped_ptr.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_serial_port_service.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_socket_accept_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_socket_connect_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_socket_recv_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_socket_recvfrom_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_socket_recvmsg_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_socket_send_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_socket_service.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_socket_service_base.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_thread_info.hpp create mode 100644 thirdparty/asio/asio/detail/win_iocp_wait_op.hpp create mode 100644 thirdparty/asio/asio/detail/win_mutex.hpp create mode 100644 thirdparty/asio/asio/detail/win_object_handle_service.hpp create mode 100644 thirdparty/asio/asio/detail/win_static_mutex.hpp create mode 100644 thirdparty/asio/asio/detail/win_thread.hpp create mode 100644 thirdparty/asio/asio/detail/win_tss_ptr.hpp create mode 100644 thirdparty/asio/asio/detail/winapp_thread.hpp create mode 100644 thirdparty/asio/asio/detail/wince_thread.hpp create mode 100644 thirdparty/asio/asio/detail/winrt_async_manager.hpp create mode 100644 thirdparty/asio/asio/detail/winrt_async_op.hpp create mode 100644 thirdparty/asio/asio/detail/winrt_resolve_op.hpp create mode 100644 thirdparty/asio/asio/detail/winrt_resolver_service.hpp create mode 100644 thirdparty/asio/asio/detail/winrt_socket_connect_op.hpp create mode 100644 thirdparty/asio/asio/detail/winrt_socket_recv_op.hpp create mode 100644 thirdparty/asio/asio/detail/winrt_socket_send_op.hpp create mode 100644 thirdparty/asio/asio/detail/winrt_ssocket_service.hpp create mode 100644 thirdparty/asio/asio/detail/winrt_ssocket_service_base.hpp create mode 100644 thirdparty/asio/asio/detail/winrt_timer_scheduler.hpp create mode 100644 thirdparty/asio/asio/detail/winrt_utils.hpp create mode 100644 thirdparty/asio/asio/detail/winsock_init.hpp create mode 100644 thirdparty/asio/asio/detail/work_dispatcher.hpp create mode 100644 thirdparty/asio/asio/detail/wrapped_handler.hpp create mode 100644 thirdparty/asio/asio/dispatch.hpp create mode 100644 thirdparty/asio/asio/error.hpp create mode 100644 thirdparty/asio/asio/error_code.hpp create mode 100644 thirdparty/asio/asio/execution.hpp create mode 100644 thirdparty/asio/asio/execution/allocator.hpp create mode 100644 thirdparty/asio/asio/execution/any_executor.hpp create mode 100644 thirdparty/asio/asio/execution/bad_executor.hpp create mode 100644 thirdparty/asio/asio/execution/blocking.hpp create mode 100644 thirdparty/asio/asio/execution/blocking_adaptation.hpp create mode 100644 thirdparty/asio/asio/execution/bulk_execute.hpp create mode 100644 thirdparty/asio/asio/execution/bulk_guarantee.hpp create mode 100644 thirdparty/asio/asio/execution/connect.hpp create mode 100644 thirdparty/asio/asio/execution/context.hpp create mode 100644 thirdparty/asio/asio/execution/context_as.hpp create mode 100644 thirdparty/asio/asio/execution/detail/as_invocable.hpp create mode 100644 thirdparty/asio/asio/execution/detail/as_operation.hpp create mode 100644 thirdparty/asio/asio/execution/detail/as_receiver.hpp create mode 100644 thirdparty/asio/asio/execution/detail/bulk_sender.hpp create mode 100644 thirdparty/asio/asio/execution/detail/submit_receiver.hpp create mode 100644 thirdparty/asio/asio/execution/detail/void_receiver.hpp create mode 100644 thirdparty/asio/asio/execution/execute.hpp create mode 100644 thirdparty/asio/asio/execution/executor.hpp create mode 100644 thirdparty/asio/asio/execution/impl/bad_executor.ipp create mode 100644 thirdparty/asio/asio/execution/impl/receiver_invocation_error.ipp create mode 100644 thirdparty/asio/asio/execution/invocable_archetype.hpp create mode 100644 thirdparty/asio/asio/execution/mapping.hpp create mode 100644 thirdparty/asio/asio/execution/occupancy.hpp create mode 100644 thirdparty/asio/asio/execution/operation_state.hpp create mode 100644 thirdparty/asio/asio/execution/outstanding_work.hpp create mode 100644 thirdparty/asio/asio/execution/prefer_only.hpp create mode 100644 thirdparty/asio/asio/execution/receiver.hpp create mode 100644 thirdparty/asio/asio/execution/receiver_invocation_error.hpp create mode 100644 thirdparty/asio/asio/execution/relationship.hpp create mode 100644 thirdparty/asio/asio/execution/schedule.hpp create mode 100644 thirdparty/asio/asio/execution/scheduler.hpp create mode 100644 thirdparty/asio/asio/execution/sender.hpp create mode 100644 thirdparty/asio/asio/execution/set_done.hpp create mode 100644 thirdparty/asio/asio/execution/set_error.hpp create mode 100644 thirdparty/asio/asio/execution/set_value.hpp create mode 100644 thirdparty/asio/asio/execution/start.hpp create mode 100644 thirdparty/asio/asio/execution/submit.hpp create mode 100644 thirdparty/asio/asio/execution_context.hpp create mode 100644 thirdparty/asio/asio/executor.hpp create mode 100644 thirdparty/asio/asio/executor_work_guard.hpp create mode 100644 thirdparty/asio/asio/experimental/append.hpp create mode 100644 thirdparty/asio/asio/experimental/as_single.hpp create mode 100644 thirdparty/asio/asio/experimental/as_tuple.hpp create mode 100644 thirdparty/asio/asio/experimental/awaitable_operators.hpp create mode 100644 thirdparty/asio/asio/experimental/cancellation_condition.hpp create mode 100644 thirdparty/asio/asio/experimental/coro.hpp create mode 100644 thirdparty/asio/asio/experimental/deferred.hpp create mode 100644 thirdparty/asio/asio/experimental/detail/completion_handler_erasure.hpp create mode 100644 thirdparty/asio/asio/experimental/detail/coro_promise_allocator.hpp create mode 100644 thirdparty/asio/asio/experimental/detail/coro_traits.hpp create mode 100644 thirdparty/asio/asio/experimental/detail/partial_promise.hpp create mode 100644 thirdparty/asio/asio/experimental/impl/append.hpp create mode 100644 thirdparty/asio/asio/experimental/impl/as_single.hpp create mode 100644 thirdparty/asio/asio/experimental/impl/as_tuple.hpp create mode 100644 thirdparty/asio/asio/experimental/impl/deferred.hpp create mode 100644 thirdparty/asio/asio/experimental/impl/parallel_group.hpp create mode 100644 thirdparty/asio/asio/experimental/impl/prepend.hpp create mode 100644 thirdparty/asio/asio/experimental/impl/promise.hpp create mode 100644 thirdparty/asio/asio/experimental/parallel_group.hpp create mode 100644 thirdparty/asio/asio/experimental/prepend.hpp create mode 100644 thirdparty/asio/asio/experimental/promise.hpp create mode 100644 thirdparty/asio/asio/experimental/use_coro.hpp create mode 100644 thirdparty/asio/asio/generic/basic_endpoint.hpp create mode 100644 thirdparty/asio/asio/generic/datagram_protocol.hpp create mode 100644 thirdparty/asio/asio/generic/detail/endpoint.hpp create mode 100644 thirdparty/asio/asio/generic/detail/impl/endpoint.ipp create mode 100644 thirdparty/asio/asio/generic/raw_protocol.hpp create mode 100644 thirdparty/asio/asio/generic/seq_packet_protocol.hpp create mode 100644 thirdparty/asio/asio/generic/stream_protocol.hpp create mode 100644 thirdparty/asio/asio/handler_alloc_hook.hpp create mode 100644 thirdparty/asio/asio/handler_continuation_hook.hpp create mode 100644 thirdparty/asio/asio/handler_invoke_hook.hpp create mode 100644 thirdparty/asio/asio/high_resolution_timer.hpp create mode 100644 thirdparty/asio/asio/impl/awaitable.hpp create mode 100644 thirdparty/asio/asio/impl/buffered_read_stream.hpp create mode 100644 thirdparty/asio/asio/impl/buffered_write_stream.hpp create mode 100644 thirdparty/asio/asio/impl/co_spawn.hpp create mode 100644 thirdparty/asio/asio/impl/compose.hpp create mode 100644 thirdparty/asio/asio/impl/connect.hpp create mode 100644 thirdparty/asio/asio/impl/defer.hpp create mode 100644 thirdparty/asio/asio/impl/detached.hpp create mode 100644 thirdparty/asio/asio/impl/dispatch.hpp create mode 100644 thirdparty/asio/asio/impl/error.ipp create mode 100644 thirdparty/asio/asio/impl/error_code.ipp create mode 100644 thirdparty/asio/asio/impl/execution_context.hpp create mode 100644 thirdparty/asio/asio/impl/execution_context.ipp create mode 100644 thirdparty/asio/asio/impl/executor.hpp create mode 100644 thirdparty/asio/asio/impl/executor.ipp create mode 100644 thirdparty/asio/asio/impl/handler_alloc_hook.ipp create mode 100644 thirdparty/asio/asio/impl/io_context.hpp create mode 100644 thirdparty/asio/asio/impl/io_context.ipp create mode 100644 thirdparty/asio/asio/impl/multiple_exceptions.ipp create mode 100644 thirdparty/asio/asio/impl/post.hpp create mode 100644 thirdparty/asio/asio/impl/read.hpp create mode 100644 thirdparty/asio/asio/impl/read_at.hpp create mode 100644 thirdparty/asio/asio/impl/read_until.hpp create mode 100644 thirdparty/asio/asio/impl/redirect_error.hpp create mode 100644 thirdparty/asio/asio/impl/serial_port_base.hpp create mode 100644 thirdparty/asio/asio/impl/serial_port_base.ipp create mode 100644 thirdparty/asio/asio/impl/spawn.hpp create mode 100644 thirdparty/asio/asio/impl/src.hpp create mode 100644 thirdparty/asio/asio/impl/system_context.hpp create mode 100644 thirdparty/asio/asio/impl/system_context.ipp create mode 100644 thirdparty/asio/asio/impl/system_executor.hpp create mode 100644 thirdparty/asio/asio/impl/thread_pool.hpp create mode 100644 thirdparty/asio/asio/impl/thread_pool.ipp create mode 100644 thirdparty/asio/asio/impl/use_awaitable.hpp create mode 100644 thirdparty/asio/asio/impl/use_future.hpp create mode 100644 thirdparty/asio/asio/impl/write.hpp create mode 100644 thirdparty/asio/asio/impl/write_at.hpp create mode 100644 thirdparty/asio/asio/io_context.hpp create mode 100644 thirdparty/asio/asio/io_context_strand.hpp create mode 100644 thirdparty/asio/asio/io_service.hpp create mode 100644 thirdparty/asio/asio/io_service_strand.hpp create mode 100644 thirdparty/asio/asio/ip/address.hpp create mode 100644 thirdparty/asio/asio/ip/address_v4.hpp create mode 100644 thirdparty/asio/asio/ip/address_v4_iterator.hpp create mode 100644 thirdparty/asio/asio/ip/address_v4_range.hpp create mode 100644 thirdparty/asio/asio/ip/address_v6.hpp create mode 100644 thirdparty/asio/asio/ip/address_v6_iterator.hpp create mode 100644 thirdparty/asio/asio/ip/address_v6_range.hpp create mode 100644 thirdparty/asio/asio/ip/bad_address_cast.hpp create mode 100644 thirdparty/asio/asio/ip/basic_endpoint.hpp create mode 100644 thirdparty/asio/asio/ip/basic_resolver.hpp create mode 100644 thirdparty/asio/asio/ip/basic_resolver_entry.hpp create mode 100644 thirdparty/asio/asio/ip/basic_resolver_iterator.hpp create mode 100644 thirdparty/asio/asio/ip/basic_resolver_query.hpp create mode 100644 thirdparty/asio/asio/ip/basic_resolver_results.hpp create mode 100644 thirdparty/asio/asio/ip/detail/endpoint.hpp create mode 100644 thirdparty/asio/asio/ip/detail/impl/endpoint.ipp create mode 100644 thirdparty/asio/asio/ip/detail/socket_option.hpp create mode 100644 thirdparty/asio/asio/ip/host_name.hpp create mode 100644 thirdparty/asio/asio/ip/icmp.hpp create mode 100644 thirdparty/asio/asio/ip/impl/address.hpp create mode 100644 thirdparty/asio/asio/ip/impl/address.ipp create mode 100644 thirdparty/asio/asio/ip/impl/address_v4.hpp create mode 100644 thirdparty/asio/asio/ip/impl/address_v4.ipp create mode 100644 thirdparty/asio/asio/ip/impl/address_v6.hpp create mode 100644 thirdparty/asio/asio/ip/impl/address_v6.ipp create mode 100644 thirdparty/asio/asio/ip/impl/basic_endpoint.hpp create mode 100644 thirdparty/asio/asio/ip/impl/host_name.ipp create mode 100644 thirdparty/asio/asio/ip/impl/network_v4.hpp create mode 100644 thirdparty/asio/asio/ip/impl/network_v4.ipp create mode 100644 thirdparty/asio/asio/ip/impl/network_v6.hpp create mode 100644 thirdparty/asio/asio/ip/impl/network_v6.ipp create mode 100644 thirdparty/asio/asio/ip/multicast.hpp create mode 100644 thirdparty/asio/asio/ip/network_v4.hpp create mode 100644 thirdparty/asio/asio/ip/network_v6.hpp create mode 100644 thirdparty/asio/asio/ip/resolver_base.hpp create mode 100644 thirdparty/asio/asio/ip/resolver_query_base.hpp create mode 100644 thirdparty/asio/asio/ip/tcp.hpp create mode 100644 thirdparty/asio/asio/ip/udp.hpp create mode 100644 thirdparty/asio/asio/ip/unicast.hpp create mode 100644 thirdparty/asio/asio/ip/v6_only.hpp create mode 100644 thirdparty/asio/asio/is_applicable_property.hpp create mode 100644 thirdparty/asio/asio/is_executor.hpp create mode 100644 thirdparty/asio/asio/is_read_buffered.hpp create mode 100644 thirdparty/asio/asio/is_write_buffered.hpp create mode 100644 thirdparty/asio/asio/local/basic_endpoint.hpp create mode 100644 thirdparty/asio/asio/local/connect_pair.hpp create mode 100644 thirdparty/asio/asio/local/datagram_protocol.hpp create mode 100644 thirdparty/asio/asio/local/detail/endpoint.hpp create mode 100644 thirdparty/asio/asio/local/detail/impl/endpoint.ipp create mode 100644 thirdparty/asio/asio/local/stream_protocol.hpp create mode 100644 thirdparty/asio/asio/multiple_exceptions.hpp create mode 100644 thirdparty/asio/asio/packaged_task.hpp create mode 100644 thirdparty/asio/asio/placeholders.hpp create mode 100644 thirdparty/asio/asio/posix/basic_descriptor.hpp create mode 100644 thirdparty/asio/asio/posix/basic_stream_descriptor.hpp create mode 100644 thirdparty/asio/asio/posix/descriptor.hpp create mode 100644 thirdparty/asio/asio/posix/descriptor_base.hpp create mode 100644 thirdparty/asio/asio/posix/stream_descriptor.hpp create mode 100644 thirdparty/asio/asio/post.hpp create mode 100644 thirdparty/asio/asio/prefer.hpp create mode 100644 thirdparty/asio/asio/query.hpp create mode 100644 thirdparty/asio/asio/read.hpp create mode 100644 thirdparty/asio/asio/read_at.hpp create mode 100644 thirdparty/asio/asio/read_until.hpp create mode 100644 thirdparty/asio/asio/redirect_error.hpp create mode 100644 thirdparty/asio/asio/require.hpp create mode 100644 thirdparty/asio/asio/require_concept.hpp create mode 100644 thirdparty/asio/asio/serial_port.hpp create mode 100644 thirdparty/asio/asio/serial_port_base.hpp create mode 100644 thirdparty/asio/asio/signal_set.hpp create mode 100644 thirdparty/asio/asio/socket_base.hpp create mode 100644 thirdparty/asio/asio/spawn.hpp create mode 100644 thirdparty/asio/asio/ssl.hpp create mode 100644 thirdparty/asio/asio/ssl/context.hpp create mode 100644 thirdparty/asio/asio/ssl/context_base.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/buffered_handshake_op.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/engine.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/handshake_op.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/impl/engine.ipp create mode 100644 thirdparty/asio/asio/ssl/detail/impl/openssl_init.ipp create mode 100644 thirdparty/asio/asio/ssl/detail/io.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/openssl_init.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/openssl_types.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/password_callback.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/read_op.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/shutdown_op.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/stream_core.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/verify_callback.hpp create mode 100644 thirdparty/asio/asio/ssl/detail/write_op.hpp create mode 100644 thirdparty/asio/asio/ssl/error.hpp create mode 100644 thirdparty/asio/asio/ssl/host_name_verification.hpp create mode 100644 thirdparty/asio/asio/ssl/impl/context.hpp create mode 100644 thirdparty/asio/asio/ssl/impl/context.ipp create mode 100644 thirdparty/asio/asio/ssl/impl/error.ipp create mode 100644 thirdparty/asio/asio/ssl/impl/host_name_verification.ipp create mode 100644 thirdparty/asio/asio/ssl/impl/rfc2818_verification.ipp create mode 100644 thirdparty/asio/asio/ssl/impl/src.hpp create mode 100644 thirdparty/asio/asio/ssl/rfc2818_verification.hpp create mode 100644 thirdparty/asio/asio/ssl/stream.hpp create mode 100644 thirdparty/asio/asio/ssl/stream_base.hpp create mode 100644 thirdparty/asio/asio/ssl/verify_context.hpp create mode 100644 thirdparty/asio/asio/ssl/verify_mode.hpp create mode 100644 thirdparty/asio/asio/static_thread_pool.hpp create mode 100644 thirdparty/asio/asio/steady_timer.hpp create mode 100644 thirdparty/asio/asio/strand.hpp create mode 100644 thirdparty/asio/asio/streambuf.hpp create mode 100644 thirdparty/asio/asio/system_context.hpp create mode 100644 thirdparty/asio/asio/system_error.hpp create mode 100644 thirdparty/asio/asio/system_executor.hpp create mode 100644 thirdparty/asio/asio/system_timer.hpp create mode 100644 thirdparty/asio/asio/this_coro.hpp create mode 100644 thirdparty/asio/asio/thread.hpp create mode 100644 thirdparty/asio/asio/thread_pool.hpp create mode 100644 thirdparty/asio/asio/time_traits.hpp create mode 100644 thirdparty/asio/asio/traits/bulk_execute_free.hpp create mode 100644 thirdparty/asio/asio/traits/bulk_execute_member.hpp create mode 100644 thirdparty/asio/asio/traits/connect_free.hpp create mode 100644 thirdparty/asio/asio/traits/connect_member.hpp create mode 100644 thirdparty/asio/asio/traits/equality_comparable.hpp create mode 100644 thirdparty/asio/asio/traits/execute_free.hpp create mode 100644 thirdparty/asio/asio/traits/execute_member.hpp create mode 100644 thirdparty/asio/asio/traits/prefer_free.hpp create mode 100644 thirdparty/asio/asio/traits/prefer_member.hpp create mode 100644 thirdparty/asio/asio/traits/query_free.hpp create mode 100644 thirdparty/asio/asio/traits/query_member.hpp create mode 100644 thirdparty/asio/asio/traits/query_static_constexpr_member.hpp create mode 100644 thirdparty/asio/asio/traits/require_concept_free.hpp create mode 100644 thirdparty/asio/asio/traits/require_concept_member.hpp create mode 100644 thirdparty/asio/asio/traits/require_free.hpp create mode 100644 thirdparty/asio/asio/traits/require_member.hpp create mode 100644 thirdparty/asio/asio/traits/schedule_free.hpp create mode 100644 thirdparty/asio/asio/traits/schedule_member.hpp create mode 100644 thirdparty/asio/asio/traits/set_done_free.hpp create mode 100644 thirdparty/asio/asio/traits/set_done_member.hpp create mode 100644 thirdparty/asio/asio/traits/set_error_free.hpp create mode 100644 thirdparty/asio/asio/traits/set_error_member.hpp create mode 100644 thirdparty/asio/asio/traits/set_value_free.hpp create mode 100644 thirdparty/asio/asio/traits/set_value_member.hpp create mode 100644 thirdparty/asio/asio/traits/start_free.hpp create mode 100644 thirdparty/asio/asio/traits/start_member.hpp create mode 100644 thirdparty/asio/asio/traits/static_query.hpp create mode 100644 thirdparty/asio/asio/traits/static_require.hpp create mode 100644 thirdparty/asio/asio/traits/static_require_concept.hpp create mode 100644 thirdparty/asio/asio/traits/submit_free.hpp create mode 100644 thirdparty/asio/asio/traits/submit_member.hpp create mode 100644 thirdparty/asio/asio/ts/buffer.hpp create mode 100644 thirdparty/asio/asio/ts/executor.hpp create mode 100644 thirdparty/asio/asio/ts/internet.hpp create mode 100644 thirdparty/asio/asio/ts/io_context.hpp create mode 100644 thirdparty/asio/asio/ts/net.hpp create mode 100644 thirdparty/asio/asio/ts/netfwd.hpp create mode 100644 thirdparty/asio/asio/ts/socket.hpp create mode 100644 thirdparty/asio/asio/ts/timer.hpp create mode 100644 thirdparty/asio/asio/unyield.hpp create mode 100644 thirdparty/asio/asio/use_awaitable.hpp create mode 100644 thirdparty/asio/asio/use_future.hpp create mode 100644 thirdparty/asio/asio/uses_executor.hpp create mode 100644 thirdparty/asio/asio/version.hpp create mode 100644 thirdparty/asio/asio/wait_traits.hpp create mode 100644 thirdparty/asio/asio/windows/basic_object_handle.hpp create mode 100644 thirdparty/asio/asio/windows/basic_overlapped_handle.hpp create mode 100644 thirdparty/asio/asio/windows/basic_random_access_handle.hpp create mode 100644 thirdparty/asio/asio/windows/basic_stream_handle.hpp create mode 100644 thirdparty/asio/asio/windows/object_handle.hpp create mode 100644 thirdparty/asio/asio/windows/overlapped_handle.hpp create mode 100644 thirdparty/asio/asio/windows/overlapped_ptr.hpp create mode 100644 thirdparty/asio/asio/windows/random_access_handle.hpp create mode 100644 thirdparty/asio/asio/windows/stream_handle.hpp create mode 100644 thirdparty/asio/asio/write.hpp create mode 100644 thirdparty/asio/asio/write_at.hpp create mode 100644 thirdparty/asio/asio/yield.hpp diff --git a/thirdparty/asio/asio.hpp b/thirdparty/asio/asio.hpp new file mode 100644 index 00000000..94db21e8 --- /dev/null +++ b/thirdparty/asio/asio.hpp @@ -0,0 +1,188 @@ +// +// asio.hpp +// ~~~~~~~~ +// +// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_HPP +#define ASIO_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/associated_allocator.hpp" +#include "asio/associated_executor.hpp" +#include "asio/associated_cancellation_slot.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_io_object.hpp" +#include "asio/basic_raw_socket.hpp" +#include "asio/basic_seq_packet_socket.hpp" +#include "asio/basic_serial_port.hpp" +#include "asio/basic_signal_set.hpp" +#include "asio/basic_socket.hpp" +#include "asio/basic_socket_acceptor.hpp" +#include "asio/basic_socket_iostream.hpp" +#include "asio/basic_socket_streambuf.hpp" +#include "asio/basic_stream_socket.hpp" +#include "asio/basic_streambuf.hpp" +#include "asio/basic_waitable_timer.hpp" +#include "asio/bind_cancellation_slot.hpp" +#include "asio/bind_executor.hpp" +#include "asio/buffer.hpp" +#include "asio/buffered_read_stream_fwd.hpp" +#include "asio/buffered_read_stream.hpp" +#include "asio/buffered_stream_fwd.hpp" +#include "asio/buffered_stream.hpp" +#include "asio/buffered_write_stream_fwd.hpp" +#include "asio/buffered_write_stream.hpp" +#include "asio/buffers_iterator.hpp" +#include "asio/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/coroutine.hpp" +#include "asio/deadline_timer.hpp" +#include "asio/defer.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/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_executor.hpp" +#include "asio/is_read_buffered.hpp" +#include "asio/is_write_buffered.hpp" +#include "asio/local/basic_endpoint.hpp" +#include "asio/local/connect_pair.hpp" +#include "asio/local/datagram_protocol.hpp" +#include "asio/local/stream_protocol.hpp" +#include "asio/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/query.hpp" +#include "asio/read.hpp" +#include "asio/read_at.hpp" +#include "asio/read_until.hpp" +#include "asio/redirect_error.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/socket_base.hpp" +#include "asio/static_thread_pool.hpp" +#include "asio/steady_timer.hpp" +#include "asio/strand.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/write.hpp" +#include "asio/write_at.hpp" + +#endif // ASIO_HPP diff --git a/thirdparty/asio/asio/any_io_executor.hpp b/thirdparty/asio/asio/any_io_executor.hpp new file mode 100644 index 00000000..5f2c13f0 --- /dev/null +++ b/thirdparty/asio/asio/any_io_executor.hpp @@ -0,0 +1,300 @@ +// +// any_io_executor.hpp +// ~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef 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. + any_io_executor() ASIO_NOEXCEPT + : base_type() + { + } + + /// Construct in an empty state. Equivalent effects to default constructor. + any_io_executor(nullptr_t) ASIO_NOEXCEPT + : base_type(nullptr_t()) + { + } + + /// Copy constructor. + any_io_executor(const any_io_executor& e) ASIO_NOEXCEPT + : base_type(static_cast(e)) + { + } + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Move constructor. + any_io_executor(any_io_executor&& e) ASIO_NOEXCEPT + : base_type(static_cast(e)) + { + } +#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 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) + + /// Assignment operator. + any_io_executor& operator=(const any_io_executor& e) ASIO_NOEXCEPT + { + base_type::operator=(static_cast(e)); + return *this; + } + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Move assignment operator. + any_io_executor& operator=(any_io_executor&& e) ASIO_NOEXCEPT + { + base_type::operator=(static_cast(e)); + return *this; + } +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Assignment operator that sets the polymorphic wrapper to the empty state. + any_io_executor& operator=(nullptr_t) + { + base_type::operator=(nullptr_t()); + return *this; + } + + /// Destructor. + ~any_io_executor() + { + } + + /// Swap targets with another polymorphic wrapper. + void swap(any_io_executor& other) ASIO_NOEXCEPT + { + static_cast(*this).swap(static_cast(other)); + } + + /// 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) + +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" + +#endif // ASIO_ANY_IO_EXECUTOR_HPP diff --git a/thirdparty/asio/asio/associated_allocator.hpp b/thirdparty/asio/asio/associated_allocator.hpp new file mode 100644 index 00000000..3f945834 --- /dev/null +++ b/thirdparty/asio/asio/associated_allocator.hpp @@ -0,0 +1,177 @@ +// +// associated_allocator.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef 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 E type; + + static type get(const T&, const E& e) ASIO_NOEXCEPT + { + return e; + } +}; + +template +struct associated_allocator_impl::type> +{ + typedef typename T::allocator_type type; + + static type get(const T& t, const E&) ASIO_NOEXCEPT + { + return t.get_allocator(); + } +}; + +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. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t,a) and with return type @c type. + */ +template > +struct associated_allocator +{ + /// If @c T has a nested type @c allocator_type, T::allocator_type. + /// Otherwise @c Allocator. +#if defined(GENERATING_DOCUMENTATION) + typedef see_below type; +#else // defined(GENERATING_DOCUMENTATION) + typedef typename detail::associated_allocator_impl::type type; +#endif // defined(GENERATING_DOCUMENTATION) + + /// If @c T has a nested type @c allocator_type, returns + /// t.get_allocator(). Otherwise returns @c a. + static type get(const T& t, + const Allocator& a = Allocator()) ASIO_NOEXCEPT + { + return detail::associated_allocator_impl::get(t, a); + } +}; + +/// Helper function to obtain an object's associated allocator. +/** + * @returns associated_allocator::get(t) + */ +template +inline typename associated_allocator::type +get_associated_allocator(const T& t) ASIO_NOEXCEPT +{ + return associated_allocator::get(t); +} + +/// Helper function to obtain an object's associated allocator. +/** + * @returns associated_allocator::get(t, a) + */ +template +inline typename associated_allocator::type +get_associated_allocator(const T& t, const Allocator& a) ASIO_NOEXCEPT +{ + return associated_allocator::get(t, a); +} + +#if defined(ASIO_HAS_ALIAS_TEMPLATES) + +template > +using associated_allocator_t + = typename associated_allocator::type; + +#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) + +#if defined(ASIO_HAS_STD_REFERENCE_WRAPPER) \ + || defined(GENERATING_DOCUMENTATION) + +/// Specialisation of associated_allocator for @c std::reference_wrapper. +template +struct associated_allocator, Allocator> +{ + /// 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, + const Allocator& a = Allocator()) ASIO_NOEXCEPT + { + 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/thirdparty/asio/asio/associated_cancellation_slot.hpp b/thirdparty/asio/asio/associated_cancellation_slot.hpp new file mode 100644 index 00000000..6a809e71 --- /dev/null +++ b/thirdparty/asio/asio/associated_cancellation_slot.hpp @@ -0,0 +1,177 @@ +// +// associated_cancellation_slot.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef 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/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&, const S& s = S()) ASIO_NOEXCEPT + { + return s; + } +}; + +template +struct associated_cancellation_slot_impl::type> +{ + typedef typename T::cancellation_slot_type type; + + static type get(const T& t, const S& = S()) ASIO_NOEXCEPT + { + 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. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t,s) and with return type @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 s. + static type get(const T& t, + const CancellationSlot& s = CancellationSlot()) ASIO_NOEXCEPT; +#endif // defined(GENERATING_DOCUMENTATION) +}; + +/// Helper function to obtain an object's associated cancellation_slot. +/** + * @returns associated_cancellation_slot::get(t) + */ +template +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 +inline typename associated_cancellation_slot::type +get_associated_cancellation_slot(const T& t, + const CancellationSlot& st) ASIO_NOEXCEPT +{ + 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 +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#endif // ASIO_ASSOCIATED_CANCELLATION_SLOT_HPP diff --git a/thirdparty/asio/asio/associated_executor.hpp b/thirdparty/asio/asio/associated_executor.hpp new file mode 100644 index 00000000..1e62e37a --- /dev/null +++ b/thirdparty/asio/asio/associated_executor.hpp @@ -0,0 +1,222 @@ +// +// associated_executor.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef 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&, const E& e = E()) ASIO_NOEXCEPT + { + return e; + } +}; + +template +struct associated_executor_impl::type> +{ + typedef typename T::executor_type type; + + static type get(const T& t, const E& = E()) ASIO_NOEXCEPT + { + 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. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t,e) and with return type @c type. + */ +template +struct associated_executor +#if !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 ex. + static type get(const T& t, + const Executor& ex = Executor()) ASIO_NOEXCEPT; +#endif // defined(GENERATING_DOCUMENTATION) +}; + +/// Helper function to obtain an object's associated executor. +/** + * @returns associated_executor::get(t) + */ +template +inline typename associated_executor::type +get_associated_executor(const T& t) ASIO_NOEXCEPT +{ + return associated_executor::get(t); +} + +/// Helper function to obtain an object's associated executor. +/** + * @returns associated_executor::get(t, ex) + */ +template +inline typename associated_executor::type +get_associated_executor(const T& t, const Executor& ex, + typename constraint< + is_executor::value || execution::is_executor::value + >::type = 0) ASIO_NOEXCEPT +{ + return associated_executor::get(t, ex); +} + +/// Helper function to obtain an object's associated executor. +/** + * @returns associated_executor::get(t, ctx.get_executor()) + */ +template +inline typename associated_executor::type +get_associated_executor(const T& t, ExecutionContext& ctx, + typename 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, + const Executor& ex = Executor()) ASIO_NOEXCEPT + { + 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/thirdparty/asio/asio/associator.hpp b/thirdparty/asio/asio/associator.hpp new file mode 100644 index 00000000..0f93b120 --- /dev/null +++ b/thirdparty/asio/asio/associator.hpp @@ -0,0 +1,35 @@ +// +// associator.hpp +// ~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef 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