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.
Files changed (1070) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +8 -0
  3. data/build/support/cxx_dependency_map.rb +151 -83
  4. data/dev/configkit-schemas/index.json +3 -3
  5. data/src/agent/Core/AdminPanelConnector.h +5 -3
  6. data/src/agent/Core/ApplicationPool/Common.h +1 -2
  7. data/src/agent/Core/ApplicationPool/Context.h +1 -2
  8. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +2 -2
  9. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +2 -2
  10. data/src/agent/Core/Config.h +1 -1
  11. data/src/agent/Core/Controller.h +2 -1
  12. data/src/agent/Core/Controller/Config.h +6 -5
  13. data/src/agent/Core/Controller/Hooks.cpp +11 -0
  14. data/src/agent/Core/Controller/SendRequest.cpp +7 -7
  15. data/src/agent/Core/CoreMain.cpp +0 -2
  16. data/src/agent/Core/SpawningKit/Context.h +1 -3
  17. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +2 -2
  18. data/src/agent/Core/SpawningKit/Handshake/Perform.h +2 -2
  19. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +17 -38
  20. data/src/agent/Core/SpawningKit/PipeWatcher.h +5 -3
  21. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +13 -5
  22. data/src/agent/Shared/ApiServerUtils.h +2 -2
  23. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +33 -18
  24. data/src/agent/Watchdog/Config.h +1 -1
  25. data/src/agent/Watchdog/WatchdogMain.cpp +20 -20
  26. data/src/apache2_module/Config.cpp +7 -6
  27. data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
  28. data/src/cxx_supportlib/Constants.h +1 -1
  29. data/src/cxx_supportlib/Exceptions.h +0 -1
  30. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +3 -2
  31. data/src/cxx_supportlib/ResourceLocator.h +3 -21
  32. data/src/cxx_supportlib/SafeLibev.h +6 -6
  33. data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
  34. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -3
  35. data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
  36. data/src/cxx_supportlib/ServerKit/HttpServer.h +27 -15
  37. data/src/cxx_supportlib/ServerKit/Server.h +2 -2
  38. data/src/cxx_supportlib/SystemTools/README.md +1 -0
  39. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +222 -0
  40. data/src/cxx_supportlib/SystemTools/UserDatabase.h +151 -0
  41. data/src/cxx_supportlib/Utils.cpp +1 -113
  42. data/src/cxx_supportlib/Utils.h +1 -29
  43. data/src/cxx_supportlib/Utils/MessagePassing.h +3 -3
  44. data/src/cxx_supportlib/WatchdogLauncher.h +1 -2
  45. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/case_conv.hpp +6 -2
  46. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +1 -1
  47. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/util.hpp +3 -2
  48. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +31 -1
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +133 -0
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +151 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +149 -22
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +140 -49
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +145 -35
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +75 -41
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +139 -49
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +98 -45
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +42 -49
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +45 -38
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +349 -109
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +959 -108
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +198 -54
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +424 -284
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +116 -47
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +99 -16
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +4 -1
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +235 -49
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +613 -0
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +1139 -1216
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +27 -14
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +26 -6
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +27 -14
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +61 -21
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +462 -226
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +7 -7
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +94 -64
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +20 -18
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +109 -0
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +1 -1
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +1 -1
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +1 -1
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +1 -1
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +404 -77
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +212 -51
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +2 -2
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +68 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +8 -6
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +94 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +114 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +151 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +398 -13
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +287 -165
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +33 -0
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +15 -1
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +65 -14
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +5 -1
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +17 -8
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +17 -8
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +27 -15
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +41 -17
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +1 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +86 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{function.hpp → functional.hpp} +10 -10
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +3 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +3 -1
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +3 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +3 -1
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +54 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +158 -3
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +2 -2
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +2 -2
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +90 -9
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +117 -39
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +97 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +6 -6
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +24 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +17 -4
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +34 -18
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +17 -4
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +152 -51
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +80 -27
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +19 -6
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +93 -23
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +76 -0
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +13 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +11 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +27 -13
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +7 -6
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +43 -10
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +54 -30
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/{task_io_service.ipp → scheduler.ipp} +167 -70
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +17 -4
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +46 -26
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +36 -30
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +39 -30
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +43 -21
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +129 -26
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +181 -0
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +136 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +13 -13
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +15 -14
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +12 -5
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -51
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +241 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +128 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +36 -14
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +2 -1
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +42 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +1 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +17 -5
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +3 -1
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +61 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +10 -9
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +29 -19
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +7 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +26 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +1 -1
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +7 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +3 -3
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +5 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +37 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +82 -0
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +5 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +10 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +86 -20
  200. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +9 -7
  201. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +10 -8
  202. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +101 -20
  203. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +14 -7
  204. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +20 -8
  205. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +13 -8
  206. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +15 -8
  207. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +25 -11
  208. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +15 -8
  209. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +99 -31
  210. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +96 -35
  211. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +92 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +2 -2
  213. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +2 -2
  214. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +7 -3
  215. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
  216. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +106 -0
  217. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +1 -1
  218. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +25 -24
  219. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +6 -92
  220. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +136 -0
  221. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +38 -22
  222. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +30 -19
  223. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service.hpp → scheduler.hpp} +57 -45
  224. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_operation.hpp → scheduler_operation.hpp} +19 -17
  225. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_thread_info.hpp → scheduler_thread_info.hpp} +10 -10
  226. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +9 -1
  228. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +37 -18
  230. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +54 -34
  231. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
  232. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +9 -5
  233. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +14 -13
  236. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +9 -6
  238. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
  240. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +10 -2
  241. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +2 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +1 -1
  243. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +1 -1
  244. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +72 -0
  246. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -1
  247. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +7 -1
  249. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +144 -0
  250. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +10 -10
  251. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +49 -0
  252. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +9 -5
  253. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +44 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +91 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +45 -15
  256. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
  257. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +29 -2
  259. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
  260. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +11 -5
  261. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +2 -2
  263. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +2 -2
  264. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +29 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +74 -18
  267. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +8 -6
  268. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +74 -0
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +110 -0
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +17 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +413 -0
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +343 -0
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +172 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental.hpp +22 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +228 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detached.hpp +67 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_spawn.hpp +878 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/detached.hpp +93 -0
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/redirect_error.hpp +296 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/redirect_error.hpp +69 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +1 -1
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +1 -1
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +3 -2
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +1 -1
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +1 -1
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +1 -1
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +1 -1
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +4 -4
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +11 -73
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +4 -23
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +86 -15
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +92 -19
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +549 -119
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +79 -0
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +80 -0
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +1 -1
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +109 -0
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +84 -0
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +388 -0
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +40 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +7 -32
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +347 -0
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +176 -0
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +79 -0
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +341 -379
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +173 -343
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +559 -206
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +30 -30
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +254 -72
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +1 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +12 -4
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +36 -0
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +75 -0
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +87 -0
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +129 -0
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +78 -0
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +855 -94
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +358 -449
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +165 -418
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +878 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +386 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +6 -743
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +20 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +79 -19
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +111 -23
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +164 -0
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +136 -0
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +104 -14
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +185 -0
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +131 -0
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +50 -0
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +5 -5
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +821 -71
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +23 -4
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +31 -99
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +1 -1
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +313 -0
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +2 -2
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +5 -10
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +16 -19
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +1 -1
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +28 -14
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +55 -47
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +28 -14
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +76 -44
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +28 -14
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +85 -33
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +2 -14
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +56 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +218 -0
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +55 -0
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +187 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +8 -8
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +263 -0
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +237 -0
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +131 -0
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +3 -90
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +48 -24
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +3 -3
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +1 -1
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +3 -3
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +3 -3
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +48 -0
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +1 -1
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +23 -21
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +1 -1
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +3 -2
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +1 -1
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +128 -0
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +30 -2
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +138 -46
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +15 -15
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +646 -0
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +17 -24
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +326 -3
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +63 -44
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +109 -0
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +94 -64
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +328 -12
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +13 -6
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +1148 -247
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +88 -56
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +736 -3
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +11 -11
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +41 -45
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +422 -3
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +32 -24
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +114 -48
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +85 -46
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +89 -18
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -4
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +33 -62
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +1 -1
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +27 -23
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +10 -14
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +2 -8
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +22 -25
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +5 -4
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +40 -17
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +2 -2
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +4 -10
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -9
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -8
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +27 -19
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -8
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -9
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +8 -12
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +86 -102
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +1 -1
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +7 -13
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +7 -13
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +90 -85
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +3 -9
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +4 -23
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +209 -175
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +88 -56
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +80 -0
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +131 -0
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +4 -19
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +234 -0
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +24 -0
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +35 -0
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +40 -0
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +20 -0
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +26 -0
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +199 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +27 -0
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +26 -0
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +70 -3
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +73 -0
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +17 -2
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +62 -20
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +22 -30
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +14 -10
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +15 -15
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +15 -15
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +346 -3
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +26 -20
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +333 -0
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +6 -6
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +344 -3
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +31 -37
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +328 -3
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +29 -37
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +321 -12
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +13 -6
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
  468. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +11 -0
  469. data/src/cxx_supportlib/vendor-modified/boost/atomic/capabilities.hpp +50 -1
  470. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +58 -0
  471. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag.hpp +1 -0
  472. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +688 -220
  473. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +25 -21
  474. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +86 -0
  475. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_arm.hpp +1 -18
  476. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_atomic.hpp +9 -10
  477. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_ppc.hpp +2 -1
  478. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sync.hpp +7 -8
  479. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +1 -36
  480. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +108 -34
  481. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations.hpp +28 -0
  482. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations_fwd.hpp +35 -0
  483. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +107 -0
  484. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +189 -0
  485. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations.hpp +28 -0
  486. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations_fwd.hpp +35 -0
  487. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +238 -0
  488. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +1111 -0
  489. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +840 -0
  490. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +1656 -0
  491. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +402 -0
  492. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +106 -0
  493. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +1301 -0
  494. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +142 -0
  495. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations.hpp +28 -0
  496. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations_fwd.hpp +35 -0
  497. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +72 -0
  498. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +83 -0
  499. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_arm.hpp +67 -0
  500. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_ppc.hpp +42 -0
  501. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_x86.hpp +58 -0
  502. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +3 -3
  503. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_extend.hpp +105 -0
  504. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +35 -1
  505. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_lockfree.hpp +1 -1
  506. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_cas_based.hpp +2 -0
  507. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +8 -9
  508. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_extending_cas_based.hpp +8 -7
  509. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +14 -16
  510. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +548 -126
  511. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +134 -0
  512. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +36 -44
  513. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +524 -96
  514. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +70 -0
  515. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +14 -16
  516. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +27 -59
  517. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +104 -57
  518. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +268 -340
  519. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +9 -9
  520. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +22 -24
  521. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +55 -80
  522. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +88 -46
  523. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_type.hpp +30 -103
  524. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/string_ops.hpp +61 -0
  525. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +42 -0
  526. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +46 -0
  527. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +42 -0
  528. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +42 -0
  529. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +47 -0
  530. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +43 -0
  531. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +43 -0
  532. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +46 -0
  533. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +43 -0
  534. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +43 -0
  535. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +37 -0
  536. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_cc.hpp +30 -30
  537. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +36 -36
  538. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +0 -10
  539. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +28 -30
  540. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +2 -4
  541. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +1 -1
  542. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +14 -8
  543. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_units.hpp +1 -1
  544. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +2 -4
  545. data/src/cxx_supportlib/vendor-modified/boost/chrono/process_cpu_clocks.hpp +2 -2
  546. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +0 -1
  547. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +9 -9
  548. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +7 -6
  549. data/src/cxx_supportlib/vendor-modified/boost/config.hpp +4 -4
  550. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +26 -4
  551. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +12 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +30 -2
  553. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +13 -0
  554. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +11 -0
  555. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +32 -2
  556. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/diab.hpp +26 -0
  557. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +11 -0
  558. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +33 -6
  559. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +11 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +8 -1
  561. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +11 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +11 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +28 -2
  564. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +17 -1
  565. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +8 -142
  566. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +14 -3
  567. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +16 -0
  568. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +37 -9
  569. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +19 -0
  570. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +169 -0
  571. data/src/cxx_supportlib/vendor-modified/boost/config/{posix_features.hpp → detail/posix_features.hpp} +0 -0
  572. data/src/cxx_supportlib/vendor-modified/boost/config/{select_compiler_config.hpp → detail/select_compiler_config.hpp} +15 -5
  573. data/src/cxx_supportlib/vendor-modified/boost/config/{select_platform_config.hpp → detail/select_platform_config.hpp} +8 -3
  574. data/src/cxx_supportlib/vendor-modified/boost/config/{select_stdlib_config.hpp → detail/select_stdlib_config.hpp} +5 -0
  575. data/src/cxx_supportlib/vendor-modified/boost/config/{suffix.hpp → detail/suffix.hpp} +27 -27
  576. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +26 -0
  577. data/src/cxx_supportlib/vendor-modified/boost/config/helper_macros.hpp +37 -0
  578. data/src/cxx_supportlib/vendor-modified/boost/config/platform/aix.hpp +1 -1
  579. data/src/cxx_supportlib/vendor-modified/boost/config/platform/beos.hpp +1 -1
  580. data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +1 -1
  581. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cray.hpp +1 -1
  582. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +12 -1
  583. data/src/cxx_supportlib/vendor-modified/boost/config/platform/haiku.hpp +1 -1
  584. data/src/cxx_supportlib/vendor-modified/boost/config/platform/hpux.hpp +1 -1
  585. data/src/cxx_supportlib/vendor-modified/boost/config/platform/irix.hpp +1 -1
  586. data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +4 -3
  587. data/src/cxx_supportlib/vendor-modified/boost/config/platform/macos.hpp +1 -1
  588. data/src/cxx_supportlib/vendor-modified/boost/config/platform/qnxnto.hpp +1 -1
  589. data/src/cxx_supportlib/vendor-modified/boost/config/platform/solaris.hpp +1 -1
  590. data/src/cxx_supportlib/vendor-modified/boost/config/platform/symbian.hpp +1 -1
  591. data/src/cxx_supportlib/vendor-modified/boost/config/platform/vxworks.hpp +155 -91
  592. data/src/cxx_supportlib/vendor-modified/boost/config/platform/zos.hpp +32 -0
  593. data/src/cxx_supportlib/vendor-modified/boost/config/pragma_message.hpp +31 -0
  594. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +21 -2
  595. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +2 -0
  596. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +20 -0
  597. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +35 -0
  598. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +2 -0
  599. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +3 -1
  600. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +2 -0
  601. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +2 -0
  602. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +2 -0
  603. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +2 -0
  604. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/xlcpp_zos.hpp +60 -0
  605. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +279 -0
  606. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +19 -19
  607. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +5 -5
  608. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +58 -58
  609. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +7 -28
  610. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +57 -57
  611. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +3 -3
  612. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +10 -10
  613. data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
  614. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +18 -18
  615. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +122 -0
  616. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +8 -8
  617. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +7 -7
  618. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +1 -1
  619. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +49 -0
  620. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +258 -0
  621. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +119 -134
  622. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +15 -15
  623. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +55 -55
  624. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +714 -282
  625. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +55 -0
  626. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +47 -0
  627. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +2 -2
  628. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +30 -0
  629. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator_to_raw_pointer.hpp +4 -29
  630. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +9 -9
  631. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +2 -2
  632. data/src/cxx_supportlib/vendor-modified/boost/container/detail/min_max.hpp +2 -2
  633. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +2 -2
  634. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +8 -8
  635. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +2 -2
  636. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +37 -35
  637. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +41 -41
  638. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +4 -4
  639. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +4 -4
  640. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +69 -16
  641. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair_key_mapped_of_value.hpp +55 -0
  642. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +2 -2
  643. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +7 -7
  644. data/src/cxx_supportlib/vendor-modified/boost/container/detail/singleton.hpp +2 -2
  645. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +1 -1
  646. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +180 -116
  647. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -2
  648. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_functors.hpp +36 -0
  649. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -2
  650. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +2 -2
  651. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +8 -8
  652. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +0 -6
  653. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +874 -572
  654. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +497 -248
  655. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -42
  656. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +326 -246
  657. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +19 -19
  658. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +122 -78
  659. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +165 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -8
  661. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -8
  662. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -4
  663. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
  664. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  665. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -4
  666. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +19 -19
  667. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +285 -110
  668. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +35 -53
  669. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +18 -19
  670. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +25 -25
  671. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +24 -9
  672. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +194 -142
  673. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +15 -5
  674. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +5 -5
  675. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +395 -421
  676. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/float_functions.hpp +0 -0
  677. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/hash_float.hpp +4 -4
  678. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/limits.hpp +0 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/extensions.hpp +112 -16
  680. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash.hpp +195 -7
  681. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash_fwd.hpp +3 -3
  682. data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +53 -44
  683. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +80 -2
  684. data/src/cxx_supportlib/vendor-modified/boost/core/no_exceptions_support.hpp +1 -1
  685. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +233 -0
  686. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -2
  687. data/src/cxx_supportlib/vendor-modified/boost/cstdint.hpp +26 -16
  688. data/src/cxx_supportlib/vendor-modified/boost/date_time/adjust_functors.hpp +20 -34
  689. data/src/cxx_supportlib/vendor-modified/boost/date_time/c_local_time_adjustor.hpp +8 -5
  690. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -0
  691. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting.hpp +2 -0
  692. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting_locales.hpp +7 -6
  693. data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_rules.hpp +6 -6
  694. data/src/cxx_supportlib/vendor-modified/boost/date_time/filetime_functions.hpp +8 -94
  695. data/src/cxx_supportlib/vendor-modified/boost/date_time/format_date_parser.hpp +1 -8
  696. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +3 -3
  697. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +6 -4
  698. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +3 -3
  699. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +2 -2
  700. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +6 -6
  701. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian_io.hpp +52 -52
  702. data/src/cxx_supportlib/vendor-modified/boost/date_time/int_adapter.hpp +14 -27
  703. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/custom_time_zone.hpp +0 -1
  704. data/src/cxx_supportlib/vendor-modified/boost/date_time/locale_config.hpp +3 -1
  705. data/src/cxx_supportlib/vendor-modified/boost/date_time/microsec_time_clock.hpp +36 -5
  706. data/src/cxx_supportlib/vendor-modified/boost/date_time/period_formatter.hpp +10 -9
  707. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +10 -12
  708. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +18 -10
  709. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +12 -12
  710. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_serialize.hpp +65 -20
  711. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +32 -23
  712. data/src/cxx_supportlib/vendor-modified/boost/date_time/string_parse_tree.hpp +6 -5
  713. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +10 -7
  714. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +8 -3
  715. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +20 -0
  716. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_resolution_traits.hpp +31 -8
  717. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_split.hpp +10 -4
  718. data/src/cxx_supportlib/vendor-modified/boost/date_time/tz_db_base.hpp +3 -1
  719. data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +2 -264
  720. data/src/cxx_supportlib/vendor-modified/boost/enable_shared_from_this.hpp +1 -1
  721. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +38 -21
  722. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +10 -9
  723. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +3 -2
  724. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +7 -6
  725. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +7 -6
  726. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +10 -7
  727. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +8 -6
  728. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +13 -47
  729. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +5 -4
  730. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +5 -4
  731. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +12 -4
  732. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +2 -0
  733. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +102 -0
  734. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +20 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +9 -0
  736. data/src/cxx_supportlib/vendor-modified/boost/functional/hash.hpp +1 -2
  737. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +1 -6
  738. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +508 -390
  739. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +9 -1
  740. data/src/cxx_supportlib/vendor-modified/boost/integer_fwd.hpp +3 -0
  741. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +11 -3
  742. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +1 -1
  743. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +7 -20
  744. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +2 -2
  745. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +1 -1
  746. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
  747. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +5 -5
  748. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +108 -2
  749. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +15 -5
  750. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
  751. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +8 -4
  752. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +147 -64
  753. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +9 -2
  754. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +3 -3
  755. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +15 -0
  756. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +2 -2
  757. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +9 -2
  758. data/src/cxx_supportlib/vendor-modified/boost/intrusive_ptr.hpp +1 -1
  759. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +84 -0
  760. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +0 -2
  761. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +3 -2
  762. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +8 -10
  763. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +2 -1
  764. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +7 -6
  765. data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +7 -4
  766. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +6 -2
  767. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +7 -7
  768. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
  769. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +36 -92
  770. data/src/cxx_supportlib/vendor-modified/boost/make_shared.hpp +1 -2
  771. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +2 -1
  772. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +57 -3
  773. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/sign.hpp +1 -1
  774. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +12 -1
  775. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +40 -9
  776. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +6 -0
  777. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +253 -0
  778. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +563 -4
  779. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +324 -1071
  780. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +10 -10
  781. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +111 -0
  782. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +12 -11
  783. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/is_sorted.hpp +55 -0
  784. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +59 -143
  785. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +6 -6
  786. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +334 -0
  787. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +207 -0
  788. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +2 -1
  789. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +86 -0
  790. data/src/cxx_supportlib/vendor-modified/boost/move/algo/unique.hpp +55 -0
  791. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +1 -9
  792. data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +3 -4
  793. data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +25 -0
  794. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +59 -0
  795. data/src/cxx_supportlib/vendor-modified/boost/{intrusive → move}/detail/pointer_element.hpp +12 -12
  796. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +45 -0
  797. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +19 -5
  798. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
  799. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +1 -1
  800. data/src/cxx_supportlib/vendor-modified/boost/mpl/get_tag.hpp +26 -0
  801. data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +85 -55
  802. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/cast.hpp +1 -1
  803. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/conversion_traits.hpp +0 -7
  804. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/converter.hpp +4 -13
  805. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +26 -7
  806. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +98 -0
  807. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -10
  808. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +17 -21
  809. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +25 -6
  810. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +15 -15
  811. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +1 -1
  812. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +499 -0
  813. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +126 -21
  814. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +1 -0
  815. data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +10 -9
  816. data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +1 -1
  817. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +6 -1
  818. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +1 -1
  819. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +8 -1
  820. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm.h +3 -1
  821. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c.h +1 -0
  822. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/cloudabi.h +53 -0
  823. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  824. data/src/cxx_supportlib/vendor-modified/boost/predef/os/android.h +2 -2
  825. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +10 -3
  826. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +80 -0
  827. data/src/cxx_supportlib/vendor-modified/boost/predef/other/workaround.h +87 -0
  828. data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +9 -2
  829. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/cloudabi.h +43 -0
  830. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/ios.h +58 -0
  831. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw.h +4 -4
  832. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw32.h +63 -0
  833. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw64.h +63 -0
  834. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_desktop.h +9 -3
  835. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_phone.h +7 -2
  836. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_runtime.h +13 -5
  837. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_server.h +47 -0
  838. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_store.h +11 -4
  839. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_system.h +47 -0
  840. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_uwp.h +60 -0
  841. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  842. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +11 -9
  843. data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +27 -27
  844. data/src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp +3 -0
  845. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +2 -2
  846. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +0 -11
  847. data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +12 -0
  848. data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +5 -1
  849. data/src/cxx_supportlib/vendor-modified/boost/random/poisson_distribution.hpp +17 -17
  850. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -1
  851. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_on_sphere.hpp +6 -2
  852. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +6 -4
  853. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +1 -0
  854. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +1 -1
  855. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +2 -2
  856. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +2 -2
  857. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +56 -11
  858. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +10 -10
  859. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
  860. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +6 -1
  861. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +37 -13
  862. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +4 -4
  863. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +9 -6
  864. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -1
  865. data/src/cxx_supportlib/vendor-modified/boost/scoped_array.hpp +1 -2
  866. data/src/cxx_supportlib/vendor-modified/boost/scoped_ptr.hpp +1 -2
  867. data/src/cxx_supportlib/vendor-modified/boost/shared_array.hpp +1 -1
  868. data/src/cxx_supportlib/vendor-modified/boost/shared_ptr.hpp +1 -1
  869. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +333 -656
  870. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +4 -2
  871. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +1 -1
  872. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +148 -0
  873. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +91 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +6 -6
  875. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +15 -3
  876. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
  877. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
  878. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +3 -2
  879. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
  880. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
  881. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
  882. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +7 -0
  883. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
  884. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
  885. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
  886. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
  887. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
  888. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +1 -0
  889. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
  890. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
  891. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +3 -2
  892. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
  893. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
  894. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +29 -0
  895. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +21 -3
  896. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +1 -1
  897. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +6 -6
  898. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +26 -26
  899. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -16
  900. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +1 -2
  901. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +19 -19
  902. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +11 -12
  903. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +15 -16
  904. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +22 -22
  905. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +135 -90
  906. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +23 -23
  907. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +140 -111
  908. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +297 -49
  909. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
  910. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +30 -30
  911. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +30 -30
  912. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_bounded_queue.hpp +4 -2
  913. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_deque.hpp +5 -7
  914. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_priority_queue.hpp +19 -19
  915. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_queue.hpp +5 -15
  916. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +118 -183
  917. data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_redef_macros.hpp +0 -0
  918. data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_undef_macros.hpp +0 -0
  919. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +62 -11
  920. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/log.hpp +15 -0
  921. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +0 -2
  922. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform.hpp +2 -0
  923. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform_time.hpp +478 -0
  924. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +51 -85
  925. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +11 -3
  926. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/detail/priority_executor_base.hpp +10 -4
  927. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduled_thread_pool.hpp +1 -0
  928. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduler.hpp +10 -0
  929. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduling_adaptor.hpp +15 -4
  930. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor.hpp +9 -0
  931. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +320 -92
  932. data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp +10 -0
  933. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +187 -112
  934. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +137 -164
  935. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +67 -37
  936. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +42 -0
  937. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +15 -9
  938. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +65 -33
  939. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +84 -158
  940. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +143 -35
  941. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_heap_alloc.hpp +32 -2
  942. data/src/cxx_supportlib/vendor-modified/boost/thread/shared_mutex.hpp +8 -1
  943. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_only.hpp +1 -1
  944. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +579 -589
  945. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +2 -1
  946. data/src/cxx_supportlib/vendor-modified/boost/token_iterator.hpp +5 -2
  947. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +7 -9
  948. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +8 -8
  949. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +1 -1
  950. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +6 -2
  951. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +5 -8
  952. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_const.hpp +6 -0
  953. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_cv.hpp +6 -0
  954. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_lvalue_reference.hpp +6 -0
  955. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_pointer.hpp +6 -0
  956. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +7 -0
  957. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_rvalue_reference.hpp +6 -0
  958. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_volatile.hpp +6 -0
  959. data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +7 -0
  960. data/src/cxx_supportlib/vendor-modified/boost/type_traits/conditional.hpp +8 -0
  961. data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_cv.hpp +6 -0
  962. data/src/cxx_supportlib/vendor-modified/boost/type_traits/decay.hpp +6 -0
  963. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +12 -1
  964. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +37 -0
  965. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_binary_operator.hpp +71 -14
  966. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +1 -1
  967. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +4 -1
  968. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +370 -102
  969. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +94 -0
  970. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +1177 -572
  971. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +2 -2
  972. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +24 -0
  973. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +25 -0
  974. data/src/cxx_supportlib/vendor-modified/boost/type_traits/floating_point_promotion.hpp +8 -0
  975. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_equal_to.hpp +3 -0
  976. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater.hpp +3 -0
  977. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater_equal.hpp +3 -0
  978. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less.hpp +3 -0
  979. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less_equal.hpp +3 -0
  980. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +93 -0
  981. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +95 -2
  982. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_not_equal_to.hpp +3 -0
  983. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +11 -2
  984. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +90 -0
  985. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +2 -1
  986. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_promotion.hpp +6 -0
  987. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +2 -1
  988. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +10 -2
  989. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +90 -0
  990. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complex.hpp +1 -0
  991. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_constructible.hpp +12 -2
  992. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +20 -2
  993. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +16 -2
  994. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +10 -2
  995. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +29 -0
  996. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +29 -0
  997. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +29 -0
  998. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_list_constructible.hpp +48 -0
  999. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +14 -3
  1000. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +14 -4
  1001. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +67 -0
  1002. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_signed.hpp +6 -0
  1003. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_unsigned.hpp +6 -0
  1004. data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +35 -0
  1005. data/src/cxx_supportlib/vendor-modified/boost/type_traits/promote.hpp +6 -0
  1006. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +6 -0
  1007. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_bounds.hpp +7 -0
  1008. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +6 -0
  1009. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +5 -0
  1010. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv_ref.hpp +30 -0
  1011. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +6 -0
  1012. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +7 -0
  1013. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_reference.hpp +5 -0
  1014. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +5 -0
  1015. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_identity.hpp +9 -0
  1016. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +2 -3
  1017. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +34 -0
  1018. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -85
  1019. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +1 -2
  1020. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +6 -0
  1021. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +2 -0
  1022. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +24 -14
  1023. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +18 -12
  1024. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4018 -4052
  1025. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +57 -97
  1026. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +56 -95
  1027. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +2150 -1777
  1028. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -38
  1029. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1630 -1420
  1030. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -37
  1031. data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +6 -3
  1032. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +55 -0
  1033. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_iterate.hpp +14 -17
  1034. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +44 -20
  1035. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +30 -30
  1036. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1037. data/src/cxx_supportlib/vendor-modified/boost/weak_ptr.hpp +1 -1
  1038. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  1039. data/src/ruby_supportlib/phusion_passenger/common_library.rb +3 -0
  1040. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +8 -1
  1041. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +7 -1
  1042. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -2
  1043. data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +4 -4
  1044. metadata +201 -47
  1045. data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +0 -96
  1046. data/src/cxx_supportlib/MessageClient.h +0 -309
  1047. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/addressof.hpp +0 -40
  1048. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.hpp +0 -80
  1049. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/shared_ptr.hpp +0 -40
  1050. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/weak_ptr.hpp +0 -40
  1051. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/win_iocp_serial_port_service.hpp +0 -230
  1052. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.hpp +0 -156
  1053. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.ipp +0 -157
  1054. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/basic_context.hpp +0 -42
  1055. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_service.hpp +0 -42
  1056. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/basic_context.hpp +0 -436
  1057. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/context_service.hpp +0 -176
  1058. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_context_service.hpp +0 -396
  1059. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_operation.hpp +0 -526
  1060. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_stream_service.hpp +0 -573
  1061. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream.hpp +0 -503
  1062. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream_service.hpp +0 -186
  1063. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_service.hpp +0 -42
  1064. data/src/cxx_supportlib/vendor-modified/boost/container/detail/to_raw_pointer.hpp +0 -33
  1065. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +0 -47
  1066. data/src/cxx_supportlib/vendor-modified/boost/iterator.hpp +0 -20
  1067. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex_assert.hpp +0 -724
  1068. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +0 -149
  1069. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/thread.hpp +0 -155
  1070. data/src/cxx_supportlib/vendor-modified/boost/utility/empty_deleter.hpp +0 -43
