couchbase 3.0.0-universal-darwin-19 → 3.0.1-universal-darwin-19

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 (902) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/CMakeLists.txt +86 -169
  4. data/ext/build_version.hxx.in +3 -2
  5. data/ext/cmake/Backtrace.cmake +35 -0
  6. data/ext/cmake/BuildTracing.cmake +6 -0
  7. data/ext/cmake/Cache.cmake +29 -0
  8. data/ext/cmake/CompilerWarnings.cmake +78 -0
  9. data/ext/cmake/PreventInSourceBuilds.cmake +18 -0
  10. data/ext/cmake/Sanitizers.cmake +66 -0
  11. data/ext/cmake/StandardProjectSettings.cmake +40 -0
  12. data/ext/cmake/StaticAnalyzers.cmake +37 -0
  13. data/ext/cmake/Testing.cmake +52 -0
  14. data/ext/cmake/ThirdPartyDependencies.cmake +20 -0
  15. data/ext/cmake/VersionInfo.cmake +37 -0
  16. data/ext/couchbase/bucket.hxx +37 -12
  17. data/ext/couchbase/capabilities.hxx +117 -0
  18. data/ext/couchbase/cbcrypto/cbcrypto.cc +15 -15
  19. data/ext/couchbase/cluster.hxx +34 -2
  20. data/ext/couchbase/cluster_options.hxx +1 -0
  21. data/ext/couchbase/configuration.hxx +228 -52
  22. data/ext/couchbase/couchbase.cxx +914 -35
  23. data/ext/couchbase/diagnostics.hxx +251 -0
  24. data/ext/couchbase/document_id.hxx +3 -1
  25. data/ext/couchbase/errors.hxx +10 -1
  26. data/ext/couchbase/io/http_command.hxx +11 -7
  27. data/ext/couchbase/io/http_context.hxx +37 -0
  28. data/ext/couchbase/io/http_message.hxx +9 -0
  29. data/ext/couchbase/io/http_parser.hxx +2 -0
  30. data/ext/couchbase/io/http_session.hxx +100 -14
  31. data/ext/couchbase/io/http_session_manager.hxx +65 -5
  32. data/ext/couchbase/io/mcbp_command.hxx +16 -7
  33. data/ext/couchbase/io/mcbp_session.hxx +193 -51
  34. data/ext/couchbase/io/query_cache.hxx +61 -0
  35. data/ext/couchbase/io/retry_context.hxx +1 -2
  36. data/ext/couchbase/io/retry_orchestrator.hxx +16 -0
  37. data/ext/couchbase/io/retry_strategy.hxx +1 -1
  38. data/ext/couchbase/io/streams.hxx +61 -10
  39. data/ext/couchbase/operations.hxx +13 -0
  40. data/ext/couchbase/operations/analytics_dataset_create.hxx +1 -1
  41. data/ext/couchbase/operations/analytics_dataset_drop.hxx +1 -1
  42. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +1 -1
  43. data/ext/couchbase/operations/analytics_dataverse_create.hxx +1 -1
  44. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +1 -1
  45. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +1 -1
  46. data/ext/couchbase/operations/analytics_index_create.hxx +1 -1
  47. data/ext/couchbase/operations/analytics_index_drop.hxx +1 -1
  48. data/ext/couchbase/operations/analytics_index_get_all.hxx +1 -1
  49. data/ext/couchbase/operations/analytics_link_connect.hxx +1 -1
  50. data/ext/couchbase/operations/analytics_link_disconnect.hxx +1 -1
  51. data/ext/couchbase/operations/bucket_create.hxx +11 -5
  52. data/ext/couchbase/operations/bucket_drop.hxx +1 -1
  53. data/ext/couchbase/operations/bucket_flush.hxx +1 -1
  54. data/ext/couchbase/operations/bucket_get.hxx +1 -1
  55. data/ext/couchbase/operations/bucket_get_all.hxx +1 -1
  56. data/ext/couchbase/operations/bucket_settings.hxx +43 -4
  57. data/ext/couchbase/operations/bucket_update.hxx +11 -5
  58. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +1 -1
  59. data/ext/couchbase/operations/collection_create.hxx +3 -1
  60. data/ext/couchbase/operations/collection_drop.hxx +1 -1
  61. data/ext/couchbase/operations/collections_manifest_get.hxx +70 -0
  62. data/ext/couchbase/operations/document_analytics.hxx +6 -1
  63. data/ext/couchbase/operations/document_get_projected.hxx +1 -1
  64. data/ext/couchbase/operations/document_query.hxx +85 -8
  65. data/ext/couchbase/operations/document_search.hxx +14 -4
  66. data/ext/couchbase/operations/document_view.hxx +1 -1
  67. data/ext/couchbase/operations/group_drop.hxx +71 -0
  68. data/ext/couchbase/operations/group_get.hxx +75 -0
  69. data/ext/couchbase/operations/group_get_all.hxx +70 -0
  70. data/ext/couchbase/operations/group_upsert.hxx +118 -0
  71. data/ext/couchbase/operations/query_index_build_deferred.hxx +1 -1
  72. data/ext/couchbase/operations/query_index_create.hxx +1 -1
  73. data/ext/couchbase/operations/query_index_drop.hxx +1 -1
  74. data/ext/couchbase/operations/query_index_get_all.hxx +3 -2
  75. data/ext/couchbase/operations/rbac.hxx +276 -0
  76. data/ext/couchbase/operations/role_get_all.hxx +70 -0
  77. data/ext/couchbase/operations/scope_create.hxx +6 -2
  78. data/ext/couchbase/operations/scope_drop.hxx +1 -1
  79. data/ext/couchbase/operations/scope_get_all.hxx +1 -1
  80. data/ext/couchbase/operations/search_get_stats.hxx +59 -0
  81. data/ext/couchbase/operations/search_index_analyze_document.hxx +1 -1
  82. data/ext/couchbase/operations/search_index_control_ingest.hxx +1 -1
  83. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +1 -1
  84. data/ext/couchbase/operations/search_index_control_query.hxx +1 -1
  85. data/ext/couchbase/operations/search_index_drop.hxx +1 -1
  86. data/ext/couchbase/operations/search_index_get.hxx +1 -1
  87. data/ext/couchbase/operations/search_index_get_all.hxx +1 -1
  88. data/ext/couchbase/operations/search_index_get_documents_count.hxx +24 -16
  89. data/ext/couchbase/operations/search_index_get_stats.hxx +81 -0
  90. data/ext/couchbase/operations/search_index_upsert.hxx +1 -1
  91. data/ext/couchbase/operations/user_drop.hxx +72 -0
  92. data/ext/couchbase/operations/user_get.hxx +76 -0
  93. data/ext/couchbase/operations/user_get_all.hxx +71 -0
  94. data/ext/couchbase/operations/user_upsert.hxx +125 -0
  95. data/ext/couchbase/operations/view_index_drop.hxx +1 -1
  96. data/ext/couchbase/operations/view_index_get.hxx +1 -1
  97. data/ext/couchbase/operations/view_index_get_all.hxx +1 -1
  98. data/ext/couchbase/operations/view_index_upsert.hxx +1 -1
  99. data/ext/couchbase/origin.hxx +4 -4
  100. data/ext/couchbase/platform/terminate_handler.cc +5 -4
  101. data/ext/couchbase/protocol/client_opcode.hxx +38 -38
  102. data/ext/couchbase/protocol/client_response.hxx +2 -2
  103. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +6 -3
  104. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +3 -1
  105. data/ext/couchbase/protocol/magic.hxx +6 -6
  106. data/ext/couchbase/protocol/server_opcode.hxx +2 -2
  107. data/ext/couchbase/protocol/status.hxx +57 -57
  108. data/ext/couchbase/service_type.hxx +1 -1
  109. data/ext/couchbase/utils/connection_string.hxx +12 -3
  110. data/ext/couchbase/version.hxx +1 -1
  111. data/ext/extconf.rb +21 -9
  112. data/ext/test/test_helper.hxx +141 -0
  113. data/ext/test/test_helper_native.hxx +59 -0
  114. data/ext/test/test_helper_ruby.hxx +72 -0
  115. data/ext/test/test_native_diagnostics.cxx +385 -0
  116. data/ext/test/test_native_trivial_crud.cxx +83 -0
  117. data/ext/test/test_ruby_trivial_crud.cxx +35 -0
  118. data/ext/test/test_ruby_trivial_query.cxx +34 -0
  119. data/ext/third_party/asio/asio/include/asio.hpp +35 -0
  120. data/ext/third_party/asio/asio/include/asio/any_io_executor.hpp +71 -0
  121. data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +1 -7
  122. data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +36 -19
  123. data/ext/third_party/asio/asio/include/asio/async_result.hpp +1 -8
  124. data/ext/third_party/asio/asio/include/asio/awaitable.hpp +14 -4
  125. data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +12 -7
  126. data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +4 -4
  127. data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +11 -7
  128. data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +9 -4
  129. data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +6 -6
  130. data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +4 -4
  131. data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +5 -5
  132. data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +13 -7
  133. data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +7 -3
  134. data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +52 -4
  135. data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +10 -15
  136. data/ext/third_party/asio/asio/include/asio/buffer.hpp +6 -4
  137. data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +380 -9
  138. data/ext/third_party/asio/asio/include/asio/defer.hpp +4 -1
  139. data/ext/third_party/asio/asio/include/asio/detached.hpp +50 -0
  140. data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +19 -0
  141. data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +144 -26
  142. data/ext/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +107 -0
  143. data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +106 -0
  144. data/ext/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +88 -0
  145. data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +10 -5
  146. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +8 -0
  147. data/ext/third_party/asio/asio/include/asio/detail/config.hpp +360 -37
  148. data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +17 -2
  149. data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +24 -6
  150. data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +32 -14
  151. data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +32 -14
  152. data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +133 -34
  153. data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +42 -0
  154. data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +23 -0
  155. data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +26 -0
  156. data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +370 -45
  157. data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +208 -74
  158. data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +39 -1
  159. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +12 -15
  160. data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +37 -0
  161. data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +2 -1
  162. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +661 -274
  163. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +210 -4
  164. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +8 -9
  165. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +5 -4
  166. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +15 -6
  167. data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +32 -50
  168. data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +3 -0
  169. data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +6 -0
  170. data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +1 -1
  171. data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +13 -0
  172. data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +1 -1
  173. data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +38 -13
  174. data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +12 -6
  175. data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +2 -3
  176. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +36 -24
  177. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +17 -10
  178. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +38 -16
  179. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +36 -14
  180. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +21 -11
  181. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +43 -17
  182. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +39 -17
  183. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +44 -21
  184. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +41 -18
  185. data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +12 -6
  186. data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +3 -1
  187. data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +10 -8
  188. data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +11 -9
  189. data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +8 -0
  190. data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +7 -5
  191. data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +46 -0
  192. data/ext/third_party/asio/asio/include/asio/detail/source_location.hpp +45 -0
  193. data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +12 -0
  194. data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +25 -1
  195. data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +4 -1
  196. data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +58 -0
  197. data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +59 -0
  198. data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +144 -1
  199. data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +9 -6
  200. data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +13 -0
  201. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +9 -5
  202. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +9 -5
  203. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +5 -1
  204. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +10 -6
  205. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +9 -5
  206. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +18 -6
  207. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +15 -11
  208. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +10 -5
  209. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +8 -4
  210. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +8 -4
  211. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +8 -4
  212. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +8 -4
  213. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +10 -5
  214. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +8 -4
  215. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +8 -4
  216. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +8 -4
  217. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +8 -4
  218. data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +81 -6
  219. data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +45 -9
  220. data/ext/third_party/asio/asio/include/asio/dispatch.hpp +4 -1
  221. data/ext/third_party/asio/asio/include/asio/execution.hpp +48 -0
  222. data/ext/third_party/asio/asio/include/asio/execution/allocator.hpp +249 -0
  223. data/ext/third_party/asio/asio/include/asio/execution/any_executor.hpp +2264 -0
  224. data/ext/third_party/asio/asio/include/asio/execution/bad_executor.hpp +47 -0
  225. data/ext/third_party/asio/asio/include/asio/execution/blocking.hpp +1351 -0
  226. data/ext/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +1064 -0
  227. data/ext/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +390 -0
  228. data/ext/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +1018 -0
  229. data/ext/third_party/asio/asio/include/asio/execution/connect.hpp +486 -0
  230. data/ext/third_party/asio/asio/include/asio/execution/context.hpp +185 -0
  231. data/ext/third_party/asio/asio/include/asio/execution/context_as.hpp +201 -0
  232. data/ext/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +152 -0
  233. data/ext/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +105 -0
  234. data/ext/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +128 -0
  235. data/ext/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +261 -0
  236. data/ext/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +233 -0
  237. data/ext/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +90 -0
  238. data/ext/third_party/asio/asio/include/asio/execution/execute.hpp +264 -0
  239. data/ext/third_party/asio/asio/include/asio/execution/executor.hpp +238 -0
  240. data/ext/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +40 -0
  241. data/ext/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +36 -0
  242. data/ext/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +71 -0
  243. data/ext/third_party/asio/asio/include/asio/execution/mapping.hpp +917 -0
  244. data/ext/third_party/asio/asio/include/asio/execution/occupancy.hpp +178 -0
  245. data/ext/third_party/asio/asio/include/asio/execution/operation_state.hpp +94 -0
  246. data/ext/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +721 -0
  247. data/ext/third_party/asio/asio/include/asio/execution/prefer_only.hpp +327 -0
  248. data/ext/third_party/asio/asio/include/asio/execution/receiver.hpp +280 -0
  249. data/ext/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +48 -0
  250. data/ext/third_party/asio/asio/include/asio/execution/relationship.hpp +720 -0
  251. data/ext/third_party/asio/asio/include/asio/execution/schedule.hpp +290 -0
  252. data/ext/third_party/asio/asio/include/asio/execution/scheduler.hpp +86 -0
  253. data/ext/third_party/asio/asio/include/asio/execution/sender.hpp +311 -0
  254. data/ext/third_party/asio/asio/include/asio/execution/set_done.hpp +253 -0
  255. data/ext/third_party/asio/asio/include/asio/execution/set_error.hpp +253 -0
  256. data/ext/third_party/asio/asio/include/asio/execution/set_value.hpp +486 -0
  257. data/ext/third_party/asio/asio/include/asio/execution/start.hpp +250 -0
  258. data/ext/third_party/asio/asio/include/asio/execution/submit.hpp +450 -0
  259. data/ext/third_party/asio/asio/include/asio/executor.hpp +7 -1
  260. data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +126 -9
  261. data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +28 -5
  262. data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +29 -3
  263. data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +14 -0
  264. data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +44 -8
  265. data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +44 -8
  266. data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +145 -7
  267. data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +124 -22
  268. data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +52 -8
  269. data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +147 -12
  270. data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +142 -12
  271. data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +15 -101
  272. data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +5 -0
  273. data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +13 -4
  274. data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +144 -57
  275. data/ext/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +49 -0
  276. data/ext/third_party/asio/asio/include/asio/impl/post.hpp +147 -12
  277. data/ext/third_party/asio/asio/include/asio/impl/read.hpp +85 -18
  278. data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +59 -14
  279. data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +241 -56
  280. data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +22 -4
  281. data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +58 -22
  282. data/ext/third_party/asio/asio/include/asio/impl/src.hpp +3 -0
  283. data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +16 -4
  284. data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +113 -12
  285. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +260 -37
  286. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +61 -7
  287. data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +5 -2
  288. data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +147 -6
  289. data/ext/third_party/asio/asio/include/asio/impl/write.hpp +75 -14
  290. data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +53 -11
  291. data/ext/third_party/asio/asio/include/asio/io_context.hpp +706 -48
  292. data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +3 -1
  293. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +4 -4
  294. data/ext/third_party/asio/asio/include/asio/is_applicable_property.hpp +61 -0
  295. data/ext/third_party/asio/asio/include/asio/multiple_exceptions.hpp +58 -0
  296. data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +4 -4
  297. data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +5 -5
  298. data/ext/third_party/asio/asio/include/asio/post.hpp +4 -1
  299. data/ext/third_party/asio/asio/include/asio/prefer.hpp +656 -0
  300. data/ext/third_party/asio/asio/include/asio/query.hpp +296 -0
  301. data/ext/third_party/asio/asio/include/asio/read_until.hpp +6 -6
  302. data/ext/third_party/asio/asio/include/asio/require.hpp +524 -0
  303. data/ext/third_party/asio/asio/include/asio/require_concept.hpp +310 -0
  304. data/ext/third_party/asio/asio/include/asio/spawn.hpp +12 -4
  305. data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +5 -0
  306. data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +5 -0
  307. data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +5 -0
  308. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +16 -3
  309. data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +38 -4
  310. data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +5 -0
  311. data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +5 -0
  312. data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +36 -2
  313. data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +10 -1
  314. data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +15 -0
  315. data/ext/third_party/asio/asio/include/asio/static_thread_pool.hpp +31 -0
  316. data/ext/third_party/asio/asio/include/asio/strand.hpp +232 -9
  317. data/ext/third_party/asio/asio/include/asio/system_context.hpp +12 -3
  318. data/ext/third_party/asio/asio/include/asio/system_executor.hpp +557 -24
  319. data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +913 -37
  320. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +114 -0
  321. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +114 -0
  322. data/ext/third_party/asio/asio/include/asio/traits/connect_free.hpp +112 -0
  323. data/ext/third_party/asio/asio/include/asio/traits/connect_member.hpp +112 -0
  324. data/ext/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +100 -0
  325. data/ext/third_party/asio/asio/include/asio/traits/execute_free.hpp +108 -0
  326. data/ext/third_party/asio/asio/include/asio/traits/execute_member.hpp +108 -0
  327. data/ext/third_party/asio/asio/include/asio/traits/prefer_free.hpp +108 -0
  328. data/ext/third_party/asio/asio/include/asio/traits/prefer_member.hpp +108 -0
  329. data/ext/third_party/asio/asio/include/asio/traits/query_free.hpp +108 -0
  330. data/ext/third_party/asio/asio/include/asio/traits/query_member.hpp +108 -0
  331. data/ext/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +108 -0
  332. data/ext/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +108 -0
  333. data/ext/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +108 -0
  334. data/ext/third_party/asio/asio/include/asio/traits/require_free.hpp +108 -0
  335. data/ext/third_party/asio/asio/include/asio/traits/require_member.hpp +108 -0
  336. data/ext/third_party/asio/asio/include/asio/traits/schedule_free.hpp +108 -0
  337. data/ext/third_party/asio/asio/include/asio/traits/schedule_member.hpp +108 -0
  338. data/ext/third_party/asio/asio/include/asio/traits/set_done_free.hpp +108 -0
  339. data/ext/third_party/asio/asio/include/asio/traits/set_done_member.hpp +108 -0
  340. data/ext/third_party/asio/asio/include/asio/traits/set_error_free.hpp +112 -0
  341. data/ext/third_party/asio/asio/include/asio/traits/set_error_member.hpp +112 -0
  342. data/ext/third_party/asio/asio/include/asio/traits/set_value_free.hpp +234 -0
  343. data/ext/third_party/asio/asio/include/asio/traits/set_value_member.hpp +234 -0
  344. data/ext/third_party/asio/asio/include/asio/traits/start_free.hpp +108 -0
  345. data/ext/third_party/asio/asio/include/asio/traits/start_member.hpp +108 -0
  346. data/ext/third_party/asio/asio/include/asio/traits/static_query.hpp +108 -0
  347. data/ext/third_party/asio/asio/include/asio/traits/static_require.hpp +123 -0
  348. data/ext/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +123 -0
  349. data/ext/third_party/asio/asio/include/asio/traits/submit_free.hpp +112 -0
  350. data/ext/third_party/asio/asio/include/asio/traits/submit_member.hpp +112 -0
  351. data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +1 -0
  352. data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +67 -8
  353. data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +63 -4
  354. data/ext/third_party/asio/asio/include/asio/version.hpp +1 -1
  355. data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +4 -4
  356. data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +2 -2
  357. data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +5 -5
  358. data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +5 -5
  359. data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +4 -2
  360. data/ext/third_party/gsl/CMakeLists.txt +13 -5
  361. data/ext/third_party/gsl/include/gsl/gsl_assert +1 -1
  362. data/ext/third_party/gsl/include/gsl/gsl_byte +3 -3
  363. data/ext/third_party/gsl/include/gsl/gsl_narrow +52 -0
  364. data/ext/third_party/gsl/include/gsl/gsl_util +8 -50
  365. data/ext/third_party/gsl/include/gsl/multi_span +0 -10
  366. data/ext/third_party/gsl/include/gsl/pointers +14 -28
  367. data/ext/third_party/gsl/include/gsl/span +98 -46
  368. data/ext/third_party/gsl/include/gsl/string_span +37 -47
  369. data/ext/third_party/http_parser/http_parser.c +17 -10
  370. data/ext/third_party/http_parser/http_parser.h +4 -2
  371. data/ext/third_party/json/include/tao/json/basic_value.hpp +3 -2
  372. data/ext/third_party/json/include/tao/json/binary.hpp +4 -4
  373. data/ext/third_party/json/include/tao/json/binary_view.hpp +2 -2
  374. data/ext/third_party/json/include/tao/json/binding.hpp +2 -2
  375. data/ext/third_party/json/include/tao/json/binding/factory.hpp +8 -7
  376. data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +2 -1
  377. data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +6 -5
  378. data/ext/third_party/json/include/tao/json/binding/versions.hpp +3 -1
  379. data/ext/third_party/json/include/tao/json/cbor.hpp +1 -0
  380. data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +7 -7
  381. data/ext/third_party/json/include/tao/json/cbor/events/from_binary.hpp +43 -0
  382. data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +4 -4
  383. data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +3 -3
  384. data/ext/third_party/json/include/tao/json/cbor/from_binary.hpp +32 -0
  385. data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +5 -5
  386. data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +2 -1
  387. data/ext/third_party/json/include/tao/json/consume_file.hpp +7 -7
  388. data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +13 -6
  389. data/ext/third_party/json/include/tao/json/contrib/position.hpp +15 -15
  390. data/ext/third_party/json/include/tao/json/contrib/reference.hpp +5 -7
  391. data/ext/third_party/json/include/tao/json/contrib/schema.hpp +58 -35
  392. data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +12 -4
  393. data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +12 -4
  394. data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +1 -1
  395. data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +2 -2
  396. data/ext/third_party/json/include/tao/json/events/compare.hpp +2 -12
  397. data/ext/third_party/json/include/tao/json/events/from_file.hpp +4 -4
  398. data/ext/third_party/json/include/tao/json/events/from_string.hpp +2 -2
  399. data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +1 -1
  400. data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +3 -3
  401. data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +1 -1
  402. data/ext/third_party/json/include/tao/json/events/tee.hpp +2 -2
  403. data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +1 -1
  404. data/ext/third_party/json/include/tao/json/events/to_stream.hpp +1 -1
  405. data/ext/third_party/json/include/tao/json/events/transformer.hpp +3 -3
  406. data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +3 -3
  407. data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +6 -0
  408. data/ext/third_party/json/include/tao/json/external/pegtl.hpp +4 -13
  409. data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +3 -5
  410. data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +5 -18
  411. data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +3 -3
  412. data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +2 -2
  413. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +6 -6
  414. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +5 -5
  415. data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +2 -2
  416. data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +6 -6
  417. data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +5 -5
  418. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +52 -52
  419. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze.hpp +176 -0
  420. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze_traits.hpp +275 -0
  421. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/control_action.hpp +77 -0
  422. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/coverage.hpp +151 -0
  423. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/forward.hpp +16 -0
  424. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +37 -18
  425. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +20 -22
  426. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +6 -10
  427. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +6 -10
  428. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +2 -4
  429. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +11 -10
  430. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +116 -131
  431. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian.hpp +4 -4
  432. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian_gcc.hpp +2 -2
  433. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian_win.hpp +2 -2
  434. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_mask_uint.hpp +9 -9
  435. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_mask_uint8.hpp +9 -10
  436. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_uint.hpp +9 -9
  437. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_uint8.hpp +9 -10
  438. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_utf16.hpp +10 -10
  439. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_utf32.hpp +9 -9
  440. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/read_uint.hpp +3 -3
  441. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/set_stack_guard.hpp +52 -0
  442. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +80 -201
  443. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +11 -10
  444. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print.hpp +75 -0
  445. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print_coverage.hpp +53 -0
  446. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +45 -36
  447. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +33 -50
  448. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_last_states.hpp +117 -0
  449. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +43 -11
  450. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +1 -2
  451. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/shuffle_states.hpp +193 -0
  452. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/state_control.hpp +118 -0
  453. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/trace.hpp +227 -0
  454. data/ext/third_party/json/include/tao/json/external/pegtl/{uint16.hpp → contrib/uint16.hpp} +5 -5
  455. data/ext/third_party/json/include/tao/json/external/pegtl/{uint32.hpp → contrib/uint32.hpp} +5 -5
  456. data/ext/third_party/json/include/tao/json/external/pegtl/{uint64.hpp → contrib/uint64.hpp} +5 -5
  457. data/ext/third_party/json/include/tao/json/external/pegtl/{uint8.hpp → contrib/uint8.hpp} +5 -5
  458. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +14 -14
  459. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +1 -1
  460. data/ext/third_party/json/include/tao/json/external/pegtl/{utf16.hpp → contrib/utf16.hpp} +5 -5
  461. data/ext/third_party/json/include/tao/json/external/pegtl/{utf32.hpp → contrib/utf32.hpp} +5 -5
  462. data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +2 -3
  463. data/ext/third_party/json/include/tao/json/external/pegtl/{internal/demangle.hpp → demangle.hpp} +12 -14
  464. data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +2 -2
  465. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +2 -2
  466. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +2 -2
  467. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +2 -2
  468. data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +2 -2
  469. data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +1 -1
  470. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +19 -9
  471. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +7 -8
  472. data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +14 -14
  473. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +9 -9
  474. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +8 -7
  475. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +4 -4
  476. data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +17 -15
  477. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +7 -6
  478. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +8 -8
  479. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +4 -4
  480. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +3 -3
  481. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +17 -10
  482. data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +19 -9
  483. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +2 -2
  484. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +2 -2
  485. data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +2 -2
  486. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +1 -1
  487. data/ext/third_party/json/include/tao/json/external/pegtl/internal/{always_false.hpp → dependent_false.hpp} +3 -8
  488. data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +19 -9
  489. data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +7 -6
  490. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +19 -9
  491. data/ext/third_party/json/include/tao/json/external/pegtl/internal/{skip_control.hpp → enable_control.hpp} +5 -5
  492. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +7 -6
  493. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +8 -7
  494. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +8 -7
  495. data/ext/third_party/json/include/tao/json/external/pegtl/internal/failure.hpp +32 -0
  496. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +61 -10
  497. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +27 -33
  498. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +29 -26
  499. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +3 -7
  500. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +3 -7
  501. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +4 -20
  502. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_unwind.hpp +21 -0
  503. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +8 -7
  504. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +8 -9
  505. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +2 -0
  506. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +7 -7
  507. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +1 -2
  508. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +11 -11
  509. data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +7 -10
  510. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +2 -2
  511. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +2 -2
  512. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +4 -2
  513. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +1 -1
  514. data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +3 -5
  515. data/ext/third_party/json/include/tao/json/external/pegtl/internal/minus.hpp +21 -0
  516. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +5 -2
  517. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +5 -2
  518. data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +16 -24
  519. data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +17 -15
  520. data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +23 -12
  521. data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +16 -16
  522. data/ext/third_party/json/include/tao/json/external/pegtl/internal/path_to_string.hpp +26 -0
  523. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +5 -5
  524. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +12 -13
  525. data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +18 -11
  526. data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +8 -17
  527. data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +22 -17
  528. data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +28 -18
  529. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +12 -9
  530. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +26 -25
  531. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +23 -21
  532. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +24 -9
  533. data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +10 -10
  534. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +4 -4
  535. data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +18 -33
  536. data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +24 -17
  537. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +13 -8
  538. data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +21 -11
  539. data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +11 -11
  540. data/ext/third_party/json/include/tao/json/external/pegtl/internal/success.hpp +32 -0
  541. data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +16 -16
  542. data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +18 -14
  543. data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +2 -3
  544. data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +125 -29
  545. data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +32 -48
  546. data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +16 -16
  547. data/ext/third_party/json/include/tao/json/external/pegtl/must_if.hpp +64 -0
  548. data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +25 -25
  549. data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +1 -2
  550. data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +6 -8
  551. data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +80 -35
  552. data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +18 -10
  553. data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +18 -38
  554. data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +6 -5
  555. data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +3 -5
  556. data/ext/third_party/json/include/tao/json/external/pegtl/type_list.hpp +46 -0
  557. data/ext/third_party/json/include/tao/json/external/pegtl/visit.hpp +66 -0
  558. data/ext/third_party/json/include/tao/json/from_file.hpp +5 -5
  559. data/ext/third_party/json/include/tao/json/internal/action.hpp +3 -3
  560. data/ext/third_party/json/include/tao/json/internal/dependent_false.hpp +14 -0
  561. data/ext/third_party/json/include/tao/json/internal/errors.hpp +17 -17
  562. data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -2
  563. data/ext/third_party/json/include/tao/json/internal/grammar.hpp +17 -17
  564. data/ext/third_party/json/include/tao/json/internal/pair.hpp +1 -1
  565. data/ext/third_party/json/include/tao/json/internal/sha256.hpp +8 -8
  566. data/ext/third_party/json/include/tao/json/internal/single.hpp +1 -1
  567. data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +12 -29
  568. data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +7 -7
  569. data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +4 -4
  570. data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +2 -2
  571. data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +5 -5
  572. data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +6 -6
  573. data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +2 -2
  574. data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +43 -43
  575. data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +36 -36
  576. data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +10 -11
  577. data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +2 -2
  578. data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +1 -3
  579. data/ext/third_party/json/include/tao/json/message_extension.hpp +2 -2
  580. data/ext/third_party/json/include/tao/json/msgpack.hpp +1 -0
  581. data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +7 -7
  582. data/ext/third_party/json/include/tao/json/msgpack/events/from_binary.hpp +43 -0
  583. data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +4 -4
  584. data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +4 -4
  585. data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +4 -4
  586. data/ext/third_party/json/include/tao/json/msgpack/from_binary.hpp +32 -0
  587. data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +5 -5
  588. data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +2 -1
  589. data/ext/third_party/json/include/tao/json/operators.hpp +0 -4
  590. data/ext/third_party/json/include/tao/json/parts_parser.hpp +3 -7
  591. data/ext/third_party/json/include/tao/json/self_contained.hpp +6 -18
  592. data/ext/third_party/json/include/tao/json/span.hpp +94 -166
  593. data/ext/third_party/json/include/tao/json/ubjson.hpp +1 -0
  594. data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +7 -7
  595. data/ext/third_party/json/include/tao/json/ubjson/events/from_binary.hpp +43 -0
  596. data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +4 -4
  597. data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +3 -3
  598. data/ext/third_party/json/include/tao/json/ubjson/from_binary.hpp +32 -0
  599. data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +5 -5
  600. data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +5 -3
  601. data/ext/third_party/json/include/tao/json/utf8.hpp +1 -1
  602. data/ext/third_party/snappy/snappy.cc +6 -2
  603. data/ext/third_party/spdlog/CMakeLists.txt +24 -57
  604. data/ext/third_party/spdlog/cmake/version.rc.in +1 -1
  605. data/ext/third_party/spdlog/include/spdlog/async.h +3 -3
  606. data/ext/third_party/spdlog/include/spdlog/cfg/argv.h +3 -4
  607. data/ext/third_party/spdlog/include/spdlog/cfg/env.h +6 -4
  608. data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +22 -6
  609. data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +3 -2
  610. data/ext/third_party/spdlog/include/spdlog/common.h +1 -2
  611. data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +9 -1
  612. data/ext/third_party/spdlog/include/spdlog/details/os.h +1 -1
  613. data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +21 -7
  614. data/ext/third_party/spdlog/include/spdlog/details/registry.h +6 -3
  615. data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +1 -1
  616. data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +1 -1
  617. data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +8 -7
  618. data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +2 -2
  619. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +66 -62
  620. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +35 -37
  621. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +173 -103
  622. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +538 -445
  623. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +114 -64
  624. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +1152 -1071
  625. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +16 -16
  626. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/os.h +450 -0
  627. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +37 -13
  628. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +1 -1
  629. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +93 -63
  630. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +35 -36
  631. data/ext/third_party/spdlog/include/spdlog/fmt/chrono.h +20 -0
  632. data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +2 -0
  633. data/ext/third_party/spdlog/include/spdlog/logger-inl.h +5 -1
  634. data/ext/third_party/spdlog/include/spdlog/logger.h +50 -76
  635. data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +23 -8
  636. data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +3 -3
  637. data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +1 -1
  638. data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +5 -5
  639. data/ext/third_party/spdlog/include/spdlog/sinks/ringbuffer_sink.h +6 -4
  640. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +32 -3
  641. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +7 -0
  642. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +4 -14
  643. data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +11 -1
  644. data/ext/third_party/spdlog/include/spdlog/spdlog.h +23 -68
  645. data/ext/third_party/spdlog/include/spdlog/stopwatch.h +61 -0
  646. data/ext/third_party/spdlog/include/spdlog/version.h +2 -2
  647. data/ext/third_party/spdlog/src/fmt.cpp +21 -147
  648. data/lib/couchbase/cluster.rb +111 -1
  649. data/lib/couchbase/collection_options.rb +18 -1
  650. data/lib/couchbase/errors.rb +3 -0
  651. data/lib/couchbase/libcouchbase.bundle +0 -0
  652. data/lib/couchbase/management/bucket_manager.rb +36 -3
  653. data/lib/couchbase/management/search_index_manager.rb +42 -1
  654. data/lib/couchbase/management/user_manager.rb +155 -48
  655. data/lib/couchbase/query_options.rb +7 -0
  656. data/lib/couchbase/scope.rb +1 -0
  657. data/lib/couchbase/search_options.rb +69 -1
  658. data/lib/couchbase/version.rb +1 -1
  659. metadata +171 -267
  660. data/.rubocop.yml +0 -227
  661. data/.rubocop_todo.yml +0 -47
  662. data/.yardopts +0 -1
  663. data/CONTRIBUTING.md +0 -110
  664. data/Gemfile +0 -37
  665. data/Rakefile +0 -51
  666. data/couchbase.gemspec +0 -79
  667. data/examples/analytics.rb +0 -236
  668. data/examples/auth.rb +0 -33
  669. data/examples/crud.rb +0 -34
  670. data/examples/managing_analytics_indexes.rb +0 -86
  671. data/examples/managing_buckets.rb +0 -61
  672. data/examples/managing_collections.rb +0 -71
  673. data/examples/managing_query_indexes.rb +0 -83
  674. data/examples/managing_search_indexes.rb +0 -77
  675. data/examples/managing_view_indexes.rb +0 -68
  676. data/examples/query.rb +0 -32
  677. data/examples/query_with_consistency.rb +0 -86
  678. data/examples/search.rb +0 -202
  679. data/examples/search_with_consistency.rb +0 -97
  680. data/examples/subdocument.rb +0 -63
  681. data/examples/view.rb +0 -59
  682. data/ext/.clang-format +0 -15
  683. data/ext/.clang-tidy +0 -22
  684. data/ext/.cmake-format.yaml +0 -8
  685. data/ext/.gitignore +0 -2
  686. data/ext/.idea/.name +0 -1
  687. data/ext/.idea/dictionaries/couchbase_terms.xml +0 -14
  688. data/ext/.idea/ext.iml +0 -2
  689. data/ext/.idea/misc.xml +0 -16
  690. data/ext/.idea/modules.xml +0 -8
  691. data/ext/.idea/vcs.xml +0 -12
  692. data/ext/test/main.cxx +0 -184
  693. data/ext/third_party/asio/.appveyor.yml +0 -107
  694. data/ext/third_party/asio/.cirrus.yml +0 -16
  695. data/ext/third_party/asio/.gitignore +0 -3
  696. data/ext/third_party/asio/.travis.yml +0 -323
  697. data/ext/third_party/asio/asio/.gitignore +0 -23
  698. data/ext/third_party/asio/asio/COPYING +0 -4
  699. data/ext/third_party/asio/asio/INSTALL +0 -5
  700. data/ext/third_party/asio/asio/LICENSE_1_0.txt +0 -23
  701. data/ext/third_party/asio/asio/Makefile.am +0 -19
  702. data/ext/third_party/asio/asio/README +0 -4
  703. data/ext/third_party/asio/asio/asio.manifest +0 -4865
  704. data/ext/third_party/asio/asio/autogen.sh +0 -55
  705. data/ext/third_party/asio/asio/boost_asio.manifest +0 -5193
  706. data/ext/third_party/asio/asio/boostify.pl +0 -603
  707. data/ext/third_party/asio/asio/configure.ac +0 -182
  708. data/ext/third_party/asio/asio/include/.gitignore +0 -2
  709. data/ext/third_party/asio/asio/include/Makefile.am +0 -484
  710. data/ext/third_party/asio/asio/include/asio/detail/io_object_executor.hpp +0 -167
  711. data/ext/third_party/asio/asio/include/asio/impl/src.cpp +0 -25
  712. data/ext/third_party/asio/asio/release.pl +0 -440
  713. data/ext/third_party/asio/asio/src/.gitignore +0 -11
  714. data/ext/third_party/asio/asio/src/Makefile.am +0 -23
  715. data/ext/third_party/asio/asio/src/Makefile.mgw +0 -204
  716. data/ext/third_party/asio/asio/src/Makefile.msc +0 -497
  717. data/ext/third_party/asio/asio/src/asio.cpp +0 -11
  718. data/ext/third_party/asio/asio/src/asio_ssl.cpp +0 -11
  719. data/ext/third_party/asio/asio/src/doc/.gitignore +0 -5
  720. data/ext/third_party/asio/asio/src/doc/Jamfile.v2 +0 -62
  721. data/ext/third_party/asio/asio/src/doc/asio.png +0 -0
  722. data/ext/third_party/asio/asio/src/doc/asio.qbk +0 -127
  723. data/ext/third_party/asio/asio/src/doc/asioref.sty +0 -90
  724. data/ext/third_party/asio/asio/src/doc/asioref.xsl +0 -94
  725. data/ext/third_party/asio/asio/src/doc/boost_bind_dox.txt +0 -5
  726. data/ext/third_party/asio/asio/src/doc/doxy2qbk.pl +0 -22
  727. data/ext/third_party/asio/asio/src/doc/examples.qbk +0 -564
  728. data/ext/third_party/asio/asio/src/doc/history.qbk +0 -1794
  729. data/ext/third_party/asio/asio/src/doc/index.xml +0 -13
  730. data/ext/third_party/asio/asio/src/doc/makepdf.pl +0 -26
  731. data/ext/third_party/asio/asio/src/doc/net_ts.qbk +0 -479
  732. data/ext/third_party/asio/asio/src/doc/noncopyable_dox.txt +0 -3
  733. data/ext/third_party/asio/asio/src/doc/overview.qbk +0 -103
  734. data/ext/third_party/asio/asio/src/doc/overview/allocation.qbk +0 -89
  735. data/ext/third_party/asio/asio/src/doc/overview/async.qbk +0 -185
  736. data/ext/third_party/asio/asio/src/doc/overview/async_op1.dot +0 -78
  737. data/ext/third_party/asio/asio/src/doc/overview/async_op1.png +0 -0
  738. data/ext/third_party/asio/asio/src/doc/overview/async_op2.dot +0 -78
  739. data/ext/third_party/asio/asio/src/doc/overview/async_op2.png +0 -0
  740. data/ext/third_party/asio/asio/src/doc/overview/basics.qbk +0 -106
  741. data/ext/third_party/asio/asio/src/doc/overview/bsd_sockets.qbk +0 -270
  742. data/ext/third_party/asio/asio/src/doc/overview/buffers.qbk +0 -163
  743. data/ext/third_party/asio/asio/src/doc/overview/concurrency_hint.qbk +0 -88
  744. data/ext/third_party/asio/asio/src/doc/overview/coroutine.qbk +0 -51
  745. data/ext/third_party/asio/asio/src/doc/overview/coroutines_ts.qbk +0 -97
  746. data/ext/third_party/asio/asio/src/doc/overview/cpp2011.qbk +0 -271
  747. data/ext/third_party/asio/asio/src/doc/overview/handler_tracking.qbk +0 -220
  748. data/ext/third_party/asio/asio/src/doc/overview/implementation.qbk +0 -305
  749. data/ext/third_party/asio/asio/src/doc/overview/iostreams.qbk +0 -72
  750. data/ext/third_party/asio/asio/src/doc/overview/line_based.qbk +0 -118
  751. data/ext/third_party/asio/asio/src/doc/overview/other_protocols.qbk +0 -94
  752. data/ext/third_party/asio/asio/src/doc/overview/posix.qbk +0 -152
  753. data/ext/third_party/asio/asio/src/doc/overview/proactor.dot +0 -100
  754. data/ext/third_party/asio/asio/src/doc/overview/proactor.png +0 -0
  755. data/ext/third_party/asio/asio/src/doc/overview/protocols.qbk +0 -149
  756. data/ext/third_party/asio/asio/src/doc/overview/rationale.qbk +0 -54
  757. data/ext/third_party/asio/asio/src/doc/overview/reactor.qbk +0 -44
  758. data/ext/third_party/asio/asio/src/doc/overview/serial_ports.qbk +0 -45
  759. data/ext/third_party/asio/asio/src/doc/overview/signals.qbk +0 -44
  760. data/ext/third_party/asio/asio/src/doc/overview/spawn.qbk +0 -102
  761. data/ext/third_party/asio/asio/src/doc/overview/ssl.qbk +0 -124
  762. data/ext/third_party/asio/asio/src/doc/overview/strands.qbk +0 -114
  763. data/ext/third_party/asio/asio/src/doc/overview/streams.qbk +0 -62
  764. data/ext/third_party/asio/asio/src/doc/overview/sync_op.dot +0 -67
  765. data/ext/third_party/asio/asio/src/doc/overview/sync_op.png +0 -0
  766. data/ext/third_party/asio/asio/src/doc/overview/threads.qbk +0 -67
  767. data/ext/third_party/asio/asio/src/doc/overview/timers.qbk +0 -52
  768. data/ext/third_party/asio/asio/src/doc/overview/windows.qbk +0 -126
  769. data/ext/third_party/asio/asio/src/doc/project-root.jam +0 -1
  770. data/ext/third_party/asio/asio/src/doc/quickref.xml +0 -561
  771. data/ext/third_party/asio/asio/src/doc/reference.dox +0 -264
  772. data/ext/third_party/asio/asio/src/doc/reference.qbk +0 -125973
  773. data/ext/third_party/asio/asio/src/doc/reference.xsl +0 -1831
  774. data/ext/third_party/asio/asio/src/doc/release_checklist.htm +0 -68
  775. data/ext/third_party/asio/asio/src/doc/requirements/AcceptHandler.qbk +0 -72
  776. data/ext/third_party/asio/asio/src/doc/requirements/AcceptableProtocol.qbk +0 -25
  777. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessReadDevice.qbk +0 -56
  778. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessWriteDevice.qbk +0 -57
  779. data/ext/third_party/asio/asio/src/doc/requirements/AsyncReadStream.qbk +0 -50
  780. data/ext/third_party/asio/asio/src/doc/requirements/AsyncWriteStream.qbk +0 -48
  781. data/ext/third_party/asio/asio/src/doc/requirements/BufferedHandshakeHandler.qbk +0 -55
  782. data/ext/third_party/asio/asio/src/doc/requirements/CompletionCondition.qbk +0 -42
  783. data/ext/third_party/asio/asio/src/doc/requirements/CompletionHandler.qbk +0 -63
  784. data/ext/third_party/asio/asio/src/doc/requirements/ConnectCondition.qbk +0 -34
  785. data/ext/third_party/asio/asio/src/doc/requirements/ConnectHandler.qbk +0 -72
  786. data/ext/third_party/asio/asio/src/doc/requirements/ConstBufferSequence.qbk +0 -53
  787. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer.qbk +0 -16
  788. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v1.qbk +0 -93
  789. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v2.qbk +0 -94
  790. data/ext/third_party/asio/asio/src/doc/requirements/Endpoint.qbk +0 -97
  791. data/ext/third_party/asio/asio/src/doc/requirements/EndpointSequence.qbk +0 -30
  792. data/ext/third_party/asio/asio/src/doc/requirements/ExecutionContext.qbk +0 -36
  793. data/ext/third_party/asio/asio/src/doc/requirements/Executor.qbk +0 -141
  794. data/ext/third_party/asio/asio/src/doc/requirements/GettableSerialPortOption.qbk +0 -33
  795. data/ext/third_party/asio/asio/src/doc/requirements/GettableSocketOption.qbk +0 -67
  796. data/ext/third_party/asio/asio/src/doc/requirements/Handler.qbk +0 -64
  797. data/ext/third_party/asio/asio/src/doc/requirements/HandshakeHandler.qbk +0 -72
  798. data/ext/third_party/asio/asio/src/doc/requirements/InternetProtocol.qbk +0 -47
  799. data/ext/third_party/asio/asio/src/doc/requirements/IoControlCommand.qbk +0 -34
  800. data/ext/third_party/asio/asio/src/doc/requirements/IoObjectService.qbk +0 -62
  801. data/ext/third_party/asio/asio/src/doc/requirements/IteratorConnectHandler.qbk +0 -81
  802. data/ext/third_party/asio/asio/src/doc/requirements/LegacyCompletionHandler.qbk +0 -65
  803. data/ext/third_party/asio/asio/src/doc/requirements/MoveAcceptHandler.qbk +0 -61
  804. data/ext/third_party/asio/asio/src/doc/requirements/MutableBufferSequence.qbk +0 -54
  805. data/ext/third_party/asio/asio/src/doc/requirements/ProtoAllocator.qbk +0 -19
  806. data/ext/third_party/asio/asio/src/doc/requirements/Protocol.qbk +0 -56
  807. data/ext/third_party/asio/asio/src/doc/requirements/RangeConnectHandler.qbk +0 -82
  808. data/ext/third_party/asio/asio/src/doc/requirements/ReadHandler.qbk +0 -79
  809. data/ext/third_party/asio/asio/src/doc/requirements/ResolveHandler.qbk +0 -82
  810. data/ext/third_party/asio/asio/src/doc/requirements/Service.qbk +0 -40
  811. data/ext/third_party/asio/asio/src/doc/requirements/SettableSerialPortOption.qbk +0 -33
  812. data/ext/third_party/asio/asio/src/doc/requirements/SettableSocketOption.qbk +0 -54
  813. data/ext/third_party/asio/asio/src/doc/requirements/ShutdownHandler.qbk +0 -72
  814. data/ext/third_party/asio/asio/src/doc/requirements/SignalHandler.qbk +0 -79
  815. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessReadDevice.qbk +0 -49
  816. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessWriteDevice.qbk +0 -49
  817. data/ext/third_party/asio/asio/src/doc/requirements/SyncReadStream.qbk +0 -41
  818. data/ext/third_party/asio/asio/src/doc/requirements/SyncWriteStream.qbk +0 -39
  819. data/ext/third_party/asio/asio/src/doc/requirements/TimeTraits.qbk +0 -72
  820. data/ext/third_party/asio/asio/src/doc/requirements/WaitHandler.qbk +0 -72
  821. data/ext/third_party/asio/asio/src/doc/requirements/WaitTraits.qbk +0 -52
  822. data/ext/third_party/asio/asio/src/doc/requirements/WriteHandler.qbk +0 -79
  823. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_operations.qbk +0 -300
  824. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_socket_operations.qbk +0 -39
  825. data/ext/third_party/asio/asio/src/doc/requirements/read_write_operations.qbk +0 -34
  826. data/ext/third_party/asio/asio/src/doc/requirements/synchronous_socket_operations.qbk +0 -37
  827. data/ext/third_party/asio/asio/src/doc/std_exception_dox.txt +0 -7
  828. data/ext/third_party/asio/asio/src/doc/tutorial.dox +0 -226
  829. data/ext/third_party/asio/asio/src/doc/tutorial.qbk +0 -2387
  830. data/ext/third_party/asio/asio/src/doc/tutorial.xsl +0 -437
  831. data/ext/third_party/asio/asio/src/doc/using.qbk +0 -309
  832. data/ext/third_party/asio/asio/tsify.pl +0 -574
  833. data/ext/third_party/gsl/.clang-format +0 -34
  834. data/ext/third_party/gsl/.github/workflows/main.yml +0 -94
  835. data/ext/third_party/gsl/.gitignore +0 -16
  836. data/ext/third_party/gsl/.travis.yml +0 -551
  837. data/ext/third_party/gsl/CMakeSettings.json +0 -18
  838. data/ext/third_party/gsl/CONTRIBUTING.md +0 -29
  839. data/ext/third_party/gsl/GSL.natvis +0 -98
  840. data/ext/third_party/gsl/README.md +0 -124
  841. data/ext/third_party/gsl/appveyor.yml +0 -128
  842. data/ext/third_party/http_parser/.gitignore +0 -30
  843. data/ext/third_party/http_parser/.mailmap +0 -8
  844. data/ext/third_party/http_parser/.travis.yml +0 -13
  845. data/ext/third_party/http_parser/AUTHORS +0 -68
  846. data/ext/third_party/http_parser/Makefile +0 -160
  847. data/ext/third_party/http_parser/README.md +0 -246
  848. data/ext/third_party/http_parser/bench.c +0 -128
  849. data/ext/third_party/http_parser/http_parser.gyp +0 -111
  850. data/ext/third_party/http_parser/test.c +0 -4600
  851. data/ext/third_party/json/.appveyor.yml +0 -44
  852. data/ext/third_party/json/.clang-format +0 -84
  853. data/ext/third_party/json/.conan/build.py +0 -80
  854. data/ext/third_party/json/.conan/test_package/CMakeLists.txt +0 -12
  855. data/ext/third_party/json/.conan/test_package/conanfile.py +0 -24
  856. data/ext/third_party/json/.conan/test_package/test_package.cpp +0 -16
  857. data/ext/third_party/json/.gitignore +0 -3
  858. data/ext/third_party/json/.travis.yml +0 -173
  859. data/ext/third_party/json/Makefile +0 -77
  860. data/ext/third_party/json/README.md +0 -149
  861. data/ext/third_party/json/conanfile.py +0 -28
  862. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/analyze_cycles.hpp +0 -127
  863. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/counted.hpp +0 -23
  864. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/generic.hpp +0 -31
  865. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/grammar_info.hpp +0 -32
  866. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_guard.hpp +0 -51
  867. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_rules.hpp +0 -25
  868. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_info.hpp +0 -29
  869. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_type.hpp +0 -21
  870. data/ext/third_party/json/include/tao/json/external/pegtl/analyze.hpp +0 -21
  871. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/counter.hpp +0 -54
  872. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/tracer.hpp +0 -158
  873. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alnum.hpp +0 -18
  874. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alpha.hpp +0 -18
  875. data/ext/third_party/json/include/tao/json/external/pegtl/internal/dusel_mode.hpp +0 -23
  876. data/ext/third_party/json/include/tao/json/external/pegtl/internal/duseltronik.hpp +0 -187
  877. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_opener.hpp +0 -72
  878. data/ext/third_party/json/include/tao/json/external/pegtl/internal/trivial.hpp +0 -32
  879. data/ext/third_party/snappy/.appveyor.yml +0 -36
  880. data/ext/third_party/snappy/.gitignore +0 -8
  881. data/ext/third_party/snappy/.travis.yml +0 -98
  882. data/ext/third_party/snappy/AUTHORS +0 -1
  883. data/ext/third_party/snappy/CONTRIBUTING.md +0 -26
  884. data/ext/third_party/snappy/NEWS +0 -188
  885. data/ext/third_party/snappy/README.md +0 -148
  886. data/ext/third_party/snappy/docs/README.md +0 -72
  887. data/ext/third_party/snappy/format_description.txt +0 -110
  888. data/ext/third_party/snappy/framing_format.txt +0 -135
  889. data/ext/third_party/snappy/snappy-test.cc +0 -613
  890. data/ext/third_party/snappy/snappy-test.h +0 -526
  891. data/ext/third_party/snappy/snappy_compress_fuzzer.cc +0 -60
  892. data/ext/third_party/snappy/snappy_uncompress_fuzzer.cc +0 -58
  893. data/ext/third_party/snappy/snappy_unittest.cc +0 -1512
  894. data/ext/third_party/spdlog/.clang-format +0 -108
  895. data/ext/third_party/spdlog/.clang-tidy +0 -54
  896. data/ext/third_party/spdlog/.gitattributes +0 -1
  897. data/ext/third_party/spdlog/.gitignore +0 -83
  898. data/ext/third_party/spdlog/.travis.yml +0 -112
  899. data/ext/third_party/spdlog/INSTALL +0 -24
  900. data/ext/third_party/spdlog/README.md +0 -423
  901. data/ext/third_party/spdlog/appveyor.yml +0 -51
  902. data/ext/third_party/spdlog/include/spdlog/cfg/log_levels.h +0 -47
