couchbase 3.0.0.beta.1 → 3.1.0

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 (1007) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +74 -6
  3. data/ext/CMakeLists.txt +96 -136
  4. data/ext/build_config.hxx.in +3 -1
  5. data/ext/build_version.hxx.in +11 -7
  6. data/ext/cmake/Backtrace.cmake +35 -0
  7. data/ext/cmake/BuildTracing.cmake +6 -0
  8. data/ext/cmake/Cache.cmake +29 -0
  9. data/ext/cmake/CompilerWarnings.cmake +84 -0
  10. data/ext/cmake/PreventInSourceBuilds.cmake +21 -0
  11. data/ext/cmake/Sanitizers.cmake +66 -0
  12. data/ext/cmake/StandardProjectSettings.cmake +40 -0
  13. data/ext/cmake/StaticAnalyzers.cmake +37 -0
  14. data/ext/cmake/Testing.cmake +49 -0
  15. data/ext/cmake/ThirdPartyDependencies.cmake +20 -0
  16. data/ext/cmake/VersionInfo.cmake +37 -0
  17. data/ext/couchbase/bucket.hxx +252 -41
  18. data/ext/couchbase/capabilities.hxx +117 -0
  19. data/ext/couchbase/cbcrypto/cbcrypto.cc +15 -15
  20. data/ext/couchbase/cbsasl/client.h +1 -1
  21. data/ext/couchbase/cluster.hxx +150 -11
  22. data/ext/couchbase/cluster_options.hxx +4 -1
  23. data/ext/couchbase/collections_manifest.hxx +1 -1
  24. data/ext/couchbase/configuration.hxx +245 -67
  25. data/ext/couchbase/couchbase.cxx +3567 -1223
  26. data/ext/couchbase/diagnostics.hxx +248 -0
  27. data/ext/couchbase/document_id.hxx +4 -2
  28. data/ext/couchbase/error_context/analytics.hxx +46 -0
  29. data/ext/couchbase/error_context/http.hxx +44 -0
  30. data/ext/couchbase/error_context/key_value.hxx +47 -0
  31. data/ext/couchbase/error_context/query.hxx +46 -0
  32. data/ext/couchbase/error_context/search.hxx +47 -0
  33. data/ext/couchbase/error_context/view.hxx +47 -0
  34. data/ext/couchbase/error_map.hxx +203 -3
  35. data/ext/couchbase/errors.hxx +19 -4
  36. data/ext/couchbase/io/dns_client.hxx +9 -9
  37. data/ext/couchbase/io/dns_codec.hxx +2 -3
  38. data/ext/couchbase/io/dns_config.hxx +1 -1
  39. data/ext/couchbase/io/dns_message.hxx +1 -1
  40. data/ext/couchbase/io/http_command.hxx +29 -9
  41. data/ext/couchbase/io/http_context.hxx +37 -0
  42. data/ext/couchbase/io/http_message.hxx +10 -1
  43. data/ext/couchbase/io/http_parser.hxx +3 -1
  44. data/ext/couchbase/io/http_session.hxx +131 -47
  45. data/ext/couchbase/io/http_session_manager.hxx +149 -7
  46. data/ext/couchbase/io/mcbp_command.hxx +121 -52
  47. data/ext/couchbase/io/mcbp_context.hxx +37 -0
  48. data/ext/couchbase/io/mcbp_message.hxx +1 -1
  49. data/ext/couchbase/io/mcbp_parser.hxx +1 -1
  50. data/ext/couchbase/io/mcbp_session.hxx +411 -101
  51. data/ext/couchbase/io/query_cache.hxx +61 -0
  52. data/ext/couchbase/io/retry_action.hxx +30 -0
  53. data/ext/couchbase/io/retry_context.hxx +38 -0
  54. data/ext/couchbase/io/retry_orchestrator.hxx +112 -0
  55. data/ext/couchbase/io/retry_reason.hxx +235 -0
  56. data/ext/couchbase/io/retry_strategy.hxx +156 -0
  57. data/ext/couchbase/io/streams.hxx +62 -11
  58. data/ext/couchbase/mutation_token.hxx +1 -1
  59. data/ext/couchbase/operations.hxx +19 -1
  60. data/ext/couchbase/operations/analytics_dataset_create.hxx +21 -13
  61. data/ext/couchbase/operations/analytics_dataset_drop.hxx +19 -10
  62. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +18 -11
  63. data/ext/couchbase/operations/analytics_dataverse_create.hxx +20 -12
  64. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +19 -12
  65. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +19 -11
  66. data/ext/couchbase/operations/analytics_index_create.hxx +19 -12
  67. data/ext/couchbase/operations/analytics_index_drop.hxx +18 -11
  68. data/ext/couchbase/operations/analytics_index_get_all.hxx +16 -9
  69. data/ext/couchbase/operations/analytics_link_connect.hxx +17 -10
  70. data/ext/couchbase/operations/analytics_link_disconnect.hxx +19 -12
  71. data/ext/couchbase/operations/bucket_create.hxx +45 -15
  72. data/ext/couchbase/operations/bucket_drop.hxx +12 -10
  73. data/ext/couchbase/operations/bucket_flush.hxx +11 -10
  74. data/ext/couchbase/operations/bucket_get.hxx +17 -11
  75. data/ext/couchbase/operations/bucket_get_all.hxx +16 -8
  76. data/ext/couchbase/operations/bucket_settings.hxx +59 -4
  77. data/ext/couchbase/operations/bucket_update.hxx +44 -15
  78. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +9 -8
  79. data/ext/couchbase/operations/collection_create.hxx +23 -14
  80. data/ext/couchbase/operations/collection_drop.hxx +21 -14
  81. data/ext/couchbase/operations/collections_manifest_get.hxx +66 -0
  82. data/ext/couchbase/operations/design_document.hxx +1 -1
  83. data/ext/couchbase/operations/document_analytics.hxx +46 -18
  84. data/ext/couchbase/operations/document_append.hxx +72 -0
  85. data/ext/couchbase/operations/document_decrement.hxx +10 -12
  86. data/ext/couchbase/operations/document_exists.hxx +9 -8
  87. data/ext/couchbase/operations/document_get.hxx +10 -11
  88. data/ext/couchbase/operations/document_get_and_lock.hxx +9 -11
  89. data/ext/couchbase/operations/document_get_and_touch.hxx +9 -11
  90. data/ext/couchbase/operations/document_get_projected.hxx +26 -16
  91. data/ext/couchbase/operations/document_increment.hxx +10 -12
  92. data/ext/couchbase/operations/document_insert.hxx +10 -12
  93. data/ext/couchbase/operations/document_lookup_in.hxx +13 -10
  94. data/ext/couchbase/operations/document_mutate_in.hxx +22 -13
  95. data/ext/couchbase/operations/document_prepend.hxx +72 -0
  96. data/ext/couchbase/operations/document_query.hxx +132 -27
  97. data/ext/couchbase/operations/document_remove.hxx +12 -12
  98. data/ext/couchbase/operations/document_replace.hxx +10 -12
  99. data/ext/couchbase/operations/document_search.hxx +53 -16
  100. data/ext/couchbase/operations/document_touch.hxx +9 -11
  101. data/ext/couchbase/operations/document_unlock.hxx +9 -11
  102. data/ext/couchbase/operations/document_upsert.hxx +10 -12
  103. data/ext/couchbase/operations/document_view.hxx +31 -14
  104. data/ext/couchbase/operations/group_drop.hxx +72 -0
  105. data/ext/couchbase/operations/group_get.hxx +80 -0
  106. data/ext/couchbase/operations/group_get_all.hxx +77 -0
  107. data/ext/couchbase/operations/group_upsert.hxx +125 -0
  108. data/ext/couchbase/operations/http_noop.hxx +78 -0
  109. data/ext/couchbase/operations/mcbp_noop.hxx +55 -0
  110. data/ext/couchbase/operations/query_index_build_deferred.hxx +18 -11
  111. data/ext/couchbase/operations/query_index_create.hxx +32 -15
  112. data/ext/couchbase/operations/query_index_drop.hxx +30 -13
  113. data/ext/couchbase/operations/query_index_get_all.hxx +26 -9
  114. data/ext/couchbase/operations/rbac.hxx +276 -0
  115. data/ext/couchbase/operations/role_get_all.hxx +77 -0
  116. data/ext/couchbase/operations/scope_create.hxx +24 -13
  117. data/ext/couchbase/operations/scope_drop.hxx +20 -13
  118. data/ext/couchbase/operations/scope_get_all.hxx +18 -12
  119. data/ext/couchbase/operations/search_get_stats.hxx +60 -0
  120. data/ext/couchbase/operations/search_index.hxx +1 -1
  121. data/ext/couchbase/operations/search_index_analyze_document.hxx +28 -15
  122. data/ext/couchbase/operations/search_index_control_ingest.hxx +26 -13
  123. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +26 -13
  124. data/ext/couchbase/operations/search_index_control_query.hxx +26 -13
  125. data/ext/couchbase/operations/search_index_drop.hxx +24 -11
  126. data/ext/couchbase/operations/search_index_get.hxx +24 -11
  127. data/ext/couchbase/operations/search_index_get_all.hxx +15 -8
  128. data/ext/couchbase/operations/search_index_get_documents_count.hxx +45 -25
  129. data/ext/couchbase/operations/search_index_get_stats.hxx +88 -0
  130. data/ext/couchbase/operations/search_index_upsert.hxx +25 -12
  131. data/ext/couchbase/operations/user_drop.hxx +73 -0
  132. data/ext/couchbase/operations/user_get.hxx +81 -0
  133. data/ext/couchbase/operations/user_get_all.hxx +78 -0
  134. data/ext/couchbase/operations/user_upsert.hxx +132 -0
  135. data/ext/couchbase/operations/view_index_drop.hxx +10 -9
  136. data/ext/couchbase/operations/view_index_get.hxx +17 -10
  137. data/ext/couchbase/operations/view_index_get_all.hxx +17 -10
  138. data/ext/couchbase/operations/view_index_upsert.hxx +11 -10
  139. data/ext/couchbase/origin.hxx +49 -18
  140. data/ext/couchbase/platform/backtrace.c +189 -0
  141. data/ext/couchbase/platform/backtrace.h +54 -0
  142. data/ext/couchbase/platform/terminate_handler.cc +130 -0
  143. data/ext/couchbase/platform/terminate_handler.h +36 -0
  144. data/ext/couchbase/protocol/client_opcode.hxx +407 -39
  145. data/ext/couchbase/protocol/client_request.hxx +3 -2
  146. data/ext/couchbase/protocol/client_response.hxx +21 -18
  147. data/ext/couchbase/protocol/cmd_append.hxx +145 -0
  148. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +7 -4
  149. data/ext/couchbase/protocol/cmd_decrement.hxx +1 -1
  150. data/ext/couchbase/protocol/cmd_exists.hxx +2 -1
  151. data/ext/couchbase/protocol/cmd_get.hxx +2 -2
  152. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +1 -1
  153. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +1 -1
  154. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +9 -2
  155. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +7 -7
  156. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +1 -1
  157. data/ext/couchbase/protocol/cmd_get_error_map.hxx +1 -1
  158. data/ext/couchbase/protocol/cmd_hello.hxx +12 -3
  159. data/ext/couchbase/protocol/cmd_increment.hxx +1 -1
  160. data/ext/couchbase/protocol/cmd_info.hxx +1 -1
  161. data/ext/couchbase/protocol/cmd_insert.hxx +1 -1
  162. data/ext/couchbase/protocol/cmd_lookup_in.hxx +12 -4
  163. data/ext/couchbase/protocol/cmd_mutate_in.hxx +50 -9
  164. data/ext/couchbase/protocol/cmd_noop.hxx +82 -0
  165. data/ext/couchbase/protocol/cmd_prepend.hxx +145 -0
  166. data/ext/couchbase/protocol/cmd_remove.hxx +1 -1
  167. data/ext/couchbase/protocol/cmd_replace.hxx +1 -1
  168. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +1 -1
  169. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +1 -1
  170. data/ext/couchbase/protocol/cmd_sasl_step.hxx +1 -1
  171. data/ext/couchbase/protocol/cmd_select_bucket.hxx +1 -1
  172. data/ext/couchbase/protocol/cmd_touch.hxx +1 -1
  173. data/ext/couchbase/protocol/cmd_unlock.hxx +1 -1
  174. data/ext/couchbase/protocol/cmd_upsert.hxx +1 -1
  175. data/ext/couchbase/protocol/datatype.hxx +1 -1
  176. data/ext/couchbase/protocol/durability_level.hxx +17 -1
  177. data/ext/couchbase/protocol/enhanced_error_info.hxx +28 -0
  178. data/ext/couchbase/protocol/frame_info_id.hxx +1 -1
  179. data/ext/couchbase/protocol/hello_feature.hxx +10 -1
  180. data/ext/couchbase/protocol/magic.hxx +7 -7
  181. data/ext/couchbase/protocol/server_opcode.hxx +3 -3
  182. data/ext/couchbase/protocol/server_request.hxx +1 -1
  183. data/ext/couchbase/protocol/status.hxx +71 -61
  184. data/ext/couchbase/protocol/unsigned_leb128.h +2 -2
  185. data/ext/couchbase/service_type.hxx +3 -3
  186. data/ext/couchbase/timeout_defaults.hxx +1 -1
  187. data/ext/couchbase/utils/byteswap.hxx +1 -1
  188. data/ext/couchbase/utils/connection_string.hxx +32 -5
  189. data/ext/couchbase/version.hxx +19 -5
  190. data/ext/extconf.rb +61 -43
  191. data/ext/test/CMakeLists.txt +5 -0
  192. data/ext/test/test_helper.hxx +141 -0
  193. data/ext/test/test_helper_native.hxx +56 -0
  194. data/ext/test/test_helper_ruby.hxx +72 -0
  195. data/ext/test/test_native_binary_operations.cxx +186 -0
  196. data/ext/test/test_native_diagnostics.cxx +436 -0
  197. data/ext/test/test_native_trivial_crud.cxx +83 -0
  198. data/ext/test/test_ruby_trivial_crud.cxx +35 -0
  199. data/ext/test/test_ruby_trivial_query.cxx +34 -0
  200. data/ext/third_party/asio/asio/include/asio.hpp +35 -0
  201. data/ext/third_party/asio/asio/include/asio/any_io_executor.hpp +71 -0
  202. data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +1 -7
  203. data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +36 -19
  204. data/ext/third_party/asio/asio/include/asio/async_result.hpp +1 -8
  205. data/ext/third_party/asio/asio/include/asio/awaitable.hpp +14 -4
  206. data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +12 -7
  207. data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +4 -4
  208. data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +11 -7
  209. data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +9 -4
  210. data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +6 -6
  211. data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +4 -4
  212. data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +5 -5
  213. data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +13 -7
  214. data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +7 -3
  215. data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +52 -4
  216. data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +10 -15
  217. data/ext/third_party/asio/asio/include/asio/buffer.hpp +6 -4
  218. data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +380 -9
  219. data/ext/third_party/asio/asio/include/asio/defer.hpp +4 -1
  220. data/ext/third_party/asio/asio/include/asio/detached.hpp +50 -0
  221. data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +19 -0
  222. data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +144 -26
  223. data/ext/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +107 -0
  224. data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +106 -0
  225. data/ext/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +88 -0
  226. data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +10 -5
  227. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +8 -0
  228. data/ext/third_party/asio/asio/include/asio/detail/config.hpp +360 -37
  229. data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +17 -2
  230. data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +24 -6
  231. data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +32 -14
  232. data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +32 -14
  233. data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +133 -34
  234. data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +42 -0
  235. data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +23 -0
  236. data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +26 -0
  237. data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +370 -45
  238. data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +208 -74
  239. data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +39 -1
  240. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +12 -15
  241. data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +37 -0
  242. data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +2 -1
  243. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +661 -274
  244. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +210 -4
  245. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +8 -9
  246. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +5 -4
  247. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +15 -6
  248. data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +32 -50
  249. data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +3 -0
  250. data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +6 -0
  251. data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +1 -1
  252. data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +13 -0
  253. data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +1 -1
  254. data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +38 -13
  255. data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +12 -6
  256. data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +2 -3
  257. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +36 -24
  258. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +17 -10
  259. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +38 -16
  260. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +36 -14
  261. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +21 -11
  262. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +43 -17
  263. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +39 -17
  264. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +44 -21
  265. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +41 -18
  266. data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +12 -6
  267. data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +3 -1
  268. data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +10 -8
  269. data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +11 -9
  270. data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +8 -0
  271. data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +7 -5
  272. data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +46 -0
  273. data/ext/third_party/asio/asio/include/asio/detail/source_location.hpp +45 -0
  274. data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +12 -0
  275. data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +25 -1
  276. data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +4 -1
  277. data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +58 -0
  278. data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +59 -0
  279. data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +144 -1
  280. data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +9 -6
  281. data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +13 -0
  282. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +9 -5
  283. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +9 -5
  284. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +5 -1
  285. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +10 -6
  286. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +9 -5
  287. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +18 -6
  288. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +15 -11
  289. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +10 -5
  290. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +8 -4
  291. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +8 -4
  292. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +8 -4
  293. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +8 -4
  294. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +10 -5
  295. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +8 -4
  296. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +8 -4
  297. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +8 -4
  298. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +8 -4
  299. data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +81 -6
  300. data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +45 -9
  301. data/ext/third_party/asio/asio/include/asio/dispatch.hpp +4 -1
  302. data/ext/third_party/asio/asio/include/asio/execution.hpp +48 -0
  303. data/ext/third_party/asio/asio/include/asio/execution/allocator.hpp +249 -0
  304. data/ext/third_party/asio/asio/include/asio/execution/any_executor.hpp +2264 -0
  305. data/ext/third_party/asio/asio/include/asio/execution/bad_executor.hpp +47 -0
  306. data/ext/third_party/asio/asio/include/asio/execution/blocking.hpp +1351 -0
  307. data/ext/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +1064 -0
  308. data/ext/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +390 -0
  309. data/ext/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +1018 -0
  310. data/ext/third_party/asio/asio/include/asio/execution/connect.hpp +486 -0
  311. data/ext/third_party/asio/asio/include/asio/execution/context.hpp +185 -0
  312. data/ext/third_party/asio/asio/include/asio/execution/context_as.hpp +201 -0
  313. data/ext/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +152 -0
  314. data/ext/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +105 -0
  315. data/ext/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +128 -0
  316. data/ext/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +261 -0
  317. data/ext/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +233 -0
  318. data/ext/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +90 -0
  319. data/ext/third_party/asio/asio/include/asio/execution/execute.hpp +264 -0
  320. data/ext/third_party/asio/asio/include/asio/execution/executor.hpp +238 -0
  321. data/ext/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +40 -0
  322. data/ext/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +36 -0
  323. data/ext/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +71 -0
  324. data/ext/third_party/asio/asio/include/asio/execution/mapping.hpp +917 -0
  325. data/ext/third_party/asio/asio/include/asio/execution/occupancy.hpp +178 -0
  326. data/ext/third_party/asio/asio/include/asio/execution/operation_state.hpp +94 -0
  327. data/ext/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +721 -0
  328. data/ext/third_party/asio/asio/include/asio/execution/prefer_only.hpp +327 -0
  329. data/ext/third_party/asio/asio/include/asio/execution/receiver.hpp +280 -0
  330. data/ext/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +48 -0
  331. data/ext/third_party/asio/asio/include/asio/execution/relationship.hpp +720 -0
  332. data/ext/third_party/asio/asio/include/asio/execution/schedule.hpp +290 -0
  333. data/ext/third_party/asio/asio/include/asio/execution/scheduler.hpp +86 -0
  334. data/ext/third_party/asio/asio/include/asio/execution/sender.hpp +311 -0
  335. data/ext/third_party/asio/asio/include/asio/execution/set_done.hpp +253 -0
  336. data/ext/third_party/asio/asio/include/asio/execution/set_error.hpp +253 -0
  337. data/ext/third_party/asio/asio/include/asio/execution/set_value.hpp +486 -0
  338. data/ext/third_party/asio/asio/include/asio/execution/start.hpp +250 -0
  339. data/ext/third_party/asio/asio/include/asio/execution/submit.hpp +450 -0
  340. data/ext/third_party/asio/asio/include/asio/executor.hpp +7 -1
  341. data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +126 -9
  342. data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +28 -5
  343. data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +29 -3
  344. data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +14 -0
  345. data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +44 -8
  346. data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +44 -8
  347. data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +145 -7
  348. data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +124 -22
  349. data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +52 -8
  350. data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +147 -12
  351. data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +142 -12
  352. data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +15 -101
  353. data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +5 -0
  354. data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +13 -4
  355. data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +144 -57
  356. data/ext/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +49 -0
  357. data/ext/third_party/asio/asio/include/asio/impl/post.hpp +147 -12
  358. data/ext/third_party/asio/asio/include/asio/impl/read.hpp +85 -18
  359. data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +59 -14
  360. data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +241 -56
  361. data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +22 -4
  362. data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +58 -22
  363. data/ext/third_party/asio/asio/include/asio/impl/src.hpp +3 -0
  364. data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +16 -4
  365. data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +113 -12
  366. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +260 -37
  367. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +61 -7
  368. data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +5 -2
  369. data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +147 -6
  370. data/ext/third_party/asio/asio/include/asio/impl/write.hpp +75 -14
  371. data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +53 -11
  372. data/ext/third_party/asio/asio/include/asio/io_context.hpp +706 -48
  373. data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +3 -1
  374. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +4 -4
  375. data/ext/third_party/asio/asio/include/asio/is_applicable_property.hpp +61 -0
  376. data/ext/third_party/asio/asio/include/asio/multiple_exceptions.hpp +58 -0
  377. data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +4 -4
  378. data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +5 -5
  379. data/ext/third_party/asio/asio/include/asio/post.hpp +4 -1
  380. data/ext/third_party/asio/asio/include/asio/prefer.hpp +656 -0
  381. data/ext/third_party/asio/asio/include/asio/query.hpp +296 -0
  382. data/ext/third_party/asio/asio/include/asio/read_until.hpp +6 -6
  383. data/ext/third_party/asio/asio/include/asio/require.hpp +524 -0
  384. data/ext/third_party/asio/asio/include/asio/require_concept.hpp +310 -0
  385. data/ext/third_party/asio/asio/include/asio/spawn.hpp +12 -4
  386. data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +5 -0
  387. data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +5 -0
  388. data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +5 -0
  389. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +16 -3
  390. data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +38 -4
  391. data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +5 -0
  392. data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +5 -0
  393. data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +36 -2
  394. data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +10 -1
  395. data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +15 -0
  396. data/ext/third_party/asio/asio/include/asio/static_thread_pool.hpp +31 -0
  397. data/ext/third_party/asio/asio/include/asio/strand.hpp +232 -9
  398. data/ext/third_party/asio/asio/include/asio/system_context.hpp +12 -3
  399. data/ext/third_party/asio/asio/include/asio/system_executor.hpp +557 -24
  400. data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +913 -37
  401. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +114 -0
  402. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +114 -0
  403. data/ext/third_party/asio/asio/include/asio/traits/connect_free.hpp +112 -0
  404. data/ext/third_party/asio/asio/include/asio/traits/connect_member.hpp +112 -0
  405. data/ext/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +100 -0
  406. data/ext/third_party/asio/asio/include/asio/traits/execute_free.hpp +108 -0
  407. data/ext/third_party/asio/asio/include/asio/traits/execute_member.hpp +108 -0
  408. data/ext/third_party/asio/asio/include/asio/traits/prefer_free.hpp +108 -0
  409. data/ext/third_party/asio/asio/include/asio/traits/prefer_member.hpp +108 -0
  410. data/ext/third_party/asio/asio/include/asio/traits/query_free.hpp +108 -0
  411. data/ext/third_party/asio/asio/include/asio/traits/query_member.hpp +108 -0
  412. data/ext/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +108 -0
  413. data/ext/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +108 -0
  414. data/ext/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +108 -0
  415. data/ext/third_party/asio/asio/include/asio/traits/require_free.hpp +108 -0
  416. data/ext/third_party/asio/asio/include/asio/traits/require_member.hpp +108 -0
  417. data/ext/third_party/asio/asio/include/asio/traits/schedule_free.hpp +108 -0
  418. data/ext/third_party/asio/asio/include/asio/traits/schedule_member.hpp +108 -0
  419. data/ext/third_party/asio/asio/include/asio/traits/set_done_free.hpp +108 -0
  420. data/ext/third_party/asio/asio/include/asio/traits/set_done_member.hpp +108 -0
  421. data/ext/third_party/asio/asio/include/asio/traits/set_error_free.hpp +112 -0
  422. data/ext/third_party/asio/asio/include/asio/traits/set_error_member.hpp +112 -0
  423. data/ext/third_party/asio/asio/include/asio/traits/set_value_free.hpp +234 -0
  424. data/ext/third_party/asio/asio/include/asio/traits/set_value_member.hpp +234 -0
  425. data/ext/third_party/asio/asio/include/asio/traits/start_free.hpp +108 -0
  426. data/ext/third_party/asio/asio/include/asio/traits/start_member.hpp +108 -0
  427. data/ext/third_party/asio/asio/include/asio/traits/static_query.hpp +108 -0
  428. data/ext/third_party/asio/asio/include/asio/traits/static_require.hpp +123 -0
  429. data/ext/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +123 -0
  430. data/ext/third_party/asio/asio/include/asio/traits/submit_free.hpp +112 -0
  431. data/ext/third_party/asio/asio/include/asio/traits/submit_member.hpp +112 -0
  432. data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +1 -0
  433. data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +67 -8
  434. data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +63 -4
  435. data/ext/third_party/asio/asio/include/asio/version.hpp +1 -1
  436. data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +4 -4
  437. data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +2 -2
  438. data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +5 -5
  439. data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +5 -5
  440. data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +4 -2
  441. data/ext/third_party/gsl/CMakeLists.txt +13 -5
  442. data/ext/third_party/gsl/include/gsl/gsl_assert +1 -1
  443. data/ext/third_party/gsl/include/gsl/gsl_byte +3 -3
  444. data/ext/third_party/gsl/include/gsl/gsl_narrow +52 -0
  445. data/ext/third_party/gsl/include/gsl/gsl_util +8 -50
  446. data/ext/third_party/gsl/include/gsl/multi_span +0 -10
  447. data/ext/third_party/gsl/include/gsl/pointers +14 -28
  448. data/ext/third_party/gsl/include/gsl/span +98 -46
  449. data/ext/third_party/gsl/include/gsl/string_span +37 -47
  450. data/ext/third_party/http_parser/http_parser.c +17 -10
  451. data/ext/third_party/http_parser/http_parser.h +4 -2
  452. data/ext/third_party/json/include/tao/json/basic_value.hpp +3 -2
  453. data/ext/third_party/json/include/tao/json/binary.hpp +4 -4
  454. data/ext/third_party/json/include/tao/json/binary_view.hpp +2 -2
  455. data/ext/third_party/json/include/tao/json/binding.hpp +2 -2
  456. data/ext/third_party/json/include/tao/json/binding/factory.hpp +8 -7
  457. data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +2 -1
  458. data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +6 -5
  459. data/ext/third_party/json/include/tao/json/binding/versions.hpp +3 -1
  460. data/ext/third_party/json/include/tao/json/cbor.hpp +1 -0
  461. data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +7 -7
  462. data/ext/third_party/json/include/tao/json/cbor/events/from_binary.hpp +43 -0
  463. data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +4 -4
  464. data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +3 -3
  465. data/ext/third_party/json/include/tao/json/cbor/from_binary.hpp +32 -0
  466. data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +5 -5
  467. data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +2 -1
  468. data/ext/third_party/json/include/tao/json/consume_file.hpp +7 -7
  469. data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +13 -6
  470. data/ext/third_party/json/include/tao/json/contrib/position.hpp +15 -15
  471. data/ext/third_party/json/include/tao/json/contrib/reference.hpp +5 -7
  472. data/ext/third_party/json/include/tao/json/contrib/schema.hpp +58 -35
  473. data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +12 -4
  474. data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +12 -4
  475. data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +1 -1
  476. data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +2 -2
  477. data/ext/third_party/json/include/tao/json/events/compare.hpp +2 -12
  478. data/ext/third_party/json/include/tao/json/events/from_file.hpp +4 -4
  479. data/ext/third_party/json/include/tao/json/events/from_string.hpp +2 -2
  480. data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +1 -1
  481. data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +3 -3
  482. data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +1 -1
  483. data/ext/third_party/json/include/tao/json/events/tee.hpp +2 -2
  484. data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +1 -1
  485. data/ext/third_party/json/include/tao/json/events/to_stream.hpp +1 -1
  486. data/ext/third_party/json/include/tao/json/events/transformer.hpp +3 -3
  487. data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +3 -3
  488. data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +6 -0
  489. data/ext/third_party/json/include/tao/json/external/pegtl.hpp +4 -13
  490. data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +3 -5
  491. data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +5 -18
  492. data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +3 -3
  493. data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +2 -2
  494. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +6 -6
  495. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +5 -5
  496. data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +2 -2
  497. data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +6 -6
  498. data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +5 -5
  499. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +52 -52
  500. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze.hpp +176 -0
  501. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze_traits.hpp +275 -0
  502. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/control_action.hpp +77 -0
  503. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/coverage.hpp +151 -0
  504. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/forward.hpp +16 -0
  505. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +37 -18
  506. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +20 -22
  507. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +6 -10
  508. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +6 -10
  509. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +2 -4
  510. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +11 -10
  511. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +116 -131
  512. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian.hpp +4 -4
  513. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian_gcc.hpp +2 -2
  514. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/endian_win.hpp +2 -2
  515. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_mask_uint.hpp +9 -9
  516. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_mask_uint8.hpp +9 -10
  517. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_uint.hpp +9 -9
  518. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_uint8.hpp +9 -10
  519. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_utf16.hpp +10 -10
  520. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/peek_utf32.hpp +9 -9
  521. data/ext/third_party/json/include/tao/json/external/pegtl/{internal → contrib/internal}/read_uint.hpp +3 -3
  522. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/set_stack_guard.hpp +52 -0
  523. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +80 -201
  524. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +11 -10
  525. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print.hpp +75 -0
  526. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print_coverage.hpp +53 -0
  527. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +45 -36
  528. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +33 -50
  529. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_last_states.hpp +117 -0
  530. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +43 -11
  531. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +1 -2
  532. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/shuffle_states.hpp +193 -0
  533. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/state_control.hpp +118 -0
  534. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/trace.hpp +227 -0
  535. data/ext/third_party/json/include/tao/json/external/pegtl/{uint16.hpp → contrib/uint16.hpp} +5 -5
  536. data/ext/third_party/json/include/tao/json/external/pegtl/{uint32.hpp → contrib/uint32.hpp} +5 -5
  537. data/ext/third_party/json/include/tao/json/external/pegtl/{uint64.hpp → contrib/uint64.hpp} +5 -5
  538. data/ext/third_party/json/include/tao/json/external/pegtl/{uint8.hpp → contrib/uint8.hpp} +5 -5
  539. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +14 -14
  540. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +1 -1
  541. data/ext/third_party/json/include/tao/json/external/pegtl/{utf16.hpp → contrib/utf16.hpp} +5 -5
  542. data/ext/third_party/json/include/tao/json/external/pegtl/{utf32.hpp → contrib/utf32.hpp} +5 -5
  543. data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +2 -3
  544. data/ext/third_party/json/include/tao/json/external/pegtl/{internal/demangle.hpp → demangle.hpp} +12 -14
  545. data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +2 -2
  546. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +2 -2
  547. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +2 -2
  548. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +2 -2
  549. data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +2 -2
  550. data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +1 -1
  551. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +19 -9
  552. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +7 -8
  553. data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +14 -14
  554. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +9 -9
  555. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +8 -7
  556. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +4 -4
  557. data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +17 -15
  558. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +7 -6
  559. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +8 -8
  560. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +4 -4
  561. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +3 -3
  562. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +17 -10
  563. data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +19 -9
  564. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +2 -2
  565. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +2 -2
  566. data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +2 -2
  567. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +1 -1
  568. data/ext/third_party/json/include/tao/json/external/pegtl/internal/{always_false.hpp → dependent_false.hpp} +3 -8
  569. data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +19 -9
  570. data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +7 -6
  571. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +19 -9
  572. data/ext/third_party/json/include/tao/json/external/pegtl/internal/{skip_control.hpp → enable_control.hpp} +5 -5
  573. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +7 -6
  574. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +8 -7
  575. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +8 -7
  576. data/ext/third_party/json/include/tao/json/external/pegtl/internal/failure.hpp +32 -0
  577. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +61 -10
  578. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +27 -33
  579. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +27 -28
  580. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +3 -7
  581. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +3 -7
  582. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +4 -20
  583. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_unwind.hpp +21 -0
  584. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +8 -7
  585. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +8 -9
  586. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +2 -0
  587. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +7 -7
  588. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +1 -2
  589. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +11 -11
  590. data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +7 -10
  591. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +2 -2
  592. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +2 -2
  593. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +4 -2
  594. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +1 -1
  595. data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +3 -5
  596. data/ext/third_party/json/include/tao/json/external/pegtl/internal/minus.hpp +21 -0
  597. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +5 -2
  598. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +5 -2
  599. data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +16 -24
  600. data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +17 -15
  601. data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +23 -12
  602. data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +16 -16
  603. data/ext/third_party/json/include/tao/json/external/pegtl/internal/path_to_string.hpp +26 -0
  604. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +5 -5
  605. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +12 -13
  606. data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +18 -11
  607. data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +8 -17
  608. data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +22 -17
  609. data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +28 -18
  610. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +12 -9
  611. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +26 -25
  612. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +23 -21
  613. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +24 -9
  614. data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +10 -10
  615. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +4 -4
  616. data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +18 -33
  617. data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +24 -17
  618. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +13 -8
  619. data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +21 -11
  620. data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +11 -11
  621. data/ext/third_party/json/include/tao/json/external/pegtl/internal/success.hpp +32 -0
  622. data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +16 -16
  623. data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +18 -14
  624. data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +2 -3
  625. data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +125 -29
  626. data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +32 -48
  627. data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +16 -16
  628. data/ext/third_party/json/include/tao/json/external/pegtl/must_if.hpp +64 -0
  629. data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +25 -25
  630. data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +1 -2
  631. data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +6 -8
  632. data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +80 -35
  633. data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +18 -10
  634. data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +18 -38
  635. data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +6 -5
  636. data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +3 -5
  637. data/ext/third_party/json/include/tao/json/external/pegtl/type_list.hpp +46 -0
  638. data/ext/third_party/json/include/tao/json/external/pegtl/visit.hpp +66 -0
  639. data/ext/third_party/json/include/tao/json/from_file.hpp +5 -5
  640. data/ext/third_party/json/include/tao/json/internal/action.hpp +3 -3
  641. data/ext/third_party/json/include/tao/json/internal/dependent_false.hpp +14 -0
  642. data/ext/third_party/json/include/tao/json/internal/errors.hpp +17 -17
  643. data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -2
  644. data/ext/third_party/json/include/tao/json/internal/grammar.hpp +17 -17
  645. data/ext/third_party/json/include/tao/json/internal/pair.hpp +1 -1
  646. data/ext/third_party/json/include/tao/json/internal/sha256.hpp +8 -8
  647. data/ext/third_party/json/include/tao/json/internal/single.hpp +1 -1
  648. data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +12 -29
  649. data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +7 -7
  650. data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +4 -4
  651. data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +2 -2
  652. data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +5 -5
  653. data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +6 -6
  654. data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +2 -2
  655. data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +43 -43
  656. data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +36 -36
  657. data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +10 -11
  658. data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +2 -2
  659. data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +1 -3
  660. data/ext/third_party/json/include/tao/json/message_extension.hpp +2 -2
  661. data/ext/third_party/json/include/tao/json/msgpack.hpp +1 -0
  662. data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +7 -7
  663. data/ext/third_party/json/include/tao/json/msgpack/events/from_binary.hpp +43 -0
  664. data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +4 -4
  665. data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +4 -4
  666. data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +4 -4
  667. data/ext/third_party/json/include/tao/json/msgpack/from_binary.hpp +32 -0
  668. data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +5 -5
  669. data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +2 -1
  670. data/ext/third_party/json/include/tao/json/operators.hpp +0 -4
  671. data/ext/third_party/json/include/tao/json/parts_parser.hpp +3 -7
  672. data/ext/third_party/json/include/tao/json/self_contained.hpp +6 -18
  673. data/ext/third_party/json/include/tao/json/span.hpp +94 -166
  674. data/ext/third_party/json/include/tao/json/ubjson.hpp +1 -0
  675. data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +7 -7
  676. data/ext/third_party/json/include/tao/json/ubjson/events/from_binary.hpp +43 -0
  677. data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +4 -4
  678. data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +3 -3
  679. data/ext/third_party/json/include/tao/json/ubjson/from_binary.hpp +32 -0
  680. data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +5 -5
  681. data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +5 -3
  682. data/ext/third_party/json/include/tao/json/utf8.hpp +1 -1
  683. data/ext/third_party/snappy/snappy.cc +6 -2
  684. data/ext/third_party/spdlog/CMakeLists.txt +24 -57
  685. data/ext/third_party/spdlog/cmake/version.rc.in +1 -1
  686. data/ext/third_party/spdlog/include/spdlog/async.h +3 -3
  687. data/ext/third_party/spdlog/include/spdlog/cfg/argv.h +3 -4
  688. data/ext/third_party/spdlog/include/spdlog/cfg/env.h +6 -4
  689. data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +22 -6
  690. data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +3 -2
  691. data/ext/third_party/spdlog/include/spdlog/common.h +1 -2
  692. data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +9 -1
  693. data/ext/third_party/spdlog/include/spdlog/details/os.h +1 -1
  694. data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +21 -7
  695. data/ext/third_party/spdlog/include/spdlog/details/registry.h +6 -3
  696. data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +1 -1
  697. data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +1 -1
  698. data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +8 -7
  699. data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +2 -2
  700. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +66 -62
  701. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +35 -37
  702. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +173 -103
  703. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +538 -445
  704. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +114 -64
  705. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +1152 -1071
  706. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +16 -16
  707. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/os.h +450 -0
  708. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +37 -13
  709. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +1 -1
  710. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +93 -63
  711. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +35 -36
  712. data/ext/third_party/spdlog/include/spdlog/fmt/chrono.h +20 -0
  713. data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +2 -0
  714. data/ext/third_party/spdlog/include/spdlog/logger-inl.h +5 -1
  715. data/ext/third_party/spdlog/include/spdlog/logger.h +50 -76
  716. data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +23 -8
  717. data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +3 -3
  718. data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +1 -1
  719. data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +5 -5
  720. data/ext/third_party/spdlog/include/spdlog/sinks/ringbuffer_sink.h +6 -4
  721. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +32 -3
  722. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +7 -0
  723. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +4 -14
  724. data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +11 -1
  725. data/ext/third_party/spdlog/include/spdlog/spdlog.h +23 -68
  726. data/ext/third_party/spdlog/include/spdlog/stopwatch.h +61 -0
  727. data/ext/third_party/spdlog/include/spdlog/version.h +2 -2
  728. data/ext/third_party/spdlog/src/fmt.cpp +21 -147
  729. data/lib/active_support/cache/couchbase_store.rb +362 -0
  730. data/lib/couchbase.rb +3 -1
  731. data/lib/couchbase/analytics_options.rb +2 -74
  732. data/lib/couchbase/authenticator.rb +41 -1
  733. data/lib/couchbase/binary_collection.rb +63 -24
  734. data/lib/couchbase/binary_collection_options.rb +1 -75
  735. data/lib/couchbase/bucket.rb +43 -38
  736. data/lib/couchbase/cluster.rb +225 -127
  737. data/lib/couchbase/collection.rb +323 -92
  738. data/lib/couchbase/collection_options.rb +73 -239
  739. data/lib/couchbase/configuration.rb +57 -0
  740. data/lib/couchbase/datastructures.rb +7 -1
  741. data/lib/couchbase/datastructures/couchbase_list.rb +22 -33
  742. data/lib/couchbase/datastructures/couchbase_map.rb +24 -35
  743. data/lib/couchbase/datastructures/couchbase_queue.rb +19 -30
  744. data/lib/couchbase/datastructures/couchbase_set.rb +14 -24
  745. data/lib/couchbase/diagnostics.rb +181 -0
  746. data/lib/couchbase/errors.rb +125 -7
  747. data/lib/couchbase/json_transcoder.rb +4 -4
  748. data/lib/couchbase/logger.rb +42 -0
  749. data/lib/couchbase/management.rb +27 -0
  750. data/lib/couchbase/management/analytics_index_manager.rb +38 -38
  751. data/lib/couchbase/management/bucket_manager.rb +71 -31
  752. data/lib/couchbase/management/collection_manager.rb +12 -5
  753. data/lib/couchbase/management/query_index_manager.rb +61 -16
  754. data/lib/couchbase/management/search_index_manager.rb +58 -14
  755. data/lib/couchbase/management/user_manager.rb +176 -50
  756. data/lib/couchbase/management/view_index_manager.rb +12 -6
  757. data/lib/couchbase/mutation_state.rb +13 -1
  758. data/lib/couchbase/options.rb +2113 -0
  759. data/lib/couchbase/query_options.rb +6 -128
  760. data/lib/couchbase/railtie.rb +45 -0
  761. data/lib/couchbase/scope.rb +88 -2
  762. data/lib/couchbase/search_options.rb +99 -111
  763. data/lib/couchbase/subdoc.rb +32 -29
  764. data/{Gemfile → lib/couchbase/utils.rb} +5 -17
  765. data/lib/couchbase/utils/time.rb +52 -0
  766. data/lib/couchbase/version.rb +22 -3
  767. data/lib/couchbase/view_options.rb +2 -93
  768. data/lib/{couchbase/common_options.rb → rails/generators/couchbase/config/config_generator.rb} +10 -12
  769. metadata +212 -269
  770. data/.yardopts +0 -1
  771. data/Rakefile +0 -51
  772. data/couchbase.gemspec +0 -78
  773. data/examples/analytics.rb +0 -221
  774. data/examples/crud.rb +0 -20
  775. data/examples/managing_analytics_indexes.rb +0 -72
  776. data/examples/managing_buckets.rb +0 -47
  777. data/examples/managing_collections.rb +0 -58
  778. data/examples/managing_query_indexes.rb +0 -63
  779. data/examples/managing_search_indexes.rb +0 -62
  780. data/examples/managing_view_indexes.rb +0 -54
  781. data/examples/query.rb +0 -18
  782. data/examples/query_with_consistency.rb +0 -76
  783. data/examples/search.rb +0 -187
  784. data/examples/search_with_consistency.rb +0 -84
  785. data/examples/subdocument.rb +0 -51
  786. data/examples/view.rb +0 -50
  787. data/ext/.clang-format +0 -15
  788. data/ext/.clang-tidy +0 -22
  789. data/ext/.cmake-format.yaml +0 -8
  790. data/ext/.gitignore +0 -2
  791. data/ext/.idea/.name +0 -1
  792. data/ext/.idea/dictionaries/couchbase_terms.xml +0 -14
  793. data/ext/.idea/ext.iml +0 -2
  794. data/ext/.idea/misc.xml +0 -16
  795. data/ext/.idea/modules.xml +0 -8
  796. data/ext/.idea/vcs.xml +0 -12
  797. data/ext/test/main.cxx +0 -136
  798. data/ext/third_party/asio/.appveyor.yml +0 -107
  799. data/ext/third_party/asio/.cirrus.yml +0 -16
  800. data/ext/third_party/asio/.gitignore +0 -3
  801. data/ext/third_party/asio/.travis.yml +0 -323
  802. data/ext/third_party/asio/asio/.gitignore +0 -23
  803. data/ext/third_party/asio/asio/COPYING +0 -4
  804. data/ext/third_party/asio/asio/INSTALL +0 -5
  805. data/ext/third_party/asio/asio/LICENSE_1_0.txt +0 -23
  806. data/ext/third_party/asio/asio/Makefile.am +0 -19
  807. data/ext/third_party/asio/asio/README +0 -4
  808. data/ext/third_party/asio/asio/asio.manifest +0 -4865
  809. data/ext/third_party/asio/asio/autogen.sh +0 -55
  810. data/ext/third_party/asio/asio/boost_asio.manifest +0 -5193
  811. data/ext/third_party/asio/asio/boostify.pl +0 -603
  812. data/ext/third_party/asio/asio/configure.ac +0 -182
  813. data/ext/third_party/asio/asio/include/.gitignore +0 -2
  814. data/ext/third_party/asio/asio/include/Makefile.am +0 -484
  815. data/ext/third_party/asio/asio/include/asio/detail/io_object_executor.hpp +0 -167
  816. data/ext/third_party/asio/asio/include/asio/impl/src.cpp +0 -25
  817. data/ext/third_party/asio/asio/release.pl +0 -440
  818. data/ext/third_party/asio/asio/src/.gitignore +0 -11
  819. data/ext/third_party/asio/asio/src/Makefile.am +0 -23
  820. data/ext/third_party/asio/asio/src/Makefile.mgw +0 -204
  821. data/ext/third_party/asio/asio/src/Makefile.msc +0 -497
  822. data/ext/third_party/asio/asio/src/asio.cpp +0 -11
  823. data/ext/third_party/asio/asio/src/asio_ssl.cpp +0 -11
  824. data/ext/third_party/asio/asio/src/doc/.gitignore +0 -5
  825. data/ext/third_party/asio/asio/src/doc/Jamfile.v2 +0 -62
  826. data/ext/third_party/asio/asio/src/doc/asio.png +0 -0
  827. data/ext/third_party/asio/asio/src/doc/asio.qbk +0 -127
  828. data/ext/third_party/asio/asio/src/doc/asioref.sty +0 -90
  829. data/ext/third_party/asio/asio/src/doc/asioref.xsl +0 -94
  830. data/ext/third_party/asio/asio/src/doc/boost_bind_dox.txt +0 -5
  831. data/ext/third_party/asio/asio/src/doc/doxy2qbk.pl +0 -22
  832. data/ext/third_party/asio/asio/src/doc/examples.qbk +0 -564
  833. data/ext/third_party/asio/asio/src/doc/history.qbk +0 -1794
  834. data/ext/third_party/asio/asio/src/doc/index.xml +0 -13
  835. data/ext/third_party/asio/asio/src/doc/makepdf.pl +0 -26
  836. data/ext/third_party/asio/asio/src/doc/net_ts.qbk +0 -479
  837. data/ext/third_party/asio/asio/src/doc/noncopyable_dox.txt +0 -3
  838. data/ext/third_party/asio/asio/src/doc/overview.qbk +0 -103
  839. data/ext/third_party/asio/asio/src/doc/overview/allocation.qbk +0 -89
  840. data/ext/third_party/asio/asio/src/doc/overview/async.qbk +0 -185
  841. data/ext/third_party/asio/asio/src/doc/overview/async_op1.dot +0 -78
  842. data/ext/third_party/asio/asio/src/doc/overview/async_op1.png +0 -0
  843. data/ext/third_party/asio/asio/src/doc/overview/async_op2.dot +0 -78
  844. data/ext/third_party/asio/asio/src/doc/overview/async_op2.png +0 -0
  845. data/ext/third_party/asio/asio/src/doc/overview/basics.qbk +0 -106
  846. data/ext/third_party/asio/asio/src/doc/overview/bsd_sockets.qbk +0 -270
  847. data/ext/third_party/asio/asio/src/doc/overview/buffers.qbk +0 -163
  848. data/ext/third_party/asio/asio/src/doc/overview/concurrency_hint.qbk +0 -88
  849. data/ext/third_party/asio/asio/src/doc/overview/coroutine.qbk +0 -51
  850. data/ext/third_party/asio/asio/src/doc/overview/coroutines_ts.qbk +0 -97
  851. data/ext/third_party/asio/asio/src/doc/overview/cpp2011.qbk +0 -271
  852. data/ext/third_party/asio/asio/src/doc/overview/handler_tracking.qbk +0 -220
  853. data/ext/third_party/asio/asio/src/doc/overview/implementation.qbk +0 -305
  854. data/ext/third_party/asio/asio/src/doc/overview/iostreams.qbk +0 -72
  855. data/ext/third_party/asio/asio/src/doc/overview/line_based.qbk +0 -118
  856. data/ext/third_party/asio/asio/src/doc/overview/other_protocols.qbk +0 -94
  857. data/ext/third_party/asio/asio/src/doc/overview/posix.qbk +0 -152
  858. data/ext/third_party/asio/asio/src/doc/overview/proactor.dot +0 -100
  859. data/ext/third_party/asio/asio/src/doc/overview/proactor.png +0 -0
  860. data/ext/third_party/asio/asio/src/doc/overview/protocols.qbk +0 -149
  861. data/ext/third_party/asio/asio/src/doc/overview/rationale.qbk +0 -54
  862. data/ext/third_party/asio/asio/src/doc/overview/reactor.qbk +0 -44
  863. data/ext/third_party/asio/asio/src/doc/overview/serial_ports.qbk +0 -45
  864. data/ext/third_party/asio/asio/src/doc/overview/signals.qbk +0 -44
  865. data/ext/third_party/asio/asio/src/doc/overview/spawn.qbk +0 -102
  866. data/ext/third_party/asio/asio/src/doc/overview/ssl.qbk +0 -124
  867. data/ext/third_party/asio/asio/src/doc/overview/strands.qbk +0 -114
  868. data/ext/third_party/asio/asio/src/doc/overview/streams.qbk +0 -62
  869. data/ext/third_party/asio/asio/src/doc/overview/sync_op.dot +0 -67
  870. data/ext/third_party/asio/asio/src/doc/overview/sync_op.png +0 -0
  871. data/ext/third_party/asio/asio/src/doc/overview/threads.qbk +0 -67
  872. data/ext/third_party/asio/asio/src/doc/overview/timers.qbk +0 -52
  873. data/ext/third_party/asio/asio/src/doc/overview/windows.qbk +0 -126
  874. data/ext/third_party/asio/asio/src/doc/project-root.jam +0 -1
  875. data/ext/third_party/asio/asio/src/doc/quickref.xml +0 -561
  876. data/ext/third_party/asio/asio/src/doc/reference.dox +0 -264
  877. data/ext/third_party/asio/asio/src/doc/reference.qbk +0 -125973
  878. data/ext/third_party/asio/asio/src/doc/reference.xsl +0 -1831
  879. data/ext/third_party/asio/asio/src/doc/release_checklist.htm +0 -68
  880. data/ext/third_party/asio/asio/src/doc/requirements/AcceptHandler.qbk +0 -72
  881. data/ext/third_party/asio/asio/src/doc/requirements/AcceptableProtocol.qbk +0 -25
  882. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessReadDevice.qbk +0 -56
  883. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessWriteDevice.qbk +0 -57
  884. data/ext/third_party/asio/asio/src/doc/requirements/AsyncReadStream.qbk +0 -50
  885. data/ext/third_party/asio/asio/src/doc/requirements/AsyncWriteStream.qbk +0 -48
  886. data/ext/third_party/asio/asio/src/doc/requirements/BufferedHandshakeHandler.qbk +0 -55
  887. data/ext/third_party/asio/asio/src/doc/requirements/CompletionCondition.qbk +0 -42
  888. data/ext/third_party/asio/asio/src/doc/requirements/CompletionHandler.qbk +0 -63
  889. data/ext/third_party/asio/asio/src/doc/requirements/ConnectCondition.qbk +0 -34
  890. data/ext/third_party/asio/asio/src/doc/requirements/ConnectHandler.qbk +0 -72
  891. data/ext/third_party/asio/asio/src/doc/requirements/ConstBufferSequence.qbk +0 -53
  892. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer.qbk +0 -16
  893. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v1.qbk +0 -93
  894. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v2.qbk +0 -94
  895. data/ext/third_party/asio/asio/src/doc/requirements/Endpoint.qbk +0 -97
  896. data/ext/third_party/asio/asio/src/doc/requirements/EndpointSequence.qbk +0 -30
  897. data/ext/third_party/asio/asio/src/doc/requirements/ExecutionContext.qbk +0 -36
  898. data/ext/third_party/asio/asio/src/doc/requirements/Executor.qbk +0 -141
  899. data/ext/third_party/asio/asio/src/doc/requirements/GettableSerialPortOption.qbk +0 -33
  900. data/ext/third_party/asio/asio/src/doc/requirements/GettableSocketOption.qbk +0 -67
  901. data/ext/third_party/asio/asio/src/doc/requirements/Handler.qbk +0 -64
  902. data/ext/third_party/asio/asio/src/doc/requirements/HandshakeHandler.qbk +0 -72
  903. data/ext/third_party/asio/asio/src/doc/requirements/InternetProtocol.qbk +0 -47
  904. data/ext/third_party/asio/asio/src/doc/requirements/IoControlCommand.qbk +0 -34
  905. data/ext/third_party/asio/asio/src/doc/requirements/IoObjectService.qbk +0 -62
  906. data/ext/third_party/asio/asio/src/doc/requirements/IteratorConnectHandler.qbk +0 -81
  907. data/ext/third_party/asio/asio/src/doc/requirements/LegacyCompletionHandler.qbk +0 -65
  908. data/ext/third_party/asio/asio/src/doc/requirements/MoveAcceptHandler.qbk +0 -61
  909. data/ext/third_party/asio/asio/src/doc/requirements/MutableBufferSequence.qbk +0 -54
  910. data/ext/third_party/asio/asio/src/doc/requirements/ProtoAllocator.qbk +0 -19
  911. data/ext/third_party/asio/asio/src/doc/requirements/Protocol.qbk +0 -56
  912. data/ext/third_party/asio/asio/src/doc/requirements/RangeConnectHandler.qbk +0 -82
  913. data/ext/third_party/asio/asio/src/doc/requirements/ReadHandler.qbk +0 -79
  914. data/ext/third_party/asio/asio/src/doc/requirements/ResolveHandler.qbk +0 -82
  915. data/ext/third_party/asio/asio/src/doc/requirements/Service.qbk +0 -40
  916. data/ext/third_party/asio/asio/src/doc/requirements/SettableSerialPortOption.qbk +0 -33
  917. data/ext/third_party/asio/asio/src/doc/requirements/SettableSocketOption.qbk +0 -54
  918. data/ext/third_party/asio/asio/src/doc/requirements/ShutdownHandler.qbk +0 -72
  919. data/ext/third_party/asio/asio/src/doc/requirements/SignalHandler.qbk +0 -79
  920. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessReadDevice.qbk +0 -49
  921. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessWriteDevice.qbk +0 -49
  922. data/ext/third_party/asio/asio/src/doc/requirements/SyncReadStream.qbk +0 -41
  923. data/ext/third_party/asio/asio/src/doc/requirements/SyncWriteStream.qbk +0 -39
  924. data/ext/third_party/asio/asio/src/doc/requirements/TimeTraits.qbk +0 -72
  925. data/ext/third_party/asio/asio/src/doc/requirements/WaitHandler.qbk +0 -72
  926. data/ext/third_party/asio/asio/src/doc/requirements/WaitTraits.qbk +0 -52
  927. data/ext/third_party/asio/asio/src/doc/requirements/WriteHandler.qbk +0 -79
  928. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_operations.qbk +0 -300
  929. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_socket_operations.qbk +0 -39
  930. data/ext/third_party/asio/asio/src/doc/requirements/read_write_operations.qbk +0 -34
  931. data/ext/third_party/asio/asio/src/doc/requirements/synchronous_socket_operations.qbk +0 -37
  932. data/ext/third_party/asio/asio/src/doc/std_exception_dox.txt +0 -7
  933. data/ext/third_party/asio/asio/src/doc/tutorial.dox +0 -226
  934. data/ext/third_party/asio/asio/src/doc/tutorial.qbk +0 -2387
  935. data/ext/third_party/asio/asio/src/doc/tutorial.xsl +0 -437
  936. data/ext/third_party/asio/asio/src/doc/using.qbk +0 -309
  937. data/ext/third_party/asio/asio/tsify.pl +0 -574
  938. data/ext/third_party/gsl/.clang-format +0 -34
  939. data/ext/third_party/gsl/.github/workflows/main.yml +0 -94
  940. data/ext/third_party/gsl/.gitignore +0 -16
  941. data/ext/third_party/gsl/.travis.yml +0 -551
  942. data/ext/third_party/gsl/CMakeSettings.json +0 -18
  943. data/ext/third_party/gsl/CONTRIBUTING.md +0 -29
  944. data/ext/third_party/gsl/GSL.natvis +0 -98
  945. data/ext/third_party/gsl/README.md +0 -124
  946. data/ext/third_party/gsl/appveyor.yml +0 -128
  947. data/ext/third_party/http_parser/.gitignore +0 -30
  948. data/ext/third_party/http_parser/.mailmap +0 -8
  949. data/ext/third_party/http_parser/.travis.yml +0 -13
  950. data/ext/third_party/http_parser/AUTHORS +0 -68
  951. data/ext/third_party/http_parser/Makefile +0 -160
  952. data/ext/third_party/http_parser/README.md +0 -246
  953. data/ext/third_party/http_parser/bench.c +0 -128
  954. data/ext/third_party/http_parser/http_parser.gyp +0 -111
  955. data/ext/third_party/http_parser/test.c +0 -4600
  956. data/ext/third_party/json/.appveyor.yml +0 -44
  957. data/ext/third_party/json/.clang-format +0 -84
  958. data/ext/third_party/json/.conan/build.py +0 -80
  959. data/ext/third_party/json/.conan/test_package/CMakeLists.txt +0 -12
  960. data/ext/third_party/json/.conan/test_package/conanfile.py +0 -24
  961. data/ext/third_party/json/.conan/test_package/test_package.cpp +0 -16
  962. data/ext/third_party/json/.gitignore +0 -3
  963. data/ext/third_party/json/.travis.yml +0 -173
  964. data/ext/third_party/json/Makefile +0 -77
  965. data/ext/third_party/json/README.md +0 -149
  966. data/ext/third_party/json/conanfile.py +0 -28
  967. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/analyze_cycles.hpp +0 -127
  968. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/counted.hpp +0 -23
  969. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/generic.hpp +0 -31
  970. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/grammar_info.hpp +0 -32
  971. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_guard.hpp +0 -51
  972. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_rules.hpp +0 -25
  973. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_info.hpp +0 -29
  974. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_type.hpp +0 -21
  975. data/ext/third_party/json/include/tao/json/external/pegtl/analyze.hpp +0 -21
  976. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/counter.hpp +0 -54
  977. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/tracer.hpp +0 -158
  978. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alnum.hpp +0 -18
  979. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alpha.hpp +0 -18
  980. data/ext/third_party/json/include/tao/json/external/pegtl/internal/dusel_mode.hpp +0 -23
  981. data/ext/third_party/json/include/tao/json/external/pegtl/internal/duseltronik.hpp +0 -187
  982. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_opener.hpp +0 -72
  983. data/ext/third_party/json/include/tao/json/external/pegtl/internal/trivial.hpp +0 -32
  984. data/ext/third_party/snappy/.appveyor.yml +0 -36
  985. data/ext/third_party/snappy/.gitignore +0 -8
  986. data/ext/third_party/snappy/.travis.yml +0 -98
  987. data/ext/third_party/snappy/AUTHORS +0 -1
  988. data/ext/third_party/snappy/CONTRIBUTING.md +0 -26
  989. data/ext/third_party/snappy/NEWS +0 -188
  990. data/ext/third_party/snappy/README.md +0 -148
  991. data/ext/third_party/snappy/docs/README.md +0 -72
  992. data/ext/third_party/snappy/format_description.txt +0 -110
  993. data/ext/third_party/snappy/framing_format.txt +0 -135
  994. data/ext/third_party/snappy/snappy-test.cc +0 -613
  995. data/ext/third_party/snappy/snappy-test.h +0 -526
  996. data/ext/third_party/snappy/snappy_compress_fuzzer.cc +0 -60
  997. data/ext/third_party/snappy/snappy_uncompress_fuzzer.cc +0 -58
  998. data/ext/third_party/snappy/snappy_unittest.cc +0 -1512
  999. data/ext/third_party/spdlog/.clang-format +0 -108
  1000. data/ext/third_party/spdlog/.clang-tidy +0 -54
  1001. data/ext/third_party/spdlog/.gitattributes +0 -1
  1002. data/ext/third_party/spdlog/.gitignore +0 -83
  1003. data/ext/third_party/spdlog/.travis.yml +0 -112
  1004. data/ext/third_party/spdlog/INSTALL +0 -24
  1005. data/ext/third_party/spdlog/README.md +0 -423
  1006. data/ext/third_party/spdlog/appveyor.yml +0 -51
  1007. data/ext/third_party/spdlog/include/spdlog/cfg/log_levels.h +0 -47