@@ -2,7 +2,7 @@
2
2
  // impl/buffered_write_stream.hpp
3
3
  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
4
  //
5
- // Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
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)
@@ -15,6 +15,8 @@
15
15
  # pragma once
16
16
  #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
17
 
18
+ #include <boost/asio/associated_allocator.hpp>
19
+ #include <boost/asio/associated_executor.hpp>
18
20
  #include <boost/asio/detail/handler_alloc_helpers.hpp>
19
21
  #include <boost/asio/detail/handler_cont_helpers.hpp>
20
22
  #include <boost/asio/detail/handler_invoke_helpers.hpp>
@@ -53,7 +55,7 @@ namespace detail
53
55
  buffered_flush_handler(detail::buffered_stream_storage& storage,
54
56
  WriteHandler& handler)
55
57
  : storage_(storage),
56
- handler_(handler)
58
+ handler_(BOOST_ASIO_MOVE_CAST(WriteHandler)(handler))
57
59
  {
58
60
  }
59
61
 
@@ -122,7 +124,37 @@ namespace detail
122
124
  boost_asio_handler_invoke_helpers::invoke(
123
125
  function, this_handler->handler_);
124
126
  }
125
- }
127
+ } // namespace detail
128
+
129
+ #if !defined(GENERATING_DOCUMENTATION)
130
+
131
+ template <typename WriteHandler, typename Allocator>
132
+ struct associated_allocator<
133
+ detail::buffered_flush_handler<WriteHandler>, Allocator>
134
+ {
135
+ typedef typename associated_allocator<WriteHandler, Allocator>::type type;
136
+
137
+ static type get(const detail::buffered_flush_handler<WriteHandler>& h,
138
+ const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
139
+ {
140
+ return associated_allocator<WriteHandler, Allocator>::get(h.handler_, a);
141
+ }
142
+ };
143
+
144
+ template <typename WriteHandler, typename Executor>
145
+ struct associated_executor<
146
+ detail::buffered_flush_handler<WriteHandler>, Executor>
147
+ {
148
+ typedef typename associated_executor<WriteHandler, Executor>::type type;
149
+
150
+ static type get(const detail::buffered_flush_handler<WriteHandler>& h,
151
+ const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
152
+ {
153
+ return associated_executor<WriteHandler, Executor>::get(h.handler_, ex);
154
+ }
155
+ };
156
+
157
+ #endif // !defined(GENERATING_DOCUMENTATION)
126
158
 
127
159
  template <typename Stream>
128
160
  template <typename WriteHandler>
@@ -135,14 +167,13 @@ buffered_write_stream<Stream>::async_flush(
135
167
  // not meet the documented type requirements for a WriteHandler.
136
168
  BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check;
137
169
 
138
- detail::async_result_init<
139
- WriteHandler, void (boost::system::error_code, std::size_t)> init(
140
- BOOST_ASIO_MOVE_CAST(WriteHandler)(handler));
170
+ async_completion<WriteHandler,
171
+ void (boost::system::error_code, std::size_t)> init(handler);
141
172
 
142
173
  async_write(next_layer_, buffer(storage_.data(), storage_.size()),
143
174
  detail::buffered_flush_handler<BOOST_ASIO_HANDLER_TYPE(
144
175
  WriteHandler, void (boost::system::error_code, std::size_t))>(
145
- storage_, init.handler));
176
+ storage_, init.completion_handler));
146
177
 
147
178
  return init.result.get();
148
179
  }
