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
@@ -0,0 +1,131 @@
1
+ //
2
+ // ip/address_v6_range.hpp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
+ // Oliver Kowalke (oliver dot kowalke at gmail dot com)
7
+ //
8
+ // Distributed under the Boost Software License, Version 1.0. (See accompanying
9
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10
+ //
11
+
12
+ #ifndef BOOST_ASIO_IP_ADDRESS_V6_RANGE_HPP
13
+ #define BOOST_ASIO_IP_ADDRESS_V6_RANGE_HPP
14
+
15
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
16
+ # pragma once
17
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
18
+
19
+ #include <boost/asio/detail/config.hpp>
20
+ #include <boost/asio/ip/address_v6_iterator.hpp>
21
+
22
+ #include <boost/asio/detail/push_options.hpp>
23
+
24
+ namespace boost {
25
+ namespace asio {
26
+ namespace ip {
27
+
28
+ template <typename> class basic_address_range;
29
+
30
+ /// Represents a range of IPv6 addresses.
31
+ /**
32
+ * @par Thread Safety
33
+ * @e Distinct @e objects: Safe.@n
34
+ * @e Shared @e objects: Unsafe.
35
+ */
36
+ template <> class basic_address_range<address_v6>
37
+ {
38
+ public:
39
+ /// The type of an iterator that points into the range.
40
+ typedef basic_address_iterator<address_v6> iterator;
41
+
42
+ /// Construct an empty range.
43
+ basic_address_range() BOOST_ASIO_NOEXCEPT
44
+ : begin_(address_v6()),
45
+ end_(address_v6())
46
+ {
47
+ }
48
+
49
+ /// Construct an range that represents the given range of addresses.
50
+ explicit basic_address_range(const iterator& first,
51
+ const iterator& last) BOOST_ASIO_NOEXCEPT
52
+ : begin_(first),
53
+ end_(last)
54
+ {
55
+ }
56
+
57
+ /// Copy constructor.
58
+ basic_address_range(const basic_address_range& other) BOOST_ASIO_NOEXCEPT
59
+ : begin_(other.begin_),
60
+ end_(other.end_)
61
+ {
62
+ }
63
+
64
+ #if defined(BOOST_ASIO_HAS_MOVE)
65
+ /// Move constructor.
66
+ basic_address_range(basic_address_range&& other) BOOST_ASIO_NOEXCEPT
67
+ : begin_(BOOST_ASIO_MOVE_CAST(iterator)(other.begin_)),
68
+ end_(BOOST_ASIO_MOVE_CAST(iterator)(other.end_))
69
+ {
70
+ }
71
+ #endif // defined(BOOST_ASIO_HAS_MOVE)
72
+
73
+ /// Assignment operator.
74
+ basic_address_range& operator=(
75
+ const basic_address_range& other) BOOST_ASIO_NOEXCEPT
76
+ {
77
+ begin_ = other.begin_;
78
+ end_ = other.end_;
79
+ return *this;
80
+ }
81
+
82
+ #if defined(BOOST_ASIO_HAS_MOVE)
83
+ /// Move assignment operator.
84
+ basic_address_range& operator=(
85
+ basic_address_range&& other) BOOST_ASIO_NOEXCEPT
86
+ {
87
+ begin_ = BOOST_ASIO_MOVE_CAST(iterator)(other.begin_);
88
+ end_ = BOOST_ASIO_MOVE_CAST(iterator)(other.end_);
89
+ return *this;
90
+ }
91
+ #endif // defined(BOOST_ASIO_HAS_MOVE)
92
+
93
+ /// Obtain an iterator that points to the start of the range.
94
+ iterator begin() const BOOST_ASIO_NOEXCEPT
95
+ {
96
+ return begin_;
97
+ }
98
+
99
+ /// Obtain an iterator that points to the end of the range.
100
+ iterator end() const BOOST_ASIO_NOEXCEPT
101
+ {
102
+ return end_;
103
+ }
104
+
105
+ /// Determine whether the range is empty.
106
+ bool empty() const BOOST_ASIO_NOEXCEPT
107
+ {
108
+ return begin_ == end_;
109
+ }
110
+
111
+ /// Find an address in the range.
112
+ iterator find(const address_v6& addr) const BOOST_ASIO_NOEXCEPT
113
+ {
114
+ return addr >= *begin_ && addr < *end_ ? iterator(addr) : end_;
115
+ }
116
+
117
+ private:
118
+ iterator begin_;
119
+ iterator end_;
120
+ };
121
+
122
+ /// Represents a range of IPv6 addresses.
123
+ typedef basic_address_range<address_v6> address_v6_range;
124
+
125
+ } // namespace ip
126
+ } // namespace asio
127
+ } // namespace boost
128
+
129
+ #include <boost/asio/detail/pop_options.hpp>
130
+
131
+ #endif // BOOST_ASIO_IP_ADDRESS_V6_RANGE_HPP
@@ -0,0 +1,50 @@
1
+ //
2
+ // ip/bad_address_cast.hpp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
+ //
7
+ // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
+ //
10
+
11
+ #ifndef BOOST_ASIO_IP_BAD_ADDRESS_CAST_HPP
12
+ #define BOOST_ASIO_IP_BAD_ADDRESS_CAST_HPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include <boost/asio/detail/config.hpp>
19
+ #include <typeinfo>
20
+
21
+ #include <boost/asio/detail/push_options.hpp>
22
+
23
+ namespace boost {
24
+ namespace asio {
25
+ namespace ip {
26
+
27
+ /// Thrown to indicate a failed address conversion.
28
+ class bad_address_cast : public std::bad_cast
29
+ {
30
+ public:
31
+ /// Default constructor.
32
+ bad_address_cast() {}
33
+
34
+ /// Destructor.
35
+ virtual ~bad_address_cast() BOOST_ASIO_NOEXCEPT_OR_NOTHROW {}
36
+
37
+ /// Get the message associated with the exception.
38
+ virtual const char* what() const BOOST_ASIO_NOEXCEPT_OR_NOTHROW
39
+ {
40
+ return "bad address cast";
41
+ }
42
+ };
43
+
44
+ } // namespace ip
45
+ } // namespace asio
46
+ } // namespace boost
47
+
48
+ #include <boost/asio/detail/pop_options.hpp>
49
+
50
+ #endif // BOOST_ASIO_IP_ADDRESS_HPP
@@ -2,7 +2,7 @@
2
2
  // ip/basic_endpoint.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)
@@ -98,13 +98,13 @@ public:
98
98
  {
99
99
  }
100
100
 
101
- #if defined(BOOST_ASIO_HAS_MOVE)
101
+ #if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
102
102
  /// Move constructor.
103
103
  basic_endpoint(basic_endpoint&& other)
104
104
  : impl_(other.impl_)
