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,47 @@
1
+ //
2
+ // execution/bad_executor.hpp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
+ //
7
+ // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
+ //
10
+
11
+ #ifndef ASIO_EXECUTION_BAD_EXECUTOR_HPP
12
+ #define ASIO_EXECUTION_BAD_EXECUTOR_HPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include "asio/detail/config.hpp"
19
+ #include <exception>
20
+ #include "asio/detail/push_options.hpp"
21
+
22
+ namespace asio {
23
+ namespace execution {
24
+
25
+ /// Exception thrown when trying to access an empty polymorphic executor.
26
+ class bad_executor
27
+ : public std::exception
28
+ {
29
+ public:
30
+ /// Constructor.
31
+ ASIO_DECL bad_executor() ASIO_NOEXCEPT;
32
+
33
+ /// Obtain message associated with exception.
34
+ ASIO_DECL virtual const char* what() const
35
+ ASIO_NOEXCEPT_OR_NOTHROW;
36
+ };
37
+
38
+ } // namespace execution
39
+ } // namespace asio
40
+
41
+ #include "asio/detail/pop_options.hpp"
42
+
43
+ #if defined(ASIO_HEADER_ONLY)
44
+ # include "asio/execution/impl/bad_executor.ipp"
45
+ #endif // defined(ASIO_HEADER_ONLY)
46
+
47
+ #endif // ASIO_EXECUTION_BAD_EXECUTOR_HPP
@@ -0,0 +1,1351 @@
1
+ //
2
+ // execution/blocking.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_HPP
12
+ #define ASIO_EXECUTION_BLOCKING_HPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include "asio/detail/config.hpp"
19
+ #include "asio/detail/type_traits.hpp"
20
+ #include "asio/execution/execute.hpp"
21
+ #include "asio/execution/executor.hpp"
22
+ #include "asio/execution/scheduler.hpp"
23
+ #include "asio/execution/sender.hpp"
24
+ #include "asio/is_applicable_property.hpp"
25
+ #include "asio/prefer.hpp"
26
+ #include "asio/query.hpp"
27
+ #include "asio/require.hpp"
28
+ #include "asio/traits/query_free.hpp"
29
+ #include "asio/traits/query_member.hpp"
30
+ #include "asio/traits/query_static_constexpr_member.hpp"
31
+ #include "asio/traits/static_query.hpp"
32
+ #include "asio/traits/static_require.hpp"
33
+
34
+ #include "asio/detail/push_options.hpp"
35
+
36
+ namespace asio {
37
+
38
+ #if defined(GENERATING_DOCUMENTATION)
39
+
40
+ namespace execution {
41
+
42
+ /// A property to describe what guarantees an executor makes about the blocking
43
+ /// behaviour of their execution functions.
44
+ struct blocking_t
45
+ {
46
+ /// The blocking_t property applies to executors, senders, and schedulers.
47
+ template <typename T>
48
+ static constexpr bool is_applicable_property_v =
49
+ is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
50
+
51
+ /// The top-level blocking_t property cannot be required.
52
+ static constexpr bool is_requirable = false;
53
+
54
+ /// The top-level blocking_t property cannot be preferred.
55
+ static constexpr bool is_preferable = false;
56
+
57
+ /// The type returned by queries against an @c any_executor.
58
+ typedef blocking_t polymorphic_query_result_type;
59
+
60
+ /// A sub-property that indicates that invocation of an executor's execution
61
+ /// function may block pending completion of one or more invocations of the
62
+ /// submitted function object.
63
+ struct possibly_t
64
+ {
65
+ /// The blocking_t::possibly_t property applies to executors, senders, and
66
+ /// schedulers.
67
+ template <typename T>
68
+ static constexpr bool is_applicable_property_v =
69
+ is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
70
+
71
+ /// The blocking_t::possibly_t property can be required.
72
+ static constexpr bool is_requirable = true;
73
+
74
+ /// The blocking_t::possibly_t property can be preferred.
75
+ static constexpr bool is_preferable = true;
76
+
77
+ /// The type returned by queries against an @c any_executor.
78
+ typedef blocking_t polymorphic_query_result_type;
79
+
80
+ /// Default constructor.
81
+ constexpr possibly_t();
82
+
83
+ /// Get the value associated with a property object.
84
+ /**
85
+ * @returns possibly_t();
86
+ */
87
+ static constexpr blocking_t value();
88
+ };
89
+
90
+ /// A sub-property that indicates that invocation of an executor's execution
91
+ /// function shall block until completion of all invocations of the submitted
92
+ /// function object.
93
+ struct always_t
94
+ {
95
+ /// The blocking_t::always_t property applies to executors, senders, and
96
+ /// schedulers.
97
+ template <typename T>
98
+ static constexpr bool is_applicable_property_v =
99
+ is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
100
+
101
+ /// The blocking_t::always_t property can be required.
102
+ static constexpr bool is_requirable = true;
103
+
104
+ /// The blocking_t::always_t property can be preferred.
105
+ static constexpr bool is_preferable = false;
106
+
107
+ /// The type returned by queries against an @c any_executor.
108
+ typedef blocking_t polymorphic_query_result_type;
109
+
110
+ /// Default constructor.
111
+ constexpr always_t();
112
+
113
+ /// Get the value associated with a property object.
114
+ /**
115
+ * @returns always_t();
116
+ */
117
+ static constexpr blocking_t value();
118
+ };
119
+
120
+ /// A sub-property that indicates that invocation of an executor's execution
121
+ /// function shall not block pending completion of the invocations of the
122
+ /// submitted function object.
123
+ struct never_t
124
+ {
125
+ /// The blocking_t::never_t property applies to executors, senders, and
126
+ /// schedulers.
127
+ template <typename T>
128
+ static constexpr bool is_applicable_property_v =
129
+ is_executor_v<T> || is_sender_v<T> || is_scheduler_v<T>;
130
+
131
+ /// The blocking_t::never_t property can be required.
132
+ static constexpr bool is_requirable = true;
133
+
134
+ /// The blocking_t::never_t property can be preferred.
135
+ static constexpr bool is_preferable = true;
136
+
137
+ /// The type returned by queries against an @c any_executor.
138
+ typedef blocking_t polymorphic_query_result_type;
139
+
140
+ /// Default constructor.
141
+ constexpr never_t();
142
+
143
+ /// Get the value associated with a property object.
144
+ /**
145
+ * @returns never_t();
146
+ */
147
+ static constexpr blocking_t value();
148
+ };
149
+
150
+ /// A special value used for accessing the blocking_t::possibly_t property.
151
+ static constexpr possibly_t possibly;
152
+
153
+ /// A special value used for accessing the blocking_t::always_t property.
154
+ static constexpr always_t always;
155
+
156
+ /// A special value used for accessing the blocking_t::never_t property.
157
+ static constexpr never_t never;
158
+
159
+ /// Default constructor.
160
+ constexpr blocking_t();
161
+
162
+ /// Construct from a sub-property value.
163
+ constexpr blocking_t(possibly_t);
164
+
165
+ /// Construct from a sub-property value.
166
+ constexpr blocking_t(always_t);
167
+
168
+ /// Construct from a sub-property value.
169
+ constexpr blocking_t(never_t);
170
+
171
+ /// Compare property values for equality.
172
+ friend constexpr bool operator==(
173
+ const blocking_t& a, const blocking_t& b) noexcept;
174
+
175
+ /// Compare property values for inequality.
176
+ friend constexpr bool operator!=(
177
+ const blocking_t& a, const blocking_t& b) noexcept;
178
+ };
179
+
180
+ /// A special value used for accessing the blocking_t property.
181
+ constexpr blocking_t blocking;
182
+
183
+ } // namespace execution
184
+
185
+ #else // defined(GENERATING_DOCUMENTATION)
186
+
187
+ namespace execution {
188
+ namespace detail {
189
+ namespace blocking {
190
+
191
+ template <int I> struct possibly_t;
192
+ template <int I> struct always_t;
193
+ template <int I> struct never_t;
194
+
195
+ } // namespace blocking
196
+ namespace blocking_adaptation {
197
+
198
+ template <int I> struct allowed_t;
199
+
200
+ template <typename Executor, typename Function>
201
+ void blocking_execute(
202
+ ASIO_MOVE_ARG(Executor) ex,
203
+ ASIO_MOVE_ARG(Function) func);
204
+
205
+ } // namespace blocking_adaptation
206
+
207
+ template <int I = 0>
208
+ struct blocking_t
209
+ {
210
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
211
+ template <typename T>
212
+ ASIO_STATIC_CONSTEXPR(bool,
213
+ is_applicable_property_v = is_executor<T>::value
214
+ || is_sender<T>::value || is_scheduler<T>::value);
215
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
216
+
217
+ ASIO_STATIC_CONSTEXPR(bool, is_requirable = false);
218
+ ASIO_STATIC_CONSTEXPR(bool, is_preferable = false);
219
+ typedef blocking_t polymorphic_query_result_type;
220
+
221
+ typedef detail::blocking::possibly_t<I> possibly_t;
222
+ typedef detail::blocking::always_t<I> always_t;
223
+ typedef detail::blocking::never_t<I> never_t;
224
+
225
+ ASIO_CONSTEXPR blocking_t()
226
+ : value_(-1)
227
+ {
228
+ }
229
+
230
+ ASIO_CONSTEXPR blocking_t(possibly_t)
231
+ : value_(0)
232
+ {
233
+ }
234
+
235
+ ASIO_CONSTEXPR blocking_t(always_t)
236
+ : value_(1)
237
+ {
238
+ }
239
+
240
+ ASIO_CONSTEXPR blocking_t(never_t)
241
+ : value_(2)
242
+ {
243
+ }
244
+
245
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
246
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
247
+ template <typename T>
248
+ static ASIO_CONSTEXPR
249
+ typename traits::query_static_constexpr_member<T, blocking_t>::result_type
250
+ static_query()
251
+ ASIO_NOEXCEPT_IF((
252
+ traits::query_static_constexpr_member<T, blocking_t>::is_noexcept))
253
+ {
254
+ return traits::query_static_constexpr_member<T, blocking_t>::value();
255
+ }
256
+
257
+ template <typename T>
258
+ static ASIO_CONSTEXPR
259
+ typename traits::static_query<T, possibly_t>::result_type
260
+ static_query(
261
+ typename enable_if<
262
+ !traits::query_static_constexpr_member<T, blocking_t>::is_valid
263
+ && !traits::query_member<T, blocking_t>::is_valid
264
+ && traits::static_query<T, possibly_t>::is_valid
265
+ >::type* = 0) ASIO_NOEXCEPT
266
+ {
267
+ return traits::static_query<T, possibly_t>::value();
268
+ }
269
+
270
+ template <typename T>
271
+ static ASIO_CONSTEXPR
272
+ typename traits::static_query<T, always_t>::result_type
273
+ static_query(
274
+ typename enable_if<
275
+ !traits::query_static_constexpr_member<T, blocking_t>::is_valid
276
+ && !traits::query_member<T, blocking_t>::is_valid
277
+ && !traits::static_query<T, possibly_t>::is_valid
278
+ && traits::static_query<T, always_t>::is_valid
279
+ >::type* = 0) ASIO_NOEXCEPT
280
+ {
281
+ return traits::static_query<T, always_t>::value();
282
+ }
283
+
284
+ template <typename T>
285
+ static ASIO_CONSTEXPR
286
+ typename traits::static_query<T, never_t>::result_type
287
+ static_query(
288
+ typename enable_if<
289
+ !traits::query_static_constexpr_member<T, blocking_t>::is_valid
290
+ && !traits::query_member<T, blocking_t>::is_valid
291
+ && !traits::static_query<T, possibly_t>::is_valid
292
+ && !traits::static_query<T, always_t>::is_valid
293
+ && traits::static_query<T, never_t>::is_valid
294
+ >::type* = 0) ASIO_NOEXCEPT
295
+ {
296
+ return traits::static_query<T, never_t>::value();
297
+ }
298
+
299
+ template <typename E, typename T = decltype(blocking_t::static_query<E>())>
300
+ static ASIO_CONSTEXPR const T static_query_v
301
+ = blocking_t::static_query<E>();
302
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
303
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
304
+
305
+ friend ASIO_CONSTEXPR bool operator==(
306
+ const blocking_t& a, const blocking_t& b)
307
+ {
308
+ return a.value_ == b.value_;
309
+ }
310
+
311
+ friend ASIO_CONSTEXPR bool operator!=(
312
+ const blocking_t& a, const blocking_t& b)
313
+ {
314
+ return a.value_ != b.value_;
315
+ }
316
+
317
+ struct convertible_from_blocking_t
318
+ {
319
+ ASIO_CONSTEXPR convertible_from_blocking_t(blocking_t) {}
320
+ };
321
+
322
+ template <typename Executor>
323
+ friend ASIO_CONSTEXPR blocking_t query(
324
+ const Executor& ex, convertible_from_blocking_t,
325
+ typename enable_if<
326
+ can_query<const Executor&, possibly_t>::value
327
+ >::type* = 0)
328
+ #if !defined(__clang__) // Clang crashes if noexcept is used here.
329
+ #if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
330
+ ASIO_NOEXCEPT_IF((
331
+ is_nothrow_query<const Executor&, blocking_t<>::possibly_t>::value))
332
+ #else // defined(ASIO_MSVC)
333
+ ASIO_NOEXCEPT_IF((
334
+ is_nothrow_query<const Executor&, possibly_t>::value))
335
+ #endif // defined(ASIO_MSVC)
336
+ #endif // !defined(__clang__)
337
+ {
338
+ return asio::query(ex, possibly_t());
339
+ }
340
+
341
+ template <typename Executor>
342
+ friend ASIO_CONSTEXPR blocking_t query(
343
+ const Executor& ex, convertible_from_blocking_t,
344
+ typename enable_if<
345
+ !can_query<const Executor&, possibly_t>::value
346
+ && can_query<const Executor&, always_t>::value
347
+ >::type* = 0)
348
+ #if !defined(__clang__) // Clang crashes if noexcept is used here.
349
+ #if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
350
+ ASIO_NOEXCEPT_IF((
351
+ is_nothrow_query<const Executor&, blocking_t<>::always_t>::value))
352
+ #else // defined(ASIO_MSVC)
353
+ ASIO_NOEXCEPT_IF((
354
+ is_nothrow_query<const Executor&, always_t>::value))
355
+ #endif // defined(ASIO_MSVC)
356
+ #endif // !defined(__clang__)
357
+ {
358
+ return asio::query(ex, always_t());
359
+ }
360
+
361
+ template <typename Executor>
362
+ friend ASIO_CONSTEXPR blocking_t query(
363
+ const Executor& ex, convertible_from_blocking_t,
364
+ typename enable_if<
365
+ !can_query<const Executor&, possibly_t>::value
366
+ && !can_query<const Executor&, always_t>::value
367
+ && can_query<const Executor&, never_t>::value
368
+ >::type* = 0)
369
+ #if !defined(__clang__) // Clang crashes if noexcept is used here.
370
+ #if defined(ASIO_MSVC) // Visual C++ wants the type to be qualified.
371
+ ASIO_NOEXCEPT_IF((
372
+ is_nothrow_query<const Executor&, blocking_t<>::never_t>::value))
373
+ #else // defined(ASIO_MSVC)
374
+ ASIO_NOEXCEPT_IF((
375
+ is_nothrow_query<const Executor&, never_t>::value))
376
+ #endif // defined(ASIO_MSVC)
377
+ #endif // !defined(__clang__)
378
+ {
379
+ return asio::query(ex, never_t());
380
+ }
381
+
382
+ ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(possibly_t, possibly);
383
+ ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(always_t, always);
384
+ ASIO_STATIC_CONSTEXPR_DEFAULT_INIT(never_t, never);
385
+
386
+ #if !defined(ASIO_HAS_CONSTEXPR)
387
+ static const blocking_t instance;
388
+ #endif // !defined(ASIO_HAS_CONSTEXPR)
389
+
390
+ private:
391
+ int value_;
392
+ };
393
+
394
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
395
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
396
+ template <int I> template <typename E, typename T>
397
+ const T blocking_t<I>::static_query_v;
398
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
399
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
400
+
401
+ #if !defined(ASIO_HAS_CONSTEXPR)
402
+ template <int I>
403
+ const blocking_t<I> blocking_t<I>::instance;
404
+ #endif
405
+
406
+ template <int I>
407
+ const typename blocking_t<I>::possibly_t blocking_t<I>::possibly;
408
+
409
+ template <int I>
410
+ const typename blocking_t<I>::always_t blocking_t<I>::always;
411
+
412
+ template <int I>
413
+ const typename blocking_t<I>::never_t blocking_t<I>::never;
414
+
415
+ namespace blocking {
416
+
417
+ template <int I = 0>
418
+ struct possibly_t
419
+ {
420
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
421
+ template <typename T>
422
+ ASIO_STATIC_CONSTEXPR(bool,
423
+ is_applicable_property_v = is_executor<T>::value
424
+ || is_sender<T>::value || is_scheduler<T>::value);
425
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
426
+
427
+ ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
428
+ ASIO_STATIC_CONSTEXPR(bool, is_preferable = true);
429
+ typedef blocking_t<I> polymorphic_query_result_type;
430
+
431
+ ASIO_CONSTEXPR possibly_t()
432
+ {
433
+ }
434
+
435
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
436
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
437
+ template <typename T>
438
+ static ASIO_CONSTEXPR
439
+ typename traits::query_static_constexpr_member<T, possibly_t>::result_type
440
+ static_query()
441
+ ASIO_NOEXCEPT_IF((
442
+ traits::query_static_constexpr_member<T, possibly_t>::is_noexcept))
443
+ {
444
+ return traits::query_static_constexpr_member<T, possibly_t>::value();
445
+ }
446
+
447
+ template <typename T>
448
+ static ASIO_CONSTEXPR possibly_t static_query(
449
+ typename enable_if<
450
+ !traits::query_static_constexpr_member<T, possibly_t>::is_valid
451
+ && !traits::query_member<T, possibly_t>::is_valid
452
+ && !traits::query_free<T, possibly_t>::is_valid
453
+ && !can_query<T, always_t<I> >::value
454
+ && !can_query<T, never_t<I> >::value
455
+ >::type* = 0) ASIO_NOEXCEPT
456
+ {
457
+ return possibly_t();
458
+ }
459
+
460
+ template <typename E, typename T = decltype(possibly_t::static_query<E>())>
461
+ static ASIO_CONSTEXPR const T static_query_v
462
+ = possibly_t::static_query<E>();
463
+ #endif // defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
464
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
465
+
466
+ static ASIO_CONSTEXPR blocking_t<I> value()
467
+ {
468
+ return possibly_t();
469
+ }
470
+
471
+ friend ASIO_CONSTEXPR bool operator==(
472
+ const possibly_t&, const possibly_t&)
473
+ {
474
+ return true;
475
+ }
476
+
477
+ friend ASIO_CONSTEXPR bool operator!=(
478
+ const possibly_t&, const possibly_t&)
479
+ {
480
+ return false;
481
+ }
482
+
483
+ friend ASIO_CONSTEXPR bool operator==(
484
+ const possibly_t&, const always_t<I>&)
485
+ {
486
+ return false;
487
+ }
488
+
489
+ friend ASIO_CONSTEXPR bool operator!=(
490
+ const possibly_t&, const always_t<I>&)
491
+ {
492
+ return true;
493
+ }
494
+
495
+ friend ASIO_CONSTEXPR bool operator==(
496
+ const possibly_t&, const never_t<I>&)
497
+ {
498
+ return false;
499
+ }
500
+
501
+ friend ASIO_CONSTEXPR bool operator!=(
502
+ const possibly_t&, const never_t<I>&)
503
+ {
504
+ return true;
505
+ }
506
+ };
507
+
508
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
509
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
510
+ template <int I> template <typename E, typename T>
511
+ const T possibly_t<I>::static_query_v;
512
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
513
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
514
+
515
+ template <typename Executor>
516
+ class adapter
517
+ {
518
+ public:
519
+ adapter(int, const Executor& e) ASIO_NOEXCEPT
520
+ : executor_(e)
521
+ {
522
+ }
523
+
524
+ adapter(const adapter& other) ASIO_NOEXCEPT
525
+ : executor_(other.executor_)
526
+ {
527
+ }
528
+
529
+ #if defined(ASIO_HAS_MOVE)
530
+ adapter(adapter&& other) ASIO_NOEXCEPT
531
+ : executor_(ASIO_MOVE_CAST(Executor)(other.executor_))
532
+ {
533
+ }
534
+ #endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
535
+
536
+ template <int I>
537
+ static ASIO_CONSTEXPR always_t<I> query(
538
+ blocking_t<I>) ASIO_NOEXCEPT
539
+ {
540
+ return always_t<I>();
541
+ }
542
+
543
+ template <int I>
544
+ static ASIO_CONSTEXPR always_t<I> query(
545
+ possibly_t<I>) ASIO_NOEXCEPT
546
+ {
547
+ return always_t<I>();
548
+ }
549
+
550
+ template <int I>
551
+ static ASIO_CONSTEXPR always_t<I> query(
552
+ always_t<I>) ASIO_NOEXCEPT
553
+ {
554
+ return always_t<I>();
555
+ }
556
+
557
+ template <int I>
558
+ static ASIO_CONSTEXPR always_t<I> query(
559
+ never_t<I>) ASIO_NOEXCEPT
560
+ {
561
+ return always_t<I>();
562
+ }
563
+
564
+ template <typename Property>
565
+ typename enable_if<
566
+ can_query<const Executor&, Property>::value,
567
+ typename query_result<const Executor&, Property>::type
568
+ >::type query(const Property& p) const
569
+ ASIO_NOEXCEPT_IF((
570
+ is_nothrow_query<const Executor&, Property>::value))
571
+ {
572
+ return asio::query(executor_, p);
573
+ }
574
+
575
+ template <int I>
576
+ typename enable_if<
577
+ can_require<const Executor&, possibly_t<I> >::value,
578
+ typename require_result<const Executor&, possibly_t<I> >::type
579
+ >::type require(possibly_t<I>) const ASIO_NOEXCEPT
580
+ {
581
+ return asio::require(executor_, possibly_t<I>());
582
+ }
583
+
584
+ template <int I>
585
+ typename enable_if<
586
+ can_require<const Executor&, never_t<I> >::value,
587
+ typename require_result<const Executor&, never_t<I> >::type
588
+ >::type require(never_t<I>) const ASIO_NOEXCEPT
589
+ {
590
+ return asio::require(executor_, never_t<I>());
591
+ }
592
+
593
+ template <typename Property>
594
+ typename enable_if<
595
+ can_require<const Executor&, Property>::value,
596
+ adapter<typename decay<
597
+ typename require_result<const Executor&, Property>::type
598
+ >::type>
599
+ >::type require(const Property& p) const
600
+ ASIO_NOEXCEPT_IF((
601
+ is_nothrow_require<const Executor&, Property>::value))
602
+ {
603
+ return adapter<typename decay<
604
+ typename require_result<const Executor&, Property>::type
605
+ >::type>(0, asio::require(executor_, p));
606
+ }
607
+
608
+ template <typename Property>
609
+ typename enable_if<
610
+ can_prefer<const Executor&, Property>::value,
611
+ adapter<typename decay<
612
+ typename prefer_result<const Executor&, Property>::type
613
+ >::type>
614
+ >::type prefer(const Property& p) const
615
+ ASIO_NOEXCEPT_IF((
616
+ is_nothrow_prefer<const Executor&, Property>::value))
617
+ {
618
+ return adapter<typename decay<
619
+ typename prefer_result<const Executor&, Property>::type
620
+ >::type>(0, asio::prefer(executor_, p));
621
+ }
622
+
623
+ template <typename Function>
624
+ typename enable_if<
625
+ execution::can_execute<const Executor&, Function>::value
626
+ >::type execute(ASIO_MOVE_ARG(Function) f) const
627
+ {
628
+ blocking_adaptation::blocking_execute(
629
+ executor_, ASIO_MOVE_CAST(Function)(f));
630
+ }
631
+
632
+ friend bool operator==(const adapter& a, const adapter& b) ASIO_NOEXCEPT
633
+ {
634
+ return a.executor_ == b.executor_;
635
+ }
636
+
637
+ friend bool operator!=(const adapter& a, const adapter& b) ASIO_NOEXCEPT
638
+ {
639
+ return a.executor_ != b.executor_;
640
+ }
641
+
642
+ private:
643
+ Executor executor_;
644
+ };
645
+
646
+ template <int I = 0>
647
+ struct always_t
648
+ {
649
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
650
+ template <typename T>
651
+ ASIO_STATIC_CONSTEXPR(bool,
652
+ is_applicable_property_v = is_executor<T>::value
653
+ || is_sender<T>::value || is_scheduler<T>::value);
654
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
655
+
656
+ ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
657
+ ASIO_STATIC_CONSTEXPR(bool, is_preferable = false);
658
+ typedef blocking_t<I> polymorphic_query_result_type;
659
+
660
+ ASIO_CONSTEXPR always_t()
661
+ {
662
+ }
663
+
664
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
665
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
666
+ template <typename T>
667
+ static ASIO_CONSTEXPR
668
+ typename traits::query_static_constexpr_member<T, always_t>::result_type
669
+ static_query()
670
+ ASIO_NOEXCEPT_IF((
671
+ traits::query_static_constexpr_member<T, always_t>::is_noexcept))
672
+ {
673
+ return traits::query_static_constexpr_member<T, always_t>::value();
674
+ }
675
+
676
+ template <typename E, typename T = decltype(always_t::static_query<E>())>
677
+ static ASIO_CONSTEXPR const T static_query_v
678
+ = always_t::static_query<E>();
679
+ #endif // defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
680
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
681
+
682
+ static ASIO_CONSTEXPR blocking_t<I> value()
683
+ {
684
+ return always_t();
685
+ }
686
+
687
+ friend ASIO_CONSTEXPR bool operator==(
688
+ const always_t&, const always_t&)
689
+ {
690
+ return true;
691
+ }
692
+
693
+ friend ASIO_CONSTEXPR bool operator!=(
694
+ const always_t&, const always_t&)
695
+ {
696
+ return false;
697
+ }
698
+
699
+ friend ASIO_CONSTEXPR bool operator==(
700
+ const always_t&, const possibly_t<I>&)
701
+ {
702
+ return false;
703
+ }
704
+
705
+ friend ASIO_CONSTEXPR bool operator!=(
706
+ const always_t&, const possibly_t<I>&)
707
+ {
708
+ return true;
709
+ }
710
+
711
+ friend ASIO_CONSTEXPR bool operator==(
712
+ const always_t&, const never_t<I>&)
713
+ {
714
+ return false;
715
+ }
716
+
717
+ friend ASIO_CONSTEXPR bool operator!=(
718
+ const always_t&, const never_t<I>&)
719
+ {
720
+ return true;
721
+ }
722
+
723
+ template <typename Executor>
724
+ friend adapter<Executor> require(
725
+ const Executor& e, const always_t&,
726
+ typename enable_if<
727
+ is_executor<Executor>::value
728
+ && traits::static_require<
729
+ const Executor&,
730
+ blocking_adaptation::allowed_t<0>
731
+ >::is_valid
732
+ >::type* = 0)
733
+ {
734
+ return adapter<Executor>(0, e);
735
+ }
736
+ };
737
+
738
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
739
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
740
+ template <int I> template <typename E, typename T>
741
+ const T always_t<I>::static_query_v;
742
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
743
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
744
+
745
+ template <int I>
746
+ struct never_t
747
+ {
748
+ #if defined(ASIO_HAS_VARIABLE_TEMPLATES)
749
+ template <typename T>
750
+ ASIO_STATIC_CONSTEXPR(bool,
751
+ is_applicable_property_v = is_executor<T>::value
752
+ || is_sender<T>::value || is_scheduler<T>::value);
753
+ #endif // defined(ASIO_HAS_VARIABLE_TEMPLATES)
754
+
755
+ ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
756
+ ASIO_STATIC_CONSTEXPR(bool, is_preferable = true);
757
+ typedef blocking_t<I> polymorphic_query_result_type;
758
+
759
+ ASIO_CONSTEXPR never_t()
760
+ {
761
+ }
762
+
763
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
764
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
765
+ template <typename T>
766
+ static ASIO_CONSTEXPR
767
+ typename traits::query_static_constexpr_member<T, never_t>::result_type
768
+ static_query()
769
+ ASIO_NOEXCEPT_IF((
770
+ traits::query_static_constexpr_member<T, never_t>::is_noexcept))
771
+ {
772
+ return traits::query_static_constexpr_member<T, never_t>::value();
773
+ }
774
+
775
+ template <typename E, typename T = decltype(never_t::static_query<E>())>
776
+ static ASIO_CONSTEXPR const T static_query_v
777
+ = never_t::static_query<E>();
778
+ #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
779
+ // && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
780
+
781
+ static ASIO_CONSTEXPR blocking_t<I> value()
782
+ {
783
+ return never_t();
784
+ }
785
+
786
+ friend ASIO_CONSTEXPR bool operator==(
787
+ const never_t&, const never_t&)
788
+ {
789
+ return true;
790
+ }
791
+
792
+ friend ASIO_CONSTEXPR bool operator!=(
793
+ const never_t&, const never_t&)
794
+ {
795
+ return false;
796
+ }
797
+
798
+ friend ASIO_CONSTEXPR bool operator==(
799
+ const never_t&, const possibly_t<I>&)
800
+ {
801
+ return false;
802
+ }
803
+
804
+ friend ASIO_CONSTEXPR bool operator!=(
805
+ const never_t&, const possibly_t<I>&)
806
+ {
807
+ return true;
808
+ }
809
+
810
+ friend ASIO_CONSTEXPR bool operator==(
811
+ const never_t&, const always_t<I>&)
812
+ {
813
+ return false;
814
+ }
815
+
816
+ friend ASIO_CONSTEXPR bool operator!=(
817
+ const never_t&, const always_t<I>&)
818
+ {
819
+ return true;
820
+ }
821
+ };
822
+
823
+ #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
824
+ && defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
825
+ template <int I> template <typename E, typename T>
826
+ const T never_t<I>::static_query_v;
827
+ #endif // defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
828
+
829
+ } // namespace blocking
830
+ } // namespace detail
831
+
832
+ typedef detail::blocking_t<> blocking_t;
833
+
834
+ #if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION)
835
+ constexpr blocking_t blocking;
836
+ #else // defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION)
837
+ namespace { static const blocking_t& blocking = blocking_t::instance; }
838
+ #endif
839
+
840
+ } // namespace execution
841
+
842
+ #if !defined(ASIO_HAS_VARIABLE_TEMPLATES)
843
+
844
+ template <typename T>
845
+ struct is_applicable_property<T, execution::blocking_t>
846
+ : integral_constant<bool,
847
+ execution::is_executor<T>::value
848
+ || execution::is_sender<T>::value
849
+ || execution::is_scheduler<T>::value>
850
+ {
851
+ };
852
+
853
+ template <typename T>
854
+ struct is_applicable_property<T, execution::blocking_t::possibly_t>
855
+ : integral_constant<bool,
856
+ execution::is_executor<T>::value
857
+ || execution::is_sender<T>::value
858
+ || execution::is_scheduler<T>::value>
859
+ {
860
+ };
861
+
862
+ template <typename T>
863
+ struct is_applicable_property<T, execution::blocking_t::always_t>
864
+ : integral_constant<bool,
865
+ execution::is_executor<T>::value
866
+ || execution::is_sender<T>::value
867
+ || execution::is_scheduler<T>::value>
868
+ {
869
+ };
870
+
871
+ template <typename T>
872
+ struct is_applicable_property<T, execution::blocking_t::never_t>
873
+ : integral_constant<bool,
874
+ execution::is_executor<T>::value
875
+ || execution::is_sender<T>::value
876
+ || execution::is_scheduler<T>::value>
877
+ {
878
+ };
879
+
880
+ #endif // !defined(ASIO_HAS_VARIABLE_TEMPLATES)
881
+
882
+ namespace traits {
883
+
884
+ #if !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
885
+
886
+ template <typename T>
887
+ struct query_free_default<T, execution::blocking_t,
888
+ typename enable_if<
889
+ can_query<T, execution::blocking_t::possibly_t>::value
890
+ >::type>
891
+ {
892
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
893
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
894
+ (is_nothrow_query<T, execution::blocking_t::possibly_t>::value));
895
+
896
+ typedef execution::blocking_t result_type;
897
+ };
898
+
899
+ template <typename T>
900
+ struct query_free_default<T, execution::blocking_t,
901
+ typename enable_if<
902
+ !can_query<T, execution::blocking_t::possibly_t>::value
903
+ && can_query<T, execution::blocking_t::always_t>::value
904
+ >::type>
905
+ {
906
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
907
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
908
+ (is_nothrow_query<T, execution::blocking_t::always_t>::value));
909
+
910
+ typedef execution::blocking_t result_type;
911
+ };
912
+
913
+ template <typename T>
914
+ struct query_free_default<T, execution::blocking_t,
915
+ typename enable_if<
916
+ !can_query<T, execution::blocking_t::possibly_t>::value
917
+ && !can_query<T, execution::blocking_t::always_t>::value
918
+ && can_query<T, execution::blocking_t::never_t>::value
919
+ >::type>
920
+ {
921
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
922
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
923
+ (is_nothrow_query<T, execution::blocking_t::never_t>::value));
924
+
925
+ typedef execution::blocking_t result_type;
926
+ };
927
+
928
+ #endif // !defined(ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
929
+
930
+ #if !defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) \
931
+ || !defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
932
+
933
+ template <typename T>
934
+ struct static_query<T, execution::blocking_t,
935
+ typename enable_if<
936
+ traits::query_static_constexpr_member<T,
937
+ execution::blocking_t>::is_valid
938
+ >::type>
939
+ {
940
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
941
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
942
+
943
+ typedef typename traits::query_static_constexpr_member<T,
944
+ execution::blocking_t>::result_type result_type;
945
+
946
+ static ASIO_CONSTEXPR result_type value()
947
+ {
948
+ return traits::query_static_constexpr_member<T,
949
+ execution::blocking_t>::value();
950
+ }
951
+ };
952
+
953
+ template <typename T>
954
+ struct static_query<T, execution::blocking_t,
955
+ typename enable_if<
956
+ !traits::query_static_constexpr_member<T, execution::blocking_t>::is_valid
957
+ && !traits::query_member<T, execution::blocking_t>::is_valid
958
+ && traits::static_query<T, execution::blocking_t::possibly_t>::is_valid
959
+ >::type>
960
+ {
961
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
962
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
963
+
964
+ typedef typename traits::static_query<T,
965
+ execution::blocking_t::possibly_t>::result_type result_type;
966
+
967
+ static ASIO_CONSTEXPR result_type value()
968
+ {
969
+ return traits::static_query<T, execution::blocking_t::possibly_t>::value();
970
+ }
971
+ };
972
+
973
+ template <typename T>
974
+ struct static_query<T, execution::blocking_t,
975
+ typename enable_if<
976
+ !traits::query_static_constexpr_member<T, execution::blocking_t>::is_valid
977
+ && !traits::query_member<T, execution::blocking_t>::is_valid
978
+ && !traits::static_query<T, execution::blocking_t::possibly_t>::is_valid
979
+ && traits::static_query<T, execution::blocking_t::always_t>::is_valid
980
+ >::type>
981
+ {
982
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
983
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
984
+
985
+ typedef typename traits::static_query<T,
986
+ execution::blocking_t::always_t>::result_type result_type;
987
+
988
+ static ASIO_CONSTEXPR result_type value()
989
+ {
990
+ return traits::static_query<T, execution::blocking_t::always_t>::value();
991
+ }
992
+ };
993
+
994
+ template <typename T>
995
+ struct static_query<T, execution::blocking_t,
996
+ typename enable_if<
997
+ !traits::query_static_constexpr_member<T, execution::blocking_t>::is_valid
998
+ && !traits::query_member<T, execution::blocking_t>::is_valid
999
+ && !traits::static_query<T, execution::blocking_t::possibly_t>::is_valid
1000
+ && !traits::static_query<T, execution::blocking_t::always_t>::is_valid
1001
+ && traits::static_query<T, execution::blocking_t::never_t>::is_valid
1002
+ >::type>
1003
+ {
1004
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1005
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1006
+
1007
+ typedef typename traits::static_query<T,
1008
+ execution::blocking_t::never_t>::result_type result_type;
1009
+
1010
+ static ASIO_CONSTEXPR result_type value()
1011
+ {
1012
+ return traits::static_query<T, execution::blocking_t::never_t>::value();
1013
+ }
1014
+ };
1015
+
1016
+ template <typename T>
1017
+ struct static_query<T, execution::blocking_t::possibly_t,
1018
+ typename enable_if<
1019
+ traits::query_static_constexpr_member<T,
1020
+ execution::blocking_t::possibly_t>::is_valid
1021
+ >::type>
1022
+ {
1023
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1024
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1025
+
1026
+ typedef typename traits::query_static_constexpr_member<T,
1027
+ execution::blocking_t::possibly_t>::result_type result_type;
1028
+
1029
+ static ASIO_CONSTEXPR result_type value()
1030
+ {
1031
+ return traits::query_static_constexpr_member<T,
1032
+ execution::blocking_t::possibly_t>::value();
1033
+ }
1034
+ };
1035
+
1036
+ template <typename T>
1037
+ struct static_query<T, execution::blocking_t::possibly_t,
1038
+ typename enable_if<
1039
+ !traits::query_static_constexpr_member<T,
1040
+ execution::blocking_t::possibly_t>::is_valid
1041
+ && !traits::query_member<T, execution::blocking_t::possibly_t>::is_valid
1042
+ && !traits::query_free<T, execution::blocking_t::possibly_t>::is_valid
1043
+ && !can_query<T, execution::blocking_t::always_t>::value
1044
+ && !can_query<T, execution::blocking_t::never_t>::value
1045
+ >::type>
1046
+ {
1047
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1048
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1049
+
1050
+ typedef execution::blocking_t::possibly_t result_type;
1051
+
1052
+ static ASIO_CONSTEXPR result_type value()
1053
+ {
1054
+ return result_type();
1055
+ }
1056
+ };
1057
+
1058
+ template <typename T>
1059
+ struct static_query<T, execution::blocking_t::always_t,
1060
+ typename enable_if<
1061
+ traits::query_static_constexpr_member<T,
1062
+ execution::blocking_t::always_t>::is_valid
1063
+ >::type>
1064
+ {
1065
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1066
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1067
+
1068
+ typedef typename traits::query_static_constexpr_member<T,
1069
+ execution::blocking_t::always_t>::result_type result_type;
1070
+
1071
+ static ASIO_CONSTEXPR result_type value()
1072
+ {
1073
+ return traits::query_static_constexpr_member<T,
1074
+ execution::blocking_t::always_t>::value();
1075
+ }
1076
+ };
1077
+
1078
+ template <typename T>
1079
+ struct static_query<T, execution::blocking_t::never_t,
1080
+ typename enable_if<
1081
+ traits::query_static_constexpr_member<T,
1082
+ execution::blocking_t::never_t>::is_valid
1083
+ >::type>
1084
+ {
1085
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1086
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1087
+
1088
+ typedef typename traits::query_static_constexpr_member<T,
1089
+ execution::blocking_t::never_t>::result_type result_type;
1090
+
1091
+ static ASIO_CONSTEXPR result_type value()
1092
+ {
1093
+ return traits::query_static_constexpr_member<T,
1094
+ execution::blocking_t::never_t>::value();
1095
+ }
1096
+ };
1097
+
1098
+ #endif // !defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT)
1099
+ // || !defined(ASIO_HAS_SFINAE_VARIABLE_TEMPLATES)
1100
+
1101
+ #if !defined(ASIO_HAS_DEDUCED_STATIC_REQUIRE_TRAIT)
1102
+
1103
+ template <typename T>
1104
+ struct static_require<T, execution::blocking_t::possibly_t,
1105
+ typename enable_if<
1106
+ static_query<T, execution::blocking_t::possibly_t>::is_valid
1107
+ >::type>
1108
+ {
1109
+ ASIO_STATIC_CONSTEXPR(bool, is_valid =
1110
+ (is_same<typename static_query<T,
1111
+ execution::blocking_t::possibly_t>::result_type,
1112
+ execution::blocking_t::possibly_t>::value));
1113
+ };
1114
+
1115
+ template <typename T>
1116
+ struct static_require<T, execution::blocking_t::always_t,
1117
+ typename enable_if<
1118
+ static_query<T, execution::blocking_t::always_t>::is_valid
1119
+ >::type>
1120
+ {
1121
+ ASIO_STATIC_CONSTEXPR(bool, is_valid =
1122
+ (is_same<typename static_query<T,
1123
+ execution::blocking_t::always_t>::result_type,
1124
+ execution::blocking_t::always_t>::value));
1125
+ };
1126
+
1127
+ template <typename T>
1128
+ struct static_require<T, execution::blocking_t::never_t,
1129
+ typename enable_if<
1130
+ static_query<T, execution::blocking_t::never_t>::is_valid
1131
+ >::type>
1132
+ {
1133
+ ASIO_STATIC_CONSTEXPR(bool, is_valid =
1134
+ (is_same<typename static_query<T,
1135
+ execution::blocking_t::never_t>::result_type,
1136
+ execution::blocking_t::never_t>::value));
1137
+ };
1138
+
1139
+ #endif // !defined(ASIO_HAS_DEDUCED_STATIC_REQUIRE_TRAIT)
1140
+
1141
+ #if !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
1142
+
1143
+ template <typename T>
1144
+ struct require_free_default<T, execution::blocking_t::always_t,
1145
+ typename enable_if<
1146
+ is_same<T, typename decay<T>::type>::value
1147
+ && execution::is_executor<T>::value
1148
+ && traits::static_require<
1149
+ const T&,
1150
+ execution::detail::blocking_adaptation::allowed_t<0>
1151
+ >::is_valid
1152
+ >::type>
1153
+ {
1154
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1155
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
1156
+ typedef execution::detail::blocking::adapter<T> result_type;
1157
+ };
1158
+
1159
+ #endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
1160
+
1161
+ #if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
1162
+
1163
+ template <typename Executor>
1164
+ struct equality_comparable<
1165
+ execution::detail::blocking::adapter<Executor> >
1166
+ {
1167
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1168
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1169
+ };
1170
+
1171
+ #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
1172
+
1173
+ #if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
1174
+
1175
+ template <typename Executor, typename Function>
1176
+ struct execute_member<
1177
+ execution::detail::blocking::adapter<Executor>, Function>
1178
+ {
1179
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1180
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
1181
+ typedef void result_type;
1182
+ };
1183
+
1184
+ #endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
1185
+
1186
+ #if !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
1187
+
1188
+ template <typename Executor, int I>
1189
+ struct query_static_constexpr_member<
1190
+ execution::detail::blocking::adapter<Executor>,
1191
+ execution::detail::blocking_t<I> >
1192
+ {
1193
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1194
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1195
+ typedef execution::blocking_t::always_t result_type;
1196
+
1197
+ static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
1198
+ {
1199
+ return result_type();
1200
+ }
1201
+ };
1202
+
1203
+ template <typename Executor, int I>
1204
+ struct query_static_constexpr_member<
1205
+ execution::detail::blocking::adapter<Executor>,
1206
+ execution::detail::blocking::always_t<I> >
1207
+ {
1208
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1209
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1210
+ typedef execution::blocking_t::always_t result_type;
1211
+
1212
+ static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
1213
+ {
1214
+ return result_type();
1215
+ }
1216
+ };
1217
+
1218
+ template <typename Executor, int I>
1219
+ struct query_static_constexpr_member<
1220
+ execution::detail::blocking::adapter<Executor>,
1221
+ execution::detail::blocking::possibly_t<I> >
1222
+ {
1223
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1224
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1225
+ typedef execution::blocking_t::always_t result_type;
1226
+
1227
+ static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
1228
+ {
1229
+ return result_type();
1230
+ }
1231
+ };
1232
+
1233
+ template <typename Executor, int I>
1234
+ struct query_static_constexpr_member<
1235
+ execution::detail::blocking::adapter<Executor>,
1236
+ execution::detail::blocking::never_t<I> >
1237
+ {
1238
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1239
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1240
+ typedef execution::blocking_t::always_t result_type;
1241
+
1242
+ static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
1243
+ {
1244
+ return result_type();
1245
+ }
1246
+ };
1247
+
1248
+ #endif // !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
1249
+
1250
+ #if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
1251
+
1252
+ template <typename Executor, typename Property>
1253
+ struct query_member<
1254
+ execution::detail::blocking::adapter<Executor>, Property,
1255
+ typename enable_if<
1256
+ can_query<const Executor&, Property>::value
1257
+ >::type>
1258
+ {
1259
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1260
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
1261
+ (is_nothrow_query<Executor, Property>::value));
1262
+ typedef typename query_result<Executor, Property>::type result_type;
1263
+ };
1264
+
1265
+ #endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
1266
+
1267
+ #if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
1268
+
1269
+ template <typename Executor, int I>
1270
+ struct require_member<
1271
+ execution::detail::blocking::adapter<Executor>,
1272
+ execution::detail::blocking::possibly_t<I>,
1273
+ typename enable_if<
1274
+ can_require<
1275
+ const Executor&,
1276
+ execution::detail::blocking::possibly_t<I>
1277
+ >::value
1278
+ >::type>
1279
+ {
1280
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1281
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
1282
+ (is_nothrow_require<const Executor&,
1283
+ execution::detail::blocking::possibly_t<I> >::value));
1284
+ typedef typename require_result<const Executor&,
1285
+ execution::detail::blocking::possibly_t<I> >::type result_type;
1286
+ };
1287
+
1288
+ template <typename Executor, int I>
1289
+ struct require_member<
1290
+ execution::detail::blocking::adapter<Executor>,
1291
+ execution::detail::blocking::never_t<I>,
1292
+ typename enable_if<
1293
+ can_require<
1294
+ const Executor&,
1295
+ execution::detail::blocking::never_t<I>
1296
+ >::value
1297
+ >::type>
1298
+ {
1299
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1300
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
1301
+ (is_nothrow_require<const Executor&,
1302
+ execution::detail::blocking::never_t<I> >::value));
1303
+ typedef typename require_result<const Executor&,
1304
+ execution::detail::blocking::never_t<I> >::type result_type;
1305
+ };
1306
+
1307
+ template <typename Executor, typename Property>
1308
+ struct require_member<
1309
+ execution::detail::blocking::adapter<Executor>, Property,
1310
+ typename enable_if<
1311
+ can_require<const Executor&, Property>::value
1312
+ >::type>
1313
+ {
1314
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1315
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
1316
+ (is_nothrow_require<Executor, Property>::value));
1317
+ typedef execution::detail::blocking::adapter<typename decay<
1318
+ typename require_result<Executor, Property>::type
1319
+ >::type> result_type;
1320
+ };
1321
+
1322
+ #endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
1323
+
1324
+ #if !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT)
1325
+
1326
+ template <typename Executor, typename Property>
1327
+ struct prefer_member<
1328
+ execution::detail::blocking::adapter<Executor>, Property,
1329
+ typename enable_if<
1330
+ can_prefer<const Executor&, Property>::value
1331
+ >::type>
1332
+ {
1333
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1334
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept =
1335
+ (is_nothrow_prefer<Executor, Property>::value));
1336
+ typedef execution::detail::blocking::adapter<typename decay<
1337
+ typename prefer_result<Executor, Property>::type
1338
+ >::type> result_type;
1339
+ };
1340
+
1341
+ #endif // !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT)
1342
+
1343
+ } // namespace traits
1344
+
1345
+ #endif // defined(GENERATING_DOCUMENTATION)
1346
+
1347
+ } // namespace asio
1348
+
1349
+ #include "asio/detail/pop_options.hpp"
1350
+
1351
+ #endif // ASIO_EXECUTION_BLOCKING_HPP