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
|
// impl/read_until.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)
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
#include <string>
|
|
20
20
|
#include <vector>
|
|
21
21
|
#include <utility>
|
|
22
|
+
#include <boost/asio/associated_allocator.hpp>
|
|
23
|
+
#include <boost/asio/associated_executor.hpp>
|
|
22
24
|
#include <boost/asio/buffer.hpp>
|
|
23
25
|
#include <boost/asio/buffers_iterator.hpp>
|
|
24
26
|
#include <boost/asio/detail/bind_handler.hpp>
|
|
@@ -34,32 +36,35 @@
|
|
|
34
36
|
namespace boost {
|
|
35
37
|
namespace asio {
|
|
36
38
|
|
|
37
|
-
template <typename SyncReadStream, typename
|
|
39
|
+
template <typename SyncReadStream, typename DynamicBuffer>
|
|
38
40
|
inline std::size_t read_until(SyncReadStream& s,
|
|
39
|
-
|
|
41
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers, char delim)
|
|
40
42
|
{
|
|
41
43
|
boost::system::error_code ec;
|
|
42
|
-
std::size_t bytes_transferred = read_until(s,
|
|
44
|
+
std::size_t bytes_transferred = read_until(s,
|
|
45
|
+
BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers), delim, ec);
|
|
43
46
|
boost::asio::detail::throw_error(ec, "read_until");
|
|
44
47
|
return bytes_transferred;
|
|
45
48
|
}
|
|
46
49
|
|
|
47
|
-
template <typename SyncReadStream, typename
|
|
50
|
+
template <typename SyncReadStream, typename DynamicBuffer>
|
|
48
51
|
std::size_t read_until(SyncReadStream& s,
|
|
49
|
-
|
|
50
|
-
boost::system::error_code& ec)
|
|
52
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers,
|
|
53
|
+
char delim, boost::system::error_code& ec)
|
|
51
54
|
{
|
|
55
|
+
typename decay<DynamicBuffer>::type b(
|
|
56
|
+
BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers));
|
|
57
|
+
|
|
52
58
|
std::size_t search_position = 0;
|
|
53
59
|
for (;;)
|
|
54
60
|
{
|
|
55
61
|
// Determine the range of the data to be searched.
|
|
56
|
-
typedef typename
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
iterator begin = iterator::begin(buffers);
|
|
62
|
+
typedef typename DynamicBuffer::const_buffers_type buffers_type;
|
|
63
|
+
typedef buffers_iterator<buffers_type> iterator;
|
|
64
|
+
buffers_type data_buffers = b.data();
|
|
65
|
+
iterator begin = iterator::begin(data_buffers);
|
|
61
66
|
iterator start_pos = begin + search_position;
|
|
62
|
-
iterator end = iterator::end(
|
|
67
|
+
iterator end = iterator::end(data_buffers);
|
|
63
68
|
|
|
64
69
|
// Look for a match.
|
|
65
70
|
iterator iter = std::find(start_pos, end, delim);
|
|
@@ -83,19 +88,23 @@ std::size_t read_until(SyncReadStream& s,
|
|
|
83
88
|
}
|
|
84
89
|
|
|
85
90
|
// Need more data.
|
|
86
|
-
std::size_t bytes_to_read =
|
|
91
|
+
std::size_t bytes_to_read = std::min<std::size_t>(
|
|
92
|
+
std::max<std::size_t>(512, b.capacity() - b.size()),
|
|
93
|
+
std::min<std::size_t>(65536, b.max_size() - b.size()));
|
|
87
94
|
b.commit(s.read_some(b.prepare(bytes_to_read), ec));
|
|
88
95
|
if (ec)
|
|
89
96
|
return 0;
|
|
90
97
|
}
|
|
91
98
|
}
|
|
92
99
|
|
|
93
|
-
template <typename SyncReadStream, typename
|
|
100
|
+
template <typename SyncReadStream, typename DynamicBuffer>
|
|
94
101
|
inline std::size_t read_until(SyncReadStream& s,
|
|
95
|
-
|
|
102
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers,
|
|
103
|
+
BOOST_ASIO_STRING_VIEW_PARAM delim)
|
|
96
104
|
{
|
|
97
105
|
boost::system::error_code ec;
|
|
98
|
-
std::size_t bytes_transferred = read_until(s,
|
|
106
|
+
std::size_t bytes_transferred = read_until(s,
|
|
107
|
+
BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers), delim, ec);
|
|
99
108
|
boost::asio::detail::throw_error(ec, "read_until");
|
|
100
109
|
return bytes_transferred;
|
|
101
110
|
}
|
|
@@ -135,22 +144,24 @@ namespace detail
|
|
|
135
144
|
}
|
|
136
145
|
} // namespace detail
|
|
137
146
|
|
|
138
|
-
template <typename SyncReadStream, typename
|
|
147
|
+
template <typename SyncReadStream, typename DynamicBuffer>
|
|
139
148
|
std::size_t read_until(SyncReadStream& s,
|
|
140
|
-
|
|
141
|
-
boost::system::error_code& ec)
|
|
149
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers,
|
|
150
|
+
BOOST_ASIO_STRING_VIEW_PARAM delim, boost::system::error_code& ec)
|
|
142
151
|
{
|
|
152
|
+
typename decay<DynamicBuffer>::type b(
|
|
153
|
+
BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers));
|
|
154
|
+
|
|
143
155
|
std::size_t search_position = 0;
|
|
144
156
|
for (;;)
|
|
145
157
|
{
|
|
146
158
|
// Determine the range of the data to be searched.
|
|
147
|
-
typedef typename
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
iterator begin = iterator::begin(buffers);
|
|
159
|
+
typedef typename DynamicBuffer::const_buffers_type buffers_type;
|
|
160
|
+
typedef buffers_iterator<buffers_type> iterator;
|
|
161
|
+
buffers_type data_buffers = b.data();
|
|
162
|
+
iterator begin = iterator::begin(data_buffers);
|
|
152
163
|
iterator start_pos = begin + search_position;
|
|
153
|
-
iterator end = iterator::end(
|
|
164
|
+
iterator end = iterator::end(data_buffers);
|
|
154
165
|
|
|
155
166
|
// Look for a match.
|
|
156
167
|
std::pair<iterator, bool> result = detail::partial_search(
|
|
@@ -183,41 +194,48 @@ std::size_t read_until(SyncReadStream& s,
|
|
|
183
194
|
}
|
|
184
195
|
|
|
185
196
|
// Need more data.
|
|
186
|
-
std::size_t bytes_to_read =
|
|
197
|
+
std::size_t bytes_to_read = std::min<std::size_t>(
|
|
198
|
+
std::max<std::size_t>(512, b.capacity() - b.size()),
|
|
199
|
+
std::min<std::size_t>(65536, b.max_size() - b.size()));
|
|
187
200
|
b.commit(s.read_some(b.prepare(bytes_to_read), ec));
|
|
188
201
|
if (ec)
|
|
189
202
|
return 0;
|
|
190
203
|
}
|
|
191
204
|
}
|
|
192
205
|
|
|
206
|
+
#if !defined(BOOST_ASIO_NO_EXTENSIONS)
|
|
193
207
|
#if defined(BOOST_ASIO_HAS_BOOST_REGEX)
|
|
194
208
|
|
|
195
|
-
template <typename SyncReadStream, typename
|
|
209
|
+
template <typename SyncReadStream, typename DynamicBuffer>
|
|
196
210
|
inline std::size_t read_until(SyncReadStream& s,
|
|
197
|
-
|
|
211
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers,
|
|
212
|
+
const boost::regex& expr)
|
|
198
213
|
{
|
|
199
214
|
boost::system::error_code ec;
|
|
200
|
-
std::size_t bytes_transferred = read_until(s,
|
|
215
|
+
std::size_t bytes_transferred = read_until(s,
|
|
216
|
+
BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers), expr, ec);
|
|
201
217
|
boost::asio::detail::throw_error(ec, "read_until");
|
|
202
218
|
return bytes_transferred;
|
|
203
219
|
}
|
|
204
220
|
|
|
205
|
-
template <typename SyncReadStream, typename
|
|
221
|
+
template <typename SyncReadStream, typename DynamicBuffer>
|
|
206
222
|
std::size_t read_until(SyncReadStream& s,
|
|
207
|
-
|
|
208
|
-
boost::system::error_code& ec)
|
|
223
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers,
|
|
224
|
+
const boost::regex& expr, boost::system::error_code& ec)
|
|
209
225
|
{
|
|
226
|
+
typename decay<DynamicBuffer>::type b(
|
|
227
|
+
BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers));
|
|
228
|
+
|
|
210
229
|
std::size_t search_position = 0;
|
|
211
230
|
for (;;)
|
|
212
231
|
{
|
|
213
232
|
// Determine the range of the data to be searched.
|
|
214
|
-
typedef typename
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
iterator begin = iterator::begin(buffers);
|
|
233
|
+
typedef typename DynamicBuffer::const_buffers_type buffers_type;
|
|
234
|
+
typedef buffers_iterator<buffers_type> iterator;
|
|
235
|
+
buffers_type data_buffers = b.data();
|
|
236
|
+
iterator begin = iterator::begin(data_buffers);
|
|
219
237
|
iterator start_pos = begin + search_position;
|
|
220
|
-
iterator end = iterator::end(
|
|
238
|
+
iterator end = iterator::end(data_buffers);
|
|
221
239
|
|
|
222
240
|
// Look for a match.
|
|
223
241
|
boost::match_results<iterator,
|
|
@@ -261,23 +279,41 @@ std::size_t read_until(SyncReadStream& s,
|
|
|
261
279
|
|
|
262
280
|
#endif // defined(BOOST_ASIO_HAS_BOOST_REGEX)
|
|
263
281
|
|
|
264
|
-
template <typename SyncReadStream,
|
|
282
|
+
template <typename SyncReadStream,
|
|
283
|
+
typename DynamicBuffer, typename MatchCondition>
|
|
284
|
+
inline std::size_t read_until(SyncReadStream& s,
|
|
285
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers,
|
|
286
|
+
MatchCondition match_condition,
|
|
287
|
+
typename enable_if<is_match_condition<MatchCondition>::value>::type*)
|
|
288
|
+
{
|
|
289
|
+
boost::system::error_code ec;
|
|
290
|
+
std::size_t bytes_transferred = read_until(s,
|
|
291
|
+
BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers),
|
|
292
|
+
match_condition, ec);
|
|
293
|
+
boost::asio::detail::throw_error(ec, "read_until");
|
|
294
|
+
return bytes_transferred;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
template <typename SyncReadStream,
|
|
298
|
+
typename DynamicBuffer, typename MatchCondition>
|
|
265
299
|
std::size_t read_until(SyncReadStream& s,
|
|
266
|
-
|
|
300
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers,
|
|
267
301
|
MatchCondition match_condition, boost::system::error_code& ec,
|
|
268
302
|
typename enable_if<is_match_condition<MatchCondition>::value>::type*)
|
|
269
303
|
{
|
|
304
|
+
typename decay<DynamicBuffer>::type b(
|
|
305
|
+
BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers));
|
|
306
|
+
|
|
270
307
|
std::size_t search_position = 0;
|
|
271
308
|
for (;;)
|
|
272
309
|
{
|
|
273
310
|
// Determine the range of the data to be searched.
|
|
274
|
-
typedef typename
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
iterator begin = iterator::begin(buffers);
|
|
311
|
+
typedef typename DynamicBuffer::const_buffers_type buffers_type;
|
|
312
|
+
typedef buffers_iterator<buffers_type> iterator;
|
|
313
|
+
buffers_type data_buffers = b.data();
|
|
314
|
+
iterator begin = iterator::begin(data_buffers);
|
|
279
315
|
iterator start_pos = begin + search_position;
|
|
280
|
-
iterator end = iterator::end(
|
|
316
|
+
iterator end = iterator::end(data_buffers);
|
|
281
317
|
|
|
282
318
|
// Look for a match.
|
|
283
319
|
std::pair<iterator, bool> result = match_condition(start_pos, end);
|
|
@@ -306,35 +342,100 @@ std::size_t read_until(SyncReadStream& s,
|
|
|
306
342
|
}
|
|
307
343
|
|
|
308
344
|
// Need more data.
|
|
309
|
-
std::size_t bytes_to_read =
|
|
345
|
+
std::size_t bytes_to_read = std::min<std::size_t>(
|
|
346
|
+
std::max<std::size_t>(512, b.capacity() - b.size()),
|
|
347
|
+
std::min<std::size_t>(65536, b.max_size() - b.size()));
|
|
310
348
|
b.commit(s.read_some(b.prepare(bytes_to_read), ec));
|
|
311
349
|
if (ec)
|
|
312
350
|
return 0;
|
|
313
351
|
}
|
|
314
352
|
}
|
|
315
353
|
|
|
354
|
+
#if !defined(BOOST_ASIO_NO_IOSTREAM)
|
|
355
|
+
|
|
356
|
+
template <typename SyncReadStream, typename Allocator>
|
|
357
|
+
inline std::size_t read_until(SyncReadStream& s,
|
|
358
|
+
boost::asio::basic_streambuf<Allocator>& b, char delim)
|
|
359
|
+
{
|
|
360
|
+
return read_until(s, basic_streambuf_ref<Allocator>(b), delim);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
template <typename SyncReadStream, typename Allocator>
|
|
364
|
+
inline std::size_t read_until(SyncReadStream& s,
|
|
365
|
+
boost::asio::basic_streambuf<Allocator>& b, char delim,
|
|
366
|
+
boost::system::error_code& ec)
|
|
367
|
+
{
|
|
368
|
+
return read_until(s, basic_streambuf_ref<Allocator>(b), delim, ec);
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
template <typename SyncReadStream, typename Allocator>
|
|
372
|
+
inline std::size_t read_until(SyncReadStream& s,
|
|
373
|
+
boost::asio::basic_streambuf<Allocator>& b,
|
|
374
|
+
BOOST_ASIO_STRING_VIEW_PARAM delim)
|
|
375
|
+
{
|
|
376
|
+
return read_until(s, basic_streambuf_ref<Allocator>(b), delim);
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
template <typename SyncReadStream, typename Allocator>
|
|
380
|
+
inline std::size_t read_until(SyncReadStream& s,
|
|
381
|
+
boost::asio::basic_streambuf<Allocator>& b,
|
|
382
|
+
BOOST_ASIO_STRING_VIEW_PARAM delim, boost::system::error_code& ec)
|
|
383
|
+
{
|
|
384
|
+
return read_until(s, basic_streambuf_ref<Allocator>(b), delim, ec);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
#if defined(BOOST_ASIO_HAS_BOOST_REGEX)
|
|
388
|
+
|
|
389
|
+
template <typename SyncReadStream, typename Allocator>
|
|
390
|
+
inline std::size_t read_until(SyncReadStream& s,
|
|
391
|
+
boost::asio::basic_streambuf<Allocator>& b, const boost::regex& expr)
|
|
392
|
+
{
|
|
393
|
+
return read_until(s, basic_streambuf_ref<Allocator>(b), expr);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
template <typename SyncReadStream, typename Allocator>
|
|
397
|
+
inline std::size_t read_until(SyncReadStream& s,
|
|
398
|
+
boost::asio::basic_streambuf<Allocator>& b, const boost::regex& expr,
|
|
399
|
+
boost::system::error_code& ec)
|
|
400
|
+
{
|
|
401
|
+
return read_until(s, basic_streambuf_ref<Allocator>(b), expr, ec);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
#endif // defined(BOOST_ASIO_HAS_BOOST_REGEX)
|
|
405
|
+
|
|
316
406
|
template <typename SyncReadStream, typename Allocator, typename MatchCondition>
|
|
317
407
|
inline std::size_t read_until(SyncReadStream& s,
|
|
318
408
|
boost::asio::basic_streambuf<Allocator>& b, MatchCondition match_condition,
|
|
319
409
|
typename enable_if<is_match_condition<MatchCondition>::value>::type*)
|
|
320
410
|
{
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
411
|
+
return read_until(s, basic_streambuf_ref<Allocator>(b), match_condition);
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
template <typename SyncReadStream, typename Allocator, typename MatchCondition>
|
|
415
|
+
inline std::size_t read_until(SyncReadStream& s,
|
|
416
|
+
boost::asio::basic_streambuf<Allocator>& b,
|
|
417
|
+
MatchCondition match_condition, boost::system::error_code& ec,
|
|
418
|
+
typename enable_if<is_match_condition<MatchCondition>::value>::type*)
|
|
419
|
+
{
|
|
420
|
+
return read_until(s, basic_streambuf_ref<Allocator>(b), match_condition, ec);
|
|
325
421
|
}
|
|
326
422
|
|
|
423
|
+
#endif // !defined(BOOST_ASIO_NO_IOSTREAM)
|
|
424
|
+
#endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
|
|
425
|
+
|
|
327
426
|
namespace detail
|
|
328
427
|
{
|
|
329
|
-
template <typename AsyncReadStream,
|
|
428
|
+
template <typename AsyncReadStream,
|
|
429
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
330
430
|
class read_until_delim_op
|
|
331
431
|
{
|
|
332
432
|
public:
|
|
433
|
+
template <typename BufferSequence>
|
|
333
434
|
read_until_delim_op(AsyncReadStream& stream,
|
|
334
|
-
|
|
435
|
+
BOOST_ASIO_MOVE_ARG(BufferSequence) buffers,
|
|
335
436
|
char delim, ReadHandler& handler)
|
|
336
437
|
: stream_(stream),
|
|
337
|
-
|
|
438
|
+
buffers_(BOOST_ASIO_MOVE_CAST(BufferSequence)(buffers)),
|
|
338
439
|
delim_(delim),
|
|
339
440
|
start_(0),
|
|
340
441
|
search_position_(0),
|
|
@@ -345,7 +446,7 @@ namespace detail
|
|
|
345
446
|
#if defined(BOOST_ASIO_HAS_MOVE)
|
|
346
447
|
read_until_delim_op(const read_until_delim_op& other)
|
|
347
448
|
: stream_(other.stream_),
|
|
348
|
-
|
|
449
|
+
buffers_(other.buffers_),
|
|
349
450
|
delim_(other.delim_),
|
|
350
451
|
start_(other.start_),
|
|
351
452
|
search_position_(other.search_position_),
|
|
@@ -355,7 +456,7 @@ namespace detail
|
|
|
355
456
|
|
|
356
457
|
read_until_delim_op(read_until_delim_op&& other)
|
|
357
458
|
: stream_(other.stream_),
|
|
358
|
-
|
|
459
|
+
buffers_(BOOST_ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)),
|
|
359
460
|
delim_(other.delim_),
|
|
360
461
|
start_(other.start_),
|
|
361
462
|
search_position_(other.search_position_),
|
|
@@ -376,13 +477,13 @@ namespace detail
|
|
|
376
477
|
{
|
|
377
478
|
{
|
|
378
479
|
// Determine the range of the data to be searched.
|
|
379
|
-
typedef typename
|
|
380
|
-
|
|
381
|
-
typedef
|
|
382
|
-
|
|
383
|
-
iterator begin = iterator::begin(
|
|
480
|
+
typedef typename DynamicBuffer::const_buffers_type
|
|
481
|
+
buffers_type;
|
|
482
|
+
typedef buffers_iterator<buffers_type> iterator;
|
|
483
|
+
buffers_type data_buffers = buffers_.data();
|
|
484
|
+
iterator begin = iterator::begin(data_buffers);
|
|
384
485
|
iterator start_pos = begin + search_position_;
|
|
385
|
-
iterator end = iterator::end(
|
|
486
|
+
iterator end = iterator::end(data_buffers);
|
|
386
487
|
|
|
387
488
|
// Look for a match.
|
|
388
489
|
iterator iter = std::find(start_pos, end, delim_);
|
|
@@ -394,7 +495,7 @@ namespace detail
|
|
|
394
495
|
}
|
|
395
496
|
|
|
396
497
|
// No match yet. Check if buffer is full.
|
|
397
|
-
else if (
|
|
498
|
+
else if (buffers_.size() == buffers_.max_size())
|
|
398
499
|
{
|
|
399
500
|
search_position_ = not_found;
|
|
400
501
|
bytes_to_read = 0;
|
|
@@ -405,7 +506,11 @@ namespace detail
|
|
|
405
506
|
{
|
|
406
507
|
// Next search can start with the new data.
|
|
407
508
|
search_position_ = end - begin;
|
|
408
|
-
bytes_to_read =
|
|
509
|
+
bytes_to_read = std::min<std::size_t>(
|
|
510
|
+
std::max<std::size_t>(512,
|
|
511
|
+
buffers_.capacity() - buffers_.size()),
|
|
512
|
+
std::min<std::size_t>(65536,
|
|
513
|
+
buffers_.max_size() - buffers_.size()));
|
|
409
514
|
}
|
|
410
515
|
}
|
|
411
516
|
|
|
@@ -414,10 +519,10 @@ namespace detail
|
|
|
414
519
|
break;
|
|
415
520
|
|
|
416
521
|
// Start a new asynchronous read operation to obtain more data.
|
|
417
|
-
stream_.async_read_some(
|
|
522
|
+
stream_.async_read_some(buffers_.prepare(bytes_to_read),
|
|
418
523
|
BOOST_ASIO_MOVE_CAST(read_until_delim_op)(*this));
|
|
419
524
|
return; default:
|
|
420
|
-
|
|
525
|
+
buffers_.commit(bytes_transferred);
|
|
421
526
|
if (ec || bytes_transferred == 0)
|
|
422
527
|
break;
|
|
423
528
|
}
|
|
@@ -436,97 +541,143 @@ namespace detail
|
|
|
436
541
|
|
|
437
542
|
//private:
|
|
438
543
|
AsyncReadStream& stream_;
|
|
439
|
-
|
|
544
|
+
DynamicBuffer buffers_;
|
|
440
545
|
char delim_;
|
|
441
546
|
int start_;
|
|
442
547
|
std::size_t search_position_;
|
|
443
548
|
ReadHandler handler_;
|
|
444
549
|
};
|
|
445
550
|
|
|
446
|
-
template <typename AsyncReadStream,
|
|
551
|
+
template <typename AsyncReadStream,
|
|
552
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
447
553
|
inline void* asio_handler_allocate(std::size_t size,
|
|
448
554
|
read_until_delim_op<AsyncReadStream,
|
|
449
|
-
|
|
555
|
+
DynamicBuffer, ReadHandler>* this_handler)
|
|
450
556
|
{
|
|
451
557
|
return boost_asio_handler_alloc_helpers::allocate(
|
|
452
558
|
size, this_handler->handler_);
|
|
453
559
|
}
|
|
454
560
|
|
|
455
|
-
template <typename AsyncReadStream,
|
|
561
|
+
template <typename AsyncReadStream,
|
|
562
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
456
563
|
inline void asio_handler_deallocate(void* pointer, std::size_t size,
|
|
457
564
|
read_until_delim_op<AsyncReadStream,
|
|
458
|
-
|
|
565
|
+
DynamicBuffer, ReadHandler>* this_handler)
|
|
459
566
|
{
|
|
460
567
|
boost_asio_handler_alloc_helpers::deallocate(
|
|
461
568
|
pointer, size, this_handler->handler_);
|
|
462
569
|
}
|
|
463
570
|
|
|
464
|
-
template <typename AsyncReadStream,
|
|
571
|
+
template <typename AsyncReadStream,
|
|
572
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
465
573
|
inline bool asio_handler_is_continuation(
|
|
466
574
|
read_until_delim_op<AsyncReadStream,
|
|
467
|
-
|
|
575
|
+
DynamicBuffer, ReadHandler>* this_handler)
|
|
468
576
|
{
|
|
469
577
|
return this_handler->start_ == 0 ? true
|
|
470
578
|
: boost_asio_handler_cont_helpers::is_continuation(
|
|
471
579
|
this_handler->handler_);
|
|
472
580
|
}
|
|
473
581
|
|
|
474
|
-
template <typename Function, typename AsyncReadStream,
|
|
475
|
-
typename ReadHandler>
|
|
582
|
+
template <typename Function, typename AsyncReadStream,
|
|
583
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
476
584
|
inline void asio_handler_invoke(Function& function,
|
|
477
585
|
read_until_delim_op<AsyncReadStream,
|
|
478
|
-
|
|
586
|
+
DynamicBuffer, ReadHandler>* this_handler)
|
|
479
587
|
{
|
|
480
588
|
boost_asio_handler_invoke_helpers::invoke(
|
|
481
589
|
function, this_handler->handler_);
|
|
482
590
|
}
|
|
483
591
|
|
|
484
|
-
template <typename Function, typename AsyncReadStream,
|
|
485
|
-
typename ReadHandler>
|
|
592
|
+
template <typename Function, typename AsyncReadStream,
|
|
593
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
486
594
|
inline void asio_handler_invoke(const Function& function,
|
|
487
595
|
read_until_delim_op<AsyncReadStream,
|
|
488
|
-
|
|
596
|
+
DynamicBuffer, ReadHandler>* this_handler)
|
|
489
597
|
{
|
|
490
598
|
boost_asio_handler_invoke_helpers::invoke(
|
|
491
599
|
function, this_handler->handler_);
|
|
492
600
|
}
|
|
493
601
|
} // namespace detail
|
|
494
602
|
|
|
495
|
-
|
|
603
|
+
#if !defined(GENERATING_DOCUMENTATION)
|
|
604
|
+
|
|
605
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
606
|
+
typename ReadHandler, typename Allocator>
|
|
607
|
+
struct associated_allocator<
|
|
608
|
+
detail::read_until_delim_op<AsyncReadStream,
|
|
609
|
+
DynamicBuffer, ReadHandler>,
|
|
610
|
+
Allocator>
|
|
611
|
+
{
|
|
612
|
+
typedef typename associated_allocator<ReadHandler, Allocator>::type type;
|
|
613
|
+
|
|
614
|
+
static type get(
|
|
615
|
+
const detail::read_until_delim_op<AsyncReadStream,
|
|
616
|
+
DynamicBuffer, ReadHandler>& h,
|
|
617
|
+
const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
|
|
618
|
+
{
|
|
619
|
+
return associated_allocator<ReadHandler, Allocator>::get(h.handler_, a);
|
|
620
|
+
}
|
|
621
|
+
};
|
|
622
|
+
|
|
623
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
624
|
+
typename ReadHandler, typename Executor>
|
|
625
|
+
struct associated_executor<
|
|
626
|
+
detail::read_until_delim_op<AsyncReadStream,
|
|
627
|
+
DynamicBuffer, ReadHandler>,
|
|
628
|
+
Executor>
|
|
629
|
+
{
|
|
630
|
+
typedef typename associated_executor<ReadHandler, Executor>::type type;
|
|
631
|
+
|
|
632
|
+
static type get(
|
|
633
|
+
const detail::read_until_delim_op<AsyncReadStream,
|
|
634
|
+
DynamicBuffer, ReadHandler>& h,
|
|
635
|
+
const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
|
|
636
|
+
{
|
|
637
|
+
return associated_executor<ReadHandler, Executor>::get(h.handler_, ex);
|
|
638
|
+
}
|
|
639
|
+
};
|
|
640
|
+
|
|
641
|
+
#endif // !defined(GENERATING_DOCUMENTATION)
|
|
642
|
+
|
|
643
|
+
template <typename AsyncReadStream,
|
|
644
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
496
645
|
BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
|
497
646
|
void (boost::system::error_code, std::size_t))
|
|
498
647
|
async_read_until(AsyncReadStream& s,
|
|
499
|
-
|
|
500
|
-
BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
|
|
648
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers,
|
|
649
|
+
char delim, BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
|
|
501
650
|
{
|
|
502
651
|
// If you get an error on the following line it means that your handler does
|
|
503
652
|
// not meet the documented type requirements for a ReadHandler.
|
|
504
653
|
BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check;
|
|
505
654
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
|
655
|
+
async_completion<ReadHandler,
|
|
656
|
+
void (boost::system::error_code, std::size_t)> init(handler);
|
|
509
657
|
|
|
510
658
|
detail::read_until_delim_op<AsyncReadStream,
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
659
|
+
typename decay<DynamicBuffer>::type,
|
|
660
|
+
BOOST_ASIO_HANDLER_TYPE(ReadHandler,
|
|
661
|
+
void (boost::system::error_code, std::size_t))>(
|
|
662
|
+
s, BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers),
|
|
663
|
+
delim, init.completion_handler)(boost::system::error_code(), 0, 1);
|
|
515
664
|
|
|
516
665
|
return init.result.get();
|
|
517
666
|
}
|
|
518
667
|
|
|
519
668
|
namespace detail
|
|
520
669
|
{
|
|
521
|
-
template <typename AsyncReadStream,
|
|
670
|
+
template <typename AsyncReadStream,
|
|
671
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
522
672
|
class read_until_delim_string_op
|
|
523
673
|
{
|
|
524
674
|
public:
|
|
675
|
+
template <typename BufferSequence>
|
|
525
676
|
read_until_delim_string_op(AsyncReadStream& stream,
|
|
526
|
-
|
|
677
|
+
BOOST_ASIO_MOVE_ARG(BufferSequence) buffers,
|
|
527
678
|
const std::string& delim, ReadHandler& handler)
|
|
528
679
|
: stream_(stream),
|
|
529
|
-
|
|
680
|
+
buffers_(BOOST_ASIO_MOVE_CAST(BufferSequence)(buffers)),
|
|
530
681
|
delim_(delim),
|
|
531
682
|
start_(0),
|
|
532
683
|
search_position_(0),
|
|
@@ -537,7 +688,7 @@ namespace detail
|
|
|
537
688
|
#if defined(BOOST_ASIO_HAS_MOVE)
|
|
538
689
|
read_until_delim_string_op(const read_until_delim_string_op& other)
|
|
539
690
|
: stream_(other.stream_),
|
|
540
|
-
|
|
691
|
+
buffers_(other.buffers_),
|
|
541
692
|
delim_(other.delim_),
|
|
542
693
|
start_(other.start_),
|
|
543
694
|
search_position_(other.search_position_),
|
|
@@ -547,7 +698,7 @@ namespace detail
|
|
|
547
698
|
|
|
548
699
|
read_until_delim_string_op(read_until_delim_string_op&& other)
|
|
549
700
|
: stream_(other.stream_),
|
|
550
|
-
|
|
701
|
+
buffers_(BOOST_ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)),
|
|
551
702
|
delim_(BOOST_ASIO_MOVE_CAST(std::string)(other.delim_)),
|
|
552
703
|
start_(other.start_),
|
|
553
704
|
search_position_(other.search_position_),
|
|
@@ -568,13 +719,13 @@ namespace detail
|
|
|
568
719
|
{
|
|
569
720
|
{
|
|
570
721
|
// Determine the range of the data to be searched.
|
|
571
|
-
typedef typename
|
|
572
|
-
|
|
573
|
-
typedef
|
|
574
|
-
|
|
575
|
-
iterator begin = iterator::begin(
|
|
722
|
+
typedef typename DynamicBuffer::const_buffers_type
|
|
723
|
+
buffers_type;
|
|
724
|
+
typedef buffers_iterator<buffers_type> iterator;
|
|
725
|
+
buffers_type data_buffers = buffers_.data();
|
|
726
|
+
iterator begin = iterator::begin(data_buffers);
|
|
576
727
|
iterator start_pos = begin + search_position_;
|
|
577
|
-
iterator end = iterator::end(
|
|
728
|
+
iterator end = iterator::end(data_buffers);
|
|
578
729
|
|
|
579
730
|
// Look for a match.
|
|
580
731
|
std::pair<iterator, bool> result = detail::partial_search(
|
|
@@ -587,7 +738,7 @@ namespace detail
|
|
|
587
738
|
}
|
|
588
739
|
|
|
589
740
|
// No match yet. Check if buffer is full.
|
|
590
|
-
else if (
|
|
741
|
+
else if (buffers_.size() == buffers_.max_size())
|
|
591
742
|
{
|
|
592
743
|
search_position_ = not_found;
|
|
593
744
|
bytes_to_read = 0;
|
|
@@ -608,7 +759,11 @@ namespace detail
|
|
|
608
759
|
search_position_ = end - begin;
|
|
609
760
|
}
|
|
610
761
|
|
|
611
|
-
bytes_to_read =
|
|
762
|
+
bytes_to_read = std::min<std::size_t>(
|
|
763
|
+
std::max<std::size_t>(512,
|
|
764
|
+
buffers_.capacity() - buffers_.size()),
|
|
765
|
+
std::min<std::size_t>(65536,
|
|
766
|
+
buffers_.max_size() - buffers_.size()));
|
|
612
767
|
}
|
|
613
768
|
}
|
|
614
769
|
|
|
@@ -617,10 +772,10 @@ namespace detail
|
|
|
617
772
|
break;
|
|
618
773
|
|
|
619
774
|
// Start a new asynchronous read operation to obtain more data.
|
|
620
|
-
stream_.async_read_some(
|
|
775
|
+
stream_.async_read_some(buffers_.prepare(bytes_to_read),
|
|
621
776
|
BOOST_ASIO_MOVE_CAST(read_until_delim_string_op)(*this));
|
|
622
777
|
return; default:
|
|
623
|
-
|
|
778
|
+
buffers_.commit(bytes_transferred);
|
|
624
779
|
if (ec || bytes_transferred == 0)
|
|
625
780
|
break;
|
|
626
781
|
}
|
|
@@ -639,35 +794,38 @@ namespace detail
|
|
|
639
794
|
|
|
640
795
|
//private:
|
|
641
796
|
AsyncReadStream& stream_;
|
|
642
|
-
|
|
797
|
+
DynamicBuffer buffers_;
|
|
643
798
|
std::string delim_;
|
|
644
799
|
int start_;
|
|
645
800
|
std::size_t search_position_;
|
|
646
801
|
ReadHandler handler_;
|
|
647
802
|
};
|
|
648
803
|
|
|
649
|
-
template <typename AsyncReadStream,
|
|
804
|
+
template <typename AsyncReadStream,
|
|
805
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
650
806
|
inline void* asio_handler_allocate(std::size_t size,
|
|
651
807
|
read_until_delim_string_op<AsyncReadStream,
|
|
652
|
-
|
|
808
|
+
DynamicBuffer, ReadHandler>* this_handler)
|
|
653
809
|
{
|
|
654
810
|
return boost_asio_handler_alloc_helpers::allocate(
|
|
655
811
|
size, this_handler->handler_);
|
|
656
812
|
}
|
|
657
813
|
|
|
658
|
-
template <typename AsyncReadStream,
|
|
814
|
+
template <typename AsyncReadStream,
|
|
815
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
659
816
|
inline void asio_handler_deallocate(void* pointer, std::size_t size,
|
|
660
817
|
read_until_delim_string_op<AsyncReadStream,
|
|
661
|
-
|
|
818
|
+
DynamicBuffer, ReadHandler>* this_handler)
|
|
662
819
|
{
|
|
663
820
|
boost_asio_handler_alloc_helpers::deallocate(
|
|
664
821
|
pointer, size, this_handler->handler_);
|
|
665
822
|
}
|
|
666
823
|
|
|
667
|
-
template <typename AsyncReadStream,
|
|
824
|
+
template <typename AsyncReadStream,
|
|
825
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
668
826
|
inline bool asio_handler_is_continuation(
|
|
669
827
|
read_until_delim_string_op<AsyncReadStream,
|
|
670
|
-
|
|
828
|
+
DynamicBuffer, ReadHandler>* this_handler)
|
|
671
829
|
{
|
|
672
830
|
return this_handler->start_ == 0 ? true
|
|
673
831
|
: boost_asio_handler_cont_helpers::is_continuation(
|
|
@@ -675,64 +833,109 @@ namespace detail
|
|
|
675
833
|
}
|
|
676
834
|
|
|
677
835
|
template <typename Function, typename AsyncReadStream,
|
|
678
|
-
typename
|
|
836
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
679
837
|
inline void asio_handler_invoke(Function& function,
|
|
680
838
|
read_until_delim_string_op<AsyncReadStream,
|
|
681
|
-
|
|
839
|
+
DynamicBuffer, ReadHandler>* this_handler)
|
|
682
840
|
{
|
|
683
841
|
boost_asio_handler_invoke_helpers::invoke(
|
|
684
842
|
function, this_handler->handler_);
|
|
685
843
|
}
|
|
686
844
|
|
|
687
845
|
template <typename Function, typename AsyncReadStream,
|
|
688
|
-
typename
|
|
846
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
689
847
|
inline void asio_handler_invoke(const Function& function,
|
|
690
848
|
read_until_delim_string_op<AsyncReadStream,
|
|
691
|
-
|
|
849
|
+
DynamicBuffer, ReadHandler>* this_handler)
|
|
692
850
|
{
|
|
693
851
|
boost_asio_handler_invoke_helpers::invoke(
|
|
694
852
|
function, this_handler->handler_);
|
|
695
853
|
}
|
|
696
854
|
} // namespace detail
|
|
697
855
|
|
|
698
|
-
|
|
856
|
+
#if !defined(GENERATING_DOCUMENTATION)
|
|
857
|
+
|
|
858
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
859
|
+
typename ReadHandler, typename Allocator>
|
|
860
|
+
struct associated_allocator<
|
|
861
|
+
detail::read_until_delim_string_op<AsyncReadStream,
|
|
862
|
+
DynamicBuffer, ReadHandler>,
|
|
863
|
+
Allocator>
|
|
864
|
+
{
|
|
865
|
+
typedef typename associated_allocator<ReadHandler, Allocator>::type type;
|
|
866
|
+
|
|
867
|
+
static type get(
|
|
868
|
+
const detail::read_until_delim_string_op<AsyncReadStream,
|
|
869
|
+
DynamicBuffer, ReadHandler>& h,
|
|
870
|
+
const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
|
|
871
|
+
{
|
|
872
|
+
return associated_allocator<ReadHandler, Allocator>::get(h.handler_, a);
|
|
873
|
+
}
|
|
874
|
+
};
|
|
875
|
+
|
|
876
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
877
|
+
typename ReadHandler, typename Executor>
|
|
878
|
+
struct associated_executor<
|
|
879
|
+
detail::read_until_delim_string_op<AsyncReadStream,
|
|
880
|
+
DynamicBuffer, ReadHandler>,
|
|
881
|
+
Executor>
|
|
882
|
+
{
|
|
883
|
+
typedef typename associated_executor<ReadHandler, Executor>::type type;
|
|
884
|
+
|
|
885
|
+
static type get(
|
|
886
|
+
const detail::read_until_delim_string_op<AsyncReadStream,
|
|
887
|
+
DynamicBuffer, ReadHandler>& h,
|
|
888
|
+
const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
|
|
889
|
+
{
|
|
890
|
+
return associated_executor<ReadHandler, Executor>::get(h.handler_, ex);
|
|
891
|
+
}
|
|
892
|
+
};
|
|
893
|
+
|
|
894
|
+
#endif // !defined(GENERATING_DOCUMENTATION)
|
|
895
|
+
|
|
896
|
+
template <typename AsyncReadStream,
|
|
897
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
699
898
|
BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
|
700
899
|
void (boost::system::error_code, std::size_t))
|
|
701
900
|
async_read_until(AsyncReadStream& s,
|
|
702
|
-
|
|
901
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers,
|
|
902
|
+
BOOST_ASIO_STRING_VIEW_PARAM delim,
|
|
703
903
|
BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
|
|
704
904
|
{
|
|
705
905
|
// If you get an error on the following line it means that your handler does
|
|
706
906
|
// not meet the documented type requirements for a ReadHandler.
|
|
707
907
|
BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check;
|
|
708
908
|
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
|
909
|
+
async_completion<ReadHandler,
|
|
910
|
+
void (boost::system::error_code, std::size_t)> init(handler);
|
|
712
911
|
|
|
713
912
|
detail::read_until_delim_string_op<AsyncReadStream,
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
913
|
+
typename decay<DynamicBuffer>::type,
|
|
914
|
+
BOOST_ASIO_HANDLER_TYPE(ReadHandler,
|
|
915
|
+
void (boost::system::error_code, std::size_t))>(
|
|
916
|
+
s, BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers),
|
|
917
|
+
static_cast<std::string>(delim),
|
|
918
|
+
init.completion_handler)(boost::system::error_code(), 0, 1);
|
|
718
919
|
|
|
719
920
|
return init.result.get();
|
|
720
921
|
}
|
|
721
922
|
|
|
923
|
+
#if !defined(BOOST_ASIO_NO_EXTENSIONS)
|
|
722
924
|
#if defined(BOOST_ASIO_HAS_BOOST_REGEX)
|
|
723
925
|
|
|
724
926
|
namespace detail
|
|
725
927
|
{
|
|
726
|
-
template <typename AsyncReadStream, typename
|
|
928
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
727
929
|
typename RegEx, typename ReadHandler>
|
|
728
930
|
class read_until_expr_op
|
|
729
931
|
{
|
|
730
932
|
public:
|
|
933
|
+
template <typename BufferSequence>
|
|
731
934
|
read_until_expr_op(AsyncReadStream& stream,
|
|
732
|
-
|
|
935
|
+
BOOST_ASIO_MOVE_ARG(BufferSequence) buffers,
|
|
733
936
|
const boost::regex& expr, ReadHandler& handler)
|
|
734
937
|
: stream_(stream),
|
|
735
|
-
|
|
938
|
+
buffers_(BOOST_ASIO_MOVE_CAST(BufferSequence)(buffers)),
|
|
736
939
|
expr_(expr),
|
|
737
940
|
start_(0),
|
|
738
941
|
search_position_(0),
|
|
@@ -743,7 +946,7 @@ namespace detail
|
|
|
743
946
|
#if defined(BOOST_ASIO_HAS_MOVE)
|
|
744
947
|
read_until_expr_op(const read_until_expr_op& other)
|
|
745
948
|
: stream_(other.stream_),
|
|
746
|
-
|
|
949
|
+
buffers_(other.buffers_),
|
|
747
950
|
expr_(other.expr_),
|
|
748
951
|
start_(other.start_),
|
|
749
952
|
search_position_(other.search_position_),
|
|
@@ -753,7 +956,7 @@ namespace detail
|
|
|
753
956
|
|
|
754
957
|
read_until_expr_op(read_until_expr_op&& other)
|
|
755
958
|
: stream_(other.stream_),
|
|
756
|
-
|
|
959
|
+
buffers_(BOOST_ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)),
|
|
757
960
|
expr_(other.expr_),
|
|
758
961
|
start_(other.start_),
|
|
759
962
|
search_position_(other.search_position_),
|
|
@@ -774,13 +977,13 @@ namespace detail
|
|
|
774
977
|
{
|
|
775
978
|
{
|
|
776
979
|
// Determine the range of the data to be searched.
|
|
777
|
-
typedef typename
|
|
778
|
-
|
|
779
|
-
typedef
|
|
780
|
-
|
|
781
|
-
iterator begin = iterator::begin(
|
|
980
|
+
typedef typename DynamicBuffer::const_buffers_type
|
|
981
|
+
buffers_type;
|
|
982
|
+
typedef buffers_iterator<buffers_type> iterator;
|
|
983
|
+
buffers_type data_buffers = buffers_.data();
|
|
984
|
+
iterator begin = iterator::begin(data_buffers);
|
|
782
985
|
iterator start_pos = begin + search_position_;
|
|
783
|
-
iterator end = iterator::end(
|
|
986
|
+
iterator end = iterator::end(data_buffers);
|
|
784
987
|
|
|
785
988
|
// Look for a match.
|
|
786
989
|
boost::match_results<iterator,
|
|
@@ -796,7 +999,7 @@ namespace detail
|
|
|
796
999
|
}
|
|
797
1000
|
|
|
798
1001
|
// No match yet. Check if buffer is full.
|
|
799
|
-
else if (
|
|
1002
|
+
else if (buffers_.size() == buffers_.max_size())
|
|
800
1003
|
{
|
|
801
1004
|
search_position_ = not_found;
|
|
802
1005
|
bytes_to_read = 0;
|
|
@@ -817,7 +1020,11 @@ namespace detail
|
|
|
817
1020
|
search_position_ = end - begin;
|
|
818
1021
|
}
|
|
819
1022
|
|
|
820
|
-
bytes_to_read =
|
|
1023
|
+
bytes_to_read = std::min<std::size_t>(
|
|
1024
|
+
std::max<std::size_t>(512,
|
|
1025
|
+
buffers_.capacity() - buffers_.size()),
|
|
1026
|
+
std::min<std::size_t>(65536,
|
|
1027
|
+
buffers_.max_size() - buffers_.size()));
|
|
821
1028
|
}
|
|
822
1029
|
}
|
|
823
1030
|
|
|
@@ -826,10 +1033,10 @@ namespace detail
|
|
|
826
1033
|
break;
|
|
827
1034
|
|
|
828
1035
|
// Start a new asynchronous read operation to obtain more data.
|
|
829
|
-
stream_.async_read_some(
|
|
1036
|
+
stream_.async_read_some(buffers_.prepare(bytes_to_read),
|
|
830
1037
|
BOOST_ASIO_MOVE_CAST(read_until_expr_op)(*this));
|
|
831
1038
|
return; default:
|
|
832
|
-
|
|
1039
|
+
buffers_.commit(bytes_transferred);
|
|
833
1040
|
if (ec || bytes_transferred == 0)
|
|
834
1041
|
break;
|
|
835
1042
|
}
|
|
@@ -848,85 +1055,127 @@ namespace detail
|
|
|
848
1055
|
|
|
849
1056
|
//private:
|
|
850
1057
|
AsyncReadStream& stream_;
|
|
851
|
-
|
|
1058
|
+
DynamicBuffer buffers_;
|
|
852
1059
|
RegEx expr_;
|
|
853
1060
|
int start_;
|
|
854
1061
|
std::size_t search_position_;
|
|
855
1062
|
ReadHandler handler_;
|
|
856
1063
|
};
|
|
857
1064
|
|
|
858
|
-
template <typename AsyncReadStream, typename
|
|
1065
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
859
1066
|
typename RegEx, typename ReadHandler>
|
|
860
1067
|
inline void* asio_handler_allocate(std::size_t size,
|
|
861
1068
|
read_until_expr_op<AsyncReadStream,
|
|
862
|
-
|
|
1069
|
+
DynamicBuffer, RegEx, ReadHandler>* this_handler)
|
|
863
1070
|
{
|
|
864
1071
|
return boost_asio_handler_alloc_helpers::allocate(
|
|
865
1072
|
size, this_handler->handler_);
|
|
866
1073
|
}
|
|
867
1074
|
|
|
868
|
-
template <typename AsyncReadStream, typename
|
|
1075
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
869
1076
|
typename RegEx, typename ReadHandler>
|
|
870
1077
|
inline void asio_handler_deallocate(void* pointer, std::size_t size,
|
|
871
1078
|
read_until_expr_op<AsyncReadStream,
|
|
872
|
-
|
|
1079
|
+
DynamicBuffer, RegEx, ReadHandler>* this_handler)
|
|
873
1080
|
{
|
|
874
1081
|
boost_asio_handler_alloc_helpers::deallocate(
|
|
875
1082
|
pointer, size, this_handler->handler_);
|
|
876
1083
|
}
|
|
877
1084
|
|
|
878
|
-
template <typename AsyncReadStream, typename
|
|
1085
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
879
1086
|
typename RegEx, typename ReadHandler>
|
|
880
1087
|
inline bool asio_handler_is_continuation(
|
|
881
1088
|
read_until_expr_op<AsyncReadStream,
|
|
882
|
-
|
|
1089
|
+
DynamicBuffer, RegEx, ReadHandler>* this_handler)
|
|
883
1090
|
{
|
|
884
1091
|
return this_handler->start_ == 0 ? true
|
|
885
1092
|
: boost_asio_handler_cont_helpers::is_continuation(
|
|
886
1093
|
this_handler->handler_);
|
|
887
1094
|
}
|
|
888
1095
|
|
|
889
|
-
template <typename Function, typename AsyncReadStream,
|
|
890
|
-
typename RegEx, typename ReadHandler>
|
|
1096
|
+
template <typename Function, typename AsyncReadStream,
|
|
1097
|
+
typename DynamicBuffer, typename RegEx, typename ReadHandler>
|
|
891
1098
|
inline void asio_handler_invoke(Function& function,
|
|
892
1099
|
read_until_expr_op<AsyncReadStream,
|
|
893
|
-
|
|
1100
|
+
DynamicBuffer, RegEx, ReadHandler>* this_handler)
|
|
894
1101
|
{
|
|
895
1102
|
boost_asio_handler_invoke_helpers::invoke(
|
|
896
1103
|
function, this_handler->handler_);
|
|
897
1104
|
}
|
|
898
1105
|
|
|
899
|
-
template <typename Function, typename AsyncReadStream,
|
|
900
|
-
typename RegEx, typename ReadHandler>
|
|
1106
|
+
template <typename Function, typename AsyncReadStream,
|
|
1107
|
+
typename DynamicBuffer, typename RegEx, typename ReadHandler>
|
|
901
1108
|
inline void asio_handler_invoke(const Function& function,
|
|
902
1109
|
read_until_expr_op<AsyncReadStream,
|
|
903
|
-
|
|
1110
|
+
DynamicBuffer, RegEx, ReadHandler>* this_handler)
|
|
904
1111
|
{
|
|
905
1112
|
boost_asio_handler_invoke_helpers::invoke(
|
|
906
1113
|
function, this_handler->handler_);
|
|
907
1114
|
}
|
|
908
1115
|
} // namespace detail
|
|
909
1116
|
|
|
910
|
-
|
|
1117
|
+
#if !defined(GENERATING_DOCUMENTATION)
|
|
1118
|
+
|
|
1119
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
1120
|
+
typename RegEx, typename ReadHandler, typename Allocator>
|
|
1121
|
+
struct associated_allocator<
|
|
1122
|
+
detail::read_until_expr_op<AsyncReadStream,
|
|
1123
|
+
DynamicBuffer, RegEx, ReadHandler>,
|
|
1124
|
+
Allocator>
|
|
1125
|
+
{
|
|
1126
|
+
typedef typename associated_allocator<ReadHandler, Allocator>::type type;
|
|
1127
|
+
|
|
1128
|
+
static type get(
|
|
1129
|
+
const detail::read_until_expr_op<AsyncReadStream,
|
|
1130
|
+
DynamicBuffer, RegEx, ReadHandler>& h,
|
|
1131
|
+
const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
|
|
1132
|
+
{
|
|
1133
|
+
return associated_allocator<ReadHandler, Allocator>::get(h.handler_, a);
|
|
1134
|
+
}
|
|
1135
|
+
};
|
|
1136
|
+
|
|
1137
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
1138
|
+
typename RegEx, typename ReadHandler, typename Executor>
|
|
1139
|
+
struct associated_executor<
|
|
1140
|
+
detail::read_until_expr_op<AsyncReadStream,
|
|
1141
|
+
DynamicBuffer, RegEx, ReadHandler>,
|
|
1142
|
+
Executor>
|
|
1143
|
+
{
|
|
1144
|
+
typedef typename associated_executor<ReadHandler, Executor>::type type;
|
|
1145
|
+
|
|
1146
|
+
static type get(
|
|
1147
|
+
const detail::read_until_expr_op<AsyncReadStream,
|
|
1148
|
+
DynamicBuffer, RegEx, ReadHandler>& h,
|
|
1149
|
+
const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
|
|
1150
|
+
{
|
|
1151
|
+
return associated_executor<ReadHandler, Executor>::get(h.handler_, ex);
|
|
1152
|
+
}
|
|
1153
|
+
};
|
|
1154
|
+
|
|
1155
|
+
#endif // !defined(GENERATING_DOCUMENTATION)
|
|
1156
|
+
|
|
1157
|
+
template <typename AsyncReadStream,
|
|
1158
|
+
typename DynamicBuffer, typename ReadHandler>
|
|
911
1159
|
BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
|
912
1160
|
void (boost::system::error_code, std::size_t))
|
|
913
1161
|
async_read_until(AsyncReadStream& s,
|
|
914
|
-
|
|
1162
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers,
|
|
1163
|
+
const boost::regex& expr,
|
|
915
1164
|
BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
|
|
916
1165
|
{
|
|
917
1166
|
// If you get an error on the following line it means that your handler does
|
|
918
1167
|
// not meet the documented type requirements for a ReadHandler.
|
|
919
1168
|
BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check;
|
|
920
1169
|
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
|
1170
|
+
async_completion<ReadHandler,
|
|
1171
|
+
void (boost::system::error_code, std::size_t)> init(handler);
|
|
924
1172
|
|
|
925
|
-
detail::read_until_expr_op<AsyncReadStream,
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
1173
|
+
detail::read_until_expr_op<AsyncReadStream,
|
|
1174
|
+
typename decay<DynamicBuffer>::type,
|
|
1175
|
+
boost::regex, BOOST_ASIO_HANDLER_TYPE(ReadHandler,
|
|
1176
|
+
void (boost::system::error_code, std::size_t))>(
|
|
1177
|
+
s, BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers),
|
|
1178
|
+
expr, init.completion_handler)(boost::system::error_code(), 0, 1);
|
|
930
1179
|
|
|
931
1180
|
return init.result.get();
|
|
932
1181
|
}
|
|
@@ -935,16 +1184,17 @@ async_read_until(AsyncReadStream& s,
|
|
|
935
1184
|
|
|
936
1185
|
namespace detail
|
|
937
1186
|
{
|
|
938
|
-
template <typename AsyncReadStream, typename
|
|
1187
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
939
1188
|
typename MatchCondition, typename ReadHandler>
|
|
940
1189
|
class read_until_match_op
|
|
941
1190
|
{
|
|
942
1191
|
public:
|
|
1192
|
+
template <typename BufferSequence>
|
|
943
1193
|
read_until_match_op(AsyncReadStream& stream,
|
|
944
|
-
|
|
1194
|
+
BOOST_ASIO_MOVE_ARG(BufferSequence) buffers,
|
|
945
1195
|
MatchCondition match_condition, ReadHandler& handler)
|
|
946
1196
|
: stream_(stream),
|
|
947
|
-
|
|
1197
|
+
buffers_(BOOST_ASIO_MOVE_CAST(BufferSequence)(buffers)),
|
|
948
1198
|
match_condition_(match_condition),
|
|
949
1199
|
start_(0),
|
|
950
1200
|
search_position_(0),
|
|
@@ -955,7 +1205,7 @@ namespace detail
|
|
|
955
1205
|
#if defined(BOOST_ASIO_HAS_MOVE)
|
|
956
1206
|
read_until_match_op(const read_until_match_op& other)
|
|
957
1207
|
: stream_(other.stream_),
|
|
958
|
-
|
|
1208
|
+
buffers_(other.buffers_),
|
|
959
1209
|
match_condition_(other.match_condition_),
|
|
960
1210
|
start_(other.start_),
|
|
961
1211
|
search_position_(other.search_position_),
|
|
@@ -965,7 +1215,7 @@ namespace detail
|
|
|
965
1215
|
|
|
966
1216
|
read_until_match_op(read_until_match_op&& other)
|
|
967
1217
|
: stream_(other.stream_),
|
|
968
|
-
|
|
1218
|
+
buffers_(BOOST_ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)),
|
|
969
1219
|
match_condition_(other.match_condition_),
|
|
970
1220
|
start_(other.start_),
|
|
971
1221
|
search_position_(other.search_position_),
|
|
@@ -986,13 +1236,13 @@ namespace detail
|
|
|
986
1236
|
{
|
|
987
1237
|
{
|
|
988
1238
|
// Determine the range of the data to be searched.
|
|
989
|
-
typedef typename
|
|
990
|
-
|
|
991
|
-
typedef
|
|
992
|
-
|
|
993
|
-
iterator begin = iterator::begin(
|
|
1239
|
+
typedef typename DynamicBuffer::const_buffers_type
|
|
1240
|
+
buffers_type;
|
|
1241
|
+
typedef buffers_iterator<buffers_type> iterator;
|
|
1242
|
+
buffers_type data_buffers = buffers_.data();
|
|
1243
|
+
iterator begin = iterator::begin(data_buffers);
|
|
994
1244
|
iterator start_pos = begin + search_position_;
|
|
995
|
-
iterator end = iterator::end(
|
|
1245
|
+
iterator end = iterator::end(data_buffers);
|
|
996
1246
|
|
|
997
1247
|
// Look for a match.
|
|
998
1248
|
std::pair<iterator, bool> result = match_condition_(start_pos, end);
|
|
@@ -1004,7 +1254,7 @@ namespace detail
|
|
|
1004
1254
|
}
|
|
1005
1255
|
|
|
1006
1256
|
// No match yet. Check if buffer is full.
|
|
1007
|
-
else if (
|
|
1257
|
+
else if (buffers_.size() == buffers_.max_size())
|
|
1008
1258
|
{
|
|
1009
1259
|
search_position_ = not_found;
|
|
1010
1260
|
bytes_to_read = 0;
|
|
@@ -1025,7 +1275,11 @@ namespace detail
|
|
|
1025
1275
|
search_position_ = end - begin;
|
|
1026
1276
|
}
|
|
1027
1277
|
|
|
1028
|
-
bytes_to_read =
|
|
1278
|
+
bytes_to_read = std::min<std::size_t>(
|
|
1279
|
+
std::max<std::size_t>(512,
|
|
1280
|
+
buffers_.capacity() - buffers_.size()),
|
|
1281
|
+
std::min<std::size_t>(65536,
|
|
1282
|
+
buffers_.max_size() - buffers_.size()));
|
|
1029
1283
|
}
|
|
1030
1284
|
}
|
|
1031
1285
|
|
|
@@ -1034,10 +1288,10 @@ namespace detail
|
|
|
1034
1288
|
break;
|
|
1035
1289
|
|
|
1036
1290
|
// Start a new asynchronous read operation to obtain more data.
|
|
1037
|
-
stream_.async_read_some(
|
|
1291
|
+
stream_.async_read_some(buffers_.prepare(bytes_to_read),
|
|
1038
1292
|
BOOST_ASIO_MOVE_CAST(read_until_match_op)(*this));
|
|
1039
1293
|
return; default:
|
|
1040
|
-
|
|
1294
|
+
buffers_.commit(bytes_transferred);
|
|
1041
1295
|
if (ec || bytes_transferred == 0)
|
|
1042
1296
|
break;
|
|
1043
1297
|
}
|
|
@@ -1056,71 +1310,113 @@ namespace detail
|
|
|
1056
1310
|
|
|
1057
1311
|
//private:
|
|
1058
1312
|
AsyncReadStream& stream_;
|
|
1059
|
-
|
|
1313
|
+
DynamicBuffer buffers_;
|
|
1060
1314
|
MatchCondition match_condition_;
|
|
1061
1315
|
int start_;
|
|
1062
1316
|
std::size_t search_position_;
|
|
1063
1317
|
ReadHandler handler_;
|
|
1064
1318
|
};
|
|
1065
1319
|
|
|
1066
|
-
template <typename AsyncReadStream, typename
|
|
1320
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
1067
1321
|
typename MatchCondition, typename ReadHandler>
|
|
1068
1322
|
inline void* asio_handler_allocate(std::size_t size,
|
|
1069
|
-
read_until_match_op<AsyncReadStream,
|
|
1070
|
-
|
|
1323
|
+
read_until_match_op<AsyncReadStream, DynamicBuffer,
|
|
1324
|
+
MatchCondition, ReadHandler>* this_handler)
|
|
1071
1325
|
{
|
|
1072
1326
|
return boost_asio_handler_alloc_helpers::allocate(
|
|
1073
1327
|
size, this_handler->handler_);
|
|
1074
1328
|
}
|
|
1075
1329
|
|
|
1076
|
-
template <typename AsyncReadStream, typename
|
|
1330
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
1077
1331
|
typename MatchCondition, typename ReadHandler>
|
|
1078
1332
|
inline void asio_handler_deallocate(void* pointer, std::size_t size,
|
|
1079
|
-
read_until_match_op<AsyncReadStream,
|
|
1080
|
-
|
|
1333
|
+
read_until_match_op<AsyncReadStream, DynamicBuffer,
|
|
1334
|
+
MatchCondition, ReadHandler>* this_handler)
|
|
1081
1335
|
{
|
|
1082
1336
|
boost_asio_handler_alloc_helpers::deallocate(
|
|
1083
1337
|
pointer, size, this_handler->handler_);
|
|
1084
1338
|
}
|
|
1085
1339
|
|
|
1086
|
-
template <typename AsyncReadStream, typename
|
|
1340
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
1087
1341
|
typename MatchCondition, typename ReadHandler>
|
|
1088
1342
|
inline bool asio_handler_is_continuation(
|
|
1089
|
-
read_until_match_op<AsyncReadStream,
|
|
1090
|
-
|
|
1343
|
+
read_until_match_op<AsyncReadStream, DynamicBuffer,
|
|
1344
|
+
MatchCondition, ReadHandler>* this_handler)
|
|
1091
1345
|
{
|
|
1092
1346
|
return this_handler->start_ == 0 ? true
|
|
1093
1347
|
: boost_asio_handler_cont_helpers::is_continuation(
|
|
1094
1348
|
this_handler->handler_);
|
|
1095
1349
|
}
|
|
1096
1350
|
|
|
1097
|
-
template <typename Function, typename AsyncReadStream,
|
|
1098
|
-
typename
|
|
1351
|
+
template <typename Function, typename AsyncReadStream,
|
|
1352
|
+
typename DynamicBuffer, typename MatchCondition,
|
|
1353
|
+
typename ReadHandler>
|
|
1099
1354
|
inline void asio_handler_invoke(Function& function,
|
|
1100
|
-
read_until_match_op<AsyncReadStream,
|
|
1101
|
-
|
|
1355
|
+
read_until_match_op<AsyncReadStream, DynamicBuffer,
|
|
1356
|
+
MatchCondition, ReadHandler>* this_handler)
|
|
1102
1357
|
{
|
|
1103
1358
|
boost_asio_handler_invoke_helpers::invoke(
|
|
1104
1359
|
function, this_handler->handler_);
|
|
1105
1360
|
}
|
|
1106
1361
|
|
|
1107
|
-
template <typename Function, typename AsyncReadStream,
|
|
1108
|
-
typename
|
|
1362
|
+
template <typename Function, typename AsyncReadStream,
|
|
1363
|
+
typename DynamicBuffer, typename MatchCondition,
|
|
1364
|
+
typename ReadHandler>
|
|
1109
1365
|
inline void asio_handler_invoke(const Function& function,
|
|
1110
|
-
read_until_match_op<AsyncReadStream,
|
|
1111
|
-
|
|
1366
|
+
read_until_match_op<AsyncReadStream, DynamicBuffer,
|
|
1367
|
+
MatchCondition, ReadHandler>* this_handler)
|
|
1112
1368
|
{
|
|
1113
1369
|
boost_asio_handler_invoke_helpers::invoke(
|
|
1114
1370
|
function, this_handler->handler_);
|
|
1115
1371
|
}
|
|
1116
1372
|
} // namespace detail
|
|
1117
1373
|
|
|
1118
|
-
|
|
1374
|
+
#if !defined(GENERATING_DOCUMENTATION)
|
|
1375
|
+
|
|
1376
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
1377
|
+
typename MatchCondition, typename ReadHandler, typename Allocator>
|
|
1378
|
+
struct associated_allocator<
|
|
1379
|
+
detail::read_until_match_op<AsyncReadStream,
|
|
1380
|
+
DynamicBuffer, MatchCondition, ReadHandler>,
|
|
1381
|
+
Allocator>
|
|
1382
|
+
{
|
|
1383
|
+
typedef typename associated_allocator<ReadHandler, Allocator>::type type;
|
|
1384
|
+
|
|
1385
|
+
static type get(
|
|
1386
|
+
const detail::read_until_match_op<AsyncReadStream,
|
|
1387
|
+
DynamicBuffer, MatchCondition, ReadHandler>& h,
|
|
1388
|
+
const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
|
|
1389
|
+
{
|
|
1390
|
+
return associated_allocator<ReadHandler, Allocator>::get(h.handler_, a);
|
|
1391
|
+
}
|
|
1392
|
+
};
|
|
1393
|
+
|
|
1394
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
1395
|
+
typename MatchCondition, typename ReadHandler, typename Executor>
|
|
1396
|
+
struct associated_executor<
|
|
1397
|
+
detail::read_until_match_op<AsyncReadStream,
|
|
1398
|
+
DynamicBuffer, MatchCondition, ReadHandler>,
|
|
1399
|
+
Executor>
|
|
1400
|
+
{
|
|
1401
|
+
typedef typename associated_executor<ReadHandler, Executor>::type type;
|
|
1402
|
+
|
|
1403
|
+
static type get(
|
|
1404
|
+
const detail::read_until_match_op<AsyncReadStream,
|
|
1405
|
+
DynamicBuffer, MatchCondition, ReadHandler>& h,
|
|
1406
|
+
const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
|
|
1407
|
+
{
|
|
1408
|
+
return associated_executor<ReadHandler, Executor>::get(h.handler_, ex);
|
|
1409
|
+
}
|
|
1410
|
+
};
|
|
1411
|
+
|
|
1412
|
+
#endif // !defined(GENERATING_DOCUMENTATION)
|
|
1413
|
+
|
|
1414
|
+
template <typename AsyncReadStream, typename DynamicBuffer,
|
|
1119
1415
|
typename MatchCondition, typename ReadHandler>
|
|
1120
1416
|
BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
|
1121
1417
|
void (boost::system::error_code, std::size_t))
|
|
1122
1418
|
async_read_until(AsyncReadStream& s,
|
|
1123
|
-
|
|
1419
|
+
BOOST_ASIO_MOVE_ARG(DynamicBuffer) buffers,
|
|
1124
1420
|
MatchCondition match_condition, BOOST_ASIO_MOVE_ARG(ReadHandler) handler,
|
|
1125
1421
|
typename enable_if<is_match_condition<MatchCondition>::value>::type*)
|
|
1126
1422
|
{
|
|
@@ -1128,19 +1424,76 @@ async_read_until(AsyncReadStream& s,
|
|
|
1128
1424
|
// not meet the documented type requirements for a ReadHandler.
|
|
1129
1425
|
BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check;
|
|
1130
1426
|
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
|
1427
|
+
async_completion<ReadHandler,
|
|
1428
|
+
void (boost::system::error_code, std::size_t)> init(handler);
|
|
1134
1429
|
|
|
1135
|
-
detail::read_until_match_op<AsyncReadStream,
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1430
|
+
detail::read_until_match_op<AsyncReadStream,
|
|
1431
|
+
typename decay<DynamicBuffer>::type,
|
|
1432
|
+
MatchCondition, BOOST_ASIO_HANDLER_TYPE(ReadHandler,
|
|
1433
|
+
void (boost::system::error_code, std::size_t))>(
|
|
1434
|
+
s, BOOST_ASIO_MOVE_CAST(DynamicBuffer)(buffers),
|
|
1435
|
+
match_condition, init.completion_handler)(
|
|
1436
|
+
boost::system::error_code(), 0, 1);
|
|
1140
1437
|
|
|
1141
1438
|
return init.result.get();
|
|
1142
1439
|
}
|
|
1143
1440
|
|
|
1441
|
+
#if !defined(BOOST_ASIO_NO_IOSTREAM)
|
|
1442
|
+
|
|
1443
|
+
template <typename AsyncReadStream, typename Allocator, typename ReadHandler>
|
|
1444
|
+
inline BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
|
1445
|
+
void (boost::system::error_code, std::size_t))
|
|
1446
|
+
async_read_until(AsyncReadStream& s,
|
|
1447
|
+
boost::asio::basic_streambuf<Allocator>& b,
|
|
1448
|
+
char delim, BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
|
|
1449
|
+
{
|
|
1450
|
+
return async_read_until(s, basic_streambuf_ref<Allocator>(b),
|
|
1451
|
+
delim, BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1454
|
+
template <typename AsyncReadStream, typename Allocator, typename ReadHandler>
|
|
1455
|
+
inline BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
|
1456
|
+
void (boost::system::error_code, std::size_t))
|
|
1457
|
+
async_read_until(AsyncReadStream& s,
|
|
1458
|
+
boost::asio::basic_streambuf<Allocator>& b,
|
|
1459
|
+
BOOST_ASIO_STRING_VIEW_PARAM delim,
|
|
1460
|
+
BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
|
|
1461
|
+
{
|
|
1462
|
+
return async_read_until(s, basic_streambuf_ref<Allocator>(b),
|
|
1463
|
+
delim, BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
|
1464
|
+
}
|
|
1465
|
+
|
|
1466
|
+
#if defined(BOOST_ASIO_HAS_BOOST_REGEX)
|
|
1467
|
+
|
|
1468
|
+
template <typename AsyncReadStream, typename Allocator, typename ReadHandler>
|
|
1469
|
+
inline BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
|
1470
|
+
void (boost::system::error_code, std::size_t))
|
|
1471
|
+
async_read_until(AsyncReadStream& s,
|
|
1472
|
+
boost::asio::basic_streambuf<Allocator>& b, const boost::regex& expr,
|
|
1473
|
+
BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
|
|
1474
|
+
{
|
|
1475
|
+
return async_read_until(s, basic_streambuf_ref<Allocator>(b),
|
|
1476
|
+
expr, BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1479
|
+
#endif // defined(BOOST_ASIO_HAS_BOOST_REGEX)
|
|
1480
|
+
|
|
1481
|
+
template <typename AsyncReadStream, typename Allocator,
|
|
1482
|
+
typename MatchCondition, typename ReadHandler>
|
|
1483
|
+
inline BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
|
1484
|
+
void (boost::system::error_code, std::size_t))
|
|
1485
|
+
async_read_until(AsyncReadStream& s,
|
|
1486
|
+
boost::asio::basic_streambuf<Allocator>& b,
|
|
1487
|
+
MatchCondition match_condition, BOOST_ASIO_MOVE_ARG(ReadHandler) handler,
|
|
1488
|
+
typename enable_if<is_match_condition<MatchCondition>::value>::type*)
|
|
1489
|
+
{
|
|
1490
|
+
return async_read_until(s, basic_streambuf_ref<Allocator>(b),
|
|
1491
|
+
match_condition, BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
|
1492
|
+
}
|
|
1493
|
+
|
|
1494
|
+
#endif // !defined(BOOST_ASIO_NO_IOSTREAM)
|
|
1495
|
+
#endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
|
|
1496
|
+
|
|
1144
1497
|
} // namespace asio
|
|
1145
1498
|
} // namespace boost
|
|
1146
1499
|
|