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,1064 @@
1
+ //
2
+ // execution/blocking_adaptation.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_BLOCKING_ADAPTATION_HPP
12
+ #define ASIO_EXECUTION_BLOCKING_ADAPTATION_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/event.hpp"
20
+ #include "asio/detail/mutex.hpp"
21
+ #include "asio/detail/type_traits.hpp"
22
+ #include "asio/execution/execute.hpp"
23
+ #include "asio/execution/executor.hpp"
24
+ #include "asio/execution/scheduler.hpp"
25
+ #include "asio/execution/sender.hpp"
26
+ #include "asio/is_applicable_property.hpp"
27
+ #include "asio/prefer.hpp"
28
+ #include "asio/query.hpp"
29
+ #include "asio/require.hpp"
30
+ #include "asio/traits/prefer_member.hpp"
31
+ #include "asio/traits/query_free.hpp"
32
+ #include "asio/traits/query_member.hpp"
33
+ #include "asio/traits/query_static_constexpr_member.hpp"
34
+ #include "asio/traits/require_member.hpp"
35
+ #include "asio/traits/static_query.hpp"
36
+ #include "asio/traits/static_require.hpp"
37
+
38
+ #include "asio/detail/push_options.hpp"
39
+
40
+ namespace asio {
41
+
42
+ #if defined(GENERATING_DOCUMENTATION)
43
+
44
+ namespace execution {
45
+
46
+ /// A property to describe whether automatic adaptation of an executor is
47
+ /// allowed in order to apply the blocking_adaptation_t::allowed_t property.
48
+ struct blocking_adaptation_t
49
+ {
50
+ /// The blocking_adaptation_t property applies to executors, senders, and
51
+ /// schedulers.
52
+ template <typename T>
53
+ static constexpr bool is_applicable_property_v =
54
+ is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
55
+
56
+ /// The top-level blocking_adaptation_t property cannot be required.
57
+ static constexpr bool is_requirable = false;
58
+
59
+ /// The top-level blocking_adaptation_t property cannot be preferred.
60
+ static constexpr bool is_preferable = false;
61
+
62
+ /// The type returned by queries against an @c any_executor.
63
+ typedef blocking_adaptation_t polymorphic_query_result_type;
64
+
65
+ /// A sub-property that indicates that automatic adaptation is not allowed.
66
+ struct disallowed_t
67
+ {
68
+ /// The blocking_adaptation_t::disallowed_t property applies to executors,
69
+ /// senders, and schedulers.
70
+ template <typename T>
71
+ static constexpr bool is_applicable_property_v =
72
+ is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
73
+
74
+ /// The blocking_adaptation_t::disallowed_t property can be required.
75
+ static constexpr bool is_requirable = true;
76
+
77
+ /// The blocking_adaptation_t::disallowed_t property can be preferred.
78
+ static constexpr bool is_preferable = true;
79
+
80
+ /// The type returned by queries against an @c any_executor.
81
+ typedef blocking_adaptation_t polymorphic_query_result_type;
82
+
83
+ /// Default constructor.
84
+ constexpr disallowed_t();
85
+
86
+ /// Get the value associated with a property object.
87
+ /**
88
+ * @returns disallowed_t();
89
+ */
90
+ static constexpr blocking_adaptation_t value();
91
+ };
92
+
93
+ /// A sub-property that indicates that automatic adaptation is allowed.
94
+ struct allowed_t
95
+ {
96
+ /// The blocking_adaptation_t::allowed_t property applies to executors,
97
+ /// senders, and schedulers.
98
+ template <typename T>
99
+ static constexpr bool is_applicable_property_v =
100
+ is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
101
+
102
+ /// The blocking_adaptation_t::allowed_t property can be required.
103
+ static constexpr bool is_requirable = true;
104
+
105
+ /// The blocking_adaptation_t::allowed_t property can be preferred.
106
+ static constexpr bool is_preferable = false;
107
+
108
+ /// The type returned by queries against an @c any_executor.
109
+ typedef blocking_adaptation_t polymorphic_query_result_type;
110
+
111
+ /// Default constructor.
112
+ constexpr allowed_t();
113
+
114
+ /// Get the value associated with a property object.
115
+ /**
116
+ * @returns allowed_t();
117
+ */
118
+ static constexpr blocking_adaptation_t value();
119
+ };
120
+
121
+ /// A special value used for accessing the blocking_adaptation_t::disallowed_t
122
+ /// property.
123
+ static constexpr disallowed_t disallowed;
124
+
125
+ /// A special value used for accessing the blocking_adaptation_t::allowed_t
126
+ /// property.
127
+ static constexpr allowed_t allowed;
128
+
129
+ /// Default constructor.
130
+ constexpr blocking_adaptation_t();
131
+
132
+ /// Construct from a sub-property value.
133
+ constexpr blocking_adaptation_t(disallowed_t);
134
+
135
+ /// Construct from a sub-property value.
136
+ constexpr blocking_adaptation_t(allowed_t);
137
+
138
+ /// Compare property values for equality.
139
+ friend constexpr bool operator==(
140
+ const blocking_adaptation_t& a, const blocking_adaptation_t& b) noexcept;
141
+
142
+ /// Compare property values for inequality.
143
+ friend constexpr bool operator!=(
144
+ const blocking_adaptation_t& a, const blocking_adaptation_t& b) noexcept;
145
+ };
146
+
147
+ /// A special value used for accessing the blocking_adaptation_t property.
148
+ constexpr blocking_adaptation_t blocking_adaptation;
149
+
150
+ } // namespace execution
151
+
152
+ #else // defined(GENERATING_DOCUMENTATION)
153
+
154
+ namespace execution {
155
+ namespace detail {
156
+ namespace blocking_adaptation {
157
+
158
+ template <int I> struct disallowed_t;
159
+ template <int I> struct allowed_t;
160
+
161
+ } // namespace blocking_adaptation
162
+
163
+ template <int I = 0>
164
+ struct blocking_adaptation_t
165
+ {
166
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
167
+ template <typename T>
168
+ ASIO_STATIC_CONSTEXPR(bool,
169
+ is_applicable_property_v = is_executor<T>::value
170
+ || is_sender<T>::value || is_scheduler<T>::value);
171
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
172
+
173
+ ASIO_STATIC_CONSTEXPR(bool, is_requirable = false);
174
+ ASIO_STATIC_CONSTEXPR(bool, is_preferable = false);
175
+ typedef blocking_adaptation_t polymorphic_query_result_type;
176
+
177
+ typedef detail::blocking_adaptation::disallowed_t<I> disallowed_t;
178
+ typedef detail::blocking_adaptation::allowed_t<I> allowed_t;
179
+
180
+ ASIO_CONSTEXPR blocking_adaptation_t()
181
+ : value_(-1)
182
+ {
183
+ }
184
+
185
+ ASIO_CONSTEXPR blocking_adaptation_t(disallowed_t)
186
+ : value_(0)
187
+ {
188
+ }
189
+
190
+ ASIO_CONSTEXPR blocking_adaptation_t(allowed_t)
191
+ : value_(1)
192
+ {
193
+ }
194
+
195
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
196
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
197
+ template <typename T>
198
+ static ASIO_CONSTEXPR
199
+ typename traits::query_static_constexpr_member<
200
+ T, blocking_adaptation_t>::result_type
201
+ static_query()
202
+ ASIO_NOEXCEPT_IF((
203
+ traits::query_static_constexpr_member<
204
+ T, blocking_adaptation_t
205
+ >::is_noexcept))
206
+ {
207
+ return traits::query_static_constexpr_member<
208
+ T, blocking_adaptation_t>::value();
209
+ }
210
+
211
+ template <typename T>
212
+ static ASIO_CONSTEXPR
213
+ typename traits::static_query<T, disallowed_t>::result_type
214
+ static_query(
215
+ typename enable_if<
216
+ !traits::query_static_constexpr_member<
217
+ T, blocking_adaptation_t>::is_valid
218
+ && !traits::query_member<T, blocking_adaptation_t>::is_valid
219
+ && traits::static_query<T, disallowed_t>::is_valid
220
+ >::type* = 0) ASIO_NOEXCEPT
221
+ {
222
+ return traits::static_query<T, disallowed_t>::value();
223
+ }
224
+
225
+ template <typename T>
226
+ static ASIO_CONSTEXPR
227
+ typename traits::static_query<T, allowed_t>::result_type
228
+ static_query(
229
+ typename enable_if<
230
+ !traits::query_static_constexpr_member<
231
+ T, blocking_adaptation_t>::is_valid
232
+ && !traits::query_member<T, blocking_adaptation_t>::is_valid
233
+ && !traits::static_query<T, disallowed_t>::is_valid
234
+ && traits::static_query<T, allowed_t>::is_valid
235
+ >::type* = 0) ASIO_NOEXCEPT
236
+ {
237
+ return traits::static_query<T, allowed_t>::value();
238
+ }
239
+
240
+ template <typename E,
241
+ typename T = decltype(blocking_adaptation_t::static_query<E>())>
242
+ static ASIO_CONSTEXPR const T static_query_v
243
+ = blocking_adaptation_t::static_query<E>();
244
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
245
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
246
+
247
+ friend ASIO_CONSTEXPR bool operator==(
248
+ const blocking_adaptation_t& a, const blocking_adaptation_t& b)
249
+ {
250
+ return a.value_ == b.value_;
251
+ }
252
+
253
+ friend ASIO_CONSTEXPR bool operator!=(
254
+ const blocking_adaptation_t& a, const blocking_adaptation_t& b)
255
+ {
256
+ return a.value_ != b.value_;
257
+ }
258
+
259
+ struct convertible_from_blocking_adaptation_t
260
+ {
261
+ ASIO_CONSTEXPR convertible_from_blocking_adaptation_t(
262
+ blocking_adaptation_t)
263
+ {
264
+ }
265
+ };
266
+
267
+ template <typename Executor>
268
+ friend ASIO_CONSTEXPR blocking_adaptation_t query(
269
+ const Executor& ex, convertible_from_blocking_adaptation_t,
270
+ typename enable_if<
271
+ can_query<const Executor&, disallowed_t>::value
272
+ >::type* = 0)
273
+ #if !defined(__clang__) // Clang crashes if noexcept is used here.
274
+ #if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
275
+ ASIO_NOEXCEPT_IF((
276
+ is_nothrow_query<const Executor&,
277
+ blocking_adaptation_t<>::disallowed_t>::value))
278
+ #else // defined(ASIO_MSVC)
279
+ ASIO_NOEXCEPT_IF((
280
+ is_nothrow_query<const Executor&, disallowed_t>::value))
281
+ #endif // defined(ASIO_MSVC)
282
+ #endif // !defined(__clang__)
283
+ {
284
+ return asio::query(ex, disallowed_t());
285
+ }
286
+
287
+ template <typename Executor>
288
+ friend ASIO_CONSTEXPR blocking_adaptation_t query(
289
+ const Executor& ex, convertible_from_blocking_adaptation_t,
290
+ typename enable_if<
291
+ !can_query<const Executor&, disallowed_t>::value
292
+ && can_query<const Executor&, allowed_t>::value
293
+ >::type* = 0)
294
+ #if !defined(__clang__) // Clang crashes if noexcept is used here.
295
+ #if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
296
+ ASIO_NOEXCEPT_IF((
297
+ is_nothrow_query<const Executor&,
298
+ blocking_adaptation_t<>::allowed_t>::value))
299
+ #else // defined(ASIO_MSVC)
300
+ ASIO_NOEXCEPT_IF((
301
+ is_nothrow_query<const Executor&, allowed_t>::value))
302
+ #endif // defined(ASIO_MSVC)
303
+ #endif // !defined(__clang__)
304
+ {
305
+ return asio::query(ex, allowed_t());
306
+ }
307
+
308
+ ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(disallowed_t, disallowed);
309
+ ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(allowed_t, allowed);
310
+
311
+ #if !defined(ASIO_HAS_CONSTEXPR)
312
+ static const blocking_adaptation_t instance;
313
+ #endif // !defined(ASIO_HAS_CONSTEXPR)
314
+
315
+ private:
316
+ int value_;
317
+ };
318
+
319
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
320
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
321
+ template <int I> template <typename E, typename T>
322
+ const T blocking_adaptation_t<I>::static_query_v;
323
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
324
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
325
+
326
+ #if !defined(ASIO_HAS_CONSTEXPR)
327
+ template <int I>
328
+ const blocking_adaptation_t<I> blocking_adaptation_t<I>::instance;
329
+ #endif
330
+
331
+ template <int I>
332
+ const typename blocking_adaptation_t<I>::disallowed_t
333
+ blocking_adaptation_t<I>::disallowed;
334
+
335
+ template <int I>
336
+ const typename blocking_adaptation_t<I>::allowed_t
337
+ blocking_adaptation_t<I>::allowed;
338
+
339
+ namespace blocking_adaptation {
340
+
341
+ template <int I = 0>
342
+ struct disallowed_t
343
+ {
344
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
345
+ template <typename T>
346
+ ASIO_STATIC_CONSTEXPR(bool,
347
+ is_applicable_property_v = is_executor<T>::value
348
+ || is_sender<T>::value || is_scheduler<T>::value);
349
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
350
+
351
+ ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
352
+ ASIO_STATIC_CONSTEXPR(bool, is_preferable = true);
353
+ typedef blocking_adaptation_t<I> polymorphic_query_result_type;
354
+
355
+ ASIO_CONSTEXPR disallowed_t()
356
+ {
357
+ }
358
+
359
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
360
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
361
+ template <typename T>
362
+ static ASIO_CONSTEXPR
363
+ typename traits::query_static_constexpr_member<T, disallowed_t>::result_type
364
+ static_query()
365
+ ASIO_NOEXCEPT_IF((
366
+ traits::query_static_constexpr_member<T, disallowed_t>::is_noexcept))
367
+ {
368
+ return traits::query_static_constexpr_member<T, disallowed_t>::value();
369
+ }
370
+
371
+ template <typename T>
372
+ static ASIO_CONSTEXPR disallowed_t static_query(
373
+ typename enable_if<
374
+ !traits::query_static_constexpr_member<T, disallowed_t>::is_valid
375
+ && !traits::query_member<T, disallowed_t>::is_valid
376
+ && !traits::query_free<T, disallowed_t>::is_valid
377
+ && !can_query<T, allowed_t<I> >::value
378
+ >::type* = 0) ASIO_NOEXCEPT
379
+ {
380
+ return disallowed_t();
381
+ }
382
+
383
+ template <typename E, typename T = decltype(disallowed_t::static_query<E>())>
384
+ static ASIO_CONSTEXPR const T static_query_v
385
+ = disallowed_t::static_query<E>();
386
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
387
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
388
+
389
+ static ASIO_CONSTEXPR blocking_adaptation_t<I> value()
390
+ {
391
+ return disallowed_t();
392
+ }
393
+
394
+ friend ASIO_CONSTEXPR bool operator==(
395
+ const disallowed_t&, const disallowed_t&)
396
+ {
397
+ return true;
398
+ }
399
+
400
+ friend ASIO_CONSTEXPR bool operator!=(
401
+ const disallowed_t&, const disallowed_t&)
402
+ {
403
+ return false;
404
+ }
405
+ };
406
+
407
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
408
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
409
+ template <int I> template <typename E, typename T>
410
+ const T disallowed_t<I>::static_query_v;
411
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
412
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
413
+
414
+ template <typename Executor>
415
+ class adapter
416
+ {
417
+ public:
418
+ adapter(int, const Executor& e) ASIO_NOEXCEPT
419
+ : executor_(e)
420
+ {
421
+ }
422
+
423
+ adapter(const adapter& other) ASIO_NOEXCEPT
424
+ : executor_(other.executor_)
425
+ {
426
+ }
427
+
428
+ #if defined(ASIO_HAS_MOVE)
429
+ adapter(adapter&& other) ASIO_NOEXCEPT
430
+ : executor_(ASIO_MOVE_CAST(Executor)(other.executor_))
431
+ {
432
+ }
433
+ #endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
434
+
435
+ template <int I>
436
+ static ASIO_CONSTEXPR allowed_t<I> query(
437
+ blocking_adaptation_t<I>) ASIO_NOEXCEPT
438
+ {
439
+ return allowed_t<I>();
440
+ }
441
+
442
+ template <int I>
443
+ static ASIO_CONSTEXPR allowed_t<I> query(
444
+ allowed_t<I>) ASIO_NOEXCEPT
445
+ {
446
+ return allowed_t<I>();
447
+ }
448
+
449
+ template <int I>
450
+ static ASIO_CONSTEXPR allowed_t<I> query(
451
+ disallowed_t<I>) ASIO_NOEXCEPT
452
+ {
453
+ return allowed_t<I>();
454
+ }
455
+
456
+ template <typename Property>
457
+ typename enable_if<
458
+ can_query<const Executor&, Property>::value,
459
+ typename query_result<const Executor&, Property>::type
460
+ >::type query(const Property& p) const
461
+ ASIO_NOEXCEPT_IF((
462
+ is_nothrow_query<const Executor&, Property>::value))
463
+ {
464
+ return asio::query(executor_, p);
465
+ }
466
+
467
+ template <int I>
468
+ Executor require(disallowed_t<I>) const ASIO_NOEXCEPT
469
+ {
470
+ return executor_;
471
+ }
472
+
473
+ template <typename Property>
474
+ typename enable_if<
475
+ can_require<const Executor&, Property>::value,
476
+ adapter<typename decay<
477
+ typename require_result<const Executor&, Property>::type
478
+ >::type>
479
+ >::type require(const Property& p) const
480
+ ASIO_NOEXCEPT_IF((
481
+ is_nothrow_require<const Executor&, Property>::value))
482
+ {
483
+ return adapter<typename decay<
484
+ typename require_result<const Executor&, Property>::type
485
+ >::type>(0, asio::require(executor_, p));
486
+ }
487
+
488
+ template <typename Property>
489
+ typename enable_if<
490
+ can_prefer<const Executor&, Property>::value,
491
+ adapter<typename decay<
492
+ typename prefer_result<const Executor&, Property>::type
493
+ >::type>
494
+ >::type prefer(const Property& p) const
495
+ ASIO_NOEXCEPT_IF((
496
+ is_nothrow_prefer<const Executor&, Property>::value))
497
+ {
498
+ return adapter<typename decay<
499
+ typename prefer_result<const Executor&, Property>::type
500
+ >::type>(0, asio::prefer(executor_, p));
501
+ }
502
+
503
+ template <typename Function>
504
+ typename enable_if<
505
+ execution::can_execute<const Executor&, Function>::value
506
+ >::type execute(ASIO_MOVE_ARG(Function) f) const
507
+ {
508
+ execution::execute(executor_, ASIO_MOVE_CAST(Function)(f));
509
+ }
510
+
511
+ friend bool operator==(const adapter& a, const adapter& b) ASIO_NOEXCEPT
512
+ {
513
+ return a.executor_ == b.executor_;
514
+ }
515
+
516
+ friend bool operator!=(const adapter& a, const adapter& b) ASIO_NOEXCEPT
517
+ {
518
+ return a.executor_ != b.executor_;
519
+ }
520
+
521
+ private:
522
+ Executor executor_;
523
+ };
524
+
525
+ template <int I = 0>
526
+ struct allowed_t
527
+ {
528
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
529
+ template <typename T>
530
+ ASIO_STATIC_CONSTEXPR(bool,
531
+ is_applicable_property_v = is_executor<T>::value
532
+ || is_sender<T>::value || is_scheduler<T>::value);
533
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
534
+
535
+ ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
536
+ ASIO_STATIC_CONSTEXPR(bool, is_preferable = false);
537
+ typedef blocking_adaptation_t<I> polymorphic_query_result_type;
538
+
539
+ ASIO_CONSTEXPR allowed_t()
540
+ {
541
+ }
542
+
543
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
544
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
545
+ template <typename T>
546
+ static ASIO_CONSTEXPR
547
+ typename traits::query_static_constexpr_member<T, allowed_t>::result_type
548
+ static_query()
549
+ ASIO_NOEXCEPT_IF((
550
+ traits::query_static_constexpr_member<T, allowed_t>::is_noexcept))
551
+ {
552
+ return traits::query_static_constexpr_member<T, allowed_t>::value();
553
+ }
554
+
555
+ template <typename E, typename T = decltype(allowed_t::static_query<E>())>
556
+ static ASIO_CONSTEXPR const T static_query_v
557
+ = allowed_t::static_query<E>();
558
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
559
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
560
+
561
+ static ASIO_CONSTEXPR blocking_adaptation_t<I> value()
562
+ {
563
+ return allowed_t();
564
+ }
565
+
566
+ friend ASIO_CONSTEXPR bool operator==(
567
+ const allowed_t&, const allowed_t&)
568
+ {
569
+ return true;
570
+ }
571
+
572
+ friend ASIO_CONSTEXPR bool operator!=(
573
+ const allowed_t&, const allowed_t&)
574
+ {
575
+ return false;
576
+ }
577
+
578
+ template <typename Executor>
579
+ friend adapter<Executor> require(
580
+ const Executor& e, const allowed_t&,
581
+ typename enable_if<
582
+ is_executor<Executor>::value
583
+ >::type* = 0)
584
+ {
585
+ return adapter<Executor>(0, e);
586
+ }
587
+ };
588
+
589
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
590
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
591
+ template <int I> template <typename E, typename T>
592
+ const T allowed_t<I>::static_query_v;
593
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
594
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
595
+
596
+ template <typename Function>
597
+ class blocking_execute_state
598
+ {
599
+ public:
600
+ template <typename F>
601
+ blocking_execute_state(ASIO_MOVE_ARG(F) f)
602
+ : func_(ASIO_MOVE_CAST(F)(f)),
603
+ is_complete_(false)
604
+ {
605
+ }
606
+
607
+ template <typename Executor>
608
+ void execute_and_wait(ASIO_MOVE_ARG(Executor) ex)
609
+ {
610
+ handler h = { this };
611
+ execution::execute(ASIO_MOVE_CAST(Executor)(ex), h);
612
+ asio::detail::mutex::scoped_lock lock(mutex_);
613
+ while (!is_complete_)
614
+ event_.wait(lock);
615
+ }
616
+
617
+ struct cleanup
618
+ {
619
+ ~cleanup()
620
+ {
621
+ asio::detail::mutex::scoped_lock lock(state_->mutex_);
622
+ state_->is_complete_ = true;
623
+ state_->event_.unlock_and_signal_one_for_destruction(lock);
624
+ }
625
+
626
+ blocking_execute_state* state_;
627
+ };
628
+
629
+ struct handler
630
+ {
631
+ void operator()()
632
+ {
633
+ cleanup c = { state_ };
634
+ state_->func_();
635
+ }
636
+
637
+ blocking_execute_state* state_;
638
+ };
639
+
640
+ Function func_;
641
+ asio::detail::mutex mutex_;
642
+ asio::detail::event event_;
643
+ bool is_complete_;
644
+ };
645
+
646
+ template <typename Executor, typename Function>
647
+ void blocking_execute(
648
+ ASIO_MOVE_ARG(Executor) ex,
649
+ ASIO_MOVE_ARG(Function) func)
650
+ {
651
+ typedef typename decay<Function>::type func_t;
652
+ blocking_execute_state<func_t> state(ASIO_MOVE_CAST(Function)(func));
653
+ state.execute_and_wait(ex);
654
+ }
655
+
656
+ } // namespace blocking_adaptation
657
+ } // namespace detail
658
+
659
+ typedef detail::blocking_adaptation_t<> blocking_adaptation_t;
660
+
661
+ #if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION)
662
+ constexpr blocking_adaptation_t blocking_adaptation;
663
+ #else // defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION)
664
+ namespace { static const blocking_adaptation_t&
665
+ blocking_adaptation = blocking_adaptation_t::instance; }
666
+ #endif
667
+
668
+ } // namespace execution
669
+
670
+ #if !defined(ASIO_HAS_VARIABLE_TEMPLATES)
671
+
672
+ template <typename T>
673
+ struct is_applicable_property<T, execution::blocking_adaptation_t>
674
+ : integral_constant<bool,
675
+ execution::is_executor<T>::value
676
+ || execution::is_sender<T>::value
677
+ || execution::is_scheduler<T>::value>
678
+ {
679
+ };
680
+
681
+ template <typename T>
682
+ struct is_applicable_property<T, execution::blocking_adaptation_t::disallowed_t>
683
+ : integral_constant<bool,
684
+ execution::is_executor<T>::value
685
+ || execution::is_sender<T>::value
686
+ || execution::is_scheduler<T>::value>
687
+ {
688
+ };
689
+
690
+ template <typename T>
691
+ struct is_applicable_property<T, execution::blocking_adaptation_t::allowed_t>
692
+ : integral_constant<bool,
693
+ execution::is_executor<T>::value
694
+ || execution::is_sender<T>::value
695
+ || execution::is_scheduler<T>::value>
696
+ {
697
+ };
698
+
699
+ #endif // !defined(ASIO_HAS_VARIABLE_TEMPLATES)
700
+
701
+ namespace traits {
702
+
703
+ #if !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
704
+
705
+ template <typename T>
706
+ struct query_free_default<T, execution::blocking_adaptation_t,
707
+ typename enable_if<
708
+ can_query<T, execution::blocking_adaptation_t::disallowed_t>::value
709
+ >::type>
710
+ {
711
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
712
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = (is_nothrow_query<T,
713
+ execution::blocking_adaptation_t::disallowed_t>::value));
714
+
715
+ typedef execution::blocking_adaptation_t result_type;
716
+ };
717
+
718
+ template <typename T>
719
+ struct query_free_default<T, execution::blocking_adaptation_t,
720
+ typename enable_if<
721
+ !can_query<T, execution::blocking_adaptation_t::disallowed_t>::value
722
+ && can_query<T, execution::blocking_adaptation_t::allowed_t>::value
723
+ >::type>
724
+ {
725
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
726
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
727
+ (is_nothrow_query<T, execution::blocking_adaptation_t::allowed_t>::value));
728
+
729
+ typedef execution::blocking_adaptation_t result_type;
730
+ };
731
+
732
+ #endif // !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
733
+
734
+ #if !defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
735
+ || !defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
736
+
737
+ template <typename T>
738
+ struct static_query<T, execution::blocking_adaptation_t,
739
+ typename enable_if<
740
+ traits::query_static_constexpr_member<T,
741
+ execution::blocking_adaptation_t>::is_valid
742
+ >::type>
743
+ {
744
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
745
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
746
+
747
+ typedef typename traits::query_static_constexpr_member<T,
748
+ execution::blocking_adaptation_t>::result_type result_type;
749
+
750
+ static ASIO_CONSTEXPR result_type value()
751
+ {
752
+ return traits::query_static_constexpr_member<T,
753
+ execution::blocking_adaptation_t>::value();
754
+ }
755
+ };
756
+
757
+ template <typename T>
758
+ struct static_query<T, execution::blocking_adaptation_t,
759
+ typename enable_if<
760
+ !traits::query_static_constexpr_member<T,
761
+ execution::blocking_adaptation_t>::is_valid
762
+ && !traits::query_member<T,
763
+ execution::blocking_adaptation_t>::is_valid
764
+ && traits::static_query<T,
765
+ execution::blocking_adaptation_t::disallowed_t>::is_valid
766
+ >::type>
767
+ {
768
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
769
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
770
+
771
+ typedef typename traits::static_query<T,
772
+ execution::blocking_adaptation_t::disallowed_t>::result_type result_type;
773
+
774
+ static ASIO_CONSTEXPR result_type value()
775
+ {
776
+ return traits::static_query<T,
777
+ execution::blocking_adaptation_t::disallowed_t>::value();
778
+ }
779
+ };
780
+
781
+ template <typename T>
782
+ struct static_query<T, execution::blocking_adaptation_t,
783
+ typename enable_if<
784
+ !traits::query_static_constexpr_member<T,
785
+ execution::blocking_adaptation_t>::is_valid
786
+ && !traits::query_member<T,
787
+ execution::blocking_adaptation_t>::is_valid
788
+ && !traits::static_query<T,
789
+ execution::blocking_adaptation_t::disallowed_t>::is_valid
790
+ && traits::static_query<T,
791
+ execution::blocking_adaptation_t::allowed_t>::is_valid
792
+ >::type>
793
+ {
794
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
795
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
796
+
797
+ typedef typename traits::static_query<T,
798
+ execution::blocking_adaptation_t::allowed_t>::result_type result_type;
799
+
800
+ static ASIO_CONSTEXPR result_type value()
801
+ {
802
+ return traits::static_query<T,
803
+ execution::blocking_adaptation_t::allowed_t>::value();
804
+ }
805
+ };
806
+
807
+ template <typename T>
808
+ struct static_query<T, execution::blocking_adaptation_t::disallowed_t,
809
+ typename enable_if<
810
+ traits::query_static_constexpr_member<T,
811
+ execution::blocking_adaptation_t::disallowed_t>::is_valid
812
+ >::type>
813
+ {
814
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
815
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
816
+
817
+ typedef typename traits::query_static_constexpr_member<T,
818
+ execution::blocking_adaptation_t::disallowed_t>::result_type result_type;
819
+
820
+ static ASIO_CONSTEXPR result_type value()
821
+ {
822
+ return traits::query_static_constexpr_member<T,
823
+ execution::blocking_adaptation_t::disallowed_t>::value();
824
+ }
825
+ };
826
+
827
+ template <typename T>
828
+ struct static_query<T, execution::blocking_adaptation_t::disallowed_t,
829
+ typename enable_if<
830
+ !traits::query_static_constexpr_member<T,
831
+ execution::blocking_adaptation_t::disallowed_t>::is_valid
832
+ && !traits::query_member<T,
833
+ execution::blocking_adaptation_t::disallowed_t>::is_valid
834
+ && !traits::query_free<T,
835
+ execution::blocking_adaptation_t::disallowed_t>::is_valid
836
+ && !can_query<T, execution::blocking_adaptation_t::allowed_t>::value
837
+ >::type>
838
+ {
839
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
840
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
841
+
842
+ typedef execution::blocking_adaptation_t::disallowed_t result_type;
843
+
844
+ static ASIO_CONSTEXPR result_type value()
845
+ {
846
+ return result_type();
847
+ }
848
+ };
849
+
850
+ template <typename T>
851
+ struct static_query<T, execution::blocking_adaptation_t::allowed_t,
852
+ typename enable_if<
853
+ traits::query_static_constexpr_member<T,
854
+ execution::blocking_adaptation_t::allowed_t>::is_valid
855
+ >::type>
856
+ {
857
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
858
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
859
+
860
+ typedef typename traits::query_static_constexpr_member<T,
861
+ execution::blocking_adaptation_t::allowed_t>::result_type result_type;
862
+
863
+ static ASIO_CONSTEXPR result_type value()
864
+ {
865
+ return traits::query_static_constexpr_member<T,
866
+ execution::blocking_adaptation_t::allowed_t>::value();
867
+ }
868
+ };
869
+
870
+ #endif // !defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
871
+ // || !defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
872
+
873
+ #if !defined(ASIO_HAS_DEDUCED_STATIC_REQUIRE_TRAIT)
874
+
875
+ template <typename T>
876
+ struct static_require<T, execution::blocking_adaptation_t::disallowed_t,
877
+ typename enable_if<
878
+ static_query<T, execution::blocking_adaptation_t::disallowed_t>::is_valid
879
+ >::type>
880
+ {
881
+ ASIO_STATIC_CONSTEXPR(bool, is_valid =
882
+ (is_same<typename static_query<T,
883
+ execution::blocking_adaptation_t::disallowed_t>::result_type,
884
+ execution::blocking_adaptation_t::disallowed_t>::value));
885
+ };
886
+
887
+ template <typename T>
888
+ struct static_require<T, execution::blocking_adaptation_t::allowed_t,
889
+ typename enable_if<
890
+ static_query<T, execution::blocking_adaptation_t::allowed_t>::is_valid
891
+ >::type>
892
+ {
893
+ ASIO_STATIC_CONSTEXPR(bool, is_valid =
894
+ (is_same<typename static_query<T,
895
+ execution::blocking_adaptation_t::allowed_t>::result_type,
896
+ execution::blocking_adaptation_t::allowed_t>::value));
897
+ };
898
+
899
+ #endif // !defined(ASIO_HAS_DEDUCED_STATIC_REQUIRE_TRAIT)
900
+
901
+ #if !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
902
+
903
+ template <typename T>
904
+ struct require_free_default<T, execution::blocking_adaptation_t::allowed_t,
905
+ typename enable_if<
906
+ is_same<T, typename decay<T>::type>::value
907
+ && execution::is_executor<T>::value
908
+ >::type>
909
+ {
910
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
911
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
912
+ typedef execution::detail::blocking_adaptation::adapter<T> result_type;
913
+ };
914
+
915
+ #endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
916
+
917
+ #if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
918
+
919
+ template <typename Executor>
920
+ struct equality_comparable<
921
+ execution::detail::blocking_adaptation::adapter<Executor> >
922
+ {
923
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
924
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
925
+ };
926
+
927
+ #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
928
+
929
+ #if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
930
+
931
+ template <typename Executor, typename Function>
932
+ struct execute_member<
933
+ execution::detail::blocking_adaptation::adapter<Executor>, Function>
934
+ {
935
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
936
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
937
+ typedef void result_type;
938
+ };
939
+
940
+ #endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
941
+
942
+ #if !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
943
+
944
+ template <typename Executor, int I>
945
+ struct query_static_constexpr_member<
946
+ execution::detail::blocking_adaptation::adapter<Executor>,
947
+ execution::detail::blocking_adaptation_t<I> >
948
+ {
949
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
950
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
951
+ typedef execution::blocking_adaptation_t::allowed_t result_type;
952
+
953
+ static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
954
+ {
955
+ return result_type();
956
+ }
957
+ };
958
+
959
+ template <typename Executor, int I>
960
+ struct query_static_constexpr_member<
961
+ execution::detail::blocking_adaptation::adapter<Executor>,
962
+ execution::detail::blocking_adaptation::allowed_t<I> >
963
+ {
964
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
965
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
966
+ typedef execution::blocking_adaptation_t::allowed_t result_type;
967
+
968
+ static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
969
+ {
970
+ return result_type();
971
+ }
972
+ };
973
+
974
+ template <typename Executor, int I>
975
+ struct query_static_constexpr_member<
976
+ execution::detail::blocking_adaptation::adapter<Executor>,
977
+ execution::detail::blocking_adaptation::disallowed_t<I> >
978
+ {
979
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
980
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
981
+ typedef execution::blocking_adaptation_t::allowed_t result_type;
982
+
983
+ static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
984
+ {
985
+ return result_type();
986
+ }
987
+ };
988
+
989
+ #endif // !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
990
+
991
+ #if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
992
+
993
+ template <typename Executor, typename Property>
994
+ struct query_member<
995
+ execution::detail::blocking_adaptation::adapter<Executor>, Property,
996
+ typename enable_if<
997
+ can_query<const Executor&, Property>::value
998
+ >::type>
999
+ {
1000
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1001
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
1002
+ (is_nothrow_query<Executor, Property>::value));
1003
+ typedef typename query_result<Executor, Property>::type result_type;
1004
+ };
1005
+
1006
+ #endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
1007
+
1008
+ #if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
1009
+
1010
+ template <typename Executor, int I>
1011
+ struct require_member<
1012
+ execution::detail::blocking_adaptation::adapter<Executor>,
1013
+ execution::detail::blocking_adaptation::disallowed_t<I> >
1014
+ {
1015
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1016
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1017
+ typedef Executor result_type;
1018
+ };
1019
+
1020
+ template <typename Executor, typename Property>
1021
+ struct require_member<
1022
+ execution::detail::blocking_adaptation::adapter<Executor>, Property,
1023
+ typename enable_if<
1024
+ can_require<const Executor&, Property>::value
1025
+ >::type>
1026
+ {
1027
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1028
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
1029
+ (is_nothrow_require<Executor, Property>::value));
1030
+ typedef execution::detail::blocking_adaptation::adapter<typename decay<
1031
+ typename require_result<Executor, Property>::type
1032
+ >::type> result_type;
1033
+ };
1034
+
1035
+ #endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
1036
+
1037
+ #if !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT)
1038
+
1039
+ template <typename Executor, typename Property>
1040
+ struct prefer_member<
1041
+ execution::detail::blocking_adaptation::adapter<Executor>, Property,
1042
+ typename enable_if<
1043
+ can_prefer<const Executor&, Property>::value
1044
+ >::type>
1045
+ {
1046
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1047
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
1048
+ (is_nothrow_prefer<Executor, Property>::value));
1049
+ typedef execution::detail::blocking_adaptation::adapter<typename decay<
1050
+ typename prefer_result<Executor, Property>::type
1051
+ >::type> result_type;
1052
+ };
1053
+
1054
+ #endif // !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT)
1055
+
1056
+ } // namespace traits
1057
+
1058
+ #endif // defined(GENERATING_DOCUMENTATION)
1059
+
1060
+ } // namespace asio
1061
+
1062
+ #include "asio/detail/pop_options.hpp"
1063
+
1064
+ #endif // ASIO_EXECUTION_BLOCKING_ADAPTATION_HPP