@@ -0,0 +1,238 @@
1
+ //
2
+ // execution/executor.hpp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2020 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 ASIO_EXECUTION_EXECUTOR_HPP
12
+ #define ASIO_EXECUTION_EXECUTOR_HPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include "asio/detail/config.hpp"
19
+ #include "asio/detail/type_traits.hpp"
20
+ #include "asio/execution/execute.hpp"
21
+ #include "asio/execution/invocable_archetype.hpp"
22
+ #include "asio/traits/equality_comparable.hpp"
23
+
24
+ #if defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT) \
25
+ && defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) \
26
+ && defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
27
+ # define ASIO_HAS_DEDUCED_EXECUTION_IS_EXECUTOR_TRAIT 1
28
+ #endif // defined(ASIO_HAS_DEDUCED_EXECUTE_FREE_TRAIT)
29
+ // && defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
30
+ // && defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
31
+
32
+ #include "asio/detail/push_options.hpp"
33
+
34
+ namespace asio {
35
+ namespace execution {
36
+ namespace detail {
37
+
38
+ template <typename T, typename F>
39
+ struct is_executor_of_impl_base :
40
+ integral_constant<bool,
41
+ conditional<true, true_type,
42
+ typename result_of<typename decay<F>::type&()>::type
43
+ >::type::value
44
+ && is_constructible<typename decay<F>::type, F>::value
45
+ && is_move_constructible<typename decay<F>::type>::value
46
+ #if defined(ASIO_HAS_NOEXCEPT)
47
+ && is_nothrow_copy_constructible<T>::value
48
+ && is_nothrow_destructible<T>::value
49
+ #else // defined(ASIO_HAS_NOEXCEPT)
50
+ && is_copy_constructible<T>::value
51
+ && is_destructible<T>::value
52
+ #endif // defined(ASIO_HAS_NOEXCEPT)
53
+ && traits::equality_comparable<T>::is_valid
54
+ && traits::equality_comparable<T>::is_noexcept
55
+ >
56
+ {
57
+ };
58
+
59
+ template <typename T, typename F>
60
+ struct is_executor_of_impl :
61
+ conditional<
62
+ can_execute<T, F>::value,
63
+ is_executor_of_impl_base<T, F>,
64
+ false_type
65
+ >::type
66
+ {
67
+ };
68
+
69
+ template <typename T, typename = void>
70
+ struct executor_shape
71
+ {
72
+ typedef std::size_t type;
73
+ };
74
+
75
+ template <typename T>
76
+ struct executor_shape<T,
77
+ typename void_type<
78
+ typename T::shape_type
79
+ >::type>
80
+ {
81
+ typedef typename T::shape_type type;
82
+ };
83
+
84
+ template <typename T, typename Default, typename = void>
85
+ struct executor_index
86
+ {
87
+ typedef Default type;
88
+ };
89
+
90
+ template <typename T, typename Default>
91
+ struct executor_index<T, Default,
92
+ typename void_type<
93
+ typename T::index_type
94
+ >::type>
95
+ {
96
+ typedef typename T::index_type type;
97
+ };
98
+
99
+ } // namespace detail
100
+
101
+ /// The is_executor trait detects whether a type T satisfies the
102
+ /// execution::executor concept.
103
+ /**
104
+ * Class template @c is_executor is a UnaryTypeTrait that is derived from @c
105
+ * true_type if the type @c T meets the concept definition for an executor,
106
+ * otherwise @c false_type.
107
+ */
108
+ template <typename T>
109
+ struct is_executor :
110
+ #if defined(GENERATING_DOCUMENTATION)
111
+ integral_constant<bool, automatically_determined>
112
+ #else // defined(GENERATING_DOCUMENTATION)
113
+ detail::is_executor_of_impl<T, invocable_archetype>
114
+ #endif // defined(GENERATING_DOCUMENTATION)
115
+ {
116
+ };
117
+
118
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
119
+
120
+ template <typename T>
121
+ ASIO_CONSTEXPR const bool is_executor_v = is_executor<T>::value;
122
+
123
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
124
+
125
+ #if defined(ASIO_HAS_CONCEPTS)
126
+
127
+ template <typename T>
128
+ ASIO_CONCEPT executor = is_executor<T>::value;
129
+
130
+ #define ASIO_EXECUTION_EXECUTOR ::asio::execution::executor
131
+
132
+ #else // defined(ASIO_HAS_CONCEPTS)
133
+
134
+ #define ASIO_EXECUTION_EXECUTOR typename
135
+
136
+ #endif // defined(ASIO_HAS_CONCEPTS)
137
+
138
+ /// The is_executor_of trait detects whether a type T satisfies the
139
+ /// execution::executor_of concept for some set of value arguments.
140
+ /**
141
+ * Class template @c is_executor_of is a type trait that is derived from @c
142
+ * true_type if the type @c T meets the concept definition for an executor
143
+ * that is invocable with a function object of type @c F, otherwise @c
144
+ * false_type.
145
+ */
146
+ template <typename T, typename F>
147
+ struct is_executor_of :
148
+ #if defined(GENERATING_DOCUMENTATION)
149
+ integral_constant<bool, automatically_determined>
150
+ #else // defined(GENERATING_DOCUMENTATION)
151
+ integral_constant<bool,
152
+ is_executor<T>::value && detail::is_executor_of_impl<T, F>::value
153
+ >
154
+ #endif // defined(GENERATING_DOCUMENTATION)
155
+ {
156
+ };
157
+
158
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
159
+
160
+ template <typename T, typename F>
161
+ ASIO_CONSTEXPR const bool is_executor_of_v =
162
+ is_executor_of<T, F>::value;
163
+
164
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
165
+
166
+ #if defined(ASIO_HAS_CONCEPTS)
167
+
168
+ template <typename T, typename F>
169
+ ASIO_CONCEPT executor_of = is_executor_of<T, F>::value;
170
+
171
+ #define ASIO_EXECUTION_EXECUTOR_OF(f) \
172
+ ::asio::execution::executor_of<f>
173
+
174
+ #else // defined(ASIO_HAS_CONCEPTS)
175
+
176
+ #define ASIO_EXECUTION_EXECUTOR_OF typename
177
+
178
+ #endif // defined(ASIO_HAS_CONCEPTS)
179
+
180
+ /// The executor_shape trait detects the type used by an executor to represent
181
+ /// the shape of a bulk operation.
182
+ /**
183
+ * Class template @c executor_shape is a type trait with a nested type alias
184
+ * @c type whose type is @c T::shape_type if @c T::shape_type is valid,
185
+ * otherwise @c std::size_t.
186
+ */
187
+ template <typename T>
188
+ struct executor_shape
189
+ #if !defined(GENERATING_DOCUMENTATION)
190
+ : detail::executor_shape<T>
191
+ #endif // !defined(GENERATING_DOCUMENTATION)
192
+ {
193
+ #if defined(GENERATING_DOCUMENTATION)
194
+ /// @c T::shape_type if @c T::shape_type is valid, otherwise @c std::size_t.
195
+ typedef automatically_determined type;
196
+ #endif // defined(GENERATING_DOCUMENTATION)
197
+ };
198
+
199
+ #if defined(ASIO_HAS_ALIAS_TEMPLATES)
200
+
201
+ template <typename T>
202
+ using executor_shape_t = typename executor_shape<T>::type;
203
+
204
+ #endif // defined(ASIO_HAS_ALIAS_TEMPLATES)
205
+
206
+ /// The executor_index trait detects the type used by an executor to represent
207
+ /// an index within a bulk operation.
208
+ /**
209
+ * Class template @c executor_index is a type trait with a nested type alias
210
+ * @c type whose type is @c T::index_type if @c T::index_type is valid,
211
+ * otherwise @c executor_shape_t<T>.
212
+ */
213
+ template <typename T>
214
+ struct executor_index
215
+ #if !defined(GENERATING_DOCUMENTATION)
216
+ : detail::executor_index<T, typename executor_shape<T>::type>
217
+ #endif // !defined(GENERATING_DOCUMENTATION)
218
+ {
219
+ #if defined(GENERATING_DOCUMENTATION)
220
+ /// @c T::index_type if @c T::index_type is valid, otherwise
221
+ /// @c executor_shape_t<T>.
222
+ typedef automatically_determined type;
223
+ #endif // defined(GENERATING_DOCUMENTATION)
224
+ };
225
+
226
+ #if defined(ASIO_HAS_ALIAS_TEMPLATES)
227
+
228
+ template <typename T>
229
+ using executor_index_t = typename executor_index<T>::type;
230
+
231
+ #endif // defined(ASIO_HAS_ALIAS_TEMPLATES)
232
+
233
+ } // namespace execution
234
+ } // namespace asio
235
+
236
+ #include "asio/detail/pop_options.hpp"
237
+
238
+ #endif // ASIO_EXECUTION_EXECUTOR_HPP
@@ -0,0 +1,40 @@
1
+ //
2
+ // exection/impl/bad_executor.ipp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2020 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 ASIO_EXECUTION_IMPL_BAD_EXECUTOR_IPP
12
+ #define ASIO_EXECUTION_IMPL_BAD_EXECUTOR_IPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include "asio/detail/config.hpp"
19
+ #include "asio/execution/bad_executor.hpp"
20
+
21
+ #include "asio/detail/push_options.hpp"
22
+
23
+ namespace asio {
24
+ namespace execution {
25
+
26
+ bad_executor::bad_executor() ASIO_NOEXCEPT
27
+ {
28
+ }
29
+
30
+ const char* bad_executor::what() const ASIO_NOEXCEPT_OR_NOTHROW
31
+ {
32
+ return "bad executor";
33
+ }
34
+
35
+ } // namespace execution
36
+ } // namespace asio
37
+
38
+ #include "asio/detail/pop_options.hpp"
39
+
40
+ #endif // ASIO_EXECUTION_IMPL_BAD_EXECUTOR_IPP
@@ -0,0 +1,36 @@
1
+ //
2
+ // exection/impl/receiver_invocation_error.ipp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2020 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 ASIO_EXECUTION_IMPL_RECEIVER_INVOCATION_ERROR_IPP
12
+ #define ASIO_EXECUTION_IMPL_RECEIVER_INVOCATION_ERROR_IPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include "asio/detail/config.hpp"
19
+ #include "asio/execution/receiver_invocation_error.hpp"
20
+
21
+ #include "asio/detail/push_options.hpp"
22
+
23
+ namespace asio {
24
+ namespace execution {
25
+
26
+ receiver_invocation_error::receiver_invocation_error()
27
+ : std::runtime_error("receiver invocation error")
28
+ {
29
+ }
30
+
31
+ } // namespace execution
32
+ } // namespace asio
33
+
34
+ #include "asio/detail/pop_options.hpp"
35
+
36
+ #endif // ASIO_EXECUTION_IMPL_RECEIVER_INVOCATION_ERROR_IPP
@@ -0,0 +1,71 @@
1
+ //
2
+ // execution/invocable_archetype.hpp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2020 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 ASIO_EXECUTION_INVOCABLE_ARCHETYPE_HPP
12
+ #define ASIO_EXECUTION_INVOCABLE_ARCHETYPE_HPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include "asio/detail/config.hpp"
19
+ #include "asio/detail/type_traits.hpp"
20
+ #include "asio/detail/variadic_templates.hpp"
21
+
22
+ #include "asio/detail/push_options.hpp"
23
+
24
+ namespace asio {
25
+ namespace execution {
26
+
27
+ /// An archetypal function object used for determining adherence to the
28
+ /// execution::executor concept.
29
+ struct invocable_archetype
30
+ {
31
+ #if !defined(GENERATING_DOCUMENTATION)
32
+ // Necessary for compatibility with a C++03 implementation of result_of.
33
+ typedef void result_type;
34
+ #endif // !defined(GENERATING_DOCUMENTATION)
35
+
36
+ #if defined(ASIO_HAS_VARIADIC_TEMPLATES) \
37
+ || defined(GENERATING_DOCUMENTATION)
38
+
39
+ /// Function call operator.
40
+ template <typename... Args>
41
+ void operator()(ASIO_MOVE_ARG(Args)...)
42
+ {
43
+ }
44
+
45
+ #else // defined(ASIO_HAS_VARIADIC_TEMPLATES)
46
+ // || defined(GENERATING_DOCUMENTATION)
47
+
48
+ void operator()()
49
+ {
50
+ }
51
+
52
+ #define ASIO_PRIVATE_INVOCABLE_ARCHETYPE_CALL_DEF(n) \
53
+ template <ASIO_VARIADIC_TPARAMS(n)> \
54
+ void operator()(ASIO_VARIADIC_UNNAMED_MOVE_PARAMS(n)) \
55
+ { \
56
+ } \
57
+ /**/
58
+ ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_INVOCABLE_ARCHETYPE_CALL_DEF)
59
+ #undef ASIO_PRIVATE_INVOCABLE_ARCHETYPE_CALL_DEF
60
+
61
+ #endif // defined(ASIO_HAS_VARIADIC_TEMPLATES)
62
+ // || defined(GENERATING_DOCUMENTATION)
63
+ };
64
+
65
+ } // namespace execution
66
+ } // namespace asio
67
+
68
+ #include "asio/detail/pop_options.hpp"
69
+
70
+ #endif // ASIO_EXECUTION_INVOCABLE_ARCHETYPE_HPP
71
+
@@ -0,0 +1,917 @@
1
+ //
2
+ // execution/mapping.hpp
3
+ // ~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2020 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 ASIO_EXECUTION_MAPPING_HPP
12
+ #define ASIO_EXECUTION_MAPPING_HPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include "asio/detail/config.hpp"
19
+ #include "asio/detail/type_traits.hpp"
20
+ #include "asio/execution/executor.hpp"
21
+ #include "asio/execution/scheduler.hpp"
22
+ #include "asio/execution/sender.hpp"
23
+ #include "asio/is_applicable_property.hpp"
24
+ #include "asio/query.hpp"
25
+ #include "asio/traits/query_free.hpp"
26
+ #include "asio/traits/query_member.hpp"
27
+ #include "asio/traits/query_static_constexpr_member.hpp"
28
+ #include "asio/traits/static_query.hpp"
29
+ #include "asio/traits/static_require.hpp"
30
+
31
+ #include "asio/detail/push_options.hpp"
32
+
33
+ namespace asio {
34
+
35
+ #if defined(GENERATING_DOCUMENTATION)
36
+
37
+ namespace execution {
38
+
39
+ /// A property to describe what guarantees an executor makes about the mapping
40
+ /// of execution agents on to threads of execution.
41
+ struct mapping_t
42
+ {
43
+ /// The mapping_t property applies to executors, senders, and schedulers.
44
+ template <typename T>
45
+ static constexpr bool is_applicable_property_v =
46
+ is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
47
+
48
+ /// The top-level mapping_t property cannot be required.
49
+ static constexpr bool is_requirable = false;
50
+
51
+ /// The top-level mapping_t property cannot be preferred.
52
+ static constexpr bool is_preferable = false;
53
+
54
+ /// The type returned by queries against an @c any_executor.
55
+ typedef mapping_t polymorphic_query_result_type;
56
+
57
+ /// A sub-property that indicates that execution agents are mapped on to
58
+ /// threads of execution.
59
+ struct thread_t
60
+ {
61
+ /// The mapping_t::thread_t property applies to executors, senders, and
62
+ /// schedulers.
63
+ template <typename T>
64
+ static constexpr bool is_applicable_property_v =
65
+ is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
66
+
67
+ /// The mapping_t::thread_t property can be required.
68
+ static constexpr bool is_requirable = true;
69
+
70
+ /// The mapping_t::thread_t property can be preferred.
71
+ static constexpr bool is_preferable = true;
72
+
73
+ /// The type returned by queries against an @c any_executor.
74
+ typedef mapping_t polymorphic_query_result_type;
75
+
76
+ /// Default constructor.
77
+ constexpr thread_t();
78
+
79
+ /// Get the value associated with a property object.
80
+ /**
81
+ * @returns thread_t();
82
+ */
83
+ static constexpr mapping_t value();
84
+ };
85
+
86
+ /// A sub-property that indicates that execution agents are mapped on to
87
+ /// new threads of execution.
88
+ struct new_thread_t
89
+ {
90
+ /// The mapping_t::new_thread_t property applies to executors, senders, and
91
+ /// schedulers.
92
+ template <typename T>
93
+ static constexpr bool is_applicable_property_v =
94
+ is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
95
+
96
+ /// The mapping_t::new_thread_t property can be required.
97
+ static constexpr bool is_requirable = true;
98
+
99
+ /// The mapping_t::new_thread_t property can be preferred.
100
+ static constexpr bool is_preferable = true;
101
+
102
+ /// The type returned by queries against an @c any_executor.
103
+ typedef mapping_t polymorphic_query_result_type;
104
+
105
+ /// Default constructor.
106
+ constexpr new_thread_t();
107
+
108
+ /// Get the value associated with a property object.
109
+ /**
110
+ * @returns new_thread_t();
111
+ */
112
+ static constexpr mapping_t value();
113
+ };
114
+
115
+ /// A sub-property that indicates that the mapping of execution agents is
116
+ /// implementation-defined.
117
+ struct other_t
118
+ {
119
+ /// The mapping_t::other_t property applies to executors, senders, and
120
+ /// schedulers.
121
+ template <typename T>
122
+ static constexpr bool is_applicable_property_v =
123
+ is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
124
+
125
+ /// The mapping_t::other_t property can be required.
126
+ static constexpr bool is_requirable = true;
127
+
128
+ /// The mapping_t::other_t property can be preferred.
129
+ static constexpr bool is_preferable = true;
130
+
131
+ /// The type returned by queries against an @c any_executor.
132
+ typedef mapping_t polymorphic_query_result_type;
133
+
134
+ /// Default constructor.
135
+ constexpr other_t();
136
+
137
+ /// Get the value associated with a property object.
138
+ /**
139
+ * @returns other_t();
140
+ */
141
+ static constexpr mapping_t value();
142
+ };
143
+
144
+ /// A special value used for accessing the mapping_t::thread_t property.
145
+ static constexpr thread_t thread;
146
+
147
+ /// A special value used for accessing the mapping_t::new_thread_t property.
148
+ static constexpr new_thread_t new_thread;
149
+
150
+ /// A special value used for accessing the mapping_t::other_t property.
151
+ static constexpr other_t other;
152
+
153
+ /// Default constructor.
154
+ constexpr mapping_t();
155
+
156
+ /// Construct from a sub-property value.
157
+ constexpr mapping_t(thread_t);
158
+
159
+ /// Construct from a sub-property value.
160
+ constexpr mapping_t(new_thread_t);
161
+
162
+ /// Construct from a sub-property value.
163
+ constexpr mapping_t(other_t);
164
+
165
+ /// Compare property values for equality.
166
+ friend constexpr bool operator==(
167
+ const mapping_t& a, const mapping_t& b) noexcept;
168
+
169
+ /// Compare property values for inequality.
170
+ friend constexpr bool operator!=(
171
+ const mapping_t& a, const mapping_t& b) noexcept;
172
+ };
173
+
174
+ /// A special value used for accessing the mapping_t property.
175
+ constexpr mapping_t mapping;
176
+
177
+ } // namespace execution
178
+
179
+ #else // defined(GENERATING_DOCUMENTATION)
180
+
181
+ namespace execution {
182
+ namespace detail {
183
+ namespace mapping {
184
+
185
+ template <int I> struct thread_t;
186
+ template <int I> struct new_thread_t;
187
+ template <int I> struct other_t;
188
+
189
+ } // namespace mapping
190
+
191
+ template <int I = 0>
192
+ struct mapping_t
193
+ {
194
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
195
+ template <typename T>
196
+ ASIO_STATIC_CONSTEXPR(bool,
197
+ is_applicable_property_v = is_executor<T>::value
198
+ || is_sender<T>::value || is_scheduler<T>::value);
199
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
200
+
201
+ ASIO_STATIC_CONSTEXPR(bool, is_requirable = false);
202
+ ASIO_STATIC_CONSTEXPR(bool, is_preferable = false);
203
+ typedef mapping_t polymorphic_query_result_type;
204
+
205
+ typedef detail::mapping::thread_t<I> thread_t;
206
+ typedef detail::mapping::new_thread_t<I> new_thread_t;
207
+ typedef detail::mapping::other_t<I> other_t;
208
+
209
+ ASIO_CONSTEXPR mapping_t()
210
+ : value_(-1)
211
+ {
212
+ }
213
+
214
+ ASIO_CONSTEXPR mapping_t(thread_t)
215
+ : value_(0)
216
+ {
217
+ }
218
+
219
+ ASIO_CONSTEXPR mapping_t(new_thread_t)
220
+ : value_(1)
221
+ {
222
+ }
223
+
224
+ ASIO_CONSTEXPR mapping_t(other_t)
225
+ : value_(2)
226
+ {
227
+ }
228
+
229
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
230
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
231
+ template <typename T>
232
+ static ASIO_CONSTEXPR
233
+ typename traits::query_static_constexpr_member<T, mapping_t>::result_type
234
+ static_query()
235
+ ASIO_NOEXCEPT_IF((
236
+ traits::query_static_constexpr_member<T, mapping_t>::is_noexcept))
237
+ {
238
+ return traits::query_static_constexpr_member<T, mapping_t>::value();
239
+ }
240
+
241
+ template <typename T>
242
+ static ASIO_CONSTEXPR
243
+ typename traits::static_query<T, thread_t>::result_type
244
+ static_query(
245
+ typename enable_if<
246
+ !traits::query_static_constexpr_member<T, mapping_t>::is_valid
247
+ && !traits::query_member<T, mapping_t>::is_valid
248
+ && traits::static_query<T, thread_t>::is_valid
249
+ >::type* = 0) ASIO_NOEXCEPT
250
+ {
251
+ return traits::static_query<T, thread_t>::value();
252
+ }
253
+
254
+ template <typename T>
255
+ static ASIO_CONSTEXPR
256
+ typename traits::static_query<T, new_thread_t>::result_type
257
+ static_query(
258
+ typename enable_if<
259
+ !traits::query_static_constexpr_member<T, mapping_t>::is_valid
260
+ && !traits::query_member<T, mapping_t>::is_valid
261
+ && !traits::static_query<T, thread_t>::is_valid
262
+ && traits::static_query<T, new_thread_t>::is_valid
263
+ >::type* = 0) ASIO_NOEXCEPT
264
+ {
265
+ return traits::static_query<T, new_thread_t>::value();
266
+ }
267
+
268
+ template <typename T>
269
+ static ASIO_CONSTEXPR
270
+ typename traits::static_query<T, other_t>::result_type
271
+ static_query(
272
+ typename enable_if<
273
+ !traits::query_static_constexpr_member<T, mapping_t>::is_valid
274
+ && !traits::query_member<T, mapping_t>::is_valid
275
+ && !traits::static_query<T, thread_t>::is_valid
276
+ && !traits::static_query<T, new_thread_t>::is_valid
277
+ && traits::static_query<T, other_t>::is_valid
278
+ >::type* = 0) ASIO_NOEXCEPT
279
+ {
280
+ return traits::static_query<T, other_t>::value();
281
+ }
282
+
283
+ template <typename E, typename T = decltype(mapping_t::static_query<E>())>
284
+ static ASIO_CONSTEXPR const T static_query_v
285
+ = mapping_t::static_query<E>();
286
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
287
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
288
+
289
+ friend ASIO_CONSTEXPR bool operator==(
290
+ const mapping_t& a, const mapping_t& b)
291
+ {
292
+ return a.value_ == b.value_;
293
+ }
294
+
295
+ friend ASIO_CONSTEXPR bool operator!=(
296
+ const mapping_t& a, const mapping_t& b)
297
+ {
298
+ return a.value_ != b.value_;
299
+ }
300
+
301
+ struct convertible_from_mapping_t
302
+ {
303
+ ASIO_CONSTEXPR convertible_from_mapping_t(mapping_t) {}
304
+ };
305
+
306
+ template <typename Executor>
307
+ friend ASIO_CONSTEXPR mapping_t query(
308
+ const Executor& ex, convertible_from_mapping_t,
309
+ typename enable_if<
310
+ can_query<const Executor&, thread_t>::value
311
+ >::type* = 0)
312
+ #if !defined(__clang__) // Clang crashes if noexcept is used here.
313
+ #if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
314
+ ASIO_NOEXCEPT_IF((
315
+ is_nothrow_query<const Executor&, mapping_t<>::thread_t>::value))
316
+ #else // defined(ASIO_MSVC)
317
+ ASIO_NOEXCEPT_IF((
318
+ is_nothrow_query<const Executor&, thread_t>::value))
319
+ #endif // defined(ASIO_MSVC)
320
+ #endif // !defined(__clang__)
321
+ {
322
+ return asio::query(ex, thread_t());
323
+ }
324
+
325
+ template <typename Executor>
326
+ friend ASIO_CONSTEXPR mapping_t query(
327
+ const Executor& ex, convertible_from_mapping_t,
328
+ typename enable_if<
329
+ !can_query<const Executor&, thread_t>::value
330
+ && can_query<const Executor&, new_thread_t>::value
331
+ >::type* = 0)
332
+ #if !defined(__clang__) // Clang crashes if noexcept is used here.
333
+ #if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
334
+ ASIO_NOEXCEPT_IF((
335
+ is_nothrow_query<const Executor&, mapping_t<>::new_thread_t>::value))
336
+ #else // defined(ASIO_MSVC)
337
+ ASIO_NOEXCEPT_IF((
338
+ is_nothrow_query<const Executor&, new_thread_t>::value))
339
+ #endif // defined(ASIO_MSVC)
340
+ #endif // !defined(__clang__)
341
+ {
342
+ return asio::query(ex, new_thread_t());
343
+ }
344
+
345
+ template <typename Executor>
346
+ friend ASIO_CONSTEXPR mapping_t query(
347
+ const Executor& ex, convertible_from_mapping_t,
348
+ typename enable_if<
349
+ !can_query<const Executor&, thread_t>::value
350
+ && !can_query<const Executor&, new_thread_t>::value
351
+ && can_query<const Executor&, other_t>::value
352
+ >::type* = 0)
353
+ #if !defined(__clang__) // Clang crashes if noexcept is used here.
354
+ #if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
355
+ ASIO_NOEXCEPT_IF((
356
+ is_nothrow_query<const Executor&, mapping_t<>::other_t>::value))
357
+ #else // defined(ASIO_MSVC)
358
+ ASIO_NOEXCEPT_IF((
359
+ is_nothrow_query<const Executor&, other_t>::value))
360
+ #endif // defined(ASIO_MSVC)
361
+ #endif // !defined(__clang__)
362
+ {
363
+ return asio::query(ex, other_t());
364
+ }
365
+
366
+ ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(thread_t, thread);
367
+ ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(new_thread_t, new_thread);
368
+ ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(other_t, other);
369
+
370
+ #if !defined(ASIO_HAS_CONSTEXPR)
371
+ static const mapping_t instance;
372
+ #endif // !defined(ASIO_HAS_CONSTEXPR)
373
+
374
+ private:
375
+ int value_;
376
+ };
377
+
378
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
379
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
380
+ template <int I> template <typename E, typename T>
381
+ const T mapping_t<I>::static_query_v;
382
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
383
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
384
+
385
+ #if !defined(ASIO_HAS_CONSTEXPR)
386
+ template <int I>
387
+ const mapping_t<I> mapping_t<I>::instance;
388
+ #endif
389
+
390
+ template <int I>
391
+ const typename mapping_t<I>::thread_t mapping_t<I>::thread;
392
+
393
+ template <int I>
394
+ const typename mapping_t<I>::new_thread_t mapping_t<I>::new_thread;
395
+
396
+ template <int I>
397
+ const typename mapping_t<I>::other_t mapping_t<I>::other;
398
+
399
+ namespace mapping {
400
+
401
+ template <int I = 0>
402
+ struct thread_t
403
+ {
404
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
405
+ template <typename T>
406
+ ASIO_STATIC_CONSTEXPR(bool,
407
+ is_applicable_property_v = is_executor<T>::value
408
+ || is_sender<T>::value || is_scheduler<T>::value);
409
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
410
+
411
+ ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
412
+ ASIO_STATIC_CONSTEXPR(bool, is_preferable = true);
413
+ typedef mapping_t<I> polymorphic_query_result_type;
414
+
415
+ ASIO_CONSTEXPR thread_t()
416
+ {
417
+ }
418
+
419
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
420
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
421
+ template <typename T>
422
+ static ASIO_CONSTEXPR
423
+ typename traits::query_static_constexpr_member<T, thread_t>::result_type
424
+ static_query()
425
+ ASIO_NOEXCEPT_IF((
426
+ traits::query_static_constexpr_member<T, thread_t>::is_noexcept))
427
+ {
428
+ return traits::query_static_constexpr_member<T, thread_t>::value();
429
+ }
430
+
431
+ template <typename T>
432
+ static ASIO_CONSTEXPR thread_t static_query(
433
+ typename enable_if<
434
+ !traits::query_static_constexpr_member<T, thread_t>::is_valid
435
+ && !traits::query_member<T, thread_t>::is_valid
436
+ && !traits::query_free<T, thread_t>::is_valid
437
+ && !can_query<T, new_thread_t<I> >::value
438
+ && !can_query<T, other_t<I> >::value
439
+ >::type* = 0) ASIO_NOEXCEPT
440
+ {
441
+ return thread_t();
442
+ }
443
+
444
+ template <typename E, typename T = decltype(thread_t::static_query<E>())>
445
+ static ASIO_CONSTEXPR const T static_query_v
446
+ = thread_t::static_query<E>();
447
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
448
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
449
+
450
+ static ASIO_CONSTEXPR mapping_t<I> value()
451
+ {
452
+ return thread_t();
453
+ }
454
+
455
+ friend ASIO_CONSTEXPR bool operator==(
456
+ const thread_t&, const thread_t&)
457
+ {
458
+ return true;
459
+ }
460
+
461
+ friend ASIO_CONSTEXPR bool operator!=(
462
+ const thread_t&, const thread_t&)
463
+ {
464
+ return false;
465
+ }
466
+ };
467
+
468
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
469
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
470
+ template <int I> template <typename E, typename T>
471
+ const T thread_t<I>::static_query_v;
472
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
473
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
474
+
475
+ template <int I = 0>
476
+ struct new_thread_t
477
+ {
478
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
479
+ template <typename T>
480
+ ASIO_STATIC_CONSTEXPR(bool,
481
+ is_applicable_property_v = is_executor<T>::value
482
+ || is_sender<T>::value || is_scheduler<T>::value);
483
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
484
+
485
+ ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
486
+ ASIO_STATIC_CONSTEXPR(bool, is_preferable = true);
487
+ typedef mapping_t<I> polymorphic_query_result_type;
488
+
489
+ ASIO_CONSTEXPR new_thread_t()
490
+ {
491
+ }
492
+
493
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
494
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
495
+ template <typename T>
496
+ static ASIO_CONSTEXPR
497
+ typename traits::query_static_constexpr_member<T, new_thread_t>::result_type
498
+ static_query()
499
+ ASIO_NOEXCEPT_IF((
500
+ traits::query_static_constexpr_member<T, new_thread_t>::is_noexcept))
501
+ {
502
+ return traits::query_static_constexpr_member<T, new_thread_t>::value();
503
+ }
504
+
505
+ template <typename E, typename T = decltype(new_thread_t::static_query<E>())>
506
+ static ASIO_CONSTEXPR const T static_query_v
507
+ = new_thread_t::static_query<E>();
508
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
509
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
510
+
511
+ static ASIO_CONSTEXPR mapping_t<I> value()
512
+ {
513
+ return new_thread_t();
514
+ }
515
+
516
+ friend ASIO_CONSTEXPR bool operator==(
517
+ const new_thread_t&, const new_thread_t&)
518
+ {
519
+ return true;
520
+ }
521
+
522
+ friend ASIO_CONSTEXPR bool operator!=(
523
+ const new_thread_t&, const new_thread_t&)
524
+ {
525
+ return false;
526
+ }
527
+ };
528
+
529
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
530
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
531
+ template <int I> template <typename E, typename T>
532
+ const T new_thread_t<I>::static_query_v;
533
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
534
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
535
+
536
+ template <int I>
537
+ struct other_t
538
+ {
539
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
540
+ template <typename T>
541
+ ASIO_STATIC_CONSTEXPR(bool,
542
+ is_applicable_property_v = is_executor<T>::value
543
+ || is_sender<T>::value || is_scheduler<T>::value);
544
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
545
+
546
+ ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
547
+ ASIO_STATIC_CONSTEXPR(bool, is_preferable = true);
548
+ typedef mapping_t<I> polymorphic_query_result_type;
549
+
550
+ ASIO_CONSTEXPR other_t()
551
+ {
552
+ }
553
+
554
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
555
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
556
+ template <typename T>
557
+ static ASIO_CONSTEXPR
558
+ typename traits::query_static_constexpr_member<T, other_t>::result_type
559
+ static_query()
560
+ ASIO_NOEXCEPT_IF((
561
+ traits::query_static_constexpr_member<T, other_t>::is_noexcept))
562
+ {
563
+ return traits::query_static_constexpr_member<T, other_t>::value();
564
+ }
565
+
566
+ template <typename E, typename T = decltype(other_t::static_query<E>())>
567
+ static ASIO_CONSTEXPR const T static_query_v
568
+ = other_t::static_query<E>();
569
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
570
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
571
+
572
+ static ASIO_CONSTEXPR mapping_t<I> value()
573
+ {
574
+ return other_t();
575
+ }
576
+
577
+ friend ASIO_CONSTEXPR bool operator==(
578
+ const other_t&, const other_t&)
579
+ {
580
+ return true;
581
+ }
582
+
583
+ friend ASIO_CONSTEXPR bool operator!=(
584
+ const other_t&, const other_t&)
585
+ {
586
+ return false;
587
+ }
588
+ };
589
+
590
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
591
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
592
+ template <int I> template <typename E, typename T>
593
+ const T other_t<I>::static_query_v;
594
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
595
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
596
+
597
+ } // namespace mapping
598
+ } // namespace detail
599
+
600
+ typedef detail::mapping_t<> mapping_t;
601
+
602
+ #if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION)
603
+ constexpr mapping_t mapping;
604
+ #else // defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION)
605
+ namespace { static const mapping_t& mapping = mapping_t::instance; }
606
+ #endif
607
+
608
+ } // namespace execution
609
+
610
+ #if !defined(ASIO_HAS_VARIABLE_TEMPLATES)
611
+
612
+ template <typename T>
613
+ struct is_applicable_property<T, execution::mapping_t>
614
+ : integral_constant<bool,
615
+ execution::is_executor<T>::value
616
+ || execution::is_sender<T>::value
617
+ || execution::is_scheduler<T>::value>
618
+ {
619
+ };
620
+
621
+ template <typename T>
622
+ struct is_applicable_property<T, execution::mapping_t::thread_t>
623
+ : integral_constant<bool,
624
+ execution::is_executor<T>::value
625
+ || execution::is_sender<T>::value
626
+ || execution::is_scheduler<T>::value>
627
+ {
628
+ };
629
+
630
+ template <typename T>
631
+ struct is_applicable_property<T, execution::mapping_t::new_thread_t>
632
+ : integral_constant<bool,
633
+ execution::is_executor<T>::value
634
+ || execution::is_sender<T>::value
635
+ || execution::is_scheduler<T>::value>
636
+ {
637
+ };
638
+
639
+ template <typename T>
640
+ struct is_applicable_property<T, execution::mapping_t::other_t>
641
+ : integral_constant<bool,
642
+ execution::is_executor<T>::value
643
+ || execution::is_sender<T>::value
644
+ || execution::is_scheduler<T>::value>
645
+ {
646
+ };
647
+
648
+ #endif // !defined(ASIO_HAS_VARIABLE_TEMPLATES)
649
+
650
+ namespace traits {
651
+
652
+ #if !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
653
+
654
+ template <typename T>
655
+ struct query_free_default<T, execution::mapping_t,
656
+ typename enable_if<
657
+ can_query<T, execution::mapping_t::thread_t>::value
658
+ >::type>
659
+ {
660
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
661
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
662
+ (is_nothrow_query<T, execution::mapping_t::thread_t>::value));
663
+
664
+ typedef execution::mapping_t result_type;
665
+ };
666
+
667
+ template <typename T>
668
+ struct query_free_default<T, execution::mapping_t,
669
+ typename enable_if<
670
+ !can_query<T, execution::mapping_t::thread_t>::value
671
+ && can_query<T, execution::mapping_t::new_thread_t>::value
672
+ >::type>
673
+ {
674
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
675
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
676
+ (is_nothrow_query<T, execution::mapping_t::new_thread_t>::value));
677
+
678
+ typedef execution::mapping_t result_type;
679
+ };
680
+
681
+ template <typename T>
682
+ struct query_free_default<T, execution::mapping_t,
683
+ typename enable_if<
684
+ !can_query<T, execution::mapping_t::thread_t>::value
685
+ && !can_query<T, execution::mapping_t::new_thread_t>::value
686
+ && can_query<T, execution::mapping_t::other_t>::value
687
+ >::type>
688
+ {
689
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
690
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
691
+ (is_nothrow_query<T, execution::mapping_t::other_t>::value));
692
+
693
+ typedef execution::mapping_t result_type;
694
+ };
695
+
696
+ #endif // !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
697
+
698
+ #if !defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
699
+ || !defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
700
+
701
+ template <typename T>
702
+ struct static_query<T, execution::mapping_t,
703
+ typename enable_if<
704
+ traits::query_static_constexpr_member<T,
705
+ execution::mapping_t>::is_valid
706
+ >::type>
707
+ {
708
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
709
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
710
+
711
+ typedef typename traits::query_static_constexpr_member<T,
712
+ execution::mapping_t>::result_type result_type;
713
+
714
+ static ASIO_CONSTEXPR result_type value()
715
+ {
716
+ return traits::query_static_constexpr_member<T,
717
+ execution::mapping_t>::value();
718
+ }
719
+ };
720
+
721
+ template <typename T>
722
+ struct static_query<T, execution::mapping_t,
723
+ typename enable_if<
724
+ !traits::query_static_constexpr_member<T, execution::mapping_t>::is_valid
725
+ && !traits::query_member<T, execution::mapping_t>::is_valid
726
+ && traits::static_query<T, execution::mapping_t::thread_t>::is_valid
727
+ >::type>
728
+ {
729
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
730
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
731
+
732
+ typedef typename traits::static_query<T,
733
+ execution::mapping_t::thread_t>::result_type result_type;
734
+
735
+ static ASIO_CONSTEXPR result_type value()
736
+ {
737
+ return traits::static_query<T, execution::mapping_t::thread_t>::value();
738
+ }
739
+ };
740
+
741
+ template <typename T>
742
+ struct static_query<T, execution::mapping_t,
743
+ typename enable_if<
744
+ !traits::query_static_constexpr_member<T, execution::mapping_t>::is_valid
745
+ && !traits::query_member<T, execution::mapping_t>::is_valid
746
+ && !traits::static_query<T, execution::mapping_t::thread_t>::is_valid
747
+ && traits::static_query<T, execution::mapping_t::new_thread_t>::is_valid
748
+ >::type>
749
+ {
750
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
751
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
752
+
753
+ typedef typename traits::static_query<T,
754
+ execution::mapping_t::new_thread_t>::result_type result_type;
755
+
756
+ static ASIO_CONSTEXPR result_type value()
757
+ {
758
+ return traits::static_query<T, execution::mapping_t::new_thread_t>::value();
759
+ }
760
+ };
761
+
762
+ template <typename T>
763
+ struct static_query<T, execution::mapping_t,
764
+ typename enable_if<
765
+ !traits::query_static_constexpr_member<T, execution::mapping_t>::is_valid
766
+ && !traits::query_member<T, execution::mapping_t>::is_valid
767
+ && !traits::static_query<T, execution::mapping_t::thread_t>::is_valid
768
+ && !traits::static_query<T, execution::mapping_t::new_thread_t>::is_valid
769
+ && traits::static_query<T, execution::mapping_t::other_t>::is_valid
770
+ >::type>
771
+ {
772
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
773
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
774
+
775
+ typedef typename traits::static_query<T,
776
+ execution::mapping_t::other_t>::result_type result_type;
777
+
778
+ static ASIO_CONSTEXPR result_type value()
779
+ {
780
+ return traits::static_query<T, execution::mapping_t::other_t>::value();
781
+ }
782
+ };
783
+
784
+ template <typename T>
785
+ struct static_query<T, execution::mapping_t::thread_t,
786
+ typename enable_if<
787
+ traits::query_static_constexpr_member<T,
788
+ execution::mapping_t::thread_t>::is_valid
789
+ >::type>
790
+ {
791
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
792
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
793
+
794
+ typedef typename traits::query_static_constexpr_member<T,
795
+ execution::mapping_t::thread_t>::result_type result_type;
796
+
797
+ static ASIO_CONSTEXPR result_type value()
798
+ {
799
+ return traits::query_static_constexpr_member<T,
800
+ execution::mapping_t::thread_t>::value();
801
+ }
802
+ };
803
+
804
+ template <typename T>
805
+ struct static_query<T, execution::mapping_t::thread_t,
806
+ typename enable_if<
807
+ !traits::query_static_constexpr_member<T,
808
+ execution::mapping_t::thread_t>::is_valid
809
+ && !traits::query_member<T, execution::mapping_t::thread_t>::is_valid
810
+ && !traits::query_free<T, execution::mapping_t::thread_t>::is_valid
811
+ && !can_query<T, execution::mapping_t::new_thread_t>::value
812
+ && !can_query<T, execution::mapping_t::other_t>::value
813
+ >::type>
814
+ {
815
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
816
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
817
+
818
+ typedef execution::mapping_t::thread_t result_type;
819
+
820
+ static ASIO_CONSTEXPR result_type value()
821
+ {
822
+ return result_type();
823
+ }
824
+ };
825
+
826
+ template <typename T>
827
+ struct static_query<T, execution::mapping_t::new_thread_t,
828
+ typename enable_if<
829
+ traits::query_static_constexpr_member<T,
830
+ execution::mapping_t::new_thread_t>::is_valid
831
+ >::type>
832
+ {
833
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
834
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
835
+
836
+ typedef typename traits::query_static_constexpr_member<T,
837
+ execution::mapping_t::new_thread_t>::result_type result_type;
838
+
839
+ static ASIO_CONSTEXPR result_type value()
840
+ {
841
+ return traits::query_static_constexpr_member<T,
842
+ execution::mapping_t::new_thread_t>::value();
843
+ }
844
+ };
845
+
846
+ template <typename T>
847
+ struct static_query<T, execution::mapping_t::other_t,
848
+ typename enable_if<
849
+ traits::query_static_constexpr_member<T,
850
+ execution::mapping_t::other_t>::is_valid
851
+ >::type>
852
+ {
853
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
854
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
855
+
856
+ typedef typename traits::query_static_constexpr_member<T,
857
+ execution::mapping_t::other_t>::result_type result_type;
858
+
859
+ static ASIO_CONSTEXPR result_type value()
860
+ {
861
+ return traits::query_static_constexpr_member<T,
862
+ execution::mapping_t::other_t>::value();
863
+ }
864
+ };
865
+
866
+ #endif // !defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
867
+ // || !defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
868
+
869
+ #if !defined(ASIO_HAS_DEDUCED_STATIC_REQUIRE_TRAIT)
870
+
871
+ template <typename T>
872
+ struct static_require<T, execution::mapping_t::thread_t,
873
+ typename enable_if<
874
+ static_query<T, execution::mapping_t::thread_t>::is_valid
875
+ >::type>
876
+ {
877
+ ASIO_STATIC_CONSTEXPR(bool, is_valid =
878
+ (is_same<typename static_query<T,
879
+ execution::mapping_t::thread_t>::result_type,
880
+ execution::mapping_t::thread_t>::value));
881
+ };
882
+
883
+ template <typename T>
884
+ struct static_require<T, execution::mapping_t::new_thread_t,
885
+ typename enable_if<
886
+ static_query<T, execution::mapping_t::new_thread_t>::is_valid
887
+ >::type>
888
+ {
889
+ ASIO_STATIC_CONSTEXPR(bool, is_valid =
890
+ (is_same<typename static_query<T,
891
+ execution::mapping_t::new_thread_t>::result_type,
892
+ execution::mapping_t::new_thread_t>::value));
893
+ };
894
+
895
+ template <typename T>
896
+ struct static_require<T, execution::mapping_t::other_t,
897
+ typename enable_if<
898
+ static_query<T, execution::mapping_t::other_t>::is_valid
899
+ >::type>
900
+ {
901
+ ASIO_STATIC_CONSTEXPR(bool, is_valid =
902
+ (is_same<typename static_query<T,
903
+ execution::mapping_t::other_t>::result_type,
904
+ execution::mapping_t::other_t>::value));
905
+ };
906
+
907
+ #endif // !defined(ASIO_HAS_DEDUCED_STATIC_REQUIRE_TRAIT)
908
+
909
+ } // namespace traits
910
+
911
+ #endif // defined(GENERATING_DOCUMENTATION)
912
+
913
+ } // namespace asio
914
+
915
+ #include "asio/detail/pop_options.hpp"
916
+
917
+ #endif // ASIO_EXECUTION_MAPPING_HPP