@@ -152,7 +183,8 @@ template <typename ConstBufferSequence>
152
183
  std::size_t buffered_write_stream<Stream>::write_some(
153
184
  const ConstBufferSequence& buffers)
154
185
  {
155
- if (boost::asio::buffer_size(buffers) == 0)
186
+ using boost::asio::buffer_size;
187
+ if (buffer_size(buffers) == 0)
156
188
  return 0;
157
189
 
158
190
  if (storage_.size() == storage_.capacity())
@@ -168,7 +200,8 @@ std::size_t buffered_write_stream<Stream>::write_some(
168
200
  {
169
201
  ec = boost::system::error_code();
170
202
 
171
- if (boost::asio::buffer_size(buffers) == 0)
203
+ using boost::asio::buffer_size;
204
+ if (buffer_size(buffers) == 0)
172
205
  return 0;
173
206
 
174
207
  if (storage_.size() == storage_.capacity() && !flush(ec))
@@ -187,7 +220,7 @@ namespace detail
187
220
  const ConstBufferSequence& buffers, WriteHandler& handler)
188
221
  : storage_(storage),
189
222
  buffers_(buffers),
190
- handler_(handler)
223
+ handler_(BOOST_ASIO_MOVE_CAST(WriteHandler)(handler))
191
224
  {
192
225
  }
193
226
 
@@ -216,9 +249,10 @@ namespace detail
216
249
  }
217
250
  else
218
251
  {
252
+ using boost::asio::buffer_size;
219
253
  std::size_t orig_size = storage_.size();
220
254
  std::size_t space_avail = storage_.capacity() - orig_size;
221
- std::size_t bytes_avail = boost::asio::buffer_size(buffers_);
255
+ std::size_t bytes_avail = buffer_size(buffers_);
222
256
  std::size_t length = bytes_avail < space_avail
223
257
  ? bytes_avail : space_avail;
224
258
  storage_.resize(orig_size + length);
@@ -282,6 +316,44 @@ namespace detail
282
316
  }
283
317
  } // namespace detail