105
105
  {
106
106
  }
107
- #endif // defined(BOOST_ASIO_HAS_MOVE)
107
+ #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
108
108
 
109
109
  /// Assign from another endpoint.
110
110
  basic_endpoint& operator=(const basic_endpoint& other)
@@ -113,14 +113,14 @@ public:
113
113
  return *this;
114
114
  }
115
115
 
116
- #if defined(BOOST_ASIO_HAS_MOVE)
116
+ #if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
117
117
  /// Move-assign from another endpoint.
118
118
  basic_endpoint& operator=(basic_endpoint&& other)
119
119
  {
120
120
  impl_ = other.impl_;
121
121
  return *this;
122
122
  }
123
- #endif // defined(BOOST_ASIO_HAS_MOVE)
123
+ #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
124
124
 
125
125
  /// The protocol associated with the endpoint.
126
126
  protocol_type protocol() const
@@ -2,7 +2,7 @@
2
2
  // ip/basic_resolver.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)
@@ -16,13 +16,36 @@
16
16
  #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
+ #include <string>
20
+ #include <boost/asio/async_result.hpp>
19
21
  #include <boost/asio/basic_io_object.hpp>
20
22
  #include <boost/asio/detail/handler_type_requirements.hpp>
23
+ #include <boost/asio/detail/string_view.hpp>
21
24
  #include <boost/asio/detail/throw_error.hpp>
22
25
  #include <boost/asio/error.hpp>
26
+ #include <boost/asio/io_context.hpp>
23
27
  #include <boost/asio/ip/basic_resolver_iterator.hpp>
24
28
  #include <boost/asio/ip/basic_resolver_query.hpp>
25
- #include <boost/asio/ip/resolver_service.hpp>
29
+ #include <boost/asio/ip/basic_resolver_results.hpp>
30
+ #include <boost/asio/ip/resolver_base.hpp>
31
+
32
+ #if defined(BOOST_ASIO_HAS_MOVE)
33
+ # include <utility>
34
+ #endif // defined(BOOST_ASIO_HAS_MOVE)
35
+
36
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
37
+ # include <boost/asio/ip/resolver_service.hpp>
38
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
39
+ # if defined(BOOST_ASIO_WINDOWS_RUNTIME)
40
+ # include <boost/asio/detail/winrt_resolver_service.hpp>
41
+ # define BOOST_ASIO_SVC_T \
42
+ boost::asio::detail::winrt_resolver_service<InternetProtocol>
43
+ # else
44
+ # include <boost/asio/detail/resolver_service.hpp>
45
+ # define BOOST_ASIO_SVC_T \
46
+ boost::asio::detail::resolver_service<InternetProtocol>
47
+ # endif
48
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
26
49
 
27
50
  #include <boost/asio/detail/push_options.hpp>
28
51
 