@@ -0,0 +1,49 @@
1
+ //
2
+ // impl/multiple_exceptions.ipp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
+ //
7
+ // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
+ //
10
+
11
+ #ifndef ASIO_IMPL_MULTIPLE_EXCEPTIONS_IPP
12
+ #define ASIO_IMPL_MULTIPLE_EXCEPTIONS_IPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include "asio/detail/config.hpp"
19
+ #include "asio/multiple_exceptions.hpp"
20
+
21
+ #include "asio/detail/push_options.hpp"
22
+
23
+ namespace asio {
24
+
25
+ #if defined(ASIO_HAS_STD_EXCEPTION_PTR)
26
+
27
+ multiple_exceptions::multiple_exceptions(
28
+ std::exception_ptr first) ASIO_NOEXCEPT
29
+ : first_(ASIO_MOVE_CAST(std::exception_ptr)(first))
30
+ {
31
+ }
32
+
33
+ const char* multiple_exceptions::what() const ASIO_NOEXCEPT_OR_NOTHROW
34
+ {
35
+ return "multiple exceptions";
36
+ }
37
+
38
+ std::exception_ptr multiple_exceptions::first_exception() const
39
+ {
40
+ return first_;
41
+ }
42
+
43
+ #endif // defined(ASIO_HAS_STD_EXCEPTION_PTR)
44
+
45
+ } // namespace asio
46
+
47
+ #include "asio/detail/pop_options.hpp"
48
+
49
+ #endif // ASIO_IMPL_MULTIPLE_EXCEPTIONS_IPP
@@ -19,6 +19,11 @@
19
19
  #include "asio/associated_allocator.hpp"