284
318
 
319
+ #if !defined(GENERATING_DOCUMENTATION)
320
+
321
+ template <typename ConstBufferSequence,
322
+ typename WriteHandler, typename Allocator>
323
+ struct associated_allocator<
324
+ detail::buffered_write_some_handler<ConstBufferSequence, WriteHandler>,
325
+ Allocator>
326
+ {
327
+ typedef typename associated_allocator<WriteHandler, Allocator>::type type;
328
+
329
+ static type get(
330
+ const detail::buffered_write_some_handler<
331
+ ConstBufferSequence, WriteHandler>& h,
332
+ const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
333
+ {
334
+ return associated_allocator<WriteHandler, Allocator>::get(h.handler_, a);
335
+ }
336
+ };
337
+
338
+ template <typename ConstBufferSequence,
339
+ typename WriteHandler, typename Executor>
340
+ struct associated_executor<
341
+ detail::buffered_write_some_handler<ConstBufferSequence, WriteHandler>,
342
+ Executor>
343
+ {
344
+ typedef typename associated_executor<WriteHandler, Executor>::type type;
345
+
346
+ static type get(
347
+ const detail::buffered_write_some_handler<
348
+ ConstBufferSequence, WriteHandler>& h,
349
+ const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
350
+ {
351
+ return associated_executor<WriteHandler, Executor>::get(h.handler_, ex);
352
+ }
353
+ };
354
+
355
+ #endif // !defined(GENERATING_DOCUMENTATION)
356
+
285
357
  template <typename Stream>
286
358
  template <typename ConstBufferSequence, typename WriteHandler>
287
359
  BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler,
@@ -294,25 +366,25 @@ buffered_write_stream<Stream>::async_write_some(
294
366
  // not meet the documented type requirements for a WriteHandler.
295
367
  BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check;
296
368
 
297
- detail::async_result_init<
298
- WriteHandler, void (boost::system::error_code, std::size_t)> init(
299
- BOOST_ASIO_MOVE_CAST(WriteHandler)(handler));
369
+ async_completion<WriteHandler,
370
+ void (boost::system::error_code, std::size_t)> init(handler);
300
371
 
301
- if (boost::asio::buffer_size(buffers) == 0
372
+ using boost::asio::buffer_size;
373
+ if (buffer_size(buffers) == 0
302
374
  || storage_.size() < storage_.capacity())
303
375
  {
304
- next_layer_.async_write_some(boost::asio::const_buffers_1(0, 0),
376
+ next_layer_.async_write_some(BOOST_ASIO_CONST_BUFFER(0, 0),
305
377
  detail::buffered_write_some_handler<
306
378
  ConstBufferSequence, BOOST_ASIO_HANDLER_TYPE(
307
379
  WriteHandler, void (boost::system::error_code, std::size_t))>(
308
- storage_, buffers, init.handler));
380
+ storage_, buffers, init.completion_handler));
309
381
  }
310
382
  else
311
383
  {
312
384
  this->async_flush(detail::buffered_write_some_handler<
313
385
  ConstBufferSequence, BOOST_ASIO_HANDLER_TYPE(
314
386
  WriteHandler, void (boost::system::error_code, std::size_t))>(
315
- storage_, buffers, init.handler));
387
+ storage_, buffers, init.completion_handler));
316
388
  }
317
389
 
318
390
  return init.result.get();
@@ -323,9 +395,10 @@ template <typename ConstBufferSequence>
323
395
  std::size_t buffered_write_stream<Stream>::copy(
324
396
  const ConstBufferSequence& buffers)
325
397
  {
398
+ using boost::asio::buffer_size;
326
399
  std::size_t orig_size = storage_.size();
327
400
  std::size_t space_avail = storage_.capacity() - orig_size;
328
- std::size_t bytes_avail = boost::asio::buffer_size(buffers);
401
+ std::size_t bytes_avail = buffer_size(buffers);
329
402
  std::size_t length = bytes_avail < space_avail ? bytes_avail : space_avail;
330
403
  storage_.resize(orig_size + length);
331
404
  return boost::asio::buffer_copy(
@@ -2,7 +2,7 @@
2
2
  // impl/connect.hpp
3
3
  // ~~~~~~~~~~~~~~~~
4
4
  //
5
- // Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
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)
@@ -15,14 +15,17 @@
15
15
  # pragma once
16
16
  #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
17
 
18
+ #include <algorithm>
19
+ #include <boost/asio/associated_allocator.hpp>
20
+ #include <boost/asio/associated_executor.hpp>
18
21
  #include <boost/asio/detail/bind_handler.hpp>
19
- #include <boost/asio/detail/consuming_buffers.hpp>
20
22
  #include <boost/asio/detail/handler_alloc_helpers.hpp>
21
23
  #include <boost/asio/detail/handler_cont_helpers.hpp>
22
24
  #include <boost/asio/detail/handler_invoke_helpers.hpp>
23
25
  #include <boost/asio/detail/handler_type_requirements.hpp>
24
26
  #include <boost/asio/detail/throw_error.hpp>
25
27
  #include <boost/asio/error.hpp>
28
+ #include <boost/asio/post.hpp>
26
29
 
27
30
  #include <boost/asio/detail/push_options.hpp>
28
31
 
@@ -33,16 +36,100 @@ namespace detail
33
36
  {
34
37
  struct default_connect_condition
35
38
  {
36
- template <typename Iterator>
37
- Iterator operator()(const boost::system::error_code&, Iterator next)
39
+ template <typename Endpoint>
40
+ bool operator()(const boost::system::error_code&, const Endpoint&)
38
41
  {
39
- return next;
42
+ return true;
40
43
  }
41
44
  };
45
+
46
+ template <typename Protocol, typename Iterator>
47
+ inline typename Protocol::endpoint deref_connect_result(
48
+ Iterator iter, boost::system::error_code& ec)
49
+ {
50
+ return ec ? typename Protocol::endpoint() : *iter;
51
+ }
52
+
53
+ template <typename T, typename Iterator>
54
+ struct legacy_connect_condition_helper : T
55
+ {
56
+ typedef char (*fallback_func_type)(...);
57
+ operator fallback_func_type() const;
58
+ };
59
+
60
+ template <typename R, typename Arg1, typename Arg2, typename Iterator>
61
+ struct legacy_connect_condition_helper<R (*)(Arg1, Arg2), Iterator>
62
+ {
63
+ R operator()(Arg1, Arg2) const;
64
+ char operator()(...) const;
65
+ };
66
+
67
+ template <typename T, typename Iterator>
68
+ struct is_legacy_connect_condition
69
+ {
70
+ static char asio_connect_condition_check(char);
71
+ static char (&asio_connect_condition_check(Iterator))[2];
72
+
73
+ static const bool value =
74
+ sizeof(asio_connect_condition_check(
75
+ (*static_cast<legacy_connect_condition_helper<T, Iterator>*>(0))(
76
+ *static_cast<const boost::system::error_code*>(0),
77
+ *static_cast<const Iterator*>(0)))) != 1;
78
+ };
79
+
80
+ template <typename ConnectCondition, typename Iterator>
81
+ inline Iterator call_connect_condition(ConnectCondition& connect_condition,
82
+ const boost::system::error_code& ec, Iterator next, Iterator end,
83
+ typename enable_if<is_legacy_connect_condition<
84
+ ConnectCondition, Iterator>::value>::type* = 0)
85
+ {
86
+ if (next != end)
87
+ return connect_condition(ec, next);
88
+ return end;
89
+ }
90
+
91
+ template <typename ConnectCondition, typename Iterator>
92
+ inline Iterator call_connect_condition(ConnectCondition& connect_condition,
93
+ const boost::system::error_code& ec, Iterator next, Iterator end,
94
+ typename enable_if<!is_legacy_connect_condition<
95
+ ConnectCondition, Iterator>::value>::type* = 0)
96
+ {
97
+ for (;next != end; ++next)
98
+ if (connect_condition(ec, *next))
99
+ return next;
100
+ return end;
101
+ }
102
+ }
103
+
104
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename EndpointSequence>
105
+ typename Protocol::endpoint connect(
106
+ basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
107
+ const EndpointSequence& endpoints,
108
+ typename enable_if<is_endpoint_sequence<
109
+ EndpointSequence>::value>::type*)
110
+ {
111
+ boost::system::error_code ec;
112
+ typename Protocol::endpoint result = connect(s, endpoints, ec);
113
+ boost::asio::detail::throw_error(ec, "connect");
114
+ return result;
42
115
  }
43
116
 
44
- template <typename Protocol, typename SocketService, typename Iterator>
45
- Iterator connect(basic_socket<Protocol, SocketService>& s, Iterator begin)
117
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename EndpointSequence>
118
+ typename Protocol::endpoint connect(
119
+ basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
120
+ const EndpointSequence& endpoints, boost::system::error_code& ec,
121
+ typename enable_if<is_endpoint_sequence<
122
+ EndpointSequence>::value>::type*)
123
+ {
124
+ return detail::deref_connect_result<Protocol>(
125
+ connect(s, endpoints.begin(), endpoints.end(),
126
+ detail::default_connect_condition(), ec), ec);
127
+ }
128
+
129
+ #if !defined(BOOST_ASIO_NO_DEPRECATED)
130
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename Iterator>
131
+ Iterator connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s, Iterator begin,
132
+ typename enable_if<!is_endpoint_sequence<Iterator>::value>::type*)
46
133
  {
47
134
  boost::system::error_code ec;
48
135
  Iterator result = connect(s, begin, ec);
@@ -50,15 +137,17 @@ Iterator connect(basic_socket<Protocol, SocketService>& s, Iterator begin)
50
137
  return result;
51
138
  }
52
139
 
53
- template <typename Protocol, typename SocketService, typename Iterator>
54
- inline Iterator connect(basic_socket<Protocol, SocketService>& s,
55
- Iterator begin, boost::system::error_code& ec)
140
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename Iterator>
141
+ inline Iterator connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
142
+ Iterator begin, boost::system::error_code& ec,
143
+ typename enable_if<!is_endpoint_sequence<Iterator>::value>::type*)
56
144
  {
57
145
  return connect(s, begin, Iterator(), detail::default_connect_condition(), ec);
58
146
  }