@@ -39,35 +62,130 @@ namespace ip {
39
62
  * @e Distinct @e objects: Safe.@n
40
63
  * @e Shared @e objects: Unsafe.
41
64
  */
42
- template <typename InternetProtocol,
43
- typename ResolverService = resolver_service<InternetProtocol> >
65
+ template <typename InternetProtocol
66
+ BOOST_ASIO_SVC_TPARAM_DEF1(= resolver_service<InternetProtocol>)>
44
67
  class basic_resolver
45
- : public basic_io_object<ResolverService>
68
+ : BOOST_ASIO_SVC_ACCESS basic_io_object<BOOST_ASIO_SVC_T>,
69
+ public resolver_base
46
70
  {
47
71
  public:
72
+ /// The type of the executor associated with the object.
73
+ typedef io_context::executor_type executor_type;
74
+
48
75
  /// The protocol type.
49
76
  typedef InternetProtocol protocol_type;
50
77
 
51
78
  /// The endpoint type.
52
79
  typedef typename InternetProtocol::endpoint endpoint_type;
53
80
 
54
- /// The query type.
81
+ #if !defined(BOOST_ASIO_NO_DEPRECATED)
82
+ /// (Deprecated.) The query type.
55
83
  typedef basic_resolver_query<InternetProtocol> query;
56
84
 
57
- /// The iterator type.
85
+ /// (Deprecated.) The iterator type.
58
86
  typedef basic_resolver_iterator<InternetProtocol> iterator;
87
+ #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
88
+
89
+ /// The results type.
90
+ typedef basic_resolver_results<InternetProtocol> results_type;
59
91
 
60
92
  /// Constructor.
61
93
  /**
62
94
  * This constructor creates a basic_resolver.
63
95
  *
64
- * @param io_service The io_service object that the resolver will use to
65
- * dispatch handlers for any asynchronous operations performed on the timer.
96
+ * @param io_context The io_context object that the resolver will use to
97
+ * dispatch handlers for any asynchronous operations performed on the
98
+ * resolver.
99
+ */
100
+ explicit basic_resolver(boost::asio::io_context& io_context)
101
+ : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
102
+ {
103
+ }
104
+
105
+ #if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
106
+ /// Move-construct a basic_resolver from another.
107
+ /**
108
+ * This constructor moves a resolver from one object to another.
109
+ *
110
+ * @param other The other basic_resolver object from which the move will
111
+ * occur.
112
+ *
113
+ * @note Following the move, the moved-from object is in the same state as if
114
+ * constructed using the @c basic_resolver(io_context&) constructor.
115
+ */
116
+ basic_resolver(basic_resolver&& other)
117
+ : basic_io_object<BOOST_ASIO_SVC_T>(std::move(other))
118
+ {
119
+ }
120
+
121
+ /// Move-assign a basic_resolver from another.
122
+ /**
123
+ * This assignment operator moves a resolver from one object to another.
124
+ * Cancels any outstanding asynchronous operations associated with the target
125
+ * object.
126
+ *
127
+ * @param other The other basic_resolver object from which the move will
128
+ * occur.
129
+ *
130
+ * @note Following the move, the moved-from object is in the same state as if
131
+ * constructed using the @c basic_resolver(io_context&) constructor.
132
+ */
133
+ basic_resolver& operator=(basic_resolver&& other)
134
+ {
135
+ basic_io_object<BOOST_ASIO_SVC_T>::operator=(std::move(other));
136
+ return *this;
137
+ }
138
+ #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
139
+
140
+ /// Destroys the resolver.
141
+ /**
142
+ * This function destroys the resolver, cancelling any outstanding
143
+ * asynchronous wait operations associated with the resolver as if by calling
144
+ * @c cancel.
145
+ */
146
+ ~basic_resolver()
147
+ {
148
+ }
149
+
150
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
151
+ // These functions are provided by basic_io_object<>.
152
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
153
+ #if !defined(BOOST_ASIO_NO_DEPRECATED)
154
+ /// (Deprecated: Use get_executor().) Get the io_context associated with the
155
+ /// object.
156
+ /**
157
+ * This function may be used to obtain the io_context object that the I/O
158
+ * object uses to dispatch handlers for asynchronous operations.
159
+ *
160
+ * @return A reference to the io_context object that the I/O object will use
161
+ * to dispatch handlers. Ownership is not transferred to the caller.
66
162
  */
67
- explicit basic_resolver(boost::asio::io_service& io_service)
68
- : basic_io_object<ResolverService>(io_service)
163
+ boost::asio::io_context& get_io_context()
164
+ {
165
+ return basic_io_object<BOOST_ASIO_SVC_T>::get_io_context();
166
+ }
167
+
168
+ /// (Deprecated: Use get_executor().) Get the io_context associated with the
169
+ /// object.
170
+ /**
171
+ * This function may be used to obtain the io_context object that the I/O
172
+ * object uses to dispatch handlers for asynchronous operations.
173
+ *
174
+ * @return A reference to the io_context object that the I/O object will use
175
+ * to dispatch handlers. Ownership is not transferred to the caller.
176
+ */
177
+ boost::asio::io_context& get_io_service()
178
+ {
179
+ return basic_io_object<BOOST_ASIO_SVC_T>::get_io_service();
180
+ }
181
+ #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
182
+
183
+ /// Get the executor associated with the object.
184
+ executor_type get_executor() BOOST_ASIO_NOEXCEPT
69
185
  {
186
+ return basic_io_object<BOOST_ASIO_SVC_T>::get_executor();
70
187
  }
188
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
71
189
 
72
190
  /// Cancel any asynchronous operations that are waiting on the resolver.
73
191
  /**
@@ -77,56 +195,414 @@ public:
77
195
  */
78
196
  void cancel()
79
197
  {
80
- return this->service.cancel(this->implementation);
198
+ return this->get_service().cancel(this->get_implementation());
81
199
  }
82
200
 
83
- /// Perform forward resolution of a query to a list of entries.
201
+ #if !defined(BOOST_ASIO_NO_DEPRECATED)
202
+ /// (Deprecated.) Perform forward resolution of a query to a list of entries.
84
203
  /**
85
204
  * This function is used to resolve a query into a list of endpoint entries.
86
205
  *
87
206
  * @param q A query object that determines what endpoints will be returned.
88
207
  *
89
- * @returns A forward-only iterator that can be used to traverse the list
90
- * of endpoint entries.
208
+ * @returns A range object representing the list of endpoint entries. A
209
+ * successful call to this function is guaranteed to return a non-empty
210
+ * range.
211
+ *
212
+ * @throws boost::system::system_error Thrown on failure.
213
+ */
214
+ results_type resolve(const query& q)
215
+ {
216
+ boost::system::error_code ec;
217
+ results_type r = this->get_service().resolve(
218
+ this->get_implementation(), q, ec);
219
+ boost::asio::detail::throw_error(ec, "resolve");
220
+ return r;
221
+ }
222
+
223
+ /// (Deprecated.) Perform forward resolution of a query to a list of entries.
224
+ /**
225
+ * This function is used to resolve a query into a list of endpoint entries.
226
+ *
227
+ * @param q A query object that determines what endpoints will be returned.
228
+ *
229
+ * @param ec Set to indicate what error occurred, if any.
230
+ *
231
+ * @returns A range object representing the list of endpoint entries. An
232
+ * empty range is returned if an error occurs. A successful call to this
233
+ * function is guaranteed to return a non-empty range.
234
+ */
235
+ results_type resolve(const query& q, boost::system::error_code& ec)
236
+ {
237
+ return this->get_service().resolve(this->get_implementation(), q, ec);
238
+ }
239
+ #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
240
+
241
+ /// Perform forward resolution of a query to a list of entries.
242
+ /**
243
+ * This function is used to resolve host and service names into a list of
244
+ * endpoint entries.
245
+ *
246
+ * @param host A string identifying a location. May be a descriptive name or
247
+ * a numeric address string. If an empty string and the passive flag has been
248
+ * specified, the resolved endpoints are suitable for local service binding.
249
+ * If an empty string and passive is not specified, the resolved endpoints
250
+ * will use the loopback address.
251
+ *
252
+ * @param service A string identifying the requested service. This may be a
253
+ * descriptive name or a numeric string corresponding to a port number. May
254
+ * be an empty string, in which case all resolved endpoints will have a port
255
+ * number of 0.
256
+ *
257
+ * @returns A range object representing the list of endpoint entries. A
258
+ * successful call to this function is guaranteed to return a non-empty
259
+ * range.
91
260
  *
92
261
  * @throws boost::system::system_error Thrown on failure.
93
262
  *
94
- * @note A default constructed iterator represents the end of the list.
263
+ * @note On POSIX systems, host names may be locally defined in the file
264
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
265
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
266
+ * resolution is performed using DNS. Operating systems may use additional
267
+ * locations when resolving host names (such as NETBIOS names on Windows).
95
268
  *
96
- * A successful call to this function is guaranteed to return at least one
97
- * entry.
269
+ * On POSIX systems, service names are typically defined in the file
270
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
271
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
272
+ * may use additional locations when resolving service names.
98
273
  */
99
- iterator resolve(const query& q)
274
+ results_type resolve(BOOST_ASIO_STRING_VIEW_PARAM host,
275
+ BOOST_ASIO_STRING_VIEW_PARAM service)
276
+ {
277
+ return resolve(host, service, resolver_base::flags());
278
+ }
279
+
280
+ /// Perform forward resolution of a query to a list of entries.
281
+ /**
282
+ * This function is used to resolve host and service names into a list of
283
+ * endpoint entries.
284
+ *
285
+ * @param host A string identifying a location. May be a descriptive name or
286
+ * a numeric address string. If an empty string and the passive flag has been
287
+ * specified, the resolved endpoints are suitable for local service binding.
288
+ * If an empty string and passive is not specified, the resolved endpoints
289
+ * will use the loopback address.
290
+ *
291
+ * @param service A string identifying the requested service. This may be a
292
+ * descriptive name or a numeric string corresponding to a port number. May
293
+ * be an empty string, in which case all resolved endpoints will have a port
294
+ * number of 0.
295
+ *
296
+ * @param ec Set to indicate what error occurred, if any.
297
+ *
298
+ * @returns A range object representing the list of endpoint entries. An
299
+ * empty range is returned if an error occurs. A successful call to this
300
+ * function is guaranteed to return a non-empty range.
301
+ *
302
+ * @note On POSIX systems, host names may be locally defined in the file
303
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
304
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
305
+ * resolution is performed using DNS. Operating systems may use additional
306
+ * locations when resolving host names (such as NETBIOS names on Windows).
307
+ *
308
+ * On POSIX systems, service names are typically defined in the file
309
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
310
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
311
+ * may use additional locations when resolving service names.
312
+ */
313
+ results_type resolve(BOOST_ASIO_STRING_VIEW_PARAM host,
314
+ BOOST_ASIO_STRING_VIEW_PARAM service, boost::system::error_code& ec)
315
+ {
316
+ return resolve(host, service, resolver_base::flags(), ec);
317
+ }
318
+
319
+ /// Perform forward resolution of a query to a list of entries.
320
+ /**
321
+ * This function is used to resolve host and service names into a list of
322
+ * endpoint entries.
323
+ *
324
+ * @param host A string identifying a location. May be a descriptive name or
325
+ * a numeric address string. If an empty string and the passive flag has been
326
+ * specified, the resolved endpoints are suitable for local service binding.
327
+ * If an empty string and passive is not specified, the resolved endpoints
328
+ * will use the loopback address.
329
+ *
330
+ * @param service A string identifying the requested service. This may be a
331
+ * descriptive name or a numeric string corresponding to a port number. May
332
+ * be an empty string, in which case all resolved endpoints will have a port
333
+ * number of 0.
334
+ *
335
+ * @param resolve_flags A set of flags that determine how name resolution
336
+ * should be performed. The default flags are suitable for communication with
337
+ * remote hosts.
338
+ *
339
+ * @returns A range object representing the list of endpoint entries. A
340
+ * successful call to this function is guaranteed to return a non-empty
341
+ * range.
342
+ *
343
+ * @throws boost::system::system_error Thrown on failure.
344
+ *
345
+ * @note On POSIX systems, host names may be locally defined in the file
346
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
347
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
348
+ * resolution is performed using DNS. Operating systems may use additional
349
+ * locations when resolving host names (such as NETBIOS names on Windows).
350
+ *
351
+ * On POSIX systems, service names are typically defined in the file
352
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
353
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
354
+ * may use additional locations when resolving service names.
355
+ */
356
+ results_type resolve(BOOST_ASIO_STRING_VIEW_PARAM host,
357
+ BOOST_ASIO_STRING_VIEW_PARAM service, resolver_base::flags resolve_flags)
100
358
  {
101
359
  boost::system::error_code ec;
102
- iterator i = this->service.resolve(this->implementation, q, ec);
360
+ basic_resolver_query<protocol_type> q(static_cast<std::string>(host),
361
+ static_cast<std::string>(service), resolve_flags);
362
+ results_type r = this->get_service().resolve(
363
+ this->get_implementation(), q, ec);
103
364
  boost::asio::detail::throw_error(ec, "resolve");
104
- return i;
365
+ return r;
105
366
  }
106
367
 
107
368
  /// Perform forward resolution of a query to a list of entries.
108
369
  /**
109
- * This function is used to resolve a query into a list of endpoint entries.
370
+ * This function is used to resolve host and service names into a list of
371
+ * endpoint entries.
110
372
  *
111
- * @param q A query object that determines what endpoints will be returned.
373
+ * @param host A string identifying a location. May be a descriptive name or
374
+ * a numeric address string. If an empty string and the passive flag has been
375
+ * specified, the resolved endpoints are suitable for local service binding.
376
+ * If an empty string and passive is not specified, the resolved endpoints
377
+ * will use the loopback address.
378
+ *
379
+ * @param service A string identifying the requested service. This may be a
380
+ * descriptive name or a numeric string corresponding to a port number. May
381
+ * be an empty string, in which case all resolved endpoints will have a port
382
+ * number of 0.
383
+ *
384
+ * @param resolve_flags A set of flags that determine how name resolution
385
+ * should be performed. The default flags are suitable for communication with
386
+ * remote hosts.
112
387
  *
113
388
  * @param ec Set to indicate what error occurred, if any.
114
389
  *
115
- * @returns A forward-only iterator that can be used to traverse the list
116
- * of endpoint entries. Returns a default constructed iterator if an error
117
- * occurs.
390
+ * @returns A range object representing the list of endpoint entries. An
391
+ * empty range is returned if an error occurs. A successful call to this
392
+ * function is guaranteed to return a non-empty range.
118
393
  *
119
- * @note A default constructed iterator represents the end of the list.
394
+ * @note On POSIX systems, host names may be locally defined in the file
395
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
396
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
397
+ * resolution is performed using DNS. Operating systems may use additional
398
+ * locations when resolving host names (such as NETBIOS names on Windows).
120
399
  *
121
- * A successful call to this function is guaranteed to return at least one
122
- * entry.
400
+ * On POSIX systems, service names are typically defined in the file
401
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
402
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
403
+ * may use additional locations when resolving service names.
123
404
  */
124
- iterator resolve(const query& q, boost::system::error_code& ec)
405
+ results_type resolve(BOOST_ASIO_STRING_VIEW_PARAM host,
406
+ BOOST_ASIO_STRING_VIEW_PARAM service, resolver_base::flags resolve_flags,
407
+ boost::system::error_code& ec)
125
408
  {
126
- return this->service.resolve(this->implementation, q, ec);
409
+ basic_resolver_query<protocol_type> q(static_cast<std::string>(host),
410
+ static_cast<std::string>(service), resolve_flags);
411
+ return this->get_service().resolve(this->get_implementation(), q, ec);
127
412
  }
128
413
 
129
- /// Asynchronously perform forward resolution of a query to a list of entries.
414
+ /// Perform forward resolution of a query to a list of entries.
415
+ /**
416
+ * This function is used to resolve host and service names into a list of
417
+ * endpoint entries.
418
+ *
419
+ * @param protocol A protocol object, normally representing either the IPv4 or
420
+ * IPv6 version of an internet protocol.
421
+ *
422
+ * @param host A string identifying a location. May be a descriptive name or
423
+ * a numeric address string. If an empty string and the passive flag has been
424
+ * specified, the resolved endpoints are suitable for local service binding.
425
+ * If an empty string and passive is not specified, the resolved endpoints
426
+ * will use the loopback address.
427
+ *
428
+ * @param service A string identifying the requested service. This may be a
429
+ * descriptive name or a numeric string corresponding to a port number. May
430
+ * be an empty string, in which case all resolved endpoints will have a port
431
+ * number of 0.
432
+ *
433
+ * @returns A range object representing the list of endpoint entries. A
434
+ * successful call to this function is guaranteed to return a non-empty
435
+ * range.
436
+ *
437
+ * @throws boost::system::system_error Thrown on failure.
438
+ *
439
+ * @note On POSIX systems, host names may be locally defined in the file
440
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
441
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
442
+ * resolution is performed using DNS. Operating systems may use additional
443
+ * locations when resolving host names (such as NETBIOS names on Windows).
444
+ *
445
+ * On POSIX systems, service names are typically defined in the file
446
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
447
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
448
+ * may use additional locations when resolving service names.
449
+ */
450
+ results_type resolve(const protocol_type& protocol,
451
+ BOOST_ASIO_STRING_VIEW_PARAM host, BOOST_ASIO_STRING_VIEW_PARAM service)
452
+ {
453
+ return resolve(protocol, host, service, resolver_base::flags());
454
+ }
455
+
456
+ /// Perform forward resolution of a query to a list of entries.
457
+ /**
458
+ * This function is used to resolve host and service names into a list of
459
+ * endpoint entries.
460
+ *
461
+ * @param protocol A protocol object, normally representing either the IPv4 or
462
+ * IPv6 version of an internet protocol.
463
+ *
464
+ * @param host A string identifying a location. May be a descriptive name or
465
+ * a numeric address string. If an empty string and the passive flag has been
466
+ * specified, the resolved endpoints are suitable for local service binding.
467
+ * If an empty string and passive is not specified, the resolved endpoints
468
+ * will use the loopback address.
469
+ *
470
+ * @param service A string identifying the requested service. This may be a
471
+ * descriptive name or a numeric string corresponding to a port number. May
472
+ * be an empty string, in which case all resolved endpoints will have a port
473
+ * number of 0.
474
+ *
475
+ * @param ec Set to indicate what error occurred, if any.
476
+ *
477
+ * @returns A range object representing the list of endpoint entries. An
478
+ * empty range is returned if an error occurs. A successful call to this
479
+ * function is guaranteed to return a non-empty range.
480
+ *
481
+ * @note On POSIX systems, host names may be locally defined in the file
482
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
483
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
484
+ * resolution is performed using DNS. Operating systems may use additional
485
+ * locations when resolving host names (such as NETBIOS names on Windows).
486
+ *
487
+ * On POSIX systems, service names are typically defined in the file
488
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
489
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
490
+ * may use additional locations when resolving service names.
491
+ */
492
+ results_type resolve(const protocol_type& protocol,
493
+ BOOST_ASIO_STRING_VIEW_PARAM host, BOOST_ASIO_STRING_VIEW_PARAM service,
494
+ boost::system::error_code& ec)
495
+ {
496
+ return resolve(protocol, host, service, resolver_base::flags(), ec);
497
+ }
498
+
499
+ /// Perform forward resolution of a query to a list of entries.
500
+ /**
501
+ * This function is used to resolve host and service names into a list of
502
+ * endpoint entries.
503
+ *
504
+ * @param protocol A protocol object, normally representing either the IPv4 or
505
+ * IPv6 version of an internet protocol.
506
+ *
507
+ * @param host A string identifying a location. May be a descriptive name or
508
+ * a numeric address string. If an empty string and the passive flag has been
509
+ * specified, the resolved endpoints are suitable for local service binding.
510
+ * If an empty string and passive is not specified, the resolved endpoints
511
+ * will use the loopback address.
512
+ *
513
+ * @param service A string identifying the requested service. This may be a
514
+ * descriptive name or a numeric string corresponding to a port number. May
515
+ * be an empty string, in which case all resolved endpoints will have a port
516
+ * number of 0.
517
+ *
518
+ * @param resolve_flags A set of flags that determine how name resolution
519
+ * should be performed. The default flags are suitable for communication with
520
+ * remote hosts.
521
+ *
522
+ * @returns A range object representing the list of endpoint entries. A
523
+ * successful call to this function is guaranteed to return a non-empty
524
+ * range.
525
+ *
526
+ * @throws boost::system::system_error Thrown on failure.
527
+ *
528
+ * @note On POSIX systems, host names may be locally defined in the file
529
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
530
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
531
+ * resolution is performed using DNS. Operating systems may use additional
532
+ * locations when resolving host names (such as NETBIOS names on Windows).
533
+ *
534
+ * On POSIX systems, service names are typically defined in the file
535
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
536
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
537
+ * may use additional locations when resolving service names.
538
+ */
539
+ results_type resolve(const protocol_type& protocol,
540
+ BOOST_ASIO_STRING_VIEW_PARAM host, BOOST_ASIO_STRING_VIEW_PARAM service,
541
+ resolver_base::flags resolve_flags)
542
+ {
543
+ boost::system::error_code ec;
544
+ basic_resolver_query<protocol_type> q(
545
+ protocol, static_cast<std::string>(host),
546
+ static_cast<std::string>(service), resolve_flags);
547
+ results_type r = this->get_service().resolve(
548
+ this->get_implementation(), q, ec);
549
+ boost::asio::detail::throw_error(ec, "resolve");
550
+ return r;
551
+ }
552
+
553
+ /// Perform forward resolution of a query to a list of entries.
554
+ /**
555
+ * This function is used to resolve host and service names into a list of
556
+ * endpoint entries.
557
+ *
558
+ * @param protocol A protocol object, normally representing either the IPv4 or
559
+ * IPv6 version of an internet protocol.
560
+ *
561
+ * @param host A string identifying a location. May be a descriptive name or
562
+ * a numeric address string. If an empty string and the passive flag has been
563
+ * specified, the resolved endpoints are suitable for local service binding.
564
+ * If an empty string and passive is not specified, the resolved endpoints
565
+ * will use the loopback address.
566
+ *
567
+ * @param service A string identifying the requested service. This may be a
568
+ * descriptive name or a numeric string corresponding to a port number. May
569
+ * be an empty string, in which case all resolved endpoints will have a port
570
+ * number of 0.
571
+ *
572
+ * @param resolve_flags A set of flags that determine how name resolution
573
+ * should be performed. The default flags are suitable for communication with
574
+ * remote hosts.
575
+ *
576
+ * @param ec Set to indicate what error occurred, if any.
577
+ *
578
+ * @returns A range object representing the list of endpoint entries. An
579
+ * empty range is returned if an error occurs. A successful call to this
580
+ * function is guaranteed to return a non-empty range.
581
+ *
582
+ * @note On POSIX systems, host names may be locally defined in the file
583
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
584
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
585
+ * resolution is performed using DNS. Operating systems may use additional
586
+ * locations when resolving host names (such as NETBIOS names on Windows).
587
+ *
588
+ * On POSIX systems, service names are typically defined in the file
589
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
590
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
591
+ * may use additional locations when resolving service names.
592
+ */
593
+ results_type resolve(const protocol_type& protocol,
594
+ BOOST_ASIO_STRING_VIEW_PARAM host, BOOST_ASIO_STRING_VIEW_PARAM service,
595
+ resolver_base::flags resolve_flags, boost::system::error_code& ec)
596
+ {
597
+ basic_resolver_query<protocol_type> q(
598
+ protocol, static_cast<std::string>(host),
599
+ static_cast<std::string>(service), resolve_flags);
600
+ return this->get_service().resolve(this->get_implementation(), q, ec);
601
+ }
602
+
603
+ #if !defined(BOOST_ASIO_NO_DEPRECATED)
604
+ /// (Deprecated.) Asynchronously perform forward resolution of a query to a
605
+ /// list of entries.
130
606
  /**
131
607
  * This function is used to asynchronously resolve a query into a list of
132
608
  * endpoint entries.
@@ -138,35 +614,307 @@ public:
138
614
  * signature of the handler must be:
139
615
  * @code void handler(
140
616
  * const boost::system::error_code& error, // Result of operation.
141
- * resolver::iterator iterator // Forward-only iterator that can
142
- * // be used to traverse the list
143
- * // of endpoint entries.
617
+ * resolver::results_type results // Resolved endpoints as a range.
144
618
  * ); @endcode
145
619
  * Regardless of whether the asynchronous operation completes immediately or
146
620
  * not, the handler will not be invoked from within this function. Invocation
147
621
  * of the handler will be performed in a manner equivalent to using
148
- * boost::asio::io_service::post().
622
+ * boost::asio::io_context::post().
149
623
  *
150
- * @note A default constructed iterator represents the end of the list.
151
- *
152
- * A successful resolve operation is guaranteed to pass at least one entry to
624
+ * A successful resolve operation is guaranteed to pass a non-empty range to
153
625
  * the handler.
154
626
  */
155
627
  template <typename ResolveHandler>
156
628
  BOOST_ASIO_INITFN_RESULT_TYPE(ResolveHandler,
157
- void (boost::system::error_code, iterator))
629
+ void (boost::system::error_code, results_type))
158
630
  async_resolve(const query& q,
159
631
  BOOST_ASIO_MOVE_ARG(ResolveHandler) handler)
160
632
  {
161
633
  // If you get an error on the following line it means that your handler does
162
634
  // not meet the documented type requirements for a ResolveHandler.
163
635
  BOOST_ASIO_RESOLVE_HANDLER_CHECK(
164
- ResolveHandler, handler, iterator) type_check;
636
+ ResolveHandler, handler, results_type) type_check;
637
+
638
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
639
+ return this->get_service().async_resolve(this->get_implementation(), q,
640
+ BOOST_ASIO_MOVE_CAST(ResolveHandler)(handler));
641
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
642
+ boost::asio::async_completion<ResolveHandler,
643
+ void (boost::system::error_code, results_type)> init(handler);
644
+
645
+ this->get_service().async_resolve(
646
+ this->get_implementation(), q, init.completion_handler);
647
+
648
+ return init.result.get();
649
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
650
+ }
651
+ #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
652
+
653
+ /// Asynchronously perform forward resolution of a query to a list of entries.
654
+ /**
655
+ * This function is used to resolve host and service names into a list of
656
+ * endpoint entries.
657
+ *
658
+ * @param host A string identifying a location. May be a descriptive name or
659
+ * a numeric address string. If an empty string and the passive flag has been
660
+ * specified, the resolved endpoints are suitable for local service binding.
661
+ * If an empty string and passive is not specified, the resolved endpoints
662
+ * will use the loopback address.
663
+ *
664
+ * @param service A string identifying the requested service. This may be a
665
+ * descriptive name or a numeric string corresponding to a port number. May
666
+ * be an empty string, in which case all resolved endpoints will have a port
667
+ * number of 0.
668
+ *
669
+ * @param handler The handler to be called when the resolve operation
670
+ * completes. Copies will be made of the handler as required. The function
671
+ * signature of the handler must be:
672
+ * @code void handler(
673
+ * const boost::system::error_code& error, // Result of operation.
674
+ * resolver::results_type results // Resolved endpoints as a range.
675
+ * ); @endcode
676
+ * Regardless of whether the asynchronous operation completes immediately or
677
+ * not, the handler will not be invoked from within this function. Invocation
678
+ * of the handler will be performed in a manner equivalent to using
679
+ * boost::asio::io_context::post().
680
+ *
681
+ * A successful resolve operation is guaranteed to pass a non-empty range to
682
+ * the handler.
683
+ *
684
+ * @note On POSIX systems, host names may be locally defined in the file
685
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
686
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
687
+ * resolution is performed using DNS. Operating systems may use additional
688
+ * locations when resolving host names (such as NETBIOS names on Windows).
689
+ *
690
+ * On POSIX systems, service names are typically defined in the file
691
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
692
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
693
+ * may use additional locations when resolving service names.
694
+ */
695
+ template <typename ResolveHandler>
696
+ BOOST_ASIO_INITFN_RESULT_TYPE(ResolveHandler,
697
+ void (boost::system::error_code, results_type))
698
+ async_resolve(BOOST_ASIO_STRING_VIEW_PARAM host,
699
+ BOOST_ASIO_STRING_VIEW_PARAM service,
700
+ BOOST_ASIO_MOVE_ARG(ResolveHandler) handler)
701
+ {
702
+ return async_resolve(host, service, resolver_base::flags(),
703
+ BOOST_ASIO_MOVE_CAST(ResolveHandler)(handler));
704
+ }
705
+
706
+ /// Asynchronously perform forward resolution of a query to a list of entries.
707
+ /**
708
+ * This function is used to resolve host and service names into a list of
709
+ * endpoint entries.
710
+ *
711
+ * @param host A string identifying a location. May be a descriptive name or
712
+ * a numeric address string. If an empty string and the passive flag has been
713
+ * specified, the resolved endpoints are suitable for local service binding.
714
+ * If an empty string and passive is not specified, the resolved endpoints
715
+ * will use the loopback address.
716
+ *
717
+ * @param service A string identifying the requested service. This may be a
718
+ * descriptive name or a numeric string corresponding to a port number. May
719
+ * be an empty string, in which case all resolved endpoints will have a port
720
+ * number of 0.
721
+ *
722
+ * @param resolve_flags A set of flags that determine how name resolution
723
+ * should be performed. The default flags are suitable for communication with
724
+ * remote hosts.
725
+ *
726
+ * @param handler The handler to be called when the resolve operation
727
+ * completes. Copies will be made of the handler as required. The function
728
+ * signature of the handler must be:
729
+ * @code void handler(
730
+ * const boost::system::error_code& error, // Result of operation.
731
+ * resolver::results_type results // Resolved endpoints as a range.
732
+ * ); @endcode
733
+ * Regardless of whether the asynchronous operation completes immediately or
734
+ * not, the handler will not be invoked from within this function. Invocation
735
+ * of the handler will be performed in a manner equivalent to using
736
+ * boost::asio::io_context::post().
737
+ *
738
+ * A successful resolve operation is guaranteed to pass a non-empty range to
739
+ * the handler.
740
+ *
741
+ * @note On POSIX systems, host names may be locally defined in the file
742
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
743
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
744
+ * resolution is performed using DNS. Operating systems may use additional
745
+ * locations when resolving host names (such as NETBIOS names on Windows).
746
+ *
747
+ * On POSIX systems, service names are typically defined in the file
748
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
749
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
750
+ * may use additional locations when resolving service names.
751
+ */
752
+ template <typename ResolveHandler>
753
+ BOOST_ASIO_INITFN_RESULT_TYPE(ResolveHandler,
754
+ void (boost::system::error_code, results_type))
755
+ async_resolve(BOOST_ASIO_STRING_VIEW_PARAM host,
756
+ BOOST_ASIO_STRING_VIEW_PARAM service,
757
+ resolver_base::flags resolve_flags,
758
+ BOOST_ASIO_MOVE_ARG(ResolveHandler) handler)
759
+ {
760
+ // If you get an error on the following line it means that your handler does
761
+ // not meet the documented type requirements for a ResolveHandler.
762
+ BOOST_ASIO_RESOLVE_HANDLER_CHECK(
763
+ ResolveHandler, handler, results_type) type_check;
165
764
 
166
- return this->service.async_resolve(this->implementation, q,
765
+ basic_resolver_query<protocol_type> q(static_cast<std::string>(host),
766
+ static_cast<std::string>(service), resolve_flags);
767
+
768
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
769
+ return this->get_service().async_resolve(this->get_implementation(), q,
770
+ BOOST_ASIO_MOVE_CAST(ResolveHandler)(handler));
771
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
772
+ boost::asio::async_completion<ResolveHandler,
773
+ void (boost::system::error_code, results_type)> init(handler);
774
+
775
+ this->get_service().async_resolve(
776
+ this->get_implementation(), q, init.completion_handler);
777
+
778
+ return init.result.get();
779
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
780
+ }
781
+
782
+ /// Asynchronously perform forward resolution of a query to a list of entries.
783
+ /**
784
+ * This function is used to resolve host and service names into a list of
785
+ * endpoint entries.
786
+ *
787
+ * @param protocol A protocol object, normally representing either the IPv4 or
788
+ * IPv6 version of an internet protocol.
789
+ *
790
+ * @param host A string identifying a location. May be a descriptive name or
791
+ * a numeric address string. If an empty string and the passive flag has been
792
+ * specified, the resolved endpoints are suitable for local service binding.
793
+ * If an empty string and passive is not specified, the resolved endpoints
794
+ * will use the loopback address.
795
+ *
796
+ * @param service A string identifying the requested service. This may be a
797
+ * descriptive name or a numeric string corresponding to a port number. May
798
+ * be an empty string, in which case all resolved endpoints will have a port
799
+ * number of 0.
800
+ *
801
+ * @param handler The handler to be called when the resolve operation
802
+ * completes. Copies will be made of the handler as required. The function
803
+ * signature of the handler must be:
804
+ * @code void handler(
805
+ * const boost::system::error_code& error, // Result of operation.
806
+ * resolver::results_type results // Resolved endpoints as a range.
807
+ * ); @endcode
808
+ * Regardless of whether the asynchronous operation completes immediately or
809
+ * not, the handler will not be invoked from within this function. Invocation
810
+ * of the handler will be performed in a manner equivalent to using
811
+ * boost::asio::io_context::post().
812
+ *
813
+ * A successful resolve operation is guaranteed to pass a non-empty range to
814
+ * the handler.
815
+ *
816
+ * @note On POSIX systems, host names may be locally defined in the file
817
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
818
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
819
+ * resolution is performed using DNS. Operating systems may use additional
820
+ * locations when resolving host names (such as NETBIOS names on Windows).
821
+ *
822
+ * On POSIX systems, service names are typically defined in the file
823
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
824
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
825
+ * may use additional locations when resolving service names.
826
+ */
827
+ template <typename ResolveHandler>
828
+ BOOST_ASIO_INITFN_RESULT_TYPE(ResolveHandler,
829
+ void (boost::system::error_code, results_type))
830
+ async_resolve(const protocol_type& protocol,
831
+ BOOST_ASIO_STRING_VIEW_PARAM host, BOOST_ASIO_STRING_VIEW_PARAM service,
832
+ BOOST_ASIO_MOVE_ARG(ResolveHandler) handler)
833
+ {
834
+ return async_resolve(protocol, host, service, resolver_base::flags(),
167
835
  BOOST_ASIO_MOVE_CAST(ResolveHandler)(handler));
168
836
  }
169
837
 
838
+ /// Asynchronously perform forward resolution of a query to a list of entries.
839
+ /**
840
+ * This function is used to resolve host and service names into a list of
841
+ * endpoint entries.
842
+ *
843
+ * @param protocol A protocol object, normally representing either the IPv4 or
844
+ * IPv6 version of an internet protocol.
845
+ *
846
+ * @param host A string identifying a location. May be a descriptive name or
847
+ * a numeric address string. If an empty string and the passive flag has been
848
+ * specified, the resolved endpoints are suitable for local service binding.
849
+ * If an empty string and passive is not specified, the resolved endpoints
850
+ * will use the loopback address.
851
+ *
852
+ * @param service A string identifying the requested service. This may be a
853
+ * descriptive name or a numeric string corresponding to a port number. May
854
+ * be an empty string, in which case all resolved endpoints will have a port
855
+ * number of 0.
856
+ *
857
+ * @param resolve_flags A set of flags that determine how name resolution
858
+ * should be performed. The default flags are suitable for communication with
859
+ * remote hosts.
860
+ *
861
+ * @param handler The handler to be called when the resolve operation
862
+ * completes. Copies will be made of the handler as required. The function
863
+ * signature of the handler must be:
864
+ * @code void handler(
865
+ * const boost::system::error_code& error, // Result of operation.
866
+ * resolver::results_type results // Resolved endpoints as a range.
867
+ * ); @endcode
868
+ * Regardless of whether the asynchronous operation completes immediately or
869
+ * not, the handler will not be invoked from within this function. Invocation
870
+ * of the handler will be performed in a manner equivalent to using
871
+ * boost::asio::io_context::post().
872
+ *
873
+ * A successful resolve operation is guaranteed to pass a non-empty range to
874
+ * the handler.
875
+ *
876
+ * @note On POSIX systems, host names may be locally defined in the file
877
+ * <tt>/etc/hosts</tt>. On Windows, host names may be defined in the file
878
+ * <tt>c:\\windows\\system32\\drivers\\etc\\hosts</tt>. Remote host name
879
+ * resolution is performed using DNS. Operating systems may use additional
880
+ * locations when resolving host names (such as NETBIOS names on Windows).
881
+ *
882
+ * On POSIX systems, service names are typically defined in the file
883
+ * <tt>/etc/services</tt>. On Windows, service names may be found in the file
884
+ * <tt>c:\\windows\\system32\\drivers\\etc\\services</tt>. Operating systems
885
+ * may use additional locations when resolving service names.
886
+ */
887
+ template <typename ResolveHandler>
888
+ BOOST_ASIO_INITFN_RESULT_TYPE(ResolveHandler,
889
+ void (boost::system::error_code, results_type))
890
+ async_resolve(const protocol_type& protocol,
891
+ BOOST_ASIO_STRING_VIEW_PARAM host, BOOST_ASIO_STRING_VIEW_PARAM service,
892
+ resolver_base::flags resolve_flags,
893
+ BOOST_ASIO_MOVE_ARG(ResolveHandler) handler)
894
+ {
895
+ // If you get an error on the following line it means that your handler does
896
+ // not meet the documented type requirements for a ResolveHandler.
897
+ BOOST_ASIO_RESOLVE_HANDLER_CHECK(
898
+ ResolveHandler, handler, results_type) type_check;
899
+
900
+ basic_resolver_query<protocol_type> q(
901
+ protocol, static_cast<std::string>(host),
902
+ static_cast<std::string>(service), resolve_flags);
903
+
904
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
905
+ return this->get_service().async_resolve(this->get_implementation(), q,
906
+ BOOST_ASIO_MOVE_CAST(ResolveHandler)(handler));
907
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
908
+ boost::asio::async_completion<ResolveHandler,
909
+ void (boost::system::error_code, results_type)> init(handler);
910
+
911
+ this->get_service().async_resolve(
912
+ this->get_implementation(), q, init.completion_handler);
913
+
914
+ return init.result.get();
915
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
916
+ }
917
+
170
918
  /// Perform reverse resolution of an endpoint to a list of entries.
171
919
  /**
172
920
  * This function is used to resolve an endpoint into a list of endpoint
@@ -175,20 +923,17 @@ public:
175
923
  * @param e An endpoint object that determines what endpoints will be
176
924
  * returned.
177
925
  *
178
- * @returns A forward-only iterator that can be used to traverse the list
179
- * of endpoint entries.
926
+ * @returns A range object representing the list of endpoint entries. A
927
+ * successful call to this function is guaranteed to return a non-empty
928
+ * range.
180
929
  *
181
930
  * @throws boost::system::system_error Thrown on failure.
182
- *
183
- * @note A default constructed iterator represents the end of the list.
184
- *
185
- * A successful call to this function is guaranteed to return at least one
186
- * entry.
187
931
  */
188
- iterator resolve(const endpoint_type& e)
932
+ results_type resolve(const endpoint_type& e)
189
933
  {
190
934
  boost::system::error_code ec;
191
- iterator i = this->service.resolve(this->implementation, e, ec);
935
+ results_type i = this->get_service().resolve(
936
+ this->get_implementation(), e, ec);
192
937
  boost::asio::detail::throw_error(ec, "resolve");
193
938
  return i;
194
939
  }
@@ -203,18 +948,13 @@ public:
203
948
  *
204
949
  * @param ec Set to indicate what error occurred, if any.
205
950
  *
206
- * @returns A forward-only iterator that can be used to traverse the list
207
- * of endpoint entries. Returns a default constructed iterator if an error
208
- * occurs.
209
- *
210
- * @note A default constructed iterator represents the end of the list.
211
- *
212
- * A successful call to this function is guaranteed to return at least one
213
- * entry.
951
+ * @returns A range object representing the list of endpoint entries. An
952
+ * empty range is returned if an error occurs. A successful call to this
953
+ * function is guaranteed to return a non-empty range.
214
954
  */
215
- iterator resolve(const endpoint_type& e, boost::system::error_code& ec)
955
+ results_type resolve(const endpoint_type& e, boost::system::error_code& ec)
216
956
  {
217
- return this->service.resolve(this->implementation, e, ec);
957
+ return this->get_service().resolve(this->get_implementation(), e, ec);
218
958
  }
219
959
 
220
960
  /// Asynchronously perform reverse resolution of an endpoint to a list of
@@ -231,33 +971,39 @@ public:
231
971
  * signature of the handler must be:
232
972
  * @code void handler(
233
973
  * const boost::system::error_code& error, // Result of operation.
234
- * resolver::iterator iterator // Forward-only iterator that can
235
- * // be used to traverse the list
236
- * // of endpoint entries.
974
+ * resolver::results_type results // Resolved endpoints as a range.
237
975
  * ); @endcode
238
976
  * Regardless of whether the asynchronous operation completes immediately or
239
977
  * not, the handler will not be invoked from within this function. Invocation
240
978
  * of the handler will be performed in a manner equivalent to using
241
- * boost::asio::io_service::post().
979
+ * boost::asio::io_context::post().
242
980
  *
243
- * @note A default constructed iterator represents the end of the list.
244
- *
245
- * A successful resolve operation is guaranteed to pass at least one entry to
981
+ * A successful resolve operation is guaranteed to pass a non-empty range to
246
982
  * the handler.
247
983
  */
248
984
  template <typename ResolveHandler>
249
985
  BOOST_ASIO_INITFN_RESULT_TYPE(ResolveHandler,
250
- void (boost::system::error_code, iterator))
986
+ void (boost::system::error_code, results_type))
251
987
  async_resolve(const endpoint_type& e,
252
988
  BOOST_ASIO_MOVE_ARG(ResolveHandler) handler)
