passenger 5.3.3 → 5.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +8 -0
- data/build/support/cxx_dependency_map.rb +151 -83
- data/dev/configkit-schemas/index.json +3 -3
- data/src/agent/Core/AdminPanelConnector.h +5 -3
- data/src/agent/Core/ApplicationPool/Common.h +1 -2
- data/src/agent/Core/ApplicationPool/Context.h +1 -2
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +2 -2
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +2 -2
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller.h +2 -1
- data/src/agent/Core/Controller/Config.h +6 -5
- data/src/agent/Core/Controller/Hooks.cpp +11 -0
- data/src/agent/Core/Controller/SendRequest.cpp +7 -7
- data/src/agent/Core/CoreMain.cpp +0 -2
- data/src/agent/Core/SpawningKit/Context.h +1 -3
- data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +17 -38
- data/src/agent/Core/SpawningKit/PipeWatcher.h +5 -3
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +13 -5
- data/src/agent/Shared/ApiServerUtils.h +2 -2
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +33 -18
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +20 -20
- data/src/apache2_module/Config.cpp +7 -6
- data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/Exceptions.h +0 -1
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +3 -2
- data/src/cxx_supportlib/ResourceLocator.h +3 -21
- data/src/cxx_supportlib/SafeLibev.h +6 -6
- data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -3
- data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpServer.h +27 -15
- data/src/cxx_supportlib/ServerKit/Server.h +2 -2
- data/src/cxx_supportlib/SystemTools/README.md +1 -0
- data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +222 -0
- data/src/cxx_supportlib/SystemTools/UserDatabase.h +151 -0
- data/src/cxx_supportlib/Utils.cpp +1 -113
- data/src/cxx_supportlib/Utils.h +1 -29
- data/src/cxx_supportlib/Utils/MessagePassing.h +3 -3
- data/src/cxx_supportlib/WatchdogLauncher.h +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/case_conv.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/util.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +31 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +151 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +149 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +140 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +145 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +75 -41
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +139 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +98 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +42 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +45 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +349 -109
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +959 -108
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +198 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +424 -284
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +116 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +99 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +235 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +613 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +1139 -1216
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +27 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +26 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +27 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +61 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +462 -226
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +94 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +20 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +109 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +404 -77
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +212 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +94 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +151 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +398 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +287 -165
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +65 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +27 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +41 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{function.hpp → functional.hpp} +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +158 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +90 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +117 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +97 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +24 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +17 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +34 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +17 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +152 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +80 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +19 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +93 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +76 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +27 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +43 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +54 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/{task_io_service.ipp → scheduler.ipp} +167 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +17 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +46 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +36 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +39 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +43 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +129 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +15 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +12 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +241 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +36 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +42 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +17 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +29 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +26 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +37 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +86 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +9 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +10 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +101 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +20 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +13 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +15 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +25 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +15 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +99 -31
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +96 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +106 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +25 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +6 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +38 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +30 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service.hpp → scheduler.hpp} +57 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_operation.hpp → scheduler_operation.hpp} +19 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_thread_info.hpp → scheduler_thread_info.hpp} +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +37 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +54 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +9 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +144 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +45 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +29 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +29 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +74 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +74 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +413 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +343 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +172 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +228 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detached.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_spawn.hpp +878 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/detached.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/redirect_error.hpp +296 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/redirect_error.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +11 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +4 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +86 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +92 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +549 -119
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +109 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +388 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +7 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +347 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +176 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +341 -379
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +173 -343
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +559 -206
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +254 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +129 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +78 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +855 -94
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +358 -449
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +165 -418
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +878 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +386 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +6 -743
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +79 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +111 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +164 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +104 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +185 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +821 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +23 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +31 -99
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +313 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +5 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +16 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +28 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +55 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +28 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +76 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +28 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +85 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +2 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +218 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +187 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +263 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +3 -90
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +48 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +23 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +30 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +138 -46
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +646 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +17 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +326 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +63 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +109 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +94 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +328 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +1148 -247
- data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +88 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +736 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +41 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +422 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +32 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +114 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +85 -46
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +89 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +33 -62
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +27 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +10 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +2 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +22 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +40 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +4 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +27 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +8 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +86 -102
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +7 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +7 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +90 -85
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +3 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +4 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +209 -175
- data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +88 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +4 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +234 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +199 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +70 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +17 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +62 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +22 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +14 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +346 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +26 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +333 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +344 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +31 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +328 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +29 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +321 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/capabilities.hpp +50 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +688 -220
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +25 -21
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_arm.hpp +1 -18
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_atomic.hpp +9 -10
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sync.hpp +7 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +1 -36
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +108 -34
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +189 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +238 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +1111 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +840 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +1656 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +402 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +106 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +1301 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +142 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_arm.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_ppc.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_x86.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_extend.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +35 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_lockfree.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_cas_based.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +8 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_extending_cas_based.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +14 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +548 -126
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +134 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +36 -44
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +524 -96
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +14 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +27 -59
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +104 -57
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +268 -340
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +22 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +55 -80
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +88 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_type.hpp +30 -103
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/string_ops.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_cc.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +36 -36
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +0 -10
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +28 -30
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_units.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/process_cpu_clocks.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/config.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +26 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +30 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +32 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/diab.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +33 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +28 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +8 -142
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +14 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +37 -9
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +169 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/{posix_features.hpp → detail/posix_features.hpp} +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/{select_compiler_config.hpp → detail/select_compiler_config.hpp} +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/{select_platform_config.hpp → detail/select_platform_config.hpp} +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/{select_stdlib_config.hpp → detail/select_stdlib_config.hpp} +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/{suffix.hpp → detail/suffix.hpp} +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/helper_macros.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/aix.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/beos.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cray.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/haiku.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/hpux.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/irix.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/macos.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/qnxnto.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/solaris.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/symbian.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/vxworks.hpp +155 -91
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/zos.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/pragma_message.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +21 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/xlcpp_zos.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +279 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +58 -58
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +7 -28
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +57 -57
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +258 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +119 -134
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +55 -55
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +714 -282
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator_to_raw_pointer.hpp +4 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/min_max.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +37 -35
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +41 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +69 -16
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair_key_mapped_of_value.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/singleton.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +180 -116
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_functors.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +874 -572
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +497 -248
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -42
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +326 -246
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +122 -78
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +165 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +285 -110
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +35 -53
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +18 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +25 -25
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +24 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +194 -142
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +395 -421
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/float_functions.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/hash_float.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/limits.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/extensions.hpp +112 -16
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash.hpp +195 -7
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +53 -44
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +80 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/no_exceptions_support.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +233 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/cstdint.hpp +26 -16
- data/src/cxx_supportlib/vendor-modified/boost/date_time/adjust_functors.hpp +20 -34
- data/src/cxx_supportlib/vendor-modified/boost/date_time/c_local_time_adjustor.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting_locales.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_rules.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/filetime_functions.hpp +8 -94
- data/src/cxx_supportlib/vendor-modified/boost/date_time/format_date_parser.hpp +1 -8
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian_io.hpp +52 -52
- data/src/cxx_supportlib/vendor-modified/boost/date_time/int_adapter.hpp +14 -27
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/custom_time_zone.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/locale_config.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/microsec_time_clock.hpp +36 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period_formatter.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +10 -12
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +18 -10
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_serialize.hpp +65 -20
- data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +32 -23
- data/src/cxx_supportlib/vendor-modified/boost/date_time/string_parse_tree.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_resolution_traits.hpp +31 -8
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_split.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/tz_db_base.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +2 -264
- data/src/cxx_supportlib/vendor-modified/boost/enable_shared_from_this.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +38 -21
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +13 -47
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +508 -390
- data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/integer_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +11 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +7 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +108 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +147 -64
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +8 -10
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +7 -4
- data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +36 -92
- data/src/cxx_supportlib/vendor-modified/boost/make_shared.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +57 -3
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/sign.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +40 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +253 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +563 -4
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +324 -1071
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/is_sorted.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +59 -143
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +334 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +207 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/unique.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +1 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/{intrusive → move}/detail/pointer_element.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +19 -5
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/get_tag.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +85 -55
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/conversion_traits.hpp +0 -7
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/converter.hpp +4 -13
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +26 -7
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +98 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +17 -21
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +25 -6
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +499 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +126 -21
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm.h +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/cloudabi.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/android.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/workaround.h +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/cloudabi.h +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/ios.h +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw32.h +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw64.h +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_desktop.h +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_phone.h +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_runtime.h +13 -5
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_server.h +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_store.h +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_system.h +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_uwp.h +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +11 -9
- data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/poisson_distribution.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_on_sphere.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +56 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +37 -13
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +9 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/scoped_array.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/scoped_ptr.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/shared_array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/shared_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +333 -656
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +148 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +15 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +21 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +26 -26
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -16
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +11 -12
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +15 -16
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +135 -90
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +23 -23
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +140 -111
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +297 -49
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_bounded_queue.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_deque.hpp +5 -7
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_priority_queue.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_queue.hpp +5 -15
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +118 -183
- data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_redef_macros.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_undef_macros.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +62 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/log.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform_time.hpp +478 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +51 -85
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +11 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/detail/priority_executor_base.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduled_thread_pool.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduler.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduling_adaptor.hpp +15 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +320 -92
- data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +187 -112
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +137 -164
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +67 -37
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +15 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +65 -33
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +84 -158
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +143 -35
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_heap_alloc.hpp +32 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/shared_mutex.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_only.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +579 -589
- data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/token_iterator.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +7 -9
- data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +5 -8
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_const.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_cv.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_lvalue_reference.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_pointer.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_rvalue_reference.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_volatile.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/conditional.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_cv.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/decay.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_binary_operator.hpp +71 -14
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +370 -102
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +94 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +1177 -572
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/floating_point_promotion.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_equal_to.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater_equal.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less_equal.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +95 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_not_equal_to.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_promotion.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complex.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_constructible.hpp +12 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +20 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +16 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_list_constructible.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +14 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_signed.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_unsigned.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/promote.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_bounds.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv_ref.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_reference.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_identity.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -85
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +24 -14
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +18 -12
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4018 -4052
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +57 -97
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +56 -95
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +2150 -1777
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -38
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1630 -1420
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -37
- data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_iterate.hpp +14 -17
- data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +44 -20
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/weak_ptr.hpp +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +8 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +7 -1
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +4 -4
- metadata +201 -47
- data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +0 -96
- data/src/cxx_supportlib/MessageClient.h +0 -309
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/addressof.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/shared_ptr.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/weak_ptr.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/win_iocp_serial_port_service.hpp +0 -230
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.hpp +0 -156
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.ipp +0 -157
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/basic_context.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_service.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/basic_context.hpp +0 -436
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/context_service.hpp +0 -176
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_context_service.hpp +0 -396
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_operation.hpp +0 -526
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_stream_service.hpp +0 -573
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream.hpp +0 -503
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream_service.hpp +0 -186
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_service.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/to_raw_pointer.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/iterator.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex_assert.hpp +0 -724
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +0 -149
- data/src/cxx_supportlib/vendor-modified/boost/thread/v2/thread.hpp +0 -155
- data/src/cxx_supportlib/vendor-modified/boost/utility/empty_deleter.hpp +0 -43
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// basic_socket_acceptor.hpp
|
|
3
3
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
4
4
|
//
|
|
5
|
-
// Copyright (c) 2003-
|
|
5
|
+
// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
|
6
6
|
//
|
|
7
7
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
8
8
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
@@ -22,9 +22,27 @@
|
|
|
22
22
|
#include <boost/asio/detail/throw_error.hpp>
|
|
23
23
|
#include <boost/asio/detail/type_traits.hpp>
|
|
24
24
|
#include <boost/asio/error.hpp>
|
|
25
|
-
#include <boost/asio/socket_acceptor_service.hpp>
|
|
26
25
|
#include <boost/asio/socket_base.hpp>
|
|
27
26
|
|
|
27
|
+
#if defined(BOOST_ASIO_HAS_MOVE)
|
|
28
|
+
# include <utility>
|
|
29
|
+
#endif // defined(BOOST_ASIO_HAS_MOVE)
|
|
30
|
+
|
|
31
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
32
|
+
# include <boost/asio/socket_acceptor_service.hpp>
|
|
33
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
34
|
+
# if defined(BOOST_ASIO_WINDOWS_RUNTIME)
|
|
35
|
+
# include <boost/asio/detail/null_socket_service.hpp>
|
|
36
|
+
# define BOOST_ASIO_SVC_T detail::null_socket_service<Protocol>
|
|
37
|
+
# elif defined(BOOST_ASIO_HAS_IOCP)
|
|
38
|
+
# include <boost/asio/detail/win_iocp_socket_service.hpp>
|
|
39
|
+
# define BOOST_ASIO_SVC_T detail::win_iocp_socket_service<Protocol>
|
|
40
|
+
# else
|
|
41
|
+
# include <boost/asio/detail/reactive_socket_service.hpp>
|
|
42
|
+
# define BOOST_ASIO_SVC_T detail::reactive_socket_service<Protocol>
|
|
43
|
+
# endif
|
|
44
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
45
|
+
|
|
28
46
|
#include <boost/asio/detail/push_options.hpp>
|
|
29
47
|
|
|
30
48
|
namespace boost {
|
|
@@ -42,7 +60,7 @@ namespace asio {
|
|
|
42
60
|
* @par Example
|
|
43
61
|
* Opening a socket acceptor with the SO_REUSEADDR option enabled:
|
|
44
62
|
* @code
|
|
45
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
63
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
46
64
|
* boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port);
|
|
47
65
|
* acceptor.open(endpoint.protocol());
|
|
48
66
|
* acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
|
|
@@ -50,19 +68,22 @@ namespace asio {
|
|
|
50
68
|
* acceptor.listen();
|
|
51
69
|
* @endcode
|
|
52
70
|
*/
|
|
53
|
-
template <typename Protocol
|
|
54
|
-
|
|
71
|
+
template <typename Protocol
|
|
72
|
+
BOOST_ASIO_SVC_TPARAM_DEF1(= socket_acceptor_service<Protocol>)>
|
|
55
73
|
class basic_socket_acceptor
|
|
56
|
-
:
|
|
74
|
+
: BOOST_ASIO_SVC_ACCESS basic_io_object<BOOST_ASIO_SVC_T>,
|
|
57
75
|
public socket_base
|
|
58
76
|
{
|
|
59
77
|
public:
|
|
60
|
-
///
|
|
61
|
-
|
|
62
|
-
typedef typename SocketAcceptorService::native_handle_type native_type;
|
|
78
|
+
/// The type of the executor associated with the object.
|
|
79
|
+
typedef io_context::executor_type executor_type;
|
|
63
80
|
|
|
64
81
|
/// The native representation of an acceptor.
|
|
65
|
-
|
|
82
|
+
#if defined(GENERATING_DOCUMENTATION)
|
|
83
|
+
typedef implementation_defined native_handle_type;
|
|
84
|
+
#else
|
|
85
|
+
typedef typename BOOST_ASIO_SVC_T::native_handle_type native_handle_type;
|
|
86
|
+
#endif
|
|
66
87
|
|
|
67
88
|
/// The protocol type.
|
|
68
89
|
typedef Protocol protocol_type;
|
|
@@ -76,12 +97,12 @@ public:
|
|
|
76
97
|
* connections. The open() function must be called before the acceptor can
|
|
77
98
|
* accept new socket connections.
|
|
78
99
|
*
|
|
79
|
-
* @param
|
|
100
|
+
* @param io_context The io_context object that the acceptor will use to
|
|
80
101
|
* dispatch handlers for any asynchronous operations performed on the
|
|
81
102
|
* acceptor.
|
|
82
103
|
*/
|
|
83
|
-
explicit basic_socket_acceptor(boost::asio::
|
|
84
|
-
: basic_io_object<
|
|
104
|
+
explicit basic_socket_acceptor(boost::asio::io_context& io_context)
|
|
105
|
+
: basic_io_object<BOOST_ASIO_SVC_T>(io_context)
|
|
85
106
|
{
|
|
86
107
|
}
|
|
87
108
|
|
|
@@ -89,7 +110,7 @@ public:
|
|
|
89
110
|
/**
|
|
90
111
|
* This constructor creates an acceptor and automatically opens it.
|
|
91
112
|
*
|
|
92
|
-
* @param
|
|
113
|
+
* @param io_context The io_context object that the acceptor will use to
|
|
93
114
|
* dispatch handlers for any asynchronous operations performed on the
|
|
94
115
|
* acceptor.
|
|
95
116
|
*
|
|
@@ -97,9 +118,9 @@ public:
|
|
|
97
118
|
*
|
|
98
119
|
* @throws boost::system::system_error Thrown on failure.
|
|
99
120
|
*/
|
|
100
|
-
basic_socket_acceptor(boost::asio::
|
|
121
|
+
basic_socket_acceptor(boost::asio::io_context& io_context,
|
|
101
122
|
const protocol_type& protocol)
|
|
102
|
-
: basic_io_object<
|
|
123
|
+
: basic_io_object<BOOST_ASIO_SVC_T>(io_context)
|
|
103
124
|
{
|
|
104
125
|
boost::system::error_code ec;
|
|
105
126
|
this->get_service().open(this->get_implementation(), protocol, ec);
|
|
@@ -111,7 +132,7 @@ public:
|
|
|
111
132
|
* This constructor creates an acceptor and automatically opens it to listen
|
|
112
133
|
* for new connections on the specified endpoint.
|
|
113
134
|
*
|
|
114
|
-
* @param
|
|
135
|
+
* @param io_context The io_context object that the acceptor will use to
|
|
115
136
|
* dispatch handlers for any asynchronous operations performed on the
|
|
116
137
|
* acceptor.
|
|
117
138
|
*
|
|
@@ -125,7 +146,7 @@ public:
|
|
|
125
146
|
*
|
|
126
147
|
* @note This constructor is equivalent to the following code:
|
|
127
148
|
* @code
|
|
128
|
-
* basic_socket_acceptor<Protocol> acceptor(
|
|
149
|
+
* basic_socket_acceptor<Protocol> acceptor(io_context);
|
|
129
150
|
* acceptor.open(endpoint.protocol());
|
|
130
151
|
* if (reuse_addr)
|
|
131
152
|
* acceptor.set_option(socket_base::reuse_address(true));
|
|
@@ -133,9 +154,9 @@ public:
|
|
|
133
154
|
* acceptor.listen(listen_backlog);
|
|
134
155
|
* @endcode
|
|
135
156
|
*/
|
|
136
|
-
basic_socket_acceptor(boost::asio::
|
|
157
|
+
basic_socket_acceptor(boost::asio::io_context& io_context,
|
|
137
158
|
const endpoint_type& endpoint, bool reuse_addr = true)
|
|
138
|
-
: basic_io_object<
|
|
159
|
+
: basic_io_object<BOOST_ASIO_SVC_T>(io_context)
|
|
139
160
|
{
|
|
140
161
|
boost::system::error_code ec;
|
|
141
162
|
const protocol_type protocol = endpoint.protocol();
|
|
@@ -150,7 +171,7 @@ public:
|
|
|
150
171
|
this->get_service().bind(this->get_implementation(), endpoint, ec);
|
|
151
172
|
boost::asio::detail::throw_error(ec, "bind");
|
|
152
173
|
this->get_service().listen(this->get_implementation(),
|
|
153
|
-
socket_base::
|
|
174
|
+
socket_base::max_listen_connections, ec);
|
|
154
175
|
boost::asio::detail::throw_error(ec, "listen");
|
|
155
176
|
}
|
|
156
177
|
|
|
@@ -159,7 +180,7 @@ public:
|
|
|
159
180
|
* This constructor creates an acceptor object to hold an existing native
|
|
160
181
|
* acceptor.
|
|
161
182
|
*
|
|
162
|
-
* @param
|
|
183
|
+
* @param io_context The io_context object that the acceptor will use to
|
|
163
184
|
* dispatch handlers for any asynchronous operations performed on the
|
|
164
185
|
* acceptor.
|
|
165
186
|
*
|
|
@@ -169,9 +190,9 @@ public:
|
|
|
169
190
|
*
|
|
170
191
|
* @throws boost::system::system_error Thrown on failure.
|
|
171
192
|
*/
|
|
172
|
-
basic_socket_acceptor(boost::asio::
|
|
193
|
+
basic_socket_acceptor(boost::asio::io_context& io_context,
|
|
173
194
|
const protocol_type& protocol, const native_handle_type& native_acceptor)
|
|
174
|
-
: basic_io_object<
|
|
195
|
+
: basic_io_object<BOOST_ASIO_SVC_T>(io_context)
|
|
175
196
|
{
|
|
176
197
|
boost::system::error_code ec;
|
|
177
198
|
this->get_service().assign(this->get_implementation(),
|
|
@@ -188,11 +209,10 @@ public:
|
|
|
188
209
|
* will occur.
|
|
189
210
|
*
|
|
190
211
|
* @note Following the move, the moved-from object is in the same state as if
|
|
191
|
-
* constructed using the @c basic_socket_acceptor(
|
|
212
|
+
* constructed using the @c basic_socket_acceptor(io_context&) constructor.
|
|
192
213
|
*/
|
|
193
214
|
basic_socket_acceptor(basic_socket_acceptor&& other)
|
|
194
|
-
: basic_io_object<
|
|
195
|
-
BOOST_ASIO_MOVE_CAST(basic_socket_acceptor)(other))
|
|
215
|
+
: basic_io_object<BOOST_ASIO_SVC_T>(std::move(other))
|
|
196
216
|
{
|
|
197
217
|
}
|
|
198
218
|
|
|
@@ -204,17 +224,16 @@ public:
|
|
|
204
224
|
* will occur.
|
|
205
225
|
*
|
|
206
226
|
* @note Following the move, the moved-from object is in the same state as if
|
|
207
|
-
* constructed using the @c basic_socket_acceptor(
|
|
227
|
+
* constructed using the @c basic_socket_acceptor(io_context&) constructor.
|
|
208
228
|
*/
|
|
209
229
|
basic_socket_acceptor& operator=(basic_socket_acceptor&& other)
|
|
210
230
|
{
|
|
211
|
-
basic_io_object<
|
|
212
|
-
BOOST_ASIO_MOVE_CAST(basic_socket_acceptor)(other));
|
|
231
|
+
basic_io_object<BOOST_ASIO_SVC_T>::operator=(std::move(other));
|
|
213
232
|
return *this;
|
|
214
233
|
}
|
|
215
234
|
|
|
216
235
|
// All socket acceptors have access to each other's implementations.
|
|
217
|
-
template <typename Protocol1
|
|
236
|
+
template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
|
|
218
237
|
friend class basic_socket_acceptor;
|
|
219
238
|
|
|
220
239
|
/// Move-construct a basic_socket_acceptor from an acceptor of another
|
|
@@ -226,13 +245,13 @@ public:
|
|
|
226
245
|
* will occur.
|
|
227
246
|
*
|
|
228
247
|
* @note Following the move, the moved-from object is in the same state as if
|
|
229
|
-
* constructed using the @c basic_socket(
|
|
248
|
+
* constructed using the @c basic_socket(io_context&) constructor.
|
|
230
249
|
*/
|
|
231
|
-
template <typename Protocol1
|
|
250
|
+
template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
|
|
232
251
|
basic_socket_acceptor(
|
|
233
|
-
basic_socket_acceptor<Protocol1
|
|
252
|
+
basic_socket_acceptor<Protocol1 BOOST_ASIO_SVC_TARG1>&& other,
|
|
234
253
|
typename enable_if<is_convertible<Protocol1, Protocol>::value>::type* = 0)
|
|
235
|
-
: basic_io_object<
|
|
254
|
+
: basic_io_object<BOOST_ASIO_SVC_T>(
|
|
236
255
|
other.get_service(), other.get_implementation())
|
|
237
256
|
{
|
|
238
257
|
}
|
|
@@ -246,21 +265,69 @@ public:
|
|
|
246
265
|
* will occur.
|
|
247
266
|
*
|
|
248
267
|
* @note Following the move, the moved-from object is in the same state as if
|
|
249
|
-
* constructed using the @c basic_socket(
|
|
268
|
+
* constructed using the @c basic_socket(io_context&) constructor.
|
|
250
269
|
*/
|
|
251
|
-
template <typename Protocol1
|
|
270
|
+
template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
|
|
252
271
|
typename enable_if<is_convertible<Protocol1, Protocol>::value,
|
|
253
272
|
basic_socket_acceptor>::type& operator=(
|
|
254
|
-
basic_socket_acceptor<Protocol1
|
|
273
|
+
basic_socket_acceptor<Protocol1 BOOST_ASIO_SVC_TARG1>&& other)
|
|
255
274
|
{
|
|
256
|
-
basic_socket_acceptor tmp(
|
|
257
|
-
|
|
258
|
-
basic_io_object<SocketAcceptorService>::operator=(
|
|
259
|
-
BOOST_ASIO_MOVE_CAST(basic_socket_acceptor)(tmp));
|
|
275
|
+
basic_socket_acceptor tmp(std::move(other));
|
|
276
|
+
basic_io_object<BOOST_ASIO_SVC_T>::operator=(std::move(tmp));
|
|
260
277
|
return *this;
|
|
261
278
|
}
|
|
262
279
|
#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
|
263
280
|
|
|
281
|
+
/// Destroys the acceptor.
|
|
282
|
+
/**
|
|
283
|
+
* This function destroys the acceptor, cancelling any outstanding
|
|
284
|
+
* asynchronous operations associated with the acceptor as if by calling
|
|
285
|
+
* @c cancel.
|
|
286
|
+
*/
|
|
287
|
+
~basic_socket_acceptor()
|
|
288
|
+
{
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
292
|
+
// These functions are provided by basic_io_object<>.
|
|
293
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
294
|
+
#if !defined(BOOST_ASIO_NO_DEPRECATED)
|
|
295
|
+
/// (Deprecated: Use get_executor().) Get the io_context associated with the
|
|
296
|
+
/// object.
|
|
297
|
+
/**
|
|
298
|
+
* This function may be used to obtain the io_context object that the I/O
|
|
299
|
+
* object uses to dispatch handlers for asynchronous operations.
|
|
300
|
+
*
|
|
301
|
+
* @return A reference to the io_context object that the I/O object will use
|
|
302
|
+
* to dispatch handlers. Ownership is not transferred to the caller.
|
|
303
|
+
*/
|
|
304
|
+
boost::asio::io_context& get_io_context()
|
|
305
|
+
{
|
|
306
|
+
return basic_io_object<BOOST_ASIO_SVC_T>::get_io_context();
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/// (Deprecated: Use get_executor().) Get the io_context associated with the
|
|
310
|
+
/// object.
|
|
311
|
+
/**
|
|
312
|
+
* This function may be used to obtain the io_context object that the I/O
|
|
313
|
+
* object uses to dispatch handlers for asynchronous operations.
|
|
314
|
+
*
|
|
315
|
+
* @return A reference to the io_context object that the I/O object will use
|
|
316
|
+
* to dispatch handlers. Ownership is not transferred to the caller.
|
|
317
|
+
*/
|
|
318
|
+
boost::asio::io_context& get_io_service()
|
|
319
|
+
{
|
|
320
|
+
return basic_io_object<BOOST_ASIO_SVC_T>::get_io_service();
|
|
321
|
+
}
|
|
322
|
+
#endif // !defined(BOOST_ASIO_NO_DEPRECATED)
|
|
323
|
+
|
|
324
|
+
/// Get the executor associated with the object.
|
|
325
|
+
executor_type get_executor() BOOST_ASIO_NOEXCEPT
|
|
326
|
+
{
|
|
327
|
+
return basic_io_object<BOOST_ASIO_SVC_T>::get_executor();
|
|
328
|
+
}
|
|
329
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
330
|
+
|
|
264
331
|
/// Open the acceptor using the specified protocol.
|
|
265
332
|
/**
|
|
266
333
|
* This function opens the socket acceptor so that it will use the specified
|
|
@@ -272,7 +339,7 @@ public:
|
|
|
272
339
|
*
|
|
273
340
|
* @par Example
|
|
274
341
|
* @code
|
|
275
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
342
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
276
343
|
* acceptor.open(boost::asio::ip::tcp::v4());
|
|
277
344
|
* @endcode
|
|
278
345
|
*/
|
|
@@ -294,7 +361,7 @@ public:
|
|
|
294
361
|
*
|
|
295
362
|
* @par Example
|
|
296
363
|
* @code
|
|
297
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
364
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
298
365
|
* boost::system::error_code ec;
|
|
299
366
|
* acceptor.open(boost::asio::ip::tcp::v4(), ec);
|
|
300
367
|
* if (ec)
|
|
@@ -303,10 +370,11 @@ public:
|
|
|
303
370
|
* }
|
|
304
371
|
* @endcode
|
|
305
372
|
*/
|
|
306
|
-
|
|
373
|
+
BOOST_ASIO_SYNC_OP_VOID open(const protocol_type& protocol,
|
|
307
374
|
boost::system::error_code& ec)
|
|
308
375
|
{
|
|
309
|
-
|
|
376
|
+
this->get_service().open(this->get_implementation(), protocol, ec);
|
|
377
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
310
378
|
}
|
|
311
379
|
|
|
312
380
|
/// Assigns an existing native acceptor to the acceptor.
|
|
@@ -338,11 +406,12 @@ public:
|
|
|
338
406
|
*
|
|
339
407
|
* @param ec Set to indicate what error occurred, if any.
|
|
340
408
|
*/
|
|
341
|
-
|
|
409
|
+
BOOST_ASIO_SYNC_OP_VOID assign(const protocol_type& protocol,
|
|
342
410
|
const native_handle_type& native_acceptor, boost::system::error_code& ec)
|
|
343
411
|
{
|
|
344
|
-
|
|
412
|
+
this->get_service().assign(this->get_implementation(),
|
|
345
413
|
protocol, native_acceptor, ec);
|
|
414
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
346
415
|
}
|
|
347
416
|
|
|
348
417
|
/// Determine whether the acceptor is open.
|
|
@@ -363,7 +432,7 @@ public:
|
|
|
363
432
|
*
|
|
364
433
|
* @par Example
|
|
365
434
|
* @code
|
|
366
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
435
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
367
436
|
* boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 12345);
|
|
368
437
|
* acceptor.open(endpoint.protocol());
|
|
369
438
|
* acceptor.bind(endpoint);
|
|
@@ -388,7 +457,7 @@ public:
|
|
|
388
457
|
*
|
|
389
458
|
* @par Example
|
|
390
459
|
* @code
|
|
391
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
460
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
392
461
|
* boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 12345);
|
|
393
462
|
* acceptor.open(endpoint.protocol());
|
|
394
463
|
* boost::system::error_code ec;
|
|
@@ -399,10 +468,11 @@ public:
|
|
|
399
468
|
* }
|
|
400
469
|
* @endcode
|
|
401
470
|
*/
|
|
402
|
-
|
|
471
|
+
BOOST_ASIO_SYNC_OP_VOID bind(const endpoint_type& endpoint,
|
|
403
472
|
boost::system::error_code& ec)
|
|
404
473
|
{
|
|
405
|
-
|
|
474
|
+
this->get_service().bind(this->get_implementation(), endpoint, ec);
|
|
475
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
406
476
|
}
|
|
407
477
|
|
|
408
478
|
/// Place the acceptor into the state where it will listen for new
|
|
@@ -415,7 +485,7 @@ public:
|
|
|
415
485
|
*
|
|
416
486
|
* @throws boost::system::system_error Thrown on failure.
|
|
417
487
|
*/
|
|
418
|
-
void listen(int backlog = socket_base::
|
|
488
|
+
void listen(int backlog = socket_base::max_listen_connections)
|
|
419
489
|
{
|
|
420
490
|
boost::system::error_code ec;
|
|
421
491
|
this->get_service().listen(this->get_implementation(), backlog, ec);
|
|
@@ -434,19 +504,20 @@ public:
|
|
|
434
504
|
*
|
|
435
505
|
* @par Example
|
|
436
506
|
* @code
|
|
437
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
507
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
438
508
|
* ...
|
|
439
509
|
* boost::system::error_code ec;
|
|
440
|
-
* acceptor.listen(boost::asio::socket_base::
|
|
510
|
+
* acceptor.listen(boost::asio::socket_base::max_listen_connections, ec);
|
|
441
511
|
* if (ec)
|
|
442
512
|
* {
|
|
443
513
|
* // An error occurred.
|
|
444
514
|
* }
|
|
445
515
|
* @endcode
|
|
446
516
|
*/
|
|
447
|
-
|
|
517
|
+
BOOST_ASIO_SYNC_OP_VOID listen(int backlog, boost::system::error_code& ec)
|
|
448
518
|
{
|
|
449
|
-
|
|
519
|
+
this->get_service().listen(this->get_implementation(), backlog, ec);
|
|
520
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
450
521
|
}
|
|
451
522
|
|
|
452
523
|
/// Close the acceptor.
|
|
@@ -478,7 +549,7 @@ public:
|
|
|
478
549
|
*
|
|
479
550
|
* @par Example
|
|
480
551
|
* @code
|
|
481
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
552
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
482
553
|
* ...
|
|
483
554
|
* boost::system::error_code ec;
|
|
484
555
|
* acceptor.close(ec);
|
|
@@ -488,20 +559,62 @@ public:
|
|
|
488
559
|
* }
|
|
489
560
|
* @endcode
|
|
490
561
|
*/
|
|
491
|
-
|
|
562
|
+
BOOST_ASIO_SYNC_OP_VOID close(boost::system::error_code& ec)
|
|
492
563
|
{
|
|
493
|
-
|
|
564
|
+
this->get_service().close(this->get_implementation(), ec);
|
|
565
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
494
566
|
}
|
|
495
567
|
|
|
496
|
-
///
|
|
568
|
+
/// Release ownership of the underlying native acceptor.
|
|
497
569
|
/**
|
|
498
|
-
* This function
|
|
499
|
-
*
|
|
500
|
-
*
|
|
570
|
+
* This function causes all outstanding asynchronous accept operations to
|
|
571
|
+
* finish immediately, and the handlers for cancelled operations will be
|
|
572
|
+
* passed the boost::asio::error::operation_aborted error. Ownership of the
|
|
573
|
+
* native acceptor is then transferred to the caller.
|
|
574
|
+
*
|
|
575
|
+
* @throws boost::system::system_error Thrown on failure.
|
|
576
|
+
*
|
|
577
|
+
* @note This function is unsupported on Windows versions prior to Windows
|
|
578
|
+
* 8.1, and will fail with boost::asio::error::operation_not_supported on
|
|
579
|
+
* these platforms.
|
|
501
580
|
*/
|
|
502
|
-
|
|
581
|
+
#if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
|
|
582
|
+
&& (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603)
|
|
583
|
+
__declspec(deprecated("This function always fails with "
|
|
584
|
+
"operation_not_supported when used on Windows versions "
|
|
585
|
+
"prior to Windows 8.1."))
|
|
586
|
+
#endif
|
|
587
|
+
native_handle_type release()
|
|
503
588
|
{
|
|
504
|
-
|
|
589
|
+
boost::system::error_code ec;
|
|
590
|
+
native_handle_type s = this->get_service().release(
|
|
591
|
+
this->get_implementation(), ec);
|
|
592
|
+
boost::asio::detail::throw_error(ec, "release");
|
|
593
|
+
return s;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
/// Release ownership of the underlying native acceptor.
|
|
597
|
+
/**
|
|
598
|
+
* This function causes all outstanding asynchronous accept operations to
|
|
599
|
+
* finish immediately, and the handlers for cancelled operations will be
|
|
600
|
+
* passed the boost::asio::error::operation_aborted error. Ownership of the
|
|
601
|
+
* native acceptor is then transferred to the caller.
|
|
602
|
+
*
|
|
603
|
+
* @param ec Set to indicate what error occurred, if any.
|
|
604
|
+
*
|
|
605
|
+
* @note This function is unsupported on Windows versions prior to Windows
|
|
606
|
+
* 8.1, and will fail with boost::asio::error::operation_not_supported on
|
|
607
|
+
* these platforms.
|
|
608
|
+
*/
|
|
609
|
+
#if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
|
|
610
|
+
&& (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603)
|
|
611
|
+
__declspec(deprecated("This function always fails with "
|
|
612
|
+
"operation_not_supported when used on Windows versions "
|
|
613
|
+
"prior to Windows 8.1."))
|
|
614
|
+
#endif
|
|
615
|
+
native_handle_type release(boost::system::error_code& ec)
|
|
616
|
+
{
|
|
617
|
+
return this->get_service().release(this->get_implementation(), ec);
|
|
505
618
|
}
|
|
506
619
|
|
|
507
620
|
/// Get the native acceptor representation.
|
|
@@ -538,9 +651,10 @@ public:
|
|
|
538
651
|
*
|
|
539
652
|
* @param ec Set to indicate what error occurred, if any.
|
|
540
653
|
*/
|
|
541
|
-
|
|
654
|
+
BOOST_ASIO_SYNC_OP_VOID cancel(boost::system::error_code& ec)
|
|
542
655
|
{
|
|
543
|
-
|
|
656
|
+
this->get_service().cancel(this->get_implementation(), ec);
|
|
657
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
544
658
|
}
|
|
545
659
|
|
|
546
660
|
/// Set an option on the acceptor.
|
|
@@ -558,7 +672,7 @@ public:
|
|
|
558
672
|
* @par Example
|
|
559
673
|
* Setting the SOL_SOCKET/SO_REUSEADDR option:
|
|
560
674
|
* @code
|
|
561
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
675
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
562
676
|
* ...
|
|
563
677
|
* boost::asio::ip::tcp::acceptor::reuse_address option(true);
|
|
564
678
|
* acceptor.set_option(option);
|
|
@@ -587,7 +701,7 @@ public:
|
|
|
587
701
|
* @par Example
|
|
588
702
|
* Setting the SOL_SOCKET/SO_REUSEADDR option:
|
|
589
703
|
* @code
|
|
590
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
704
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
591
705
|
* ...
|
|
592
706
|
* boost::asio::ip::tcp::acceptor::reuse_address option(true);
|
|
593
707
|
* boost::system::error_code ec;
|
|
@@ -599,11 +713,11 @@ public:
|
|
|
599
713
|
* @endcode
|
|
600
714
|
*/
|
|
601
715
|
template <typename SettableSocketOption>
|
|
602
|
-
|
|
716
|
+
BOOST_ASIO_SYNC_OP_VOID set_option(const SettableSocketOption& option,
|
|
603
717
|
boost::system::error_code& ec)
|
|
604
718
|
{
|
|
605
|
-
|
|
606
|
-
|
|
719
|
+
this->get_service().set_option(this->get_implementation(), option, ec);
|
|
720
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
607
721
|
}
|
|
608
722
|
|
|
609
723
|
/// Get an option from the acceptor.
|
|
@@ -621,7 +735,7 @@ public:
|
|
|
621
735
|
* @par Example
|
|
622
736
|
* Getting the value of the SOL_SOCKET/SO_REUSEADDR option:
|
|
623
737
|
* @code
|
|
624
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
738
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
625
739
|
* ...
|
|
626
740
|
* boost::asio::ip::tcp::acceptor::reuse_address option;
|
|
627
741
|
* acceptor.get_option(option);
|
|
@@ -629,7 +743,7 @@ public:
|
|
|
629
743
|
* @endcode
|
|
630
744
|
*/
|
|
631
745
|
template <typename GettableSocketOption>
|
|
632
|
-
void get_option(GettableSocketOption& option)
|
|
746
|
+
void get_option(GettableSocketOption& option) const
|
|
633
747
|
{
|
|
634
748
|
boost::system::error_code ec;
|
|
635
749
|
this->get_service().get_option(this->get_implementation(), option, ec);
|
|
@@ -651,7 +765,7 @@ public:
|
|
|
651
765
|
* @par Example
|
|
652
766
|
* Getting the value of the SOL_SOCKET/SO_REUSEADDR option:
|
|
653
767
|
* @code
|
|
654
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
768
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
655
769
|
* ...
|
|
656
770
|
* boost::asio::ip::tcp::acceptor::reuse_address option;
|
|
657
771
|
* boost::system::error_code ec;
|
|
@@ -664,11 +778,11 @@ public:
|
|
|
664
778
|
* @endcode
|
|
665
779
|
*/
|
|
666
780
|
template <typename GettableSocketOption>
|
|
667
|
-
|
|
668
|
-
boost::system::error_code& ec)
|
|
781
|
+
BOOST_ASIO_SYNC_OP_VOID get_option(GettableSocketOption& option,
|
|
782
|
+
boost::system::error_code& ec) const
|
|
669
783
|
{
|
|
670
|
-
|
|
671
|
-
|
|
784
|
+
this->get_service().get_option(this->get_implementation(), option, ec);
|
|
785
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
672
786
|
}
|
|
673
787
|
|
|
674
788
|
/// Perform an IO control command on the acceptor.
|
|
@@ -685,7 +799,7 @@ public:
|
|
|
685
799
|
* @par Example
|
|
686
800
|
* Getting the number of bytes ready to read:
|
|
687
801
|
* @code
|
|
688
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
802
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
689
803
|
* ...
|
|
690
804
|
* boost::asio::ip::tcp::acceptor::non_blocking_io command(true);
|
|
691
805
|
* socket.io_control(command);
|
|
@@ -713,7 +827,7 @@ public:
|
|
|
713
827
|
* @par Example
|
|
714
828
|
* Getting the number of bytes ready to read:
|
|
715
829
|
* @code
|
|
716
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
830
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
717
831
|
* ...
|
|
718
832
|
* boost::asio::ip::tcp::acceptor::non_blocking_io command(true);
|
|
719
833
|
* boost::system::error_code ec;
|
|
@@ -725,11 +839,11 @@ public:
|
|
|
725
839
|
* @endcode
|
|
726
840
|
*/
|
|
727
841
|
template <typename IoControlCommand>
|
|
728
|
-
|
|
842
|
+
BOOST_ASIO_SYNC_OP_VOID io_control(IoControlCommand& command,
|
|
729
843
|
boost::system::error_code& ec)
|
|
730
844
|
{
|
|
731
|
-
|
|
732
|
-
|
|
845
|
+
this->get_service().io_control(this->get_implementation(), command, ec);
|
|
846
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
733
847
|
}
|
|
734
848
|
|
|
735
849
|
/// Gets the non-blocking mode of the acceptor.
|
|
@@ -781,11 +895,11 @@ public:
|
|
|
781
895
|
* operations. Asynchronous operations will never fail with the error
|
|
782
896
|
* boost::asio::error::would_block.
|
|
783
897
|
*/
|
|
784
|
-
|
|
898
|
+
BOOST_ASIO_SYNC_OP_VOID non_blocking(
|
|
785
899
|
bool mode, boost::system::error_code& ec)
|
|
786
900
|
{
|
|
787
|
-
|
|
788
|
-
|
|
901
|
+
this->get_service().non_blocking(this->get_implementation(), mode, ec);
|
|
902
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
789
903
|
}
|
|
790
904
|
|
|
791
905
|
/// Gets the non-blocking mode of the native acceptor implementation.
|
|
@@ -845,11 +959,12 @@ public:
|
|
|
845
959
|
* function fails with boost::asio::error::invalid_argument, as the
|
|
846
960
|
* combination does not make sense.
|
|
847
961
|
*/
|
|
848
|
-
|
|
962
|
+
BOOST_ASIO_SYNC_OP_VOID native_non_blocking(
|
|
849
963
|
bool mode, boost::system::error_code& ec)
|
|
850
964
|
{
|
|
851
|
-
|
|
965
|
+
this->get_service().native_non_blocking(
|
|
852
966
|
this->get_implementation(), mode, ec);
|
|
967
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
853
968
|
}
|
|
854
969
|
|
|
855
970
|
/// Get the local endpoint of the acceptor.
|
|
@@ -862,7 +977,7 @@ public:
|
|
|
862
977
|
*
|
|
863
978
|
* @par Example
|
|
864
979
|
* @code
|
|
865
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
980
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
866
981
|
* ...
|
|
867
982
|
* boost::asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint();
|
|
868
983
|
* @endcode
|
|
@@ -888,7 +1003,7 @@ public:
|
|
|
888
1003
|
*
|
|
889
1004
|
* @par Example
|
|
890
1005
|
* @code
|
|
891
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
1006
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
892
1007
|
* ...
|
|
893
1008
|
* boost::system::error_code ec;
|
|
894
1009
|
* boost::asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(ec);
|
|
@@ -903,6 +1018,116 @@ public:
|
|
|
903
1018
|
return this->get_service().local_endpoint(this->get_implementation(), ec);
|
|
904
1019
|
}
|
|
905
1020
|
|
|
1021
|
+
/// Wait for the acceptor to become ready to read, ready to write, or to have
|
|
1022
|
+
/// pending error conditions.
|
|
1023
|
+
/**
|
|
1024
|
+
* This function is used to perform a blocking wait for an acceptor to enter
|
|
1025
|
+
* a ready to read, write or error condition state.
|
|
1026
|
+
*
|
|
1027
|
+
* @param w Specifies the desired acceptor state.
|
|
1028
|
+
*
|
|
1029
|
+
* @par Example
|
|
1030
|
+
* Waiting for an acceptor to become readable.
|
|
1031
|
+
* @code
|
|
1032
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1033
|
+
* ...
|
|
1034
|
+
* acceptor.wait(boost::asio::ip::tcp::acceptor::wait_read);
|
|
1035
|
+
* @endcode
|
|
1036
|
+
*/
|
|
1037
|
+
void wait(wait_type w)
|
|
1038
|
+
{
|
|
1039
|
+
boost::system::error_code ec;
|
|
1040
|
+
this->get_service().wait(this->get_implementation(), w, ec);
|
|
1041
|
+
boost::asio::detail::throw_error(ec, "wait");
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
/// Wait for the acceptor to become ready to read, ready to write, or to have
|
|
1045
|
+
/// pending error conditions.
|
|
1046
|
+
/**
|
|
1047
|
+
* This function is used to perform a blocking wait for an acceptor to enter
|
|
1048
|
+
* a ready to read, write or error condition state.
|
|
1049
|
+
*
|
|
1050
|
+
* @param w Specifies the desired acceptor state.
|
|
1051
|
+
*
|
|
1052
|
+
* @param ec Set to indicate what error occurred, if any.
|
|
1053
|
+
*
|
|
1054
|
+
* @par Example
|
|
1055
|
+
* Waiting for an acceptor to become readable.
|
|
1056
|
+
* @code
|
|
1057
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1058
|
+
* ...
|
|
1059
|
+
* boost::system::error_code ec;
|
|
1060
|
+
* acceptor.wait(boost::asio::ip::tcp::acceptor::wait_read, ec);
|
|
1061
|
+
* @endcode
|
|
1062
|
+
*/
|
|
1063
|
+
BOOST_ASIO_SYNC_OP_VOID wait(wait_type w, boost::system::error_code& ec)
|
|
1064
|
+
{
|
|
1065
|
+
this->get_service().wait(this->get_implementation(), w, ec);
|
|
1066
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
/// Asynchronously wait for the acceptor to become ready to read, ready to
|
|
1070
|
+
/// write, or to have pending error conditions.
|
|
1071
|
+
/**
|
|
1072
|
+
* This function is used to perform an asynchronous wait for an acceptor to
|
|
1073
|
+
* enter a ready to read, write or error condition state.
|
|
1074
|
+
*
|
|
1075
|
+
* @param w Specifies the desired acceptor state.
|
|
1076
|
+
*
|
|
1077
|
+
* @param handler The handler to be called when the wait operation completes.
|
|
1078
|
+
* Copies will be made of the handler as required. The function signature of
|
|
1079
|
+
* the handler must be:
|
|
1080
|
+
* @code void handler(
|
|
1081
|
+
* const boost::system::error_code& error // Result of operation
|
|
1082
|
+
* ); @endcode
|
|
1083
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
|
1084
|
+
* not, the handler will not be invoked from within this function. Invocation
|
|
1085
|
+
* of the handler will be performed in a manner equivalent to using
|
|
1086
|
+
* boost::asio::io_context::post().
|
|
1087
|
+
*
|
|
1088
|
+
* @par Example
|
|
1089
|
+
* @code
|
|
1090
|
+
* void wait_handler(const boost::system::error_code& error)
|
|
1091
|
+
* {
|
|
1092
|
+
* if (!error)
|
|
1093
|
+
* {
|
|
1094
|
+
* // Wait succeeded.
|
|
1095
|
+
* }
|
|
1096
|
+
* }
|
|
1097
|
+
*
|
|
1098
|
+
* ...
|
|
1099
|
+
*
|
|
1100
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1101
|
+
* ...
|
|
1102
|
+
* acceptor.async_wait(
|
|
1103
|
+
* boost::asio::ip::tcp::acceptor::wait_read,
|
|
1104
|
+
* wait_handler);
|
|
1105
|
+
* @endcode
|
|
1106
|
+
*/
|
|
1107
|
+
template <typename WaitHandler>
|
|
1108
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(WaitHandler,
|
|
1109
|
+
void (boost::system::error_code))
|
|
1110
|
+
async_wait(wait_type w, BOOST_ASIO_MOVE_ARG(WaitHandler) handler)
|
|
1111
|
+
{
|
|
1112
|
+
// If you get an error on the following line it means that your handler does
|
|
1113
|
+
// not meet the documented type requirements for a WaitHandler.
|
|
1114
|
+
BOOST_ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check;
|
|
1115
|
+
|
|
1116
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1117
|
+
return this->get_service().async_wait(this->get_implementation(),
|
|
1118
|
+
w, BOOST_ASIO_MOVE_CAST(WaitHandler)(handler));
|
|
1119
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1120
|
+
async_completion<WaitHandler,
|
|
1121
|
+
void (boost::system::error_code)> init(handler);
|
|
1122
|
+
|
|
1123
|
+
this->get_service().async_wait(this->get_implementation(),
|
|
1124
|
+
w, init.completion_handler);
|
|
1125
|
+
|
|
1126
|
+
return init.result.get();
|
|
1127
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1128
|
+
}
|
|
1129
|
+
|
|
1130
|
+
#if !defined(BOOST_ASIO_NO_EXTENSIONS)
|
|
906
1131
|
/// Accept a new connection.
|
|
907
1132
|
/**
|
|
908
1133
|
* This function is used to accept a new connection from a peer into the
|
|
@@ -915,15 +1140,21 @@ public:
|
|
|
915
1140
|
*
|
|
916
1141
|
* @par Example
|
|
917
1142
|
* @code
|
|
918
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
1143
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
919
1144
|
* ...
|
|
920
|
-
* boost::asio::ip::tcp::socket socket(
|
|
1145
|
+
* boost::asio::ip::tcp::socket socket(io_context);
|
|
921
1146
|
* acceptor.accept(socket);
|
|
922
1147
|
* @endcode
|
|
923
1148
|
*/
|
|
1149
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
924
1150
|
template <typename Protocol1, typename SocketService>
|
|
925
1151
|
void accept(basic_socket<Protocol1, SocketService>& peer,
|
|
926
1152
|
typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
|
|
1153
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1154
|
+
template <typename Protocol1>
|
|
1155
|
+
void accept(basic_socket<Protocol1>& peer,
|
|
1156
|
+
typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
|
|
1157
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
927
1158
|
{
|
|
928
1159
|
boost::system::error_code ec;
|
|
929
1160
|
this->get_service().accept(this->get_implementation(),
|
|
@@ -943,9 +1174,9 @@ public:
|
|
|
943
1174
|
*
|
|
944
1175
|
* @par Example
|
|
945
1176
|
* @code
|
|
946
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
1177
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
947
1178
|
* ...
|
|
948
|
-
* boost::asio::ip::tcp::
|
|
1179
|
+
* boost::asio::ip::tcp::socket socket(io_context);
|
|
949
1180
|
* boost::system::error_code ec;
|
|
950
1181
|
* acceptor.accept(socket, ec);
|
|
951
1182
|
* if (ec)
|
|
@@ -954,14 +1185,22 @@ public:
|
|
|
954
1185
|
* }
|
|
955
1186
|
* @endcode
|
|
956
1187
|
*/
|
|
1188
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
957
1189
|
template <typename Protocol1, typename SocketService>
|
|
958
|
-
|
|
1190
|
+
BOOST_ASIO_SYNC_OP_VOID accept(
|
|
959
1191
|
basic_socket<Protocol1, SocketService>& peer,
|
|
960
1192
|
boost::system::error_code& ec,
|
|
961
1193
|
typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
|
|
1194
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1195
|
+
template <typename Protocol1>
|
|
1196
|
+
BOOST_ASIO_SYNC_OP_VOID accept(
|
|
1197
|
+
basic_socket<Protocol1>& peer, boost::system::error_code& ec,
|
|
1198
|
+
typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
|
|
1199
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
962
1200
|
{
|
|
963
|
-
|
|
1201
|
+
this->get_service().accept(this->get_implementation(),
|
|
964
1202
|
peer, static_cast<endpoint_type*>(0), ec);
|
|
1203
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
965
1204
|
}
|
|
966
1205
|
|
|
967
1206
|
/// Start an asynchronous accept.
|
|
@@ -982,7 +1221,7 @@ public:
|
|
|
982
1221
|
* Regardless of whether the asynchronous operation completes immediately or
|
|
983
1222
|
* not, the handler will not be invoked from within this function. Invocation
|
|
984
1223
|
* of the handler will be performed in a manner equivalent to using
|
|
985
|
-
* boost::asio::
|
|
1224
|
+
* boost::asio::io_context::post().
|
|
986
1225
|
*
|
|
987
1226
|
* @par Example
|
|
988
1227
|
* @code
|
|
@@ -996,26 +1235,45 @@ public:
|
|
|
996
1235
|
*
|
|
997
1236
|
* ...
|
|
998
1237
|
*
|
|
999
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
1238
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1000
1239
|
* ...
|
|
1001
|
-
* boost::asio::ip::tcp::socket socket(
|
|
1240
|
+
* boost::asio::ip::tcp::socket socket(io_context);
|
|
1002
1241
|
* acceptor.async_accept(socket, accept_handler);
|
|
1003
1242
|
* @endcode
|
|
1004
1243
|
*/
|
|
1244
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1005
1245
|
template <typename Protocol1, typename SocketService, typename AcceptHandler>
|
|
1006
1246
|
BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
|
|
1007
1247
|
void (boost::system::error_code))
|
|
1008
1248
|
async_accept(basic_socket<Protocol1, SocketService>& peer,
|
|
1009
1249
|
BOOST_ASIO_MOVE_ARG(AcceptHandler) handler,
|
|
1010
1250
|
typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
|
|
1251
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1252
|
+
template <typename Protocol1, typename AcceptHandler>
|
|
1253
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
|
|
1254
|
+
void (boost::system::error_code))
|
|
1255
|
+
async_accept(basic_socket<Protocol1>& peer,
|
|
1256
|
+
BOOST_ASIO_MOVE_ARG(AcceptHandler) handler,
|
|
1257
|
+
typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
|
|
1258
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1011
1259
|
{
|
|
1012
1260
|
// If you get an error on the following line it means that your handler does
|
|
1013
1261
|
// not meet the documented type requirements for a AcceptHandler.
|
|
1014
1262
|
BOOST_ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check;
|
|
1015
1263
|
|
|
1264
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1016
1265
|
return this->get_service().async_accept(this->get_implementation(),
|
|
1017
1266
|
peer, static_cast<endpoint_type*>(0),
|
|
1018
1267
|
BOOST_ASIO_MOVE_CAST(AcceptHandler)(handler));
|
|
1268
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1269
|
+
async_completion<AcceptHandler,
|
|
1270
|
+
void (boost::system::error_code)> init(handler);
|
|
1271
|
+
|
|
1272
|
+
this->get_service().async_accept(this->get_implementation(),
|
|
1273
|
+
peer, static_cast<endpoint_type*>(0), init.completion_handler);
|
|
1274
|
+
|
|
1275
|
+
return init.result.get();
|
|
1276
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1019
1277
|
}
|
|
1020
1278
|
|
|
1021
1279
|
/// Accept a new connection and obtain the endpoint of the peer
|
|
@@ -1034,16 +1292,20 @@ public:
|
|
|
1034
1292
|
*
|
|
1035
1293
|
* @par Example
|
|
1036
1294
|
* @code
|
|
1037
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
1295
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1038
1296
|
* ...
|
|
1039
|
-
* boost::asio::ip::tcp::socket socket(
|
|
1297
|
+
* boost::asio::ip::tcp::socket socket(io_context);
|
|
1040
1298
|
* boost::asio::ip::tcp::endpoint endpoint;
|
|
1041
1299
|
* acceptor.accept(socket, endpoint);
|
|
1042
1300
|
* @endcode
|
|
1043
1301
|
*/
|
|
1302
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1044
1303
|
template <typename SocketService>
|
|
1045
1304
|
void accept(basic_socket<protocol_type, SocketService>& peer,
|
|
1046
1305
|
endpoint_type& peer_endpoint)
|
|
1306
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1307
|
+
void accept(basic_socket<protocol_type>& peer, endpoint_type& peer_endpoint)
|
|
1308
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1047
1309
|
{
|
|
1048
1310
|
boost::system::error_code ec;
|
|
1049
1311
|
this->get_service().accept(this->get_implementation(),
|
|
@@ -1067,9 +1329,9 @@ public:
|
|
|
1067
1329
|
*
|
|
1068
1330
|
* @par Example
|
|
1069
1331
|
* @code
|
|
1070
|
-
* boost::asio::ip::tcp::acceptor acceptor(
|
|
1332
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1071
1333
|
* ...
|
|
1072
|
-
* boost::asio::ip::tcp::socket socket(
|
|
1334
|
+
* boost::asio::ip::tcp::socket socket(io_context);
|
|
1073
1335
|
* boost::asio::ip::tcp::endpoint endpoint;
|
|
1074
1336
|
* boost::system::error_code ec;
|
|
1075
1337
|
* acceptor.accept(socket, endpoint, ec);
|
|
@@ -1079,13 +1341,19 @@ public:
|
|
|
1079
1341
|
* }
|
|
1080
1342
|
* @endcode
|
|
1081
1343
|
*/
|
|
1344
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1082
1345
|
template <typename SocketService>
|
|
1083
|
-
|
|
1346
|
+
BOOST_ASIO_SYNC_OP_VOID accept(
|
|
1084
1347
|
basic_socket<protocol_type, SocketService>& peer,
|
|
1085
1348
|
endpoint_type& peer_endpoint, boost::system::error_code& ec)
|
|
1349
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1350
|
+
BOOST_ASIO_SYNC_OP_VOID accept(basic_socket<protocol_type>& peer,
|
|
1351
|
+
endpoint_type& peer_endpoint, boost::system::error_code& ec)
|
|
1352
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1086
1353
|
{
|
|
1087
|
-
|
|
1354
|
+
this->get_service().accept(
|
|
1088
1355
|
this->get_implementation(), peer, &peer_endpoint, ec);
|
|
1356
|
+
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
|
|
1089
1357
|
}
|
|
1090
1358
|
|
|
1091
1359
|
/// Start an asynchronous accept.
|
|
@@ -1112,21 +1380,600 @@ public:
|
|
|
1112
1380
|
* Regardless of whether the asynchronous operation completes immediately or
|
|
1113
1381
|
* not, the handler will not be invoked from within this function. Invocation
|
|
1114
1382
|
* of the handler will be performed in a manner equivalent to using
|
|
1115
|
-
* boost::asio::
|
|
1383
|
+
* boost::asio::io_context::post().
|
|
1116
1384
|
*/
|
|
1385
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1117
1386
|
template <typename SocketService, typename AcceptHandler>
|
|
1118
1387
|
BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
|
|
1119
1388
|
void (boost::system::error_code))
|
|
1120
1389
|
async_accept(basic_socket<protocol_type, SocketService>& peer,
|
|
1121
1390
|
endpoint_type& peer_endpoint, BOOST_ASIO_MOVE_ARG(AcceptHandler) handler)
|
|
1391
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1392
|
+
template <typename AcceptHandler>
|
|
1393
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
|
|
1394
|
+
void (boost::system::error_code))
|
|
1395
|
+
async_accept(basic_socket<protocol_type>& peer,
|
|
1396
|
+
endpoint_type& peer_endpoint, BOOST_ASIO_MOVE_ARG(AcceptHandler) handler)
|
|
1397
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1122
1398
|
{
|
|
1123
1399
|
// If you get an error on the following line it means that your handler does
|
|
1124
1400
|
// not meet the documented type requirements for a AcceptHandler.
|
|
1125
1401
|
BOOST_ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check;
|
|
1126
1402
|
|
|
1403
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1127
1404
|
return this->get_service().async_accept(this->get_implementation(), peer,
|
|
1128
1405
|
&peer_endpoint, BOOST_ASIO_MOVE_CAST(AcceptHandler)(handler));
|
|
1406
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1407
|
+
async_completion<AcceptHandler,
|
|
1408
|
+
void (boost::system::error_code)> init(handler);
|
|
1409
|
+
|
|
1410
|
+
this->get_service().async_accept(this->get_implementation(),
|
|
1411
|
+
peer, &peer_endpoint, init.completion_handler);
|
|
1412
|
+
|
|
1413
|
+
return init.result.get();
|
|
1414
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1415
|
+
}
|
|
1416
|
+
#endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
|
|
1417
|
+
|
|
1418
|
+
#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
|
1419
|
+
/// Accept a new connection.
|
|
1420
|
+
/**
|
|
1421
|
+
* This function is used to accept a new connection from a peer. The function
|
|
1422
|
+
* call will block until a new connection has been accepted successfully or
|
|
1423
|
+
* an error occurs.
|
|
1424
|
+
*
|
|
1425
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1426
|
+
* AcceptableProtocol type requirements.
|
|
1427
|
+
*
|
|
1428
|
+
* @returns A socket object representing the newly accepted connection.
|
|
1429
|
+
*
|
|
1430
|
+
* @throws boost::system::system_error Thrown on failure.
|
|
1431
|
+
*
|
|
1432
|
+
* @par Example
|
|
1433
|
+
* @code
|
|
1434
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1435
|
+
* ...
|
|
1436
|
+
* boost::asio::ip::tcp::socket socket(acceptor.accept());
|
|
1437
|
+
* @endcode
|
|
1438
|
+
*/
|
|
1439
|
+
typename Protocol::socket accept()
|
|
1440
|
+
{
|
|
1441
|
+
boost::system::error_code ec;
|
|
1442
|
+
typename Protocol::socket peer(
|
|
1443
|
+
this->get_service().accept(
|
|
1444
|
+
this->get_implementation(), 0, 0, ec));
|
|
1445
|
+
boost::asio::detail::throw_error(ec, "accept");
|
|
1446
|
+
return peer;
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1449
|
+
/// Accept a new connection.
|
|
1450
|
+
/**
|
|
1451
|
+
* This function is used to accept a new connection from a peer. The function
|
|
1452
|
+
* call will block until a new connection has been accepted successfully or
|
|
1453
|
+
* an error occurs.
|
|
1454
|
+
*
|
|
1455
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1456
|
+
* AcceptableProtocol type requirements.
|
|
1457
|
+
*
|
|
1458
|
+
* @param ec Set to indicate what error occurred, if any.
|
|
1459
|
+
*
|
|
1460
|
+
* @returns On success, a socket object representing the newly accepted
|
|
1461
|
+
* connection. On error, a socket object where is_open() is false.
|
|
1462
|
+
*
|
|
1463
|
+
* @par Example
|
|
1464
|
+
* @code
|
|
1465
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1466
|
+
* ...
|
|
1467
|
+
* boost::asio::ip::tcp::socket socket(acceptor.accept(ec));
|
|
1468
|
+
* if (ec)
|
|
1469
|
+
* {
|
|
1470
|
+
* // An error occurred.
|
|
1471
|
+
* }
|
|
1472
|
+
* @endcode
|
|
1473
|
+
*/
|
|
1474
|
+
typename Protocol::socket accept(boost::system::error_code& ec)
|
|
1475
|
+
{
|
|
1476
|
+
return this->get_service().accept(this->get_implementation(), 0, 0, ec);
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1479
|
+
/// Start an asynchronous accept.
|
|
1480
|
+
/**
|
|
1481
|
+
* This function is used to asynchronously accept a new connection. The
|
|
1482
|
+
* function call always returns immediately.
|
|
1483
|
+
*
|
|
1484
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1485
|
+
* AcceptableProtocol type requirements.
|
|
1486
|
+
*
|
|
1487
|
+
* @param handler The handler to be called when the accept operation
|
|
1488
|
+
* completes. Copies will be made of the handler as required. The function
|
|
1489
|
+
* signature of the handler must be:
|
|
1490
|
+
* @code void handler(
|
|
1491
|
+
* const boost::system::error_code& error, // Result of operation.
|
|
1492
|
+
* typename Protocol::socket peer // On success, the newly accepted socket.
|
|
1493
|
+
* ); @endcode
|
|
1494
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
|
1495
|
+
* not, the handler will not be invoked from within this function. Invocation
|
|
1496
|
+
* of the handler will be performed in a manner equivalent to using
|
|
1497
|
+
* boost::asio::io_context::post().
|
|
1498
|
+
*
|
|
1499
|
+
* @par Example
|
|
1500
|
+
* @code
|
|
1501
|
+
* void accept_handler(const boost::system::error_code& error,
|
|
1502
|
+
* boost::asio::ip::tcp::socket peer)
|
|
1503
|
+
* {
|
|
1504
|
+
* if (!error)
|
|
1505
|
+
* {
|
|
1506
|
+
* // Accept succeeded.
|
|
1507
|
+
* }
|
|
1508
|
+
* }
|
|
1509
|
+
*
|
|
1510
|
+
* ...
|
|
1511
|
+
*
|
|
1512
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1513
|
+
* ...
|
|
1514
|
+
* acceptor.async_accept(accept_handler);
|
|
1515
|
+
* @endcode
|
|
1516
|
+
*/
|
|
1517
|
+
template <typename MoveAcceptHandler>
|
|
1518
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
|
|
1519
|
+
void (boost::system::error_code, typename Protocol::socket))
|
|
1520
|
+
async_accept(BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
|
|
1521
|
+
{
|
|
1522
|
+
// If you get an error on the following line it means that your handler does
|
|
1523
|
+
// not meet the documented type requirements for a MoveAcceptHandler.
|
|
1524
|
+
BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
|
|
1525
|
+
handler, typename Protocol::socket) type_check;
|
|
1526
|
+
|
|
1527
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1528
|
+
return this->get_service().async_accept(
|
|
1529
|
+
this->get_implementation(), static_cast<boost::asio::io_context*>(0),
|
|
1530
|
+
static_cast<endpoint_type*>(0),
|
|
1531
|
+
BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
|
|
1532
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1533
|
+
async_completion<MoveAcceptHandler,
|
|
1534
|
+
void (boost::system::error_code,
|
|
1535
|
+
typename Protocol::socket)> init(handler);
|
|
1536
|
+
|
|
1537
|
+
this->get_service().async_accept(
|
|
1538
|
+
this->get_implementation(), static_cast<boost::asio::io_context*>(0),
|
|
1539
|
+
static_cast<endpoint_type*>(0), init.completion_handler);
|
|
1540
|
+
|
|
1541
|
+
return init.result.get();
|
|
1542
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
/// Accept a new connection.
|
|
1546
|
+
/**
|
|
1547
|
+
* This function is used to accept a new connection from a peer. The function
|
|
1548
|
+
* call will block until a new connection has been accepted successfully or
|
|
1549
|
+
* an error occurs.
|
|
1550
|
+
*
|
|
1551
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1552
|
+
* AcceptableProtocol type requirements.
|
|
1553
|
+
*
|
|
1554
|
+
* @param io_context The io_context object to be used for the newly accepted
|
|
1555
|
+
* socket.
|
|
1556
|
+
*
|
|
1557
|
+
* @returns A socket object representing the newly accepted connection.
|
|
1558
|
+
*
|
|
1559
|
+
* @throws boost::system::system_error Thrown on failure.
|
|
1560
|
+
*
|
|
1561
|
+
* @par Example
|
|
1562
|
+
* @code
|
|
1563
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1564
|
+
* ...
|
|
1565
|
+
* boost::asio::ip::tcp::socket socket(acceptor.accept());
|
|
1566
|
+
* @endcode
|
|
1567
|
+
*/
|
|
1568
|
+
typename Protocol::socket accept(boost::asio::io_context& io_context)
|
|
1569
|
+
{
|
|
1570
|
+
boost::system::error_code ec;
|
|
1571
|
+
typename Protocol::socket peer(
|
|
1572
|
+
this->get_service().accept(this->get_implementation(),
|
|
1573
|
+
&io_context, static_cast<endpoint_type*>(0), ec));
|
|
1574
|
+
boost::asio::detail::throw_error(ec, "accept");
|
|
1575
|
+
return peer;
|
|
1576
|
+
}
|
|
1577
|
+
|
|
1578
|
+
/// Accept a new connection.
|
|
1579
|
+
/**
|
|
1580
|
+
* This function is used to accept a new connection from a peer. The function
|
|
1581
|
+
* call will block until a new connection has been accepted successfully or
|
|
1582
|
+
* an error occurs.
|
|
1583
|
+
*
|
|
1584
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1585
|
+
* AcceptableProtocol type requirements.
|
|
1586
|
+
*
|
|
1587
|
+
* @param io_context The io_context object to be used for the newly accepted
|
|
1588
|
+
* socket.
|
|
1589
|
+
*
|
|
1590
|
+
* @param ec Set to indicate what error occurred, if any.
|
|
1591
|
+
*
|
|
1592
|
+
* @returns On success, a socket object representing the newly accepted
|
|
1593
|
+
* connection. On error, a socket object where is_open() is false.
|
|
1594
|
+
*
|
|
1595
|
+
* @par Example
|
|
1596
|
+
* @code
|
|
1597
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1598
|
+
* ...
|
|
1599
|
+
* boost::asio::ip::tcp::socket socket(acceptor.accept(io_context2, ec));
|
|
1600
|
+
* if (ec)
|
|
1601
|
+
* {
|
|
1602
|
+
* // An error occurred.
|
|
1603
|
+
* }
|
|
1604
|
+
* @endcode
|
|
1605
|
+
*/
|
|
1606
|
+
typename Protocol::socket accept(
|
|
1607
|
+
boost::asio::io_context& io_context, boost::system::error_code& ec)
|
|
1608
|
+
{
|
|
1609
|
+
return this->get_service().accept(this->get_implementation(),
|
|
1610
|
+
&io_context, static_cast<endpoint_type*>(0), ec);
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
/// Start an asynchronous accept.
|
|
1614
|
+
/**
|
|
1615
|
+
* This function is used to asynchronously accept a new connection. The
|
|
1616
|
+
* function call always returns immediately.
|
|
1617
|
+
*
|
|
1618
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1619
|
+
* AcceptableProtocol type requirements.
|
|
1620
|
+
*
|
|
1621
|
+
* @param io_context The io_context object to be used for the newly accepted
|
|
1622
|
+
* socket.
|
|
1623
|
+
*
|
|
1624
|
+
* @param handler The handler to be called when the accept operation
|
|
1625
|
+
* completes. Copies will be made of the handler as required. The function
|
|
1626
|
+
* signature of the handler must be:
|
|
1627
|
+
* @code void handler(
|
|
1628
|
+
* const boost::system::error_code& error, // Result of operation.
|
|
1629
|
+
* typename Protocol::socket peer // On success, the newly accepted socket.
|
|
1630
|
+
* ); @endcode
|
|
1631
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
|
1632
|
+
* not, the handler will not be invoked from within this function. Invocation
|
|
1633
|
+
* of the handler will be performed in a manner equivalent to using
|
|
1634
|
+
* boost::asio::io_context::post().
|
|
1635
|
+
*
|
|
1636
|
+
* @par Example
|
|
1637
|
+
* @code
|
|
1638
|
+
* void accept_handler(const boost::system::error_code& error,
|
|
1639
|
+
* boost::asio::ip::tcp::socket peer)
|
|
1640
|
+
* {
|
|
1641
|
+
* if (!error)
|
|
1642
|
+
* {
|
|
1643
|
+
* // Accept succeeded.
|
|
1644
|
+
* }
|
|
1645
|
+
* }
|
|
1646
|
+
*
|
|
1647
|
+
* ...
|
|
1648
|
+
*
|
|
1649
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1650
|
+
* ...
|
|
1651
|
+
* acceptor.async_accept(io_context2, accept_handler);
|
|
1652
|
+
* @endcode
|
|
1653
|
+
*/
|
|
1654
|
+
template <typename MoveAcceptHandler>
|
|
1655
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
|
|
1656
|
+
void (boost::system::error_code, typename Protocol::socket))
|
|
1657
|
+
async_accept(boost::asio::io_context& io_context,
|
|
1658
|
+
BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
|
|
1659
|
+
{
|
|
1660
|
+
// If you get an error on the following line it means that your handler does
|
|
1661
|
+
// not meet the documented type requirements for a MoveAcceptHandler.
|
|
1662
|
+
BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
|
|
1663
|
+
handler, typename Protocol::socket) type_check;
|
|
1664
|
+
|
|
1665
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1666
|
+
return this->get_service().async_accept(this->get_implementation(),
|
|
1667
|
+
&io_context, static_cast<endpoint_type*>(0),
|
|
1668
|
+
BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
|
|
1669
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1670
|
+
async_completion<MoveAcceptHandler,
|
|
1671
|
+
void (boost::system::error_code,
|
|
1672
|
+
typename Protocol::socket)> init(handler);
|
|
1673
|
+
|
|
1674
|
+
this->get_service().async_accept(this->get_implementation(),
|
|
1675
|
+
&io_context, static_cast<endpoint_type*>(0), init.completion_handler);
|
|
1676
|
+
|
|
1677
|
+
return init.result.get();
|
|
1678
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
/// Accept a new connection.
|
|
1682
|
+
/**
|
|
1683
|
+
* This function is used to accept a new connection from a peer. The function
|
|
1684
|
+
* call will block until a new connection has been accepted successfully or
|
|
1685
|
+
* an error occurs.
|
|
1686
|
+
*
|
|
1687
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1688
|
+
* AcceptableProtocol type requirements.
|
|
1689
|
+
*
|
|
1690
|
+
* @param peer_endpoint An endpoint object into which the endpoint of the
|
|
1691
|
+
* remote peer will be written.
|
|
1692
|
+
*
|
|
1693
|
+
* @returns A socket object representing the newly accepted connection.
|
|
1694
|
+
*
|
|
1695
|
+
* @throws boost::system::system_error Thrown on failure.
|
|
1696
|
+
*
|
|
1697
|
+
* @par Example
|
|
1698
|
+
* @code
|
|
1699
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1700
|
+
* ...
|
|
1701
|
+
* boost::asio::ip::tcp::endpoint endpoint;
|
|
1702
|
+
* boost::asio::ip::tcp::socket socket(acceptor.accept(endpoint));
|
|
1703
|
+
* @endcode
|
|
1704
|
+
*/
|
|
1705
|
+
typename Protocol::socket accept(endpoint_type& peer_endpoint)
|
|
1706
|
+
{
|
|
1707
|
+
boost::system::error_code ec;
|
|
1708
|
+
typename Protocol::socket peer(
|
|
1709
|
+
this->get_service().accept(this->get_implementation(),
|
|
1710
|
+
static_cast<boost::asio::io_context*>(0), &peer_endpoint, ec));
|
|
1711
|
+
boost::asio::detail::throw_error(ec, "accept");
|
|
1712
|
+
return peer;
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1715
|
+
/// Accept a new connection.
|
|
1716
|
+
/**
|
|
1717
|
+
* This function is used to accept a new connection from a peer. The function
|
|
1718
|
+
* call will block until a new connection has been accepted successfully or
|
|
1719
|
+
* an error occurs.
|
|
1720
|
+
*
|
|
1721
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1722
|
+
* AcceptableProtocol type requirements.
|
|
1723
|
+
*
|
|
1724
|
+
* @param peer_endpoint An endpoint object into which the endpoint of the
|
|
1725
|
+
* remote peer will be written.
|
|
1726
|
+
*
|
|
1727
|
+
* @param ec Set to indicate what error occurred, if any.
|
|
1728
|
+
*
|
|
1729
|
+
* @returns On success, a socket object representing the newly accepted
|
|
1730
|
+
* connection. On error, a socket object where is_open() is false.
|
|
1731
|
+
*
|
|
1732
|
+
* @par Example
|
|
1733
|
+
* @code
|
|
1734
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1735
|
+
* ...
|
|
1736
|
+
* boost::asio::ip::tcp::endpoint endpoint;
|
|
1737
|
+
* boost::asio::ip::tcp::socket socket(acceptor.accept(endpoint, ec));
|
|
1738
|
+
* if (ec)
|
|
1739
|
+
* {
|
|
1740
|
+
* // An error occurred.
|
|
1741
|
+
* }
|
|
1742
|
+
* @endcode
|
|
1743
|
+
*/
|
|
1744
|
+
typename Protocol::socket accept(
|
|
1745
|
+
endpoint_type& peer_endpoint, boost::system::error_code& ec)
|
|
1746
|
+
{
|
|
1747
|
+
return this->get_service().accept(this->get_implementation(),
|
|
1748
|
+
static_cast<boost::asio::io_context*>(0), &peer_endpoint, ec);
|
|
1749
|
+
}
|
|
1750
|
+
|
|
1751
|
+
/// Start an asynchronous accept.
|
|
1752
|
+
/**
|
|
1753
|
+
* This function is used to asynchronously accept a new connection. The
|
|
1754
|
+
* function call always returns immediately.
|
|
1755
|
+
*
|
|
1756
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1757
|
+
* AcceptableProtocol type requirements.
|
|
1758
|
+
*
|
|
1759
|
+
* @param peer_endpoint An endpoint object into which the endpoint of the
|
|
1760
|
+
* remote peer will be written. Ownership of the peer_endpoint object is
|
|
1761
|
+
* retained by the caller, which must guarantee that it is valid until the
|
|
1762
|
+
* handler is called.
|
|
1763
|
+
*
|
|
1764
|
+
* @param handler The handler to be called when the accept operation
|
|
1765
|
+
* completes. Copies will be made of the handler as required. The function
|
|
1766
|
+
* signature of the handler must be:
|
|
1767
|
+
* @code void handler(
|
|
1768
|
+
* const boost::system::error_code& error, // Result of operation.
|
|
1769
|
+
* typename Protocol::socket peer // On success, the newly accepted socket.
|
|
1770
|
+
* ); @endcode
|
|
1771
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
|
1772
|
+
* not, the handler will not be invoked from within this function. Invocation
|
|
1773
|
+
* of the handler will be performed in a manner equivalent to using
|
|
1774
|
+
* boost::asio::io_context::post().
|
|
1775
|
+
*
|
|
1776
|
+
* @par Example
|
|
1777
|
+
* @code
|
|
1778
|
+
* void accept_handler(const boost::system::error_code& error,
|
|
1779
|
+
* boost::asio::ip::tcp::socket peer)
|
|
1780
|
+
* {
|
|
1781
|
+
* if (!error)
|
|
1782
|
+
* {
|
|
1783
|
+
* // Accept succeeded.
|
|
1784
|
+
* }
|
|
1785
|
+
* }
|
|
1786
|
+
*
|
|
1787
|
+
* ...
|
|
1788
|
+
*
|
|
1789
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1790
|
+
* ...
|
|
1791
|
+
* boost::asio::ip::tcp::endpoint endpoint;
|
|
1792
|
+
* acceptor.async_accept(endpoint, accept_handler);
|
|
1793
|
+
* @endcode
|
|
1794
|
+
*/
|
|
1795
|
+
template <typename MoveAcceptHandler>
|
|
1796
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
|
|
1797
|
+
void (boost::system::error_code, typename Protocol::socket))
|
|
1798
|
+
async_accept(endpoint_type& peer_endpoint,
|
|
1799
|
+
BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
|
|
1800
|
+
{
|
|
1801
|
+
// If you get an error on the following line it means that your handler does
|
|
1802
|
+
// not meet the documented type requirements for a MoveAcceptHandler.
|
|
1803
|
+
BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
|
|
1804
|
+
handler, typename Protocol::socket) type_check;
|
|
1805
|
+
|
|
1806
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1807
|
+
return this->get_service().async_accept(this->get_implementation(),
|
|
1808
|
+
static_cast<boost::asio::io_context*>(0), &peer_endpoint,
|
|
1809
|
+
BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
|
|
1810
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1811
|
+
async_completion<MoveAcceptHandler,
|
|
1812
|
+
void (boost::system::error_code,
|
|
1813
|
+
typename Protocol::socket)> init(handler);
|
|
1814
|
+
|
|
1815
|
+
this->get_service().async_accept(this->get_implementation(),
|
|
1816
|
+
static_cast<boost::asio::io_context*>(0), &peer_endpoint,
|
|
1817
|
+
init.completion_handler);
|
|
1818
|
+
|
|
1819
|
+
return init.result.get();
|
|
1820
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1821
|
+
}
|
|
1822
|
+
|
|
1823
|
+
/// Accept a new connection.
|
|
1824
|
+
/**
|
|
1825
|
+
* This function is used to accept a new connection from a peer. The function
|
|
1826
|
+
* call will block until a new connection has been accepted successfully or
|
|
1827
|
+
* an error occurs.
|
|
1828
|
+
*
|
|
1829
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1830
|
+
* AcceptableProtocol type requirements.
|
|
1831
|
+
*
|
|
1832
|
+
* @param io_context The io_context object to be used for the newly accepted
|
|
1833
|
+
* socket.
|
|
1834
|
+
*
|
|
1835
|
+
* @param peer_endpoint An endpoint object into which the endpoint of the
|
|
1836
|
+
* remote peer will be written.
|
|
1837
|
+
*
|
|
1838
|
+
* @returns A socket object representing the newly accepted connection.
|
|
1839
|
+
*
|
|
1840
|
+
* @throws boost::system::system_error Thrown on failure.
|
|
1841
|
+
*
|
|
1842
|
+
* @par Example
|
|
1843
|
+
* @code
|
|
1844
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1845
|
+
* ...
|
|
1846
|
+
* boost::asio::ip::tcp::endpoint endpoint;
|
|
1847
|
+
* boost::asio::ip::tcp::socket socket(
|
|
1848
|
+
* acceptor.accept(io_context2, endpoint));
|
|
1849
|
+
* @endcode
|
|
1850
|
+
*/
|
|
1851
|
+
typename Protocol::socket accept(
|
|
1852
|
+
boost::asio::io_context& io_context, endpoint_type& peer_endpoint)
|
|
1853
|
+
{
|
|
1854
|
+
boost::system::error_code ec;
|
|
1855
|
+
typename Protocol::socket peer(
|
|
1856
|
+
this->get_service().accept(this->get_implementation(),
|
|
1857
|
+
&io_context, &peer_endpoint, ec));
|
|
1858
|
+
boost::asio::detail::throw_error(ec, "accept");
|
|
1859
|
+
return peer;
|
|
1860
|
+
}
|
|
1861
|
+
|
|
1862
|
+
/// Accept a new connection.
|
|
1863
|
+
/**
|
|
1864
|
+
* This function is used to accept a new connection from a peer. The function
|
|
1865
|
+
* call will block until a new connection has been accepted successfully or
|
|
1866
|
+
* an error occurs.
|
|
1867
|
+
*
|
|
1868
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1869
|
+
* AcceptableProtocol type requirements.
|
|
1870
|
+
*
|
|
1871
|
+
* @param io_context The io_context object to be used for the newly accepted
|
|
1872
|
+
* socket.
|
|
1873
|
+
*
|
|
1874
|
+
* @param peer_endpoint An endpoint object into which the endpoint of the
|
|
1875
|
+
* remote peer will be written.
|
|
1876
|
+
*
|
|
1877
|
+
* @param ec Set to indicate what error occurred, if any.
|
|
1878
|
+
*
|
|
1879
|
+
* @returns On success, a socket object representing the newly accepted
|
|
1880
|
+
* connection. On error, a socket object where is_open() is false.
|
|
1881
|
+
*
|
|
1882
|
+
* @par Example
|
|
1883
|
+
* @code
|
|
1884
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1885
|
+
* ...
|
|
1886
|
+
* boost::asio::ip::tcp::endpoint endpoint;
|
|
1887
|
+
* boost::asio::ip::tcp::socket socket(
|
|
1888
|
+
* acceptor.accept(io_context2, endpoint, ec));
|
|
1889
|
+
* if (ec)
|
|
1890
|
+
* {
|
|
1891
|
+
* // An error occurred.
|
|
1892
|
+
* }
|
|
1893
|
+
* @endcode
|
|
1894
|
+
*/
|
|
1895
|
+
typename Protocol::socket accept(boost::asio::io_context& io_context,
|
|
1896
|
+
endpoint_type& peer_endpoint, boost::system::error_code& ec)
|
|
1897
|
+
{
|
|
1898
|
+
return this->get_service().accept(this->get_implementation(),
|
|
1899
|
+
&io_context, &peer_endpoint, ec);
|
|
1900
|
+
}
|
|
1901
|
+
|
|
1902
|
+
/// Start an asynchronous accept.
|
|
1903
|
+
/**
|
|
1904
|
+
* This function is used to asynchronously accept a new connection. The
|
|
1905
|
+
* function call always returns immediately.
|
|
1906
|
+
*
|
|
1907
|
+
* This overload requires that the Protocol template parameter satisfy the
|
|
1908
|
+
* AcceptableProtocol type requirements.
|
|
1909
|
+
*
|
|
1910
|
+
* @param io_context The io_context object to be used for the newly accepted
|
|
1911
|
+
* socket.
|
|
1912
|
+
*
|
|
1913
|
+
* @param peer_endpoint An endpoint object into which the endpoint of the
|
|
1914
|
+
* remote peer will be written. Ownership of the peer_endpoint object is
|
|
1915
|
+
* retained by the caller, which must guarantee that it is valid until the
|
|
1916
|
+
* handler is called.
|
|
1917
|
+
*
|
|
1918
|
+
* @param handler The handler to be called when the accept operation
|
|
1919
|
+
* completes. Copies will be made of the handler as required. The function
|
|
1920
|
+
* signature of the handler must be:
|
|
1921
|
+
* @code void handler(
|
|
1922
|
+
* const boost::system::error_code& error, // Result of operation.
|
|
1923
|
+
* typename Protocol::socket peer // On success, the newly accepted socket.
|
|
1924
|
+
* ); @endcode
|
|
1925
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
|
1926
|
+
* not, the handler will not be invoked from within this function. Invocation
|
|
1927
|
+
* of the handler will be performed in a manner equivalent to using
|
|
1928
|
+
* boost::asio::io_context::post().
|
|
1929
|
+
*
|
|
1930
|
+
* @par Example
|
|
1931
|
+
* @code
|
|
1932
|
+
* void accept_handler(const boost::system::error_code& error,
|
|
1933
|
+
* boost::asio::ip::tcp::socket peer)
|
|
1934
|
+
* {
|
|
1935
|
+
* if (!error)
|
|
1936
|
+
* {
|
|
1937
|
+
* // Accept succeeded.
|
|
1938
|
+
* }
|
|
1939
|
+
* }
|
|
1940
|
+
*
|
|
1941
|
+
* ...
|
|
1942
|
+
*
|
|
1943
|
+
* boost::asio::ip::tcp::acceptor acceptor(io_context);
|
|
1944
|
+
* ...
|
|
1945
|
+
* boost::asio::ip::tcp::endpoint endpoint;
|
|
1946
|
+
* acceptor.async_accept(io_context2, endpoint, accept_handler);
|
|
1947
|
+
* @endcode
|
|
1948
|
+
*/
|
|
1949
|
+
template <typename MoveAcceptHandler>
|
|
1950
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
|
|
1951
|
+
void (boost::system::error_code, typename Protocol::socket))
|
|
1952
|
+
async_accept(boost::asio::io_context& io_context,
|
|
1953
|
+
endpoint_type& peer_endpoint,
|
|
1954
|
+
BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
|
|
1955
|
+
{
|
|
1956
|
+
// If you get an error on the following line it means that your handler does
|
|
1957
|
+
// not meet the documented type requirements for a MoveAcceptHandler.
|
|
1958
|
+
BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
|
|
1959
|
+
handler, typename Protocol::socket) type_check;
|
|
1960
|
+
|
|
1961
|
+
#if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1962
|
+
return this->get_service().async_accept(
|
|
1963
|
+
this->get_implementation(), &io_context, &peer_endpoint,
|
|
1964
|
+
BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
|
|
1965
|
+
#else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1966
|
+
async_completion<MoveAcceptHandler,
|
|
1967
|
+
void (boost::system::error_code,
|
|
1968
|
+
typename Protocol::socket)> init(handler);
|
|
1969
|
+
|
|
1970
|
+
this->get_service().async_accept(this->get_implementation(),
|
|
1971
|
+
&io_context, &peer_endpoint, init.completion_handler);
|
|
1972
|
+
|
|
1973
|
+
return init.result.get();
|
|
1974
|
+
#endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1129
1975
|
}
|
|
1976
|
+
#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
|
1130
1977
|
};
|
|
1131
1978
|
|
|
1132
1979
|
} // namespace asio
|
|
@@ -1134,4 +1981,8 @@ public:
|
|
|
1134
1981
|
|
|
1135
1982
|
#include <boost/asio/detail/pop_options.hpp>
|
|
1136
1983
|
|
|
1984
|
+
#if !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1985
|
+
# undef BOOST_ASIO_SVC_T
|
|
1986
|
+
#endif // !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
|
|
1987
|
+
|
|
1137
1988
|
#endif // BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_HPP
|