147
+ #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
59
148
 
60
- template <typename Protocol, typename SocketService, typename Iterator>
61
- Iterator connect(basic_socket<Protocol, SocketService>& s,
149
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename Iterator>
150
+ Iterator connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
62
151
  Iterator begin, Iterator end)
63
152
  {
64
153
  boost::system::error_code ec;
@@ -67,17 +156,48 @@ Iterator connect(basic_socket<Protocol, SocketService>& s,
67
156
  return result;
68
157
  }
69
158
 
70
- template <typename Protocol, typename SocketService, typename Iterator>
71
- inline Iterator connect(basic_socket<Protocol, SocketService>& s,
159
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename Iterator>
160
+ inline Iterator connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
72
161
  Iterator begin, Iterator end, boost::system::error_code& ec)
73
162
  {
74
163
  return connect(s, begin, end, detail::default_connect_condition(), ec);
75
164
  }
76
165
 
77
- template <typename Protocol, typename SocketService,
166
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
167
+ typename EndpointSequence, typename ConnectCondition>
168
+ typename Protocol::endpoint connect(
169
+ basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
170
+ const EndpointSequence& endpoints, ConnectCondition connect_condition,
171
+ typename enable_if<is_endpoint_sequence<
172
+ EndpointSequence>::value>::type*)
173
+ {
174
+ boost::system::error_code ec;
175
+ typename Protocol::endpoint result = connect(
176
+ s, endpoints, connect_condition, ec);
177
+ boost::asio::detail::throw_error(ec, "connect");
178
+ return result;
179
+ }
180
+
181
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
182
+ typename EndpointSequence, typename ConnectCondition>
183
+ typename Protocol::endpoint connect(
184
+ basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
185
+ const EndpointSequence& endpoints, ConnectCondition connect_condition,
186
+ boost::system::error_code& ec,
187
+ typename enable_if<is_endpoint_sequence<
188
+ EndpointSequence>::value>::type*)
189
+ {
190
+ return detail::deref_connect_result<Protocol>(
191
+ connect(s, endpoints.begin(), endpoints.end(),
192
+ connect_condition, ec), ec);
193
+ }
194
+
195
+ #if !defined(BOOST_ASIO_NO_DEPRECATED)
196
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
78
197
  typename Iterator, typename ConnectCondition>
79
- Iterator connect(basic_socket<Protocol, SocketService>& s,
80
- Iterator begin, ConnectCondition connect_condition)
198
+ Iterator connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
199
+ Iterator begin, ConnectCondition connect_condition,
200
+ typename enable_if<!is_endpoint_sequence<Iterator>::value>::type*)
81
201
  {
82
202
  boost::system::error_code ec;
83
203
  Iterator result = connect(s, begin, connect_condition, ec);
@@ -85,18 +205,20 @@ Iterator connect(basic_socket<Protocol, SocketService>& s,
85
205
  return result;
86
206
  }
87
207
 
88
- template <typename Protocol, typename SocketService,
208
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
89
209
  typename Iterator, typename ConnectCondition>
90
- inline Iterator connect(basic_socket<Protocol, SocketService>& s,
210
+ inline Iterator connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
91
211
  Iterator begin, ConnectCondition connect_condition,
92
- boost::system::error_code& ec)
212
+ boost::system::error_code& ec,
213
+ typename enable_if<!is_endpoint_sequence<Iterator>::value>::type*)
93
214
  {
94
215
  return connect(s, begin, Iterator(), connect_condition, ec);
95
216
  }
217
+ #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
96
218
 
97
- template <typename Protocol, typename SocketService,
219
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
98
220
  typename Iterator, typename ConnectCondition>
99
- Iterator connect(basic_socket<Protocol, SocketService>& s,
221
+ Iterator connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
100
222
  Iterator begin, Iterator end, ConnectCondition connect_condition)