20
20
  #include "asio/associated_executor.hpp"
21
21
  #include "asio/detail/work_dispatcher.hpp"
22
+ #include "asio/execution/allocator.hpp"
23
+ #include "asio/execution/blocking.hpp"
24
+ #include "asio/execution/relationship.hpp"
25
+ #include "asio/prefer.hpp"
26
+ #include "asio/require.hpp"
22
27
 
23
28
  #include "asio/detail/push_options.hpp"
24
29
 
@@ -29,14 +34,47 @@ class initiate_post
29
34
  {
30
35
  public:
31
36
  template <typename CompletionHandler>
32
- void operator()(ASIO_MOVE_ARG(CompletionHandler) handler) const
37
+ void operator()(ASIO_MOVE_ARG(CompletionHandler) handler,
38
+ typename enable_if<
39
+ execution::is_executor<
40
+ typename associated_executor<
41
+ typename decay<CompletionHandler>::type
42
+ >::type
43
+ >::value
44
+ >::type* = 0) const
33
45
  {
34
- typedef typename decay<CompletionHandler>::type DecayedHandler;
46
+ typedef typename decay<CompletionHandler>::type handler_t;
35
47
 
36
- typename associated_executor<DecayedHandler>::type ex(
48
+ typename associated_executor<handler_t>::type ex(
37
49
  (get_associated_executor)(handler));
38
50
 
39
- typename associated_allocator<DecayedHandler>::type alloc(
51
+ typename associated_allocator<handler_t>::type alloc(
52
+ (get_associated_allocator)(handler));
53
+
54
+ execution::execute(
55
+ asio::prefer(
56
+ asio::require(ex, execution::blocking.never),
57
+ execution::relationship.fork,
58
+ execution::allocator(alloc)),
59
+ ASIO_MOVE_CAST(CompletionHandler)(handler));
60
+ }
61
+
62
+ template <typename CompletionHandler>
63
+ void operator()(ASIO_MOVE_ARG(CompletionHandler) handler,
64
+ typename enable_if<
65
+ !execution::is_executor<
66
+ typename associated_executor<
67
+ typename decay<CompletionHandler>::type
68
+ >::type
69
+ >::value
70
+ >::type* = 0) const
71
+ {
72
+ typedef typename decay<CompletionHandler>::type handler_t;
73
+
74
+ typename associated_executor<handler_t>::type ex(
75
+ (get_associated_executor)(handler));
76
+
77
+ typename associated_allocator<handler_t>::type alloc(
40
78
  (get_associated_allocator)(handler));
41
79
 
42
80
  ex.post(ASIO_MOVE_CAST(CompletionHandler)(handler), alloc);
@@ -60,15 +98,108 @@ public:
60
98
  }
61
99
 
62
100
  template <typename CompletionHandler>
63
- void operator()(ASIO_MOVE_ARG(CompletionHandler) handler) const
101
+ void operator()(ASIO_MOVE_ARG(CompletionHandler) handler,
102
+ typename enable_if<
103
+ execution::is_executor<
104
+ typename conditional<true, executor_type, CompletionHandler>::type
105
+ >::value
106
+ &&
107
+ !detail::is_work_dispatcher_required<
108
+ typename decay<CompletionHandler>::type,
109
+ Executor
110
+ >::value
111
+ >::type* = 0) const
64
112
  {
65
- typedef typename decay<CompletionHandler>::type DecayedHandler;
113
+ typedef typename decay<CompletionHandler>::type handler_t;
114
+
115
+ typename associated_allocator<handler_t>::type alloc(
116
+ (get_associated_allocator)(handler));
117
+
118
+ execution::execute(
119
+ asio::prefer(
120
+ asio::require(ex_, execution::blocking.never),
121
+ execution::relationship.fork,
122
+ execution::allocator(alloc)),
123
+ ASIO_MOVE_CAST(CompletionHandler)(handler));
124
+ }
125
+
126
+ template <typename CompletionHandler>
127
+ void operator()(ASIO_MOVE_ARG(CompletionHandler) handler,
128
+ typename enable_if<
129
+ execution::is_executor<
130
+ typename conditional<true, executor_type, CompletionHandler>::type
131
+ >::value
132
+ &&
133
+ detail::is_work_dispatcher_required<
134
+ typename decay<CompletionHandler>::type,
135
+ Executor
136
+ >::value
137
+ >::type* = 0) const
138
+ {
139
+ typedef typename decay<CompletionHandler>::type handler_t;
140
+
141
+ typedef typename associated_executor<
142
+ handler_t, Executor>::type handler_ex_t;
143
+ handler_ex_t handler_ex((get_associated_executor)(handler, ex_));
66
144
 
67
- typename associated_allocator<DecayedHandler>::type alloc(
145
+ typename associated_allocator<handler_t>::type alloc(
68
146
  (get_associated_allocator)(handler));
69
147
 
70
- ex_.post(detail::work_dispatcher<DecayedHandler>(
71
- ASIO_MOVE_CAST(CompletionHandler)(handler)), alloc);
148
+ execution::execute(
149
+ asio::prefer(
150
+ asio::require(ex_, execution::blocking.never),
151
+ execution::relationship.fork,
152
+ execution::allocator(alloc)),
153
+ detail::work_dispatcher<handler_t, handler_ex_t>(
154
+ ASIO_MOVE_CAST(CompletionHandler)(handler), handler_ex));
155
+ }
156
+
157
+ template <typename CompletionHandler>
158
+ void operator()(ASIO_MOVE_ARG(CompletionHandler) handler,
159
+ typename enable_if<
160
+ !execution::is_executor<
161
+ typename conditional<true, executor_type, CompletionHandler>::type
162
+ >::value
163
+ &&
164
+ !detail::is_work_dispatcher_required<
165
+ typename decay<CompletionHandler>::type,
166
+ Executor
167
+ >::value
168
+ >::type* = 0) const
169
+ {
170
+ typedef typename decay<CompletionHandler>::type handler_t;
171
+
172
+ typename associated_allocator<handler_t>::type alloc(
173
+ (get_associated_allocator)(handler));
174
+
175
+ ex_.post(ASIO_MOVE_CAST(CompletionHandler)(handler), alloc);
176
+ }
177
+
178
+ template <typename CompletionHandler>
179
+ void operator()(ASIO_MOVE_ARG(CompletionHandler) handler,
180
+ typename enable_if<
181
+ !execution::is_executor<
182
+ typename conditional<true, executor_type, CompletionHandler>::type
183
+ >::value
184
+ &&
185
+ detail::is_work_dispatcher_required<
186
+ typename decay<CompletionHandler>::type,
187
+ Executor
188
+ >::value
189
+ >::type* = 0) const
190
+ {
191
+ typedef typename decay<CompletionHandler>::type handler_t;
192
+
193
+ typedef typename associated_executor<
194
+ handler_t, Executor>::type handler_ex_t;
195
+ handler_ex_t handler_ex((get_associated_executor)(handler, ex_));
196
+
197
+ typename associated_allocator<handler_t>::type alloc(
198
+ (get_associated_allocator)(handler));
199
+
200
+ ex_.post(detail::work_dispatcher<handler_t, handler_ex_t>(
201
+ ASIO_MOVE_CAST(CompletionHandler)(handler),
202
+ handler_ex), alloc);
72
203
  }
73
204
 
74
205
  private:
@@ -89,7 +220,9 @@ template <typename Executor,
89
220
  ASIO_COMPLETION_TOKEN_FOR(void()) CompletionToken>
90
221
  ASIO_INITFN_AUTO_RESULT_TYPE(CompletionToken, void()) post(
91
222
  const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token,
92
- typename enable_if<is_executor<Executor>::value>::type*)
223
+ typename enable_if<
224
+ execution::is_executor<Executor>::value || is_executor<Executor>::value
225
+ >::type*)
93
226
  {
94
227
  return async_initiate<CompletionToken, void()>(
95
228
  detail::initiate_post_with_executor<Executor>(ex), token);
@@ -102,8 +235,10 @@ inline ASIO_INITFN_AUTO_RESULT_TYPE(CompletionToken, void()) post(
102
235
  typename enable_if<is_convertible<
103
236
  ExecutionContext&, execution_context&>::value>::type*)
104
237
  {
105
- return (post)(ctx.get_executor(),
106
- ASIO_MOVE_CAST(CompletionToken)(token));
238
+ return async_initiate<CompletionToken, void()>(
239
+ detail::initiate_post_with_executor<
240
+ typename ExecutionContext::executor_type>(
241
+ ctx.get_executor()), token);
107
242
  }
108
243
 
109
244
  } // namespace asio
@@ -28,6 +28,7 @@
28
28
  #include "asio/detail/handler_alloc_helpers.hpp"
29
29
  #include "asio/detail/handler_cont_helpers.hpp"
30
30
  #include "asio/detail/handler_invoke_helpers.hpp"
31
+ #include "asio/detail/handler_tracking.hpp"
31
32
  #include "asio/detail/handler_type_requirements.hpp"
32
33
  #include "asio/detail/non_const_lvalue.hpp"
33
34
  #include "asio/detail/throw_error.hpp"
@@ -360,8 +361,11 @@ namespace detail
360
361
  max_size = this->check_for_completion(ec, buffers_.total_consumed());
361
362
  do
362
363
  {
363
- stream_.async_read_some(buffers_.prepare(max_size),
364
- ASIO_MOVE_CAST(read_op)(*this));
364
+ {
365
+ ASIO_HANDLER_LOCATION((__FILE__, __LINE__, "async_read"));
366
+ stream_.async_read_some(buffers_.prepare(max_size),
367
+ ASIO_MOVE_CAST(read_op)(*this));
368
+ }
365
369
  return; default:
366
370
  buffers_.consume(bytes_transferred);
367
371
  if ((!ec && bytes_transferred == 0) || buffers_.empty())
@@ -386,23 +390,33 @@ namespace detail
386
390
  template <typename AsyncReadStream, typename MutableBufferSequence,
387
391
  typename MutableBufferIterator, typename CompletionCondition,
388
392
  typename ReadHandler>
389
- inline void* asio_handler_allocate(std::size_t size,
393
+ inline asio_handler_allocate_is_deprecated
394
+ asio_handler_allocate(std::size_t size,
390
395
  read_op<AsyncReadStream, MutableBufferSequence, MutableBufferIterator,
391
396
  CompletionCondition, ReadHandler>* this_handler)
392
397
  {
398
+ #if defined(ASIO_NO_DEPRECATED)
399
+ asio_handler_alloc_helpers::allocate(size, this_handler->handler_);
400
+ return asio_handler_allocate_is_no_longer_used();
401
+ #else // defined(ASIO_NO_DEPRECATED)
393
402
  return asio_handler_alloc_helpers::allocate(
394
403
  size, this_handler->handler_);
404
+ #endif // defined(ASIO_NO_DEPRECATED)
395
405
  }
396
406
 
397
407
  template <typename AsyncReadStream, typename MutableBufferSequence,
398
408
  typename MutableBufferIterator, typename CompletionCondition,
399
409
  typename ReadHandler>
400
- inline void asio_handler_deallocate(void* pointer, std::size_t size,
410
+ inline asio_handler_deallocate_is_deprecated
411
+ asio_handler_deallocate(void* pointer, std::size_t size,
401
412
  read_op<AsyncReadStream, MutableBufferSequence, MutableBufferIterator,
402
413
  CompletionCondition, ReadHandler>* this_handler)
403
414
  {
404
415
  asio_handler_alloc_helpers::deallocate(
405
416
  pointer, size, this_handler->handler_);
417
+ #if defined(ASIO_NO_DEPRECATED)
418
+ return asio_handler_deallocate_is_no_longer_used();
419
+ #endif // defined(ASIO_NO_DEPRECATED)
406
420
  }
407
421
 
408
422
  template <typename AsyncReadStream, typename MutableBufferSequence,
@@ -420,23 +434,31 @@ namespace detail
420
434
  template <typename Function, typename AsyncReadStream,
421
435
  typename MutableBufferSequence, typename MutableBufferIterator,
422
436
  typename CompletionCondition, typename ReadHandler>
423
- inline void asio_handler_invoke(Function& function,
437
+ inline asio_handler_invoke_is_deprecated
438
+ asio_handler_invoke(Function& function,
424
439
  read_op<AsyncReadStream, MutableBufferSequence, MutableBufferIterator,
425
440
  CompletionCondition, ReadHandler>* this_handler)
426
441
  {
427
442
  asio_handler_invoke_helpers::invoke(
428
443
  function, this_handler->handler_);
444
+ #if defined(ASIO_NO_DEPRECATED)
445
+ return asio_handler_invoke_is_no_longer_used();
446
+ #endif // defined(ASIO_NO_DEPRECATED)
429
447
  }
430
448
 
431
449
  template <typename Function, typename AsyncReadStream,
432
450
  typename MutableBufferSequence, typename MutableBufferIterator,
433
451
  typename CompletionCondition, typename ReadHandler>
434
- inline void asio_handler_invoke(const Function& function,
452
+ inline asio_handler_invoke_is_deprecated
453
+ asio_handler_invoke(const Function& function,
435
454
  read_op<AsyncReadStream, MutableBufferSequence, MutableBufferIterator,
436
455
  CompletionCondition, ReadHandler>* this_handler)
437
456
  {
438
457
  asio_handler_invoke_helpers::invoke(
439
458
  function, this_handler->handler_);
459
+ #if defined(ASIO_NO_DEPRECATED)
460
+ return asio_handler_invoke_is_no_longer_used();
461
+ #endif // defined(ASIO_NO_DEPRECATED)
440
462
  }
441
463
 
442
464
  template <typename AsyncReadStream, typename MutableBufferSequence,
@@ -518,6 +540,7 @@ struct associated_executor<
518
540
  detail::read_op<AsyncReadStream, MutableBufferSequence,
519
541
  MutableBufferIterator, CompletionCondition, ReadHandler>,
520
542
  Executor>
543
+ : detail::associated_executor_forwarding_base<ReadHandler, Executor>
521
544
  {
522
545
  typedef typename associated_executor<ReadHandler, Executor>::type type;
523
546
 
@@ -631,8 +654,11 @@ namespace detail
631
654
  buffers_.max_size() - buffers_.size()));
632
655
  for (;;)
633
656
  {
634
- stream_.async_read_some(buffers_.prepare(bytes_available),
635
- ASIO_MOVE_CAST(read_dynbuf_v1_op)(*this));
657
+ {
658
+ ASIO_HANDLER_LOCATION((__FILE__, __LINE__, "async_read"));
659
+ stream_.async_read_some(buffers_.prepare(bytes_available),
660
+ ASIO_MOVE_CAST(read_dynbuf_v1_op)(*this));
661
+ }
636
662
  return; default:
637
663
  total_transferred_ += bytes_transferred;
638
664
  buffers_.commit(bytes_transferred);
@@ -660,22 +686,32 @@ namespace detail
660
686
 
661
687
  template <typename AsyncReadStream, typename DynamicBuffer_v1,
662
688
  typename CompletionCondition, typename ReadHandler>
663
- inline void* asio_handler_allocate(std::size_t size,
689
+ inline asio_handler_allocate_is_deprecated
690
+ asio_handler_allocate(std::size_t size,
664
691
  read_dynbuf_v1_op<AsyncReadStream, DynamicBuffer_v1,
665
692
  CompletionCondition, ReadHandler>* this_handler)
666
693
  {
694
+ #if defined(ASIO_NO_DEPRECATED)
695
+ asio_handler_alloc_helpers::allocate(size, this_handler->handler_);
696
+ return asio_handler_allocate_is_no_longer_used();
697
+ #else // defined(ASIO_NO_DEPRECATED)
667
698
  return asio_handler_alloc_helpers::allocate(
668
699
  size, this_handler->handler_);
700
+ #endif // defined(ASIO_NO_DEPRECATED)
669
701
  }
670
702
 
671
703
  template <typename AsyncReadStream, typename DynamicBuffer_v1,
672
704
  typename CompletionCondition, typename ReadHandler>
673
- inline void asio_handler_deallocate(void* pointer, std::size_t size,
705
+ inline asio_handler_deallocate_is_deprecated
706
+ asio_handler_deallocate(void* pointer, std::size_t size,
674
707
  read_dynbuf_v1_op<AsyncReadStream, DynamicBuffer_v1,
675
708
  CompletionCondition, ReadHandler>* this_handler)
676
709
  {
677
710
  asio_handler_alloc_helpers::deallocate(
678
711
  pointer, size, this_handler->handler_);
712
+ #if defined(ASIO_NO_DEPRECATED)
713
+ return asio_handler_deallocate_is_no_longer_used();
714
+ #endif // defined(ASIO_NO_DEPRECATED)
679
715
  }
680
716
 
681
717
  template <typename AsyncReadStream, typename DynamicBuffer_v1,
@@ -692,23 +728,31 @@ namespace detail
692
728
  template <typename Function, typename AsyncReadStream,
693
729
  typename DynamicBuffer_v1, typename CompletionCondition,
694
730
  typename ReadHandler>
695
- inline void asio_handler_invoke(Function& function,
731
+ inline asio_handler_invoke_is_deprecated
732
+ asio_handler_invoke(Function& function,
696
733
  read_dynbuf_v1_op<AsyncReadStream, DynamicBuffer_v1,
697
734
  CompletionCondition, ReadHandler>* this_handler)
698
735
  {
699
736
  asio_handler_invoke_helpers::invoke(
700
737
  function, this_handler->handler_);
738
+ #if defined(ASIO_NO_DEPRECATED)
739
+ return asio_handler_invoke_is_no_longer_used();
740
+ #endif // defined(ASIO_NO_DEPRECATED)
701
741
  }
702
742
 
703
743
  template <typename Function, typename AsyncReadStream,
704
744
  typename DynamicBuffer_v1, typename CompletionCondition,
705
745
  typename ReadHandler>
706
- inline void asio_handler_invoke(const Function& function,
746
+ inline asio_handler_invoke_is_deprecated
747
+ asio_handler_invoke(const Function& function,
707
748
  read_dynbuf_v1_op<AsyncReadStream, DynamicBuffer_v1,
708
749
  CompletionCondition, ReadHandler>* this_handler)
709
750
  {
710
751
  asio_handler_invoke_helpers::invoke(
711
752
  function, this_handler->handler_);
753
+ #if defined(ASIO_NO_DEPRECATED)
754
+ return asio_handler_invoke_is_no_longer_used();
755
+ #endif // defined(ASIO_NO_DEPRECATED)
712
756
  }
713
757
 
714
758
  template <typename AsyncReadStream>
@@ -777,6 +821,7 @@ struct associated_executor<
777
821
  detail::read_dynbuf_v1_op<AsyncReadStream,
778
822
  DynamicBuffer_v1, CompletionCondition, ReadHandler>,
779
823
  Executor>
824
+ : detail::associated_executor_forwarding_base<ReadHandler, Executor>
780
825
  {
781
826
  typedef typename associated_executor<ReadHandler, Executor>::type type;
782
827
 
@@ -931,8 +976,11 @@ namespace detail
931
976
  {
932
977
  pos = buffers_.size();
933
978
  buffers_.grow(bytes_available_);
934
- stream_.async_read_some(buffers_.data(pos, bytes_available_),
935
- ASIO_MOVE_CAST(read_dynbuf_v2_op)(*this));
979
+ {
980
+ ASIO_HANDLER_LOCATION((__FILE__, __LINE__, "async_read"));
981
+ stream_.async_read_some(buffers_.data(pos, bytes_available_),
982
+ ASIO_MOVE_CAST(read_dynbuf_v2_op)(*this));
983
+ }
936
984
  return; default:
937
985
  total_transferred_ += bytes_transferred;
938
986
  buffers_.shrink(bytes_available_ - bytes_transferred);
@@ -961,22 +1009,32 @@ namespace detail
961
1009
 
962
1010
  template <typename AsyncReadStream, typename DynamicBuffer_v2,
963
1011
  typename CompletionCondition, typename ReadHandler>
964
- inline void* asio_handler_allocate(std::size_t size,
1012
+ inline asio_handler_allocate_is_deprecated
1013
+ asio_handler_allocate(std::size_t size,
965
1014
  read_dynbuf_v2_op<AsyncReadStream, DynamicBuffer_v2,
966
1015
  CompletionCondition, ReadHandler>* this_handler)
967
1016
  {
1017
+ #if defined(ASIO_NO_DEPRECATED)
1018
+ asio_handler_alloc_helpers::allocate(size, this_handler->handler_);
1019
+ return asio_handler_allocate_is_no_longer_used();
1020
+ #else // defined(ASIO_NO_DEPRECATED)
968
1021
  return asio_handler_alloc_helpers::allocate(
969
1022
  size, this_handler->handler_);
1023
+ #endif // defined(ASIO_NO_DEPRECATED)
970
1024
  }
971
1025
 
972
1026
  template <typename AsyncReadStream, typename DynamicBuffer_v2,
973
1027
  typename CompletionCondition, typename ReadHandler>
974
- inline void asio_handler_deallocate(void* pointer, std::size_t size,
1028
+ inline asio_handler_deallocate_is_deprecated
1029
+ asio_handler_deallocate(void* pointer, std::size_t size,
975
1030
  read_dynbuf_v2_op<AsyncReadStream, DynamicBuffer_v2,
976
1031
  CompletionCondition, ReadHandler>* this_handler)
977
1032
  {
978
1033
  asio_handler_alloc_helpers::deallocate(
979
1034
  pointer, size, this_handler->handler_);
1035
+ #if defined(ASIO_NO_DEPRECATED)
1036
+ return asio_handler_deallocate_is_no_longer_used();
1037
+ #endif // defined(ASIO_NO_DEPRECATED)
980
1038
  }
981
1039
 
982
1040
  template <typename AsyncReadStream, typename DynamicBuffer_v2,
@@ -993,23 +1051,31 @@ namespace detail
993
1051
  template <typename Function, typename AsyncReadStream,
994
1052
  typename DynamicBuffer_v2, typename CompletionCondition,
995
1053
  typename ReadHandler>
996
- inline void asio_handler_invoke(Function& function,
1054
+ inline asio_handler_invoke_is_deprecated
1055
+ asio_handler_invoke(Function& function,
997
1056
  read_dynbuf_v2_op<AsyncReadStream, DynamicBuffer_v2,
998
1057
  CompletionCondition, ReadHandler>* this_handler)
999
1058
  {
1000
1059
  asio_handler_invoke_helpers::invoke(
1001
1060
  function, this_handler->handler_);
1061
+ #if defined(ASIO_NO_DEPRECATED)
1062
+ return asio_handler_invoke_is_no_longer_used();
1063
+ #endif // defined(ASIO_NO_DEPRECATED)
1002
1064
  }
1003
1065
 
1004
1066
  template <typename Function, typename AsyncReadStream,
1005
1067
  typename DynamicBuffer_v2, typename CompletionCondition,
1006
1068
  typename ReadHandler>
1007
- inline void asio_handler_invoke(const Function& function,
1069
+ inline asio_handler_invoke_is_deprecated
1070
+ asio_handler_invoke(const Function& function,
1008
1071
  read_dynbuf_v2_op<AsyncReadStream, DynamicBuffer_v2,
1009
1072
  CompletionCondition, ReadHandler>* this_handler)
1010
1073
  {
1011
1074
  asio_handler_invoke_helpers::invoke(
1012
1075
  function, this_handler->handler_);
1076
+ #if defined(ASIO_NO_DEPRECATED)
1077
+ return asio_handler_invoke_is_no_longer_used();
1078
+ #endif // defined(ASIO_NO_DEPRECATED)
1013
1079
  }
1014
1080
 
1015
1081
  template <typename AsyncReadStream>
@@ -1078,6 +1144,7 @@ struct associated_executor<
1078
1144
  detail::read_dynbuf_v2_op<AsyncReadStream,
1079
1145
  DynamicBuffer_v2, CompletionCondition, ReadHandler>,
1080
1146
  Executor>
1147
+ : detail::associated_executor_forwarding_base<ReadHandler, Executor>
1081
1148
  {
1082
1149
  typedef typename associated_executor<ReadHandler, Executor>::type type;
1083
1150