253
989
  {
254
990
  // If you get an error on the following line it means that your handler does
255
991
  // not meet the documented type requirements for a ResolveHandler.
256
992
  BOOST_ASIO_RESOLVE_HANDLER_CHECK(
257
- ResolveHandler, handler, iterator) type_check;
993
+ ResolveHandler, handler, results_type) type_check;
258
994
 
259
- return this->service.async_resolve(this->implementation, e,
995
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
996
+ return this->get_service().async_resolve(this->get_implementation(), e,
260
997
  BOOST_ASIO_MOVE_CAST(ResolveHandler)(handler));
998
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
999
+ boost::asio::async_completion<ResolveHandler,
1000
+ void (boost::system::error_code, results_type)> init(handler);
1001
+
1002
+ this->get_service().async_resolve(
1003
+ this->get_implementation(), e, init.completion_handler);
1004
+
1005
+ return init.result.get();
1006
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
261
1007
  }
262
1008
  };
263
1009
 
@@ -267,4 +1013,8 @@ public:
267
1013
 
268
1014
  #include <boost/asio/detail/pop_options.hpp>
269
1015
 
1016
+ #if !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1017
+ # undef BOOST_ASIO_SVC_T
1018
+ #endif // !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1019
+
270
1020
  #endif // BOOST_ASIO_IP_BASIC_RESOLVER_HPP