101
223
  {
102
224
  boost::system::error_code ec;
@@ -105,9 +227,9 @@ Iterator connect(basic_socket<Protocol, SocketService>& s,
105
227
  return result;
106
228
  }
107
229
 
108
- template <typename Protocol, typename SocketService,
230
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
109
231
  typename Iterator, typename ConnectCondition>
110
- Iterator connect(basic_socket<Protocol, SocketService>& s,
232
+ Iterator connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
111
233
  Iterator begin, Iterator end, ConnectCondition connect_condition,
112
234
  boost::system::error_code& ec)
113
235
  {
@@ -115,7 +237,7 @@ Iterator connect(basic_socket<Protocol, SocketService>& s,
115
237
 
116
238
  for (Iterator iter = begin; iter != end; ++iter)
117
239
  {
118
- iter = connect_condition(ec, iter);
240
+ iter = (detail::call_connect_condition(connect_condition, ec, iter, end));
119
241
  if (iter != end)
120
242
  {
121
243
  s.close(ec);
@@ -150,8 +272,7 @@ namespace detail
150
272
  void check_condition(const boost::system::error_code& ec,
151
273
  Iterator& iter, Iterator& end)
152
274
  {
153
- if (iter != end)
154
- iter = connect_condition_(ec, static_cast<const Iterator&>(iter));
275
+ iter = detail::call_connect_condition(connect_condition_, ec, iter, end);
155
276
  }
156
277
 
157
278
  private:
@@ -174,26 +295,186 @@ namespace detail
174
295
  }
175
296
  };
176
297
 
177
- template <typename Protocol, typename SocketService, typename Iterator,
178
- typename ConnectCondition, typename ComposedConnectHandler>
179
- class connect_op : base_from_connect_condition<ConnectCondition>
298
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
299
+ typename EndpointSequence, typename ConnectCondition,
300
+ typename RangeConnectHandler>
301
+ class range_connect_op : base_from_connect_condition<ConnectCondition>
302
+ {
303
+ public:
304
+ range_connect_op(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& sock,
305
+ const EndpointSequence& endpoints,
306
+ const ConnectCondition& connect_condition,
307
+ RangeConnectHandler& handler)
308
+ : base_from_connect_condition<ConnectCondition>(connect_condition),
309
+ socket_(sock),
310
+ endpoints_(endpoints),
311
+ index_(0),
312
+ start_(0),
313
+ handler_(BOOST_ASIO_MOVE_CAST(RangeConnectHandler)(handler))
314
+ {
315
+ }
316
+
317
+ #if defined(BOOST_ASIO_HAS_MOVE)
318
+ range_connect_op(const range_connect_op& other)
319
+ : base_from_connect_condition<ConnectCondition>(other),
320
+ socket_(other.socket_),
321
+ endpoints_(other.endpoints_),
322
+ index_(other.index_),
323
+ start_(other.start_),
324
+ handler_(other.handler_)
325
+ {
326
+ }
327
+
328
+ range_connect_op(range_connect_op&& other)
329
+ : base_from_connect_condition<ConnectCondition>(other),
330
+ socket_(other.socket_),
331
+ endpoints_(other.endpoints_),
332
+ index_(other.index_),
333
+ start_(other.start_),
334
+ handler_(BOOST_ASIO_MOVE_CAST(RangeConnectHandler)(other.handler_))
335
+ {
336
+ }
337
+ #endif // defined(BOOST_ASIO_HAS_MOVE)
338
+
339
+ void operator()(boost::system::error_code ec, int start = 0)
340
+ {
341
+ typename EndpointSequence::const_iterator begin = endpoints_.begin();
342
+ typename EndpointSequence::const_iterator iter = begin;
343
+ std::advance(iter, index_);
344
+ typename EndpointSequence::const_iterator end = endpoints_.end();
345
+
346
+ switch (start_ = start)
347
+ {
348
+ case 1:
349
+ for (;;)
350
+ {
351
+ this->check_condition(ec, iter, end);
352
+ index_ = std::distance(begin, iter);
353
+
354
+ if (iter != end)
355
+ {
356
+ socket_.close(ec);
357
+ socket_.async_connect(*iter,
358
+ BOOST_ASIO_MOVE_CAST(range_connect_op)(*this));
359
+ return;
360
+ }
361
+
362
+ if (start)
363
+ {
364
+ ec = boost::asio::error::not_found;
365
+ boost::asio::post(socket_.get_executor(),
366
+ detail::bind_handler(
367
+ BOOST_ASIO_MOVE_CAST(range_connect_op)(*this), ec));
368
+ return;
369
+ }
370
+
371
+ default:
372
+
373
+ if (iter == end)
374
+ break;
375
+
376
+ if (!socket_.is_open())
377
+ {
378
+ ec = boost::asio::error::operation_aborted;
379
+ break;
380
+ }
381
+
382
+ if (!ec)
383
+ break;
384
+
385
+ ++iter;
386
+ ++index_;
387
+ }
388
+
389
+ handler_(static_cast<const boost::system::error_code&>(ec),
390
+ static_cast<const typename Protocol::endpoint&>(
391
+ ec || iter == end ? typename Protocol::endpoint() : *iter));
392
+ }
393
+ }
394
+
395
+ //private:
396
+ basic_socket<Protocol BOOST_ASIO_SVC_TARG>& socket_;
397
+ EndpointSequence endpoints_;
398
+ std::size_t index_;
399
+ int start_;
400
+ RangeConnectHandler handler_;
401
+ };
402
+
403
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
404
+ typename EndpointSequence, typename ConnectCondition,
405
+ typename RangeConnectHandler>
406
+ inline void* asio_handler_allocate(std::size_t size,
407
+ range_connect_op<Protocol BOOST_ASIO_SVC_TARG, EndpointSequence,
408
+ ConnectCondition, RangeConnectHandler>* this_handler)
409
+ {
410
+ return boost_asio_handler_alloc_helpers::allocate(
411
+ size, this_handler->handler_);
412
+ }
413
+
414
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
415
+ typename EndpointSequence, typename ConnectCondition,
416
+ typename RangeConnectHandler>
417
+ inline void asio_handler_deallocate(void* pointer, std::size_t size,
418
+ range_connect_op<Protocol BOOST_ASIO_SVC_TARG, EndpointSequence,
419
+ ConnectCondition, RangeConnectHandler>* this_handler)
420
+ {
421
+ boost_asio_handler_alloc_helpers::deallocate(
422
+ pointer, size, this_handler->handler_);
423
+ }
424
+
425
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
426
+ typename EndpointSequence, typename ConnectCondition,
427
+ typename RangeConnectHandler>
428
+ inline bool asio_handler_is_continuation(
429
+ range_connect_op<Protocol BOOST_ASIO_SVC_TARG, EndpointSequence,
430
+ ConnectCondition, RangeConnectHandler>* this_handler)
431
+ {
432
+ return boost_asio_handler_cont_helpers::is_continuation(
433
+ this_handler->handler_);
434
+ }
435
+
436
+ template <typename Function, typename Protocol
437
+ BOOST_ASIO_SVC_TPARAM, typename EndpointSequence,
438
+ typename ConnectCondition, typename RangeConnectHandler>
439
+ inline void asio_handler_invoke(Function& function,
440
+ range_connect_op<Protocol BOOST_ASIO_SVC_TARG, EndpointSequence,
441
+ ConnectCondition, RangeConnectHandler>* this_handler)
442
+ {
443
+ boost_asio_handler_invoke_helpers::invoke(
444
+ function, this_handler->handler_);
445
+ }
446
+
447
+ template <typename Function, typename Protocol
448
+ BOOST_ASIO_SVC_TPARAM, typename EndpointSequence,
449
+ typename ConnectCondition, typename RangeConnectHandler>
450
+ inline void asio_handler_invoke(const Function& function,
451
+ range_connect_op<Protocol BOOST_ASIO_SVC_TARG, EndpointSequence,
452
+ ConnectCondition, RangeConnectHandler>* this_handler)
453
+ {
454
+ boost_asio_handler_invoke_helpers::invoke(
455
+ function, this_handler->handler_);
456
+ }
457
+
458
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename Iterator,
459
+ typename ConnectCondition, typename IteratorConnectHandler>
460
+ class iterator_connect_op : base_from_connect_condition<ConnectCondition>
180
461
  {
181
462
  public:
182
- connect_op(basic_socket<Protocol, SocketService>& sock,
463
+ iterator_connect_op(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& sock,
183
464
  const Iterator& begin, const Iterator& end,
184
465
  const ConnectCondition& connect_condition,
185
- ComposedConnectHandler& handler)
466
+ IteratorConnectHandler& handler)
186
467
  : base_from_connect_condition<ConnectCondition>(connect_condition),
187
468
  socket_(sock),
188
469
  iter_(begin),
189
470
  end_(end),
190
471
  start_(0),
191
- handler_(BOOST_ASIO_MOVE_CAST(ComposedConnectHandler)(handler))
472
+ handler_(BOOST_ASIO_MOVE_CAST(IteratorConnectHandler)(handler))
192
473
  {
193
474
  }
194
475
 
195
476
  #if defined(BOOST_ASIO_HAS_MOVE)
196
- connect_op(const connect_op& other)
477
+ iterator_connect_op(const iterator_connect_op& other)
197
478
  : base_from_connect_condition<ConnectCondition>(other),
198
479
  socket_(other.socket_),
199
480
  iter_(other.iter_),
@@ -203,13 +484,13 @@ namespace detail
203
484
  {
204
485
  }
205
486
 
206
- connect_op(connect_op&& other)
487
+ iterator_connect_op(iterator_connect_op&& other)
207
488
  : base_from_connect_condition<ConnectCondition>(other),
208
489
  socket_(other.socket_),
209
490
  iter_(other.iter_),
210
491
  end_(other.end_),
211
492
  start_(other.start_),
212
- handler_(BOOST_ASIO_MOVE_CAST(ComposedConnectHandler)(other.handler_))
493
+ handler_(BOOST_ASIO_MOVE_CAST(IteratorConnectHandler)(other.handler_))
213
494
  {
214
495
  }
215
496
  #endif // defined(BOOST_ASIO_HAS_MOVE)
@@ -227,14 +508,16 @@ namespace detail
227
508
  {
228
509
  socket_.close(ec);
229
510
  socket_.async_connect(*iter_,
230
- BOOST_ASIO_MOVE_CAST(connect_op)(*this));
511
+ BOOST_ASIO_MOVE_CAST(iterator_connect_op)(*this));
231
512
  return;
232
513
  }
233
514
 
234
515
  if (start)
235
516
  {
236
517
  ec = boost::asio::error::not_found;
237
- socket_.get_io_service().post(detail::bind_handler(*this, ec));
518
+ boost::asio::post(socket_.get_executor(),
519
+ detail::bind_handler(
520
+ BOOST_ASIO_MOVE_CAST(iterator_connect_op)(*this), ec));
238
521
  return;
239
522
  }
240
523
 
@@ -261,164 +544,311 @@ namespace detail
261
544
  }
262
545
 
263
546
  //private:
264
- basic_socket<Protocol, SocketService>& socket_;
547
+ basic_socket<Protocol BOOST_ASIO_SVC_TARG>& socket_;
265
548
  Iterator iter_;
266
549
  Iterator end_;
267
550
  int start_;
268
- ComposedConnectHandler handler_;
551
+ IteratorConnectHandler handler_;
269
552
  };
270
553
 
271
- template <typename Protocol, typename SocketService, typename Iterator,
272
- typename ConnectCondition, typename ComposedConnectHandler>
554
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename Iterator,
555
+ typename ConnectCondition, typename IteratorConnectHandler>
273
556
  inline void* asio_handler_allocate(std::size_t size,
274
- connect_op<Protocol, SocketService, Iterator,
275
- ConnectCondition, ComposedConnectHandler>* this_handler)
557
+ iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG, Iterator,
558
+ ConnectCondition, IteratorConnectHandler>* this_handler)
276
559
  {
277
560
  return boost_asio_handler_alloc_helpers::allocate(
278
561
  size, this_handler->handler_);
279
562
  }
280
563
 
281
- template <typename Protocol, typename SocketService, typename Iterator,
282
- typename ConnectCondition, typename ComposedConnectHandler>
564
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename Iterator,
565
+ typename ConnectCondition, typename IteratorConnectHandler>
283
566
  inline void asio_handler_deallocate(void* pointer, std::size_t size,
284
- connect_op<Protocol, SocketService, Iterator,
285
- ConnectCondition, ComposedConnectHandler>* this_handler)
567
+ iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG, Iterator,
568
+ ConnectCondition, IteratorConnectHandler>* this_handler)
286
569
  {
287
570
  boost_asio_handler_alloc_helpers::deallocate(
288
571
  pointer, size, this_handler->handler_);
289
572
  }
290
573
 
291
- template <typename Protocol, typename SocketService, typename Iterator,
292
- typename ConnectCondition, typename ComposedConnectHandler>
574
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename Iterator,
575
+ typename ConnectCondition, typename IteratorConnectHandler>
293
576
  inline bool asio_handler_is_continuation(
294
- connect_op<Protocol, SocketService, Iterator,
295
- ConnectCondition, ComposedConnectHandler>* this_handler)
577
+ iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG, Iterator,
578
+ ConnectCondition, IteratorConnectHandler>* this_handler)
296
579
  {
297
580
  return boost_asio_handler_cont_helpers::is_continuation(
298
581
  this_handler->handler_);
299
582
  }
300
583
 
301
- template <typename Function, typename Protocol,
302
- typename SocketService, typename Iterator,
303
- typename ConnectCondition, typename ComposedConnectHandler>
584
+ template <typename Function, typename Protocol
585
+ BOOST_ASIO_SVC_TPARAM, typename Iterator,
586
+ typename ConnectCondition, typename IteratorConnectHandler>
304
587
  inline void asio_handler_invoke(Function& function,
305
- connect_op<Protocol, SocketService, Iterator,
306
- ConnectCondition, ComposedConnectHandler>* this_handler)
588
+ iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG, Iterator,
589
+ ConnectCondition, IteratorConnectHandler>* this_handler)
307
590
  {
308
591
  boost_asio_handler_invoke_helpers::invoke(
309
592
  function, this_handler->handler_);
310
593
  }
311
594
 
312
- template <typename Function, typename Protocol,
313
- typename SocketService, typename Iterator,
314
- typename ConnectCondition, typename ComposedConnectHandler>
595
+ template <typename Function, typename Protocol
596
+ BOOST_ASIO_SVC_TPARAM, typename Iterator,
597
+ typename ConnectCondition, typename IteratorConnectHandler>
315
598
  inline void asio_handler_invoke(const Function& function,
316
- connect_op<Protocol, SocketService, Iterator,
317
- ConnectCondition, ComposedConnectHandler>* this_handler)
599
+ iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG, Iterator,
600
+ ConnectCondition, IteratorConnectHandler>* this_handler)
318
601
  {
319
602
  boost_asio_handler_invoke_helpers::invoke(
320
603
  function, this_handler->handler_);
321
604
  }
322
605
  } // namespace detail
323
606
 
324
- template <typename Protocol, typename SocketService,
325
- typename Iterator, typename ComposedConnectHandler>
326
- inline BOOST_ASIO_INITFN_RESULT_TYPE(ComposedConnectHandler,
607
+ #if !defined(GENERATING_DOCUMENTATION)
608
+
609
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
610
+ typename EndpointSequence, typename ConnectCondition,
611
+ typename RangeConnectHandler, typename Allocator>
612
+ struct associated_allocator<
613
+ detail::range_connect_op<Protocol BOOST_ASIO_SVC_TARG,
614
+ EndpointSequence, ConnectCondition, RangeConnectHandler>,
615
+ Allocator>
616
+ {
617
+ typedef typename associated_allocator<
618
+ RangeConnectHandler, Allocator>::type type;
619
+
620
+ static type get(
621
+ const detail::range_connect_op<Protocol BOOST_ASIO_SVC_TARG,
622
+ EndpointSequence, ConnectCondition, RangeConnectHandler>& h,
623
+ const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
624
+ {
625
+ return associated_allocator<RangeConnectHandler,
626
+ Allocator>::get(h.handler_, a);
627
+ }
628
+ };
629
+
630
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
631
+ typename EndpointSequence, typename ConnectCondition,
632
+ typename RangeConnectHandler, typename Executor>
633
+ struct associated_executor<
634
+ detail::range_connect_op<Protocol BOOST_ASIO_SVC_TARG,
635
+ EndpointSequence, ConnectCondition, RangeConnectHandler>,
636
+ Executor>
637
+ {
638
+ typedef typename associated_executor<
639
+ RangeConnectHandler, Executor>::type type;
640
+
641
+ static type get(
642
+ const detail::range_connect_op<Protocol BOOST_ASIO_SVC_TARG,
643
+ EndpointSequence, ConnectCondition, RangeConnectHandler>& h,
644
+ const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
645
+ {
646
+ return associated_executor<RangeConnectHandler,
647
+ Executor>::get(h.handler_, ex);
648
+ }
649
+ };
650
+
651
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
652
+ typename Iterator, typename ConnectCondition,
653
+ typename IteratorConnectHandler, typename Allocator>
654
+ struct associated_allocator<
655
+ detail::iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG, Iterator,
656
+ ConnectCondition, IteratorConnectHandler>,
657
+ Allocator>
658
+ {
659
+ typedef typename associated_allocator<
660
+ IteratorConnectHandler, Allocator>::type type;
661
+
662
+ static type get(
663
+ const detail::iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG,
664
+ Iterator, ConnectCondition, IteratorConnectHandler>& h,
665
+ const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
666
+ {
667
+ return associated_allocator<IteratorConnectHandler,
668
+ Allocator>::get(h.handler_, a);
669
+ }
670
+ };
671
+
672
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
673
+ typename Iterator, typename ConnectCondition,
674
+ typename IteratorConnectHandler, typename Executor>
675
+ struct associated_executor<
676
+ detail::iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG, Iterator,
677
+ ConnectCondition, IteratorConnectHandler>,
678
+ Executor>
679
+ {
680
+ typedef typename associated_executor<
681
+ IteratorConnectHandler, Executor>::type type;
682
+
683
+ static type get(
684
+ const detail::iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG,
685
+ Iterator, ConnectCondition, IteratorConnectHandler>& h,
686
+ const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
687
+ {
688
+ return associated_executor<IteratorConnectHandler,
689
+ Executor>::get(h.handler_, ex);
690
+ }
691
+ };
692
+
693
+ #endif // !defined(GENERATING_DOCUMENTATION)
694
+
695
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
696
+ typename EndpointSequence, typename RangeConnectHandler>
697
+ inline BOOST_ASIO_INITFN_RESULT_TYPE(RangeConnectHandler,
698
+ void (boost::system::error_code, typename Protocol::endpoint))
699
+ async_connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
700
+ const EndpointSequence& endpoints,
701
+ BOOST_ASIO_MOVE_ARG(RangeConnectHandler) handler,
702
+ typename enable_if<is_endpoint_sequence<
703
+ EndpointSequence>::value>::type*)
704
+ {
705
+ // If you get an error on the following line it means that your handler does
706
+ // not meet the documented type requirements for a RangeConnectHandler.
707
+ BOOST_ASIO_RANGE_CONNECT_HANDLER_CHECK(
708
+ RangeConnectHandler, handler, typename Protocol::endpoint) type_check;
709
+
710
+ async_completion<RangeConnectHandler,
711
+ void (boost::system::error_code, typename Protocol::endpoint)>
712
+ init(handler);
713
+
714
+ detail::range_connect_op<Protocol BOOST_ASIO_SVC_TARG, EndpointSequence,
715
+ detail::default_connect_condition,
716
+ BOOST_ASIO_HANDLER_TYPE(RangeConnectHandler,
717
+ void (boost::system::error_code, typename Protocol::endpoint))>(s,
718
+ endpoints, detail::default_connect_condition(),
719
+ init.completion_handler)(boost::system::error_code(), 1);
720
+
721
+ return init.result.get();
722
+ }
723
+
724
+ #if !defined(BOOST_ASIO_NO_DEPRECATED)
725
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
726
+ typename Iterator, typename IteratorConnectHandler>
727
+ inline BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,
327
728
  void (boost::system::error_code, Iterator))
328
- async_connect(basic_socket<Protocol, SocketService>& s,
329
- Iterator begin, BOOST_ASIO_MOVE_ARG(ComposedConnectHandler) handler)
729
+ async_connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
730
+ Iterator begin, BOOST_ASIO_MOVE_ARG(IteratorConnectHandler) handler,
731
+ typename enable_if<!is_endpoint_sequence<Iterator>::value>::type*)
330
732
  {
331
733
  // If you get an error on the following line it means that your handler does
332
- // not meet the documented type requirements for a ComposedConnectHandler.
333
- BOOST_ASIO_COMPOSED_CONNECT_HANDLER_CHECK(
334
- ComposedConnectHandler, handler, Iterator) type_check;
734
+ // not meet the documented type requirements for a IteratorConnectHandler.
735
+ BOOST_ASIO_ITERATOR_CONNECT_HANDLER_CHECK(
736
+ IteratorConnectHandler, handler, Iterator) type_check;
335
737
 
336
- detail::async_result_init<ComposedConnectHandler,
337
- void (boost::system::error_code, Iterator)> init(
338
- BOOST_ASIO_MOVE_CAST(ComposedConnectHandler)(handler));
738
+ async_completion<IteratorConnectHandler,
739
+ void (boost::system::error_code, Iterator)> init(handler);
339
740
 
340
- detail::connect_op<Protocol, SocketService, Iterator,
741
+ detail::iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG, Iterator,
341
742
  detail::default_connect_condition, BOOST_ASIO_HANDLER_TYPE(
342
- ComposedConnectHandler, void (boost::system::error_code, Iterator))>(s,
343
- begin, Iterator(), detail::default_connect_condition(), init.handler)(
344
- boost::system::error_code(), 1);
743
+ IteratorConnectHandler, void (boost::system::error_code, Iterator))>(s,
744
+ begin, Iterator(), detail::default_connect_condition(),
745
+ init.completion_handler)(boost::system::error_code(), 1);
345
746
 
346
747
  return init.result.get();
347
748
  }
749
+ #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
348
750
 
349
- template <typename Protocol, typename SocketService,
350
- typename Iterator, typename ComposedConnectHandler>
351
- inline BOOST_ASIO_INITFN_RESULT_TYPE(ComposedConnectHandler,
751
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM,
752
+ typename Iterator, typename IteratorConnectHandler>
753
+ inline BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,
352
754
  void (boost::system::error_code, Iterator))
353
- async_connect(basic_socket<Protocol, SocketService>& s,
755
+ async_connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
354
756
  Iterator begin, Iterator end,
355
- BOOST_ASIO_MOVE_ARG(ComposedConnectHandler) handler)
757
+ BOOST_ASIO_MOVE_ARG(IteratorConnectHandler) handler)
356
758
  {
357
759
  // If you get an error on the following line it means that your handler does
358
- // not meet the documented type requirements for a ComposedConnectHandler.
359
- BOOST_ASIO_COMPOSED_CONNECT_HANDLER_CHECK(
360
- ComposedConnectHandler, handler, Iterator) type_check;
760
+ // not meet the documented type requirements for a IteratorConnectHandler.
761
+ BOOST_ASIO_ITERATOR_CONNECT_HANDLER_CHECK(
762
+ IteratorConnectHandler, handler, Iterator) type_check;
361
763
 
362
- detail::async_result_init<ComposedConnectHandler,
363
- void (boost::system::error_code, Iterator)> init(
364
- BOOST_ASIO_MOVE_CAST(ComposedConnectHandler)(handler));
764
+ async_completion<IteratorConnectHandler,
765
+ void (boost::system::error_code, Iterator)> init(handler);
365
766
 
366
- detail::connect_op<Protocol, SocketService, Iterator,
767
+ detail::iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG, Iterator,
367
768
  detail::default_connect_condition, BOOST_ASIO_HANDLER_TYPE(
368
- ComposedConnectHandler, void (boost::system::error_code, Iterator))>(s,
369
- begin, end, detail::default_connect_condition(), init.handler)(
769
+ IteratorConnectHandler, void (boost::system::error_code, Iterator))>(s,
770
+ begin, end, detail::default_connect_condition(),
771
+ init.completion_handler)(boost::system::error_code(), 1);
772
+
773
+ return init.result.get();
774
+ }
775
+
776
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename EndpointSequence,
777
+ typename ConnectCondition, typename RangeConnectHandler>
778
+ inline BOOST_ASIO_INITFN_RESULT_TYPE(RangeConnectHandler,
779
+ void (boost::system::error_code, typename Protocol::endpoint))
780
+ async_connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
781
+ const EndpointSequence& endpoints, ConnectCondition connect_condition,
782
+ BOOST_ASIO_MOVE_ARG(RangeConnectHandler) handler,
783
+ typename enable_if<is_endpoint_sequence<
784
+ EndpointSequence>::value>::type*)
785
+ {
786
+ // If you get an error on the following line it means that your handler does
787
+ // not meet the documented type requirements for a RangeConnectHandler.
788
+ BOOST_ASIO_RANGE_CONNECT_HANDLER_CHECK(
789
+ RangeConnectHandler, handler, typename Protocol::endpoint) type_check;
790
+
791
+ async_completion<RangeConnectHandler,
792
+ void (boost::system::error_code, typename Protocol::endpoint)>
793
+ init(handler);
794
+
795
+ detail::range_connect_op<Protocol BOOST_ASIO_SVC_TARG, EndpointSequence,
796
+ ConnectCondition, BOOST_ASIO_HANDLER_TYPE(RangeConnectHandler,
797
+ void (boost::system::error_code, typename Protocol::endpoint))>(s,
798
+ endpoints, connect_condition, init.completion_handler)(
370
799
  boost::system::error_code(), 1);
371
800
 
372
801
  return init.result.get();
373
802
  }
374
803
 
375
- template <typename Protocol, typename SocketService, typename Iterator,
376
- typename ConnectCondition, typename ComposedConnectHandler>
377
- inline BOOST_ASIO_INITFN_RESULT_TYPE(ComposedConnectHandler,
804
+ #if !defined(BOOST_ASIO_NO_DEPRECATED)
805
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename Iterator,
806
+ typename ConnectCondition, typename IteratorConnectHandler>
807
+ inline BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,
378
808
  void (boost::system::error_code, Iterator))
379
- async_connect(basic_socket<Protocol, SocketService>& s,
809
+ async_connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
380
810
  Iterator begin, ConnectCondition connect_condition,
381
- BOOST_ASIO_MOVE_ARG(ComposedConnectHandler) handler)
811
+ BOOST_ASIO_MOVE_ARG(IteratorConnectHandler) handler,
812
+ typename enable_if<!is_endpoint_sequence<Iterator>::value>::type*)
382
813
  {
383
814
  // If you get an error on the following line it means that your handler does
384
- // not meet the documented type requirements for a ComposedConnectHandler.
385
- BOOST_ASIO_COMPOSED_CONNECT_HANDLER_CHECK(
386
- ComposedConnectHandler, handler, Iterator) type_check;
815
+ // not meet the documented type requirements for a IteratorConnectHandler.
816
+ BOOST_ASIO_ITERATOR_CONNECT_HANDLER_CHECK(
817
+ IteratorConnectHandler, handler, Iterator) type_check;
387
818
 
388
- detail::async_result_init<ComposedConnectHandler,
389
- void (boost::system::error_code, Iterator)> init(
390
- BOOST_ASIO_MOVE_CAST(ComposedConnectHandler)(handler));
819
+ async_completion<IteratorConnectHandler,
820
+ void (boost::system::error_code, Iterator)> init(handler);
391
821
 
392
- detail::connect_op<Protocol, SocketService, Iterator,
822
+ detail::iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG, Iterator,
393
823
  ConnectCondition, BOOST_ASIO_HANDLER_TYPE(
394
- ComposedConnectHandler, void (boost::system::error_code, Iterator))>(s,
395
- begin, Iterator(), connect_condition, init.handler)(
824
+ IteratorConnectHandler, void (boost::system::error_code, Iterator))>(s,
825
+ begin, Iterator(), connect_condition, init.completion_handler)(
396
826
  boost::system::error_code(), 1);
397
827
 
398
828
  return init.result.get();
399
829
  }
830
+ #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
400
831
 
401
- template <typename Protocol, typename SocketService, typename Iterator,
402
- typename ConnectCondition, typename ComposedConnectHandler>
403
- inline BOOST_ASIO_INITFN_RESULT_TYPE(ComposedConnectHandler,
832
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM, typename Iterator,
833
+ typename ConnectCondition, typename IteratorConnectHandler>
834
+ inline BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,
404
835
  void (boost::system::error_code, Iterator))
405
- async_connect(basic_socket<Protocol, SocketService>& s,
836
+ async_connect(basic_socket<Protocol BOOST_ASIO_SVC_TARG>& s,
406
837
  Iterator begin, Iterator end, ConnectCondition connect_condition,
407
- BOOST_ASIO_MOVE_ARG(ComposedConnectHandler) handler)
838
+ BOOST_ASIO_MOVE_ARG(IteratorConnectHandler) handler)
408
839
  {
409
840
  // If you get an error on the following line it means that your handler does
410
- // not meet the documented type requirements for a ComposedConnectHandler.
411
- BOOST_ASIO_COMPOSED_CONNECT_HANDLER_CHECK(
412
- ComposedConnectHandler, handler, Iterator) type_check;
841
+ // not meet the documented type requirements for a IteratorConnectHandler.
842
+ BOOST_ASIO_ITERATOR_CONNECT_HANDLER_CHECK(
843
+ IteratorConnectHandler, handler, Iterator) type_check;
413
844
 
414
- detail::async_result_init<ComposedConnectHandler,
415
- void (boost::system::error_code, Iterator)> init(
416
- BOOST_ASIO_MOVE_CAST(ComposedConnectHandler)(handler));
845
+ async_completion<IteratorConnectHandler,
846
+ void (boost::system::error_code, Iterator)> init(handler);
417
847
 
418
- detail::connect_op<Protocol, SocketService, Iterator,
848
+ detail::iterator_connect_op<Protocol BOOST_ASIO_SVC_TARG, Iterator,
419
849
  ConnectCondition, BOOST_ASIO_HANDLER_TYPE(
420
- ComposedConnectHandler, void (boost::system::error_code, Iterator))>(s,
421
- begin, end, connect_condition, init.handler)(
850
+ IteratorConnectHandler, void (boost::system::error_code, Iterator))>(s,
851
+ begin, end, connect_condition, init.completion_handler)(
422
852
  boost::system::error_code(), 1);
423
853
 
424
854
  return init.result.get();