couchbase 3.0.3-universal-darwin-20

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 (1353) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +202 -0
  3. data/README.md +131 -0
  4. data/ext/CMakeLists.txt +130 -0
  5. data/ext/LICENSE.txt +202 -0
  6. data/ext/build_config.hxx.in +22 -0
  7. data/ext/build_version.hxx.in +30 -0
  8. data/ext/cmake/Backtrace.cmake +35 -0
  9. data/ext/cmake/BuildTracing.cmake +6 -0
  10. data/ext/cmake/Cache.cmake +29 -0
  11. data/ext/cmake/CompilerWarnings.cmake +84 -0
  12. data/ext/cmake/PreventInSourceBuilds.cmake +21 -0
  13. data/ext/cmake/Sanitizers.cmake +66 -0
  14. data/ext/cmake/StandardProjectSettings.cmake +40 -0
  15. data/ext/cmake/StaticAnalyzers.cmake +37 -0
  16. data/ext/cmake/Testing.cmake +49 -0
  17. data/ext/cmake/ThirdPartyDependencies.cmake +20 -0
  18. data/ext/cmake/VersionInfo.cmake +37 -0
  19. data/ext/couchbase/bucket.hxx +372 -0
  20. data/ext/couchbase/capabilities.hxx +117 -0
  21. data/ext/couchbase/cbcrypto/cbcrypto.cc +888 -0
  22. data/ext/couchbase/cbcrypto/cbcrypto.h +89 -0
  23. data/ext/couchbase/cbsasl/client.cc +48 -0
  24. data/ext/couchbase/cbsasl/client.h +127 -0
  25. data/ext/couchbase/cbsasl/context.cc +33 -0
  26. data/ext/couchbase/cbsasl/context.h +52 -0
  27. data/ext/couchbase/cbsasl/error.h +72 -0
  28. data/ext/couchbase/cbsasl/mechanism.cc +48 -0
  29. data/ext/couchbase/cbsasl/mechanism.h +55 -0
  30. data/ext/couchbase/cbsasl/plain/plain.cc +36 -0
  31. data/ext/couchbase/cbsasl/plain/plain.h +53 -0
  32. data/ext/couchbase/cbsasl/scram-sha/scram-sha.cc +390 -0
  33. data/ext/couchbase/cbsasl/scram-sha/scram-sha.h +185 -0
  34. data/ext/couchbase/cbsasl/scram-sha/stringutils.cc +81 -0
  35. data/ext/couchbase/cbsasl/scram-sha/stringutils.h +48 -0
  36. data/ext/couchbase/cluster.hxx +356 -0
  37. data/ext/couchbase/cluster_options.hxx +54 -0
  38. data/ext/couchbase/collections_manifest.hxx +88 -0
  39. data/ext/couchbase/configuration.hxx +652 -0
  40. data/ext/couchbase/couchbase.cxx +8015 -0
  41. data/ext/couchbase/diagnostics.hxx +248 -0
  42. data/ext/couchbase/document_id.hxx +40 -0
  43. data/ext/couchbase/error_context/analytics.hxx +46 -0
  44. data/ext/couchbase/error_context/http.hxx +44 -0
  45. data/ext/couchbase/error_context/key_value.hxx +47 -0
  46. data/ext/couchbase/error_context/query.hxx +46 -0
  47. data/ext/couchbase/error_context/search.hxx +47 -0
  48. data/ext/couchbase/error_context/view.hxx +47 -0
  49. data/ext/couchbase/error_map.hxx +261 -0
  50. data/ext/couchbase/errors.hxx +706 -0
  51. data/ext/couchbase/io/dns_client.hxx +217 -0
  52. data/ext/couchbase/io/dns_codec.hxx +206 -0
  53. data/ext/couchbase/io/dns_config.hxx +116 -0
  54. data/ext/couchbase/io/dns_message.hxx +555 -0
  55. data/ext/couchbase/io/http_command.hxx +111 -0
  56. data/ext/couchbase/io/http_context.hxx +37 -0
  57. data/ext/couchbase/io/http_message.hxx +47 -0
  58. data/ext/couchbase/io/http_parser.hxx +176 -0
  59. data/ext/couchbase/io/http_session.hxx +444 -0
  60. data/ext/couchbase/io/http_session_manager.hxx +264 -0
  61. data/ext/couchbase/io/mcbp_command.hxx +249 -0
  62. data/ext/couchbase/io/mcbp_context.hxx +37 -0
  63. data/ext/couchbase/io/mcbp_message.hxx +63 -0
  64. data/ext/couchbase/io/mcbp_parser.hxx +101 -0
  65. data/ext/couchbase/io/mcbp_session.hxx +1350 -0
  66. data/ext/couchbase/io/query_cache.hxx +61 -0
  67. data/ext/couchbase/io/retry_action.hxx +30 -0
  68. data/ext/couchbase/io/retry_context.hxx +38 -0
  69. data/ext/couchbase/io/retry_orchestrator.hxx +112 -0
  70. data/ext/couchbase/io/retry_reason.hxx +235 -0
  71. data/ext/couchbase/io/retry_strategy.hxx +156 -0
  72. data/ext/couchbase/io/streams.hxx +216 -0
  73. data/ext/couchbase/mutation_token.hxx +38 -0
  74. data/ext/couchbase/operations.hxx +109 -0
  75. data/ext/couchbase/operations/analytics_dataset_create.hxx +125 -0
  76. data/ext/couchbase/operations/analytics_dataset_drop.hxx +112 -0
  77. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +114 -0
  78. data/ext/couchbase/operations/analytics_dataverse_create.hxx +112 -0
  79. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +111 -0
  80. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +99 -0
  81. data/ext/couchbase/operations/analytics_index_create.hxx +135 -0
  82. data/ext/couchbase/operations/analytics_index_drop.hxx +117 -0
  83. data/ext/couchbase/operations/analytics_index_get_all.hxx +113 -0
  84. data/ext/couchbase/operations/analytics_link_connect.hxx +109 -0
  85. data/ext/couchbase/operations/analytics_link_disconnect.hxx +108 -0
  86. data/ext/couchbase/operations/bucket_create.hxx +171 -0
  87. data/ext/couchbase/operations/bucket_drop.hxx +70 -0
  88. data/ext/couchbase/operations/bucket_flush.hxx +69 -0
  89. data/ext/couchbase/operations/bucket_get.hxx +78 -0
  90. data/ext/couchbase/operations/bucket_get_all.hxx +73 -0
  91. data/ext/couchbase/operations/bucket_settings.hxx +166 -0
  92. data/ext/couchbase/operations/bucket_update.hxx +147 -0
  93. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +64 -0
  94. data/ext/couchbase/operations/collection_create.hxx +102 -0
  95. data/ext/couchbase/operations/collection_drop.hxx +92 -0
  96. data/ext/couchbase/operations/collections_manifest_get.hxx +66 -0
  97. data/ext/couchbase/operations/design_document.hxx +59 -0
  98. data/ext/couchbase/operations/document_analytics.hxx +316 -0
  99. data/ext/couchbase/operations/document_append.hxx +72 -0
  100. data/ext/couchbase/operations/document_decrement.hxx +83 -0
  101. data/ext/couchbase/operations/document_exists.hxx +83 -0
  102. data/ext/couchbase/operations/document_get.hxx +66 -0
  103. data/ext/couchbase/operations/document_get_and_lock.hxx +67 -0
  104. data/ext/couchbase/operations/document_get_and_touch.hxx +67 -0
  105. data/ext/couchbase/operations/document_get_projected.hxx +257 -0
  106. data/ext/couchbase/operations/document_increment.hxx +85 -0
  107. data/ext/couchbase/operations/document_insert.hxx +77 -0
  108. data/ext/couchbase/operations/document_lookup_in.hxx +112 -0
  109. data/ext/couchbase/operations/document_mutate_in.hxx +151 -0
  110. data/ext/couchbase/operations/document_prepend.hxx +72 -0
  111. data/ext/couchbase/operations/document_query.hxx +440 -0
  112. data/ext/couchbase/operations/document_remove.hxx +72 -0
  113. data/ext/couchbase/operations/document_replace.hxx +79 -0
  114. data/ext/couchbase/operations/document_search.hxx +392 -0
  115. data/ext/couchbase/operations/document_touch.hxx +63 -0
  116. data/ext/couchbase/operations/document_unlock.hxx +63 -0
  117. data/ext/couchbase/operations/document_upsert.hxx +77 -0
  118. data/ext/couchbase/operations/document_view.hxx +245 -0
  119. data/ext/couchbase/operations/group_drop.hxx +72 -0
  120. data/ext/couchbase/operations/group_get.hxx +80 -0
  121. data/ext/couchbase/operations/group_get_all.hxx +77 -0
  122. data/ext/couchbase/operations/group_upsert.hxx +125 -0
  123. data/ext/couchbase/operations/http_noop.hxx +78 -0
  124. data/ext/couchbase/operations/mcbp_noop.hxx +55 -0
  125. data/ext/couchbase/operations/query_index_build_deferred.hxx +93 -0
  126. data/ext/couchbase/operations/query_index_create.hxx +152 -0
  127. data/ext/couchbase/operations/query_index_drop.hxx +126 -0
  128. data/ext/couchbase/operations/query_index_get_all.hxx +124 -0
  129. data/ext/couchbase/operations/rbac.hxx +276 -0
  130. data/ext/couchbase/operations/role_get_all.hxx +77 -0
  131. data/ext/couchbase/operations/scope_create.hxx +95 -0
  132. data/ext/couchbase/operations/scope_drop.hxx +89 -0
  133. data/ext/couchbase/operations/scope_get_all.hxx +82 -0
  134. data/ext/couchbase/operations/search_get_stats.hxx +60 -0
  135. data/ext/couchbase/operations/search_index.hxx +79 -0
  136. data/ext/couchbase/operations/search_index_analyze_document.hxx +105 -0
  137. data/ext/couchbase/operations/search_index_control_ingest.hxx +93 -0
  138. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +93 -0
  139. data/ext/couchbase/operations/search_index_control_query.hxx +93 -0
  140. data/ext/couchbase/operations/search_index_drop.hxx +90 -0
  141. data/ext/couchbase/operations/search_index_get.hxx +93 -0
  142. data/ext/couchbase/operations/search_index_get_all.hxx +89 -0
  143. data/ext/couchbase/operations/search_index_get_documents_count.hxx +101 -0
  144. data/ext/couchbase/operations/search_index_get_stats.hxx +88 -0
  145. data/ext/couchbase/operations/search_index_upsert.hxx +119 -0
  146. data/ext/couchbase/operations/user_drop.hxx +73 -0
  147. data/ext/couchbase/operations/user_get.hxx +81 -0
  148. data/ext/couchbase/operations/user_get_all.hxx +78 -0
  149. data/ext/couchbase/operations/user_upsert.hxx +132 -0
  150. data/ext/couchbase/operations/view_index_drop.hxx +68 -0
  151. data/ext/couchbase/operations/view_index_get.hxx +97 -0
  152. data/ext/couchbase/operations/view_index_get_all.hxx +132 -0
  153. data/ext/couchbase/operations/view_index_upsert.hxx +88 -0
  154. data/ext/couchbase/origin.hxx +179 -0
  155. data/ext/couchbase/platform/backtrace.c +189 -0
  156. data/ext/couchbase/platform/backtrace.h +54 -0
  157. data/ext/couchbase/platform/base64.cc +234 -0
  158. data/ext/couchbase/platform/base64.h +47 -0
  159. data/ext/couchbase/platform/random.cc +119 -0
  160. data/ext/couchbase/platform/random.h +39 -0
  161. data/ext/couchbase/platform/string_hex.cc +99 -0
  162. data/ext/couchbase/platform/string_hex.h +50 -0
  163. data/ext/couchbase/platform/terminate_handler.cc +130 -0
  164. data/ext/couchbase/platform/terminate_handler.h +36 -0
  165. data/ext/couchbase/platform/uuid.cc +96 -0
  166. data/ext/couchbase/platform/uuid.h +56 -0
  167. data/ext/couchbase/protocol/client_opcode.hxx +632 -0
  168. data/ext/couchbase/protocol/client_request.hxx +161 -0
  169. data/ext/couchbase/protocol/client_response.hxx +221 -0
  170. data/ext/couchbase/protocol/cmd_append.hxx +145 -0
  171. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +79 -0
  172. data/ext/couchbase/protocol/cmd_decrement.hxx +187 -0
  173. data/ext/couchbase/protocol/cmd_exists.hxx +172 -0
  174. data/ext/couchbase/protocol/cmd_get.hxx +122 -0
  175. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +142 -0
  176. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +142 -0
  177. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +126 -0
  178. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +117 -0
  179. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +99 -0
  180. data/ext/couchbase/protocol/cmd_get_error_map.hxx +126 -0
  181. data/ext/couchbase/protocol/cmd_hello.hxx +157 -0
  182. data/ext/couchbase/protocol/cmd_increment.hxx +187 -0
  183. data/ext/couchbase/protocol/cmd_info.hxx +25 -0
  184. data/ext/couchbase/protocol/cmd_insert.hxx +172 -0
  185. data/ext/couchbase/protocol/cmd_lookup_in.hxx +227 -0
  186. data/ext/couchbase/protocol/cmd_mutate_in.hxx +406 -0
  187. data/ext/couchbase/protocol/cmd_noop.hxx +82 -0
  188. data/ext/couchbase/protocol/cmd_prepend.hxx +145 -0
  189. data/ext/couchbase/protocol/cmd_remove.hxx +134 -0
  190. data/ext/couchbase/protocol/cmd_replace.hxx +172 -0
  191. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +106 -0
  192. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +100 -0
  193. data/ext/couchbase/protocol/cmd_sasl_step.hxx +104 -0
  194. data/ext/couchbase/protocol/cmd_select_bucket.hxx +85 -0
  195. data/ext/couchbase/protocol/cmd_touch.hxx +102 -0
  196. data/ext/couchbase/protocol/cmd_unlock.hxx +95 -0
  197. data/ext/couchbase/protocol/cmd_upsert.hxx +172 -0
  198. data/ext/couchbase/protocol/datatype.hxx +48 -0
  199. data/ext/couchbase/protocol/durability_level.hxx +83 -0
  200. data/ext/couchbase/protocol/enhanced_error_info.hxx +28 -0
  201. data/ext/couchbase/protocol/frame_info_id.hxx +187 -0
  202. data/ext/couchbase/protocol/hello_feature.hxx +264 -0
  203. data/ext/couchbase/protocol/magic.hxx +83 -0
  204. data/ext/couchbase/protocol/server_opcode.hxx +57 -0
  205. data/ext/couchbase/protocol/server_request.hxx +122 -0
  206. data/ext/couchbase/protocol/status.hxx +343 -0
  207. data/ext/couchbase/protocol/unsigned_leb128.h +195 -0
  208. data/ext/couchbase/service_type.hxx +60 -0
  209. data/ext/couchbase/timeout_defaults.hxx +41 -0
  210. data/ext/couchbase/utils/byteswap.hxx +33 -0
  211. data/ext/couchbase/utils/connection_string.hxx +379 -0
  212. data/ext/couchbase/utils/crc32.hxx +48 -0
  213. data/ext/couchbase/utils/url_codec.hxx +225 -0
  214. data/ext/couchbase/version.hxx +38 -0
  215. data/ext/extconf.rb +98 -0
  216. data/ext/test/CMakeLists.txt +5 -0
  217. data/ext/test/test_helper.hxx +141 -0
  218. data/ext/test/test_helper_native.hxx +56 -0
  219. data/ext/test/test_helper_ruby.hxx +72 -0
  220. data/ext/test/test_native_binary_operations.cxx +186 -0
  221. data/ext/test/test_native_diagnostics.cxx +436 -0
  222. data/ext/test/test_native_trivial_crud.cxx +83 -0
  223. data/ext/test/test_ruby_trivial_crud.cxx +35 -0
  224. data/ext/test/test_ruby_trivial_query.cxx +34 -0
  225. data/ext/third_party/asio/asio/include/asio.hpp +182 -0
  226. data/ext/third_party/asio/asio/include/asio/any_io_executor.hpp +71 -0
  227. data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +125 -0
  228. data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +166 -0
  229. data/ext/third_party/asio/asio/include/asio/async_result.hpp +582 -0
  230. data/ext/third_party/asio/asio/include/asio/awaitable.hpp +133 -0
  231. data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +1215 -0
  232. data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +693 -0
  233. data/ext/third_party/asio/asio/include/asio/basic_io_object.hpp +290 -0
  234. data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +1206 -0
  235. data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +761 -0
  236. data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +907 -0
  237. data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +568 -0
  238. data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +1894 -0
  239. data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +2501 -0
  240. data/ext/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +407 -0
  241. data/ext/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +687 -0
  242. data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +1053 -0
  243. data/ext/third_party/asio/asio/include/asio/basic_streambuf.hpp +452 -0
  244. data/ext/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +36 -0
  245. data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +811 -0
  246. data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +575 -0
  247. data/ext/third_party/asio/asio/include/asio/buffer.hpp +2496 -0
  248. data/ext/third_party/asio/asio/include/asio/buffered_read_stream.hpp +253 -0
  249. data/ext/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +25 -0
  250. data/ext/third_party/asio/asio/include/asio/buffered_stream.hpp +279 -0
  251. data/ext/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +25 -0
  252. data/ext/third_party/asio/asio/include/asio/buffered_write_stream.hpp +245 -0
  253. data/ext/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +25 -0
  254. data/ext/third_party/asio/asio/include/asio/buffers_iterator.hpp +521 -0
  255. data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +471 -0
  256. data/ext/third_party/asio/asio/include/asio/completion_condition.hpp +218 -0
  257. data/ext/third_party/asio/asio/include/asio/compose.hpp +136 -0
  258. data/ext/third_party/asio/asio/include/asio/connect.hpp +1076 -0
  259. data/ext/third_party/asio/asio/include/asio/coroutine.hpp +328 -0
  260. data/ext/third_party/asio/asio/include/asio/deadline_timer.hpp +38 -0
  261. data/ext/third_party/asio/asio/include/asio/defer.hpp +130 -0
  262. data/ext/third_party/asio/asio/include/asio/detached.hpp +112 -0
  263. data/ext/third_party/asio/asio/include/asio/detail/array.hpp +38 -0
  264. data/ext/third_party/asio/asio/include/asio/detail/array_fwd.hpp +34 -0
  265. data/ext/third_party/asio/asio/include/asio/detail/assert.hpp +32 -0
  266. data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +64 -0
  267. data/ext/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +69 -0
  268. data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +934 -0
  269. data/ext/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +107 -0
  270. data/ext/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +66 -0
  271. data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +650 -0
  272. data/ext/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +126 -0
  273. data/ext/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +88 -0
  274. data/ext/third_party/asio/asio/include/asio/detail/call_stack.hpp +125 -0
  275. data/ext/third_party/asio/asio/include/asio/detail/chrono.hpp +66 -0
  276. data/ext/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +190 -0
  277. data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +88 -0
  278. data/ext/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +94 -0
  279. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +120 -0
  280. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +149 -0
  281. data/ext/third_party/asio/asio/include/asio/detail/config.hpp +1822 -0
  282. data/ext/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +414 -0
  283. data/ext/third_party/asio/asio/include/asio/detail/cstddef.hpp +31 -0
  284. data/ext/third_party/asio/asio/include/asio/detail/cstdint.hpp +60 -0
  285. data/ext/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +34 -0
  286. data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +295 -0
  287. data/ext/third_party/asio/asio/include/asio/detail/dependent_type.hpp +36 -0
  288. data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +139 -0
  289. data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +148 -0
  290. data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +148 -0
  291. data/ext/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +218 -0
  292. data/ext/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +266 -0
  293. data/ext/third_party/asio/asio/include/asio/detail/event.hpp +48 -0
  294. data/ext/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +83 -0
  295. data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +203 -0
  296. data/ext/third_party/asio/asio/include/asio/detail/executor_op.hpp +84 -0
  297. data/ext/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +39 -0
  298. data/ext/third_party/asio/asio/include/asio/detail/fenced_block.hpp +80 -0
  299. data/ext/third_party/asio/asio/include/asio/detail/functional.hpp +38 -0
  300. data/ext/third_party/asio/asio/include/asio/detail/future.hpp +33 -0
  301. data/ext/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +91 -0
  302. data/ext/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +68 -0
  303. data/ext/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +65 -0
  304. data/ext/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +99 -0
  305. data/ext/third_party/asio/asio/include/asio/detail/global.hpp +52 -0
  306. data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +284 -0
  307. data/ext/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +45 -0
  308. data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +80 -0
  309. data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +264 -0
  310. data/ext/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +556 -0
  311. data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +438 -0
  312. data/ext/third_party/asio/asio/include/asio/detail/hash_map.hpp +331 -0
  313. data/ext/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +118 -0
  314. data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +608 -0
  315. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +91 -0
  316. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +446 -0
  317. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +89 -0
  318. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +787 -0
  319. data/ext/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +169 -0
  320. data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +396 -0
  321. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +93 -0
  322. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +570 -0
  323. data/ext/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +74 -0
  324. data/ext/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +129 -0
  325. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +59 -0
  326. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +46 -0
  327. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +84 -0
  328. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +46 -0
  329. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +223 -0
  330. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +149 -0
  331. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +300 -0
  332. data/ext/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +158 -0
  333. data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +654 -0
  334. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +100 -0
  335. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +338 -0
  336. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +94 -0
  337. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +197 -0
  338. data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +668 -0
  339. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +3962 -0
  340. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +185 -0
  341. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +385 -0
  342. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +134 -0
  343. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +117 -0
  344. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +178 -0
  345. data/ext/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +60 -0
  346. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +91 -0
  347. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +101 -0
  348. data/ext/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +76 -0
  349. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +525 -0
  350. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +103 -0
  351. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +603 -0
  352. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +192 -0
  353. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +801 -0
  354. data/ext/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +84 -0
  355. data/ext/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +448 -0
  356. data/ext/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +136 -0
  357. data/ext/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +150 -0
  358. data/ext/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +57 -0
  359. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +626 -0
  360. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +92 -0
  361. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +121 -0
  362. data/ext/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +82 -0
  363. data/ext/third_party/asio/asio/include/asio/detail/io_control.hpp +84 -0
  364. data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +175 -0
  365. data/ext/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +312 -0
  366. data/ext/third_party/asio/asio/include/asio/detail/is_executor.hpp +126 -0
  367. data/ext/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +70 -0
  368. data/ext/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +242 -0
  369. data/ext/third_party/asio/asio/include/asio/detail/limits.hpp +26 -0
  370. data/ext/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +59 -0
  371. data/ext/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +62 -0
  372. data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +73 -0
  373. data/ext/third_party/asio/asio/include/asio/detail/mutex.hpp +48 -0
  374. data/ext/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +54 -0
  375. data/ext/third_party/asio/asio/include/asio/detail/noncopyable.hpp +43 -0
  376. data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +106 -0
  377. data/ext/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +47 -0
  378. data/ext/third_party/asio/asio/include/asio/detail/null_global.hpp +59 -0
  379. data/ext/third_party/asio/asio/include/asio/detail/null_mutex.hpp +64 -0
  380. data/ext/third_party/asio/asio/include/asio/detail/null_reactor.hpp +68 -0
  381. data/ext/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +69 -0
  382. data/ext/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +519 -0
  383. data/ext/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +60 -0
  384. data/ext/third_party/asio/asio/include/asio/detail/null_thread.hpp +67 -0
  385. data/ext/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +68 -0
  386. data/ext/third_party/asio/asio/include/asio/detail/object_pool.hpp +171 -0
  387. data/ext/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +214 -0
  388. data/ext/third_party/asio/asio/include/asio/detail/op_queue.hpp +162 -0
  389. data/ext/third_party/asio/asio/include/asio/detail/operation.hpp +38 -0
  390. data/ext/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +89 -0
  391. data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +141 -0
  392. data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +175 -0
  393. data/ext/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +118 -0
  394. data/ext/third_party/asio/asio/include/asio/detail/posix_global.hpp +80 -0
  395. data/ext/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +76 -0
  396. data/ext/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +85 -0
  397. data/ext/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +64 -0
  398. data/ext/third_party/asio/asio/include/asio/detail/posix_thread.hpp +109 -0
  399. data/ext/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +79 -0
  400. data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +185 -0
  401. data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +416 -0
  402. data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +98 -0
  403. data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +237 -0
  404. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +242 -0
  405. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +123 -0
  406. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +159 -0
  407. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +164 -0
  408. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +145 -0
  409. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +162 -0
  410. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +156 -0
  411. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +528 -0
  412. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +541 -0
  413. data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +98 -0
  414. data/ext/third_party/asio/asio/include/asio/detail/reactor.hpp +32 -0
  415. data/ext/third_party/asio/asio/include/asio/detail/reactor_fwd.hpp +40 -0
  416. data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +67 -0
  417. data/ext/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +168 -0
  418. data/ext/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +106 -0
  419. data/ext/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +35 -0
  420. data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +140 -0
  421. data/ext/third_party/asio/asio/include/asio/detail/resolve_op.hpp +45 -0
  422. data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +150 -0
  423. data/ext/third_party/asio/asio/include/asio/detail/resolver_service.hpp +145 -0
  424. data/ext/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +143 -0
  425. data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +232 -0
  426. data/ext/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +78 -0
  427. data/ext/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +40 -0
  428. data/ext/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +101 -0
  429. data/ext/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +87 -0
  430. data/ext/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +46 -0
  431. data/ext/third_party/asio/asio/include/asio/detail/select_reactor.hpp +238 -0
  432. data/ext/third_party/asio/asio/include/asio/detail/service_registry.hpp +164 -0
  433. data/ext/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +44 -0
  434. data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +90 -0
  435. data/ext/third_party/asio/asio/include/asio/detail/signal_init.hpp +47 -0
  436. data/ext/third_party/asio/asio/include/asio/detail/signal_op.hpp +49 -0
  437. data/ext/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +229 -0
  438. data/ext/third_party/asio/asio/include/asio/detail/socket_holder.hpp +98 -0
  439. data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +383 -0
  440. data/ext/third_party/asio/asio/include/asio/detail/socket_option.hpp +316 -0
  441. data/ext/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +91 -0
  442. data/ext/third_party/asio/asio/include/asio/detail/socket_types.hpp +416 -0
  443. data/ext/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +62 -0
  444. data/ext/third_party/asio/asio/include/asio/detail/source_location.hpp +45 -0
  445. data/ext/third_party/asio/asio/include/asio/detail/static_mutex.hpp +52 -0
  446. data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +188 -0
  447. data/ext/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +62 -0
  448. data/ext/third_party/asio/asio/include/asio/detail/std_global.hpp +70 -0
  449. data/ext/third_party/asio/asio/include/asio/detail/std_mutex.hpp +73 -0
  450. data/ext/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +81 -0
  451. data/ext/third_party/asio/asio/include/asio/detail/std_thread.hpp +71 -0
  452. data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +166 -0
  453. data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +145 -0
  454. data/ext/third_party/asio/asio/include/asio/detail/string_view.hpp +47 -0
  455. data/ext/third_party/asio/asio/include/asio/detail/thread.hpp +60 -0
  456. data/ext/third_party/asio/asio/include/asio/detail/thread_context.hpp +42 -0
  457. data/ext/third_party/asio/asio/include/asio/detail/thread_group.hpp +95 -0
  458. data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +183 -0
  459. data/ext/third_party/asio/asio/include/asio/detail/throw_error.hpp +53 -0
  460. data/ext/third_party/asio/asio/include/asio/detail/throw_exception.hpp +51 -0
  461. data/ext/third_party/asio/asio/include/asio/detail/timer_queue.hpp +360 -0
  462. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +68 -0
  463. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +99 -0
  464. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +66 -0
  465. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +35 -0
  466. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +40 -0
  467. data/ext/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +69 -0
  468. data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +148 -0
  469. data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +294 -0
  470. data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +90 -0
  471. data/ext/third_party/asio/asio/include/asio/detail/wait_op.hpp +45 -0
  472. data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +164 -0
  473. data/ext/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +149 -0
  474. data/ext/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +90 -0
  475. data/ext/third_party/asio/asio/include/asio/detail/win_global.hpp +71 -0
  476. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +117 -0
  477. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +335 -0
  478. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +110 -0
  479. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +342 -0
  480. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +127 -0
  481. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +96 -0
  482. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +96 -0
  483. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +171 -0
  484. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +232 -0
  485. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +312 -0
  486. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +135 -0
  487. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +124 -0
  488. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +133 -0
  489. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +125 -0
  490. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +118 -0
  491. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +581 -0
  492. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +600 -0
  493. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +34 -0
  494. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +128 -0
  495. data/ext/third_party/asio/asio/include/asio/detail/win_mutex.hpp +78 -0
  496. data/ext/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +195 -0
  497. data/ext/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +74 -0
  498. data/ext/third_party/asio/asio/include/asio/detail/win_thread.hpp +147 -0
  499. data/ext/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +79 -0
  500. data/ext/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +124 -0
  501. data/ext/third_party/asio/asio/include/asio/detail/wince_thread.hpp +124 -0
  502. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +305 -0
  503. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +65 -0
  504. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +125 -0
  505. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +212 -0
  506. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +98 -0
  507. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +119 -0
  508. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +110 -0
  509. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +250 -0
  510. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +362 -0
  511. data/ext/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +147 -0
  512. data/ext/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +106 -0
  513. data/ext/third_party/asio/asio/include/asio/detail/winsock_init.hpp +128 -0
  514. data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +148 -0
  515. data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +327 -0
  516. data/ext/third_party/asio/asio/include/asio/dispatch.hpp +121 -0
  517. data/ext/third_party/asio/asio/include/asio/error.hpp +356 -0
  518. data/ext/third_party/asio/asio/include/asio/error_code.hpp +202 -0
  519. data/ext/third_party/asio/asio/include/asio/execution.hpp +48 -0
  520. data/ext/third_party/asio/asio/include/asio/execution/allocator.hpp +249 -0
  521. data/ext/third_party/asio/asio/include/asio/execution/any_executor.hpp +2264 -0
  522. data/ext/third_party/asio/asio/include/asio/execution/bad_executor.hpp +47 -0
  523. data/ext/third_party/asio/asio/include/asio/execution/blocking.hpp +1351 -0
  524. data/ext/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +1064 -0
  525. data/ext/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +390 -0
  526. data/ext/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +1018 -0
  527. data/ext/third_party/asio/asio/include/asio/execution/connect.hpp +486 -0
  528. data/ext/third_party/asio/asio/include/asio/execution/context.hpp +185 -0
  529. data/ext/third_party/asio/asio/include/asio/execution/context_as.hpp +201 -0
  530. data/ext/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +152 -0
  531. data/ext/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +105 -0
  532. data/ext/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +128 -0
  533. data/ext/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +261 -0
  534. data/ext/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +233 -0
  535. data/ext/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +90 -0
  536. data/ext/third_party/asio/asio/include/asio/execution/execute.hpp +264 -0
  537. data/ext/third_party/asio/asio/include/asio/execution/executor.hpp +238 -0
  538. data/ext/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +40 -0
  539. data/ext/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +36 -0
  540. data/ext/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +71 -0
  541. data/ext/third_party/asio/asio/include/asio/execution/mapping.hpp +917 -0
  542. data/ext/third_party/asio/asio/include/asio/execution/occupancy.hpp +178 -0
  543. data/ext/third_party/asio/asio/include/asio/execution/operation_state.hpp +94 -0
  544. data/ext/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +721 -0
  545. data/ext/third_party/asio/asio/include/asio/execution/prefer_only.hpp +327 -0
  546. data/ext/third_party/asio/asio/include/asio/execution/receiver.hpp +280 -0
  547. data/ext/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +48 -0
  548. data/ext/third_party/asio/asio/include/asio/execution/relationship.hpp +720 -0
  549. data/ext/third_party/asio/asio/include/asio/execution/schedule.hpp +290 -0
  550. data/ext/third_party/asio/asio/include/asio/execution/scheduler.hpp +86 -0
  551. data/ext/third_party/asio/asio/include/asio/execution/sender.hpp +311 -0
  552. data/ext/third_party/asio/asio/include/asio/execution/set_done.hpp +253 -0
  553. data/ext/third_party/asio/asio/include/asio/execution/set_error.hpp +253 -0
  554. data/ext/third_party/asio/asio/include/asio/execution/set_value.hpp +486 -0
  555. data/ext/third_party/asio/asio/include/asio/execution/start.hpp +250 -0
  556. data/ext/third_party/asio/asio/include/asio/execution/submit.hpp +450 -0
  557. data/ext/third_party/asio/asio/include/asio/execution_context.hpp +412 -0
  558. data/ext/third_party/asio/asio/include/asio/executor.hpp +347 -0
  559. data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +287 -0
  560. data/ext/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +193 -0
  561. data/ext/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +123 -0
  562. data/ext/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +133 -0
  563. data/ext/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +110 -0
  564. data/ext/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +121 -0
  565. data/ext/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +122 -0
  566. data/ext/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +127 -0
  567. data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +104 -0
  568. data/ext/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +54 -0
  569. data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +111 -0
  570. data/ext/third_party/asio/asio/include/asio/high_resolution_timer.hpp +44 -0
  571. data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +436 -0
  572. data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +527 -0
  573. data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +507 -0
  574. data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +298 -0
  575. data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +635 -0
  576. data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +916 -0
  577. data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +248 -0
  578. data/ext/third_party/asio/asio/include/asio/impl/detached.hpp +130 -0
  579. data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +243 -0
  580. data/ext/third_party/asio/asio/include/asio/impl/error.ipp +128 -0
  581. data/ext/third_party/asio/asio/include/asio/impl/error_code.ipp +206 -0
  582. data/ext/third_party/asio/asio/include/asio/impl/execution_context.hpp +109 -0
  583. data/ext/third_party/asio/asio/include/asio/impl/execution_context.ipp +82 -0
  584. data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +301 -0
  585. data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +43 -0
  586. data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +61 -0
  587. data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +440 -0
  588. data/ext/third_party/asio/asio/include/asio/impl/io_context.ipp +175 -0
  589. data/ext/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +49 -0
  590. data/ext/third_party/asio/asio/include/asio/impl/post.hpp +248 -0
  591. data/ext/third_party/asio/asio/include/asio/impl/read.hpp +1202 -0
  592. data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +744 -0
  593. data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +3335 -0
  594. data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +390 -0
  595. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +59 -0
  596. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +554 -0
  597. data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +526 -0
  598. data/ext/third_party/asio/asio/include/asio/impl/src.hpp +85 -0
  599. data/ext/third_party/asio/asio/include/asio/impl/system_context.hpp +34 -0
  600. data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +92 -0
  601. data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +186 -0
  602. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +350 -0
  603. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +141 -0
  604. data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +279 -0
  605. data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +1028 -0
  606. data/ext/third_party/asio/asio/include/asio/impl/write.hpp +1104 -0
  607. data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +666 -0
  608. data/ext/third_party/asio/asio/include/asio/io_context.hpp +1530 -0
  609. data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +376 -0
  610. data/ext/third_party/asio/asio/include/asio/io_service.hpp +33 -0
  611. data/ext/third_party/asio/asio/include/asio/io_service_strand.hpp +20 -0
  612. data/ext/third_party/asio/asio/include/asio/ip/address.hpp +268 -0
  613. data/ext/third_party/asio/asio/include/asio/ip/address_v4.hpp +335 -0
  614. data/ext/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +162 -0
  615. data/ext/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +134 -0
  616. data/ext/third_party/asio/asio/include/asio/ip/address_v6.hpp +341 -0
  617. data/ext/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +183 -0
  618. data/ext/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +129 -0
  619. data/ext/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +53 -0
  620. data/ext/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +264 -0
  621. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +1030 -0
  622. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +113 -0
  623. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +192 -0
  624. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +244 -0
  625. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +311 -0
  626. data/ext/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +141 -0
  627. data/ext/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +199 -0
  628. data/ext/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +566 -0
  629. data/ext/third_party/asio/asio/include/asio/ip/host_name.hpp +42 -0
  630. data/ext/third_party/asio/asio/include/asio/ip/icmp.hpp +115 -0
  631. data/ext/third_party/asio/asio/include/asio/ip/impl/address.hpp +67 -0
  632. data/ext/third_party/asio/asio/include/asio/ip/impl/address.ipp +239 -0
  633. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +67 -0
  634. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +210 -0
  635. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +67 -0
  636. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +350 -0
  637. data/ext/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +43 -0
  638. data/ext/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +54 -0
  639. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +54 -0
  640. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +216 -0
  641. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +53 -0
  642. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +185 -0
  643. data/ext/third_party/asio/asio/include/asio/ip/multicast.hpp +191 -0
  644. data/ext/third_party/asio/asio/include/asio/ip/network_v4.hpp +261 -0
  645. data/ext/third_party/asio/asio/include/asio/ip/network_v6.hpp +235 -0
  646. data/ext/third_party/asio/asio/include/asio/ip/resolver_base.hpp +129 -0
  647. data/ext/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +43 -0
  648. data/ext/third_party/asio/asio/include/asio/ip/tcp.hpp +155 -0
  649. data/ext/third_party/asio/asio/include/asio/ip/udp.hpp +111 -0
  650. data/ext/third_party/asio/asio/include/asio/ip/unicast.hpp +70 -0
  651. data/ext/third_party/asio/asio/include/asio/ip/v6_only.hpp +69 -0
  652. data/ext/third_party/asio/asio/include/asio/is_applicable_property.hpp +61 -0
  653. data/ext/third_party/asio/asio/include/asio/is_executor.hpp +46 -0
  654. data/ext/third_party/asio/asio/include/asio/is_read_buffered.hpp +59 -0
  655. data/ext/third_party/asio/asio/include/asio/is_write_buffered.hpp +59 -0
  656. data/ext/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +247 -0
  657. data/ext/third_party/asio/asio/include/asio/local/connect_pair.hpp +101 -0
  658. data/ext/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +80 -0
  659. data/ext/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +139 -0
  660. data/ext/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +136 -0
  661. data/ext/third_party/asio/asio/include/asio/local/stream_protocol.hpp +90 -0
  662. data/ext/third_party/asio/asio/include/asio/multiple_exceptions.hpp +58 -0
  663. data/ext/third_party/asio/asio/include/asio/packaged_task.hpp +126 -0
  664. data/ext/third_party/asio/asio/include/asio/placeholders.hpp +151 -0
  665. data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +697 -0
  666. data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +470 -0
  667. data/ext/third_party/asio/asio/include/asio/posix/descriptor.hpp +37 -0
  668. data/ext/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +90 -0
  669. data/ext/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +37 -0
  670. data/ext/third_party/asio/asio/include/asio/post.hpp +126 -0
  671. data/ext/third_party/asio/asio/include/asio/prefer.hpp +656 -0
  672. data/ext/third_party/asio/asio/include/asio/query.hpp +296 -0
  673. data/ext/third_party/asio/asio/include/asio/read.hpp +1288 -0
  674. data/ext/third_party/asio/asio/include/asio/read_at.hpp +694 -0
  675. data/ext/third_party/asio/asio/include/asio/read_until.hpp +2863 -0
  676. data/ext/third_party/asio/asio/include/asio/redirect_error.hpp +66 -0
  677. data/ext/third_party/asio/asio/include/asio/require.hpp +524 -0
  678. data/ext/third_party/asio/asio/include/asio/require_concept.hpp +310 -0
  679. data/ext/third_party/asio/asio/include/asio/serial_port.hpp +36 -0
  680. data/ext/third_party/asio/asio/include/asio/serial_port_base.hpp +167 -0
  681. data/ext/third_party/asio/asio/include/asio/signal_set.hpp +28 -0
  682. data/ext/third_party/asio/asio/include/asio/socket_base.hpp +559 -0
  683. data/ext/third_party/asio/asio/include/asio/spawn.hpp +344 -0
  684. data/ext/third_party/asio/asio/include/asio/ssl.hpp +28 -0
  685. data/ext/third_party/asio/asio/include/asio/ssl/context.hpp +761 -0
  686. data/ext/third_party/asio/asio/include/asio/ssl/context_base.hpp +209 -0
  687. data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +119 -0
  688. data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +165 -0
  689. data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +67 -0
  690. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +349 -0
  691. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +165 -0
  692. data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +415 -0
  693. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +101 -0
  694. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +34 -0
  695. data/ext/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +66 -0
  696. data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +72 -0
  697. data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +69 -0
  698. data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +169 -0
  699. data/ext/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +62 -0
  700. data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +76 -0
  701. data/ext/third_party/asio/asio/include/asio/ssl/error.hpp +125 -0
  702. data/ext/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +90 -0
  703. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.hpp +67 -0
  704. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.ipp +1238 -0
  705. data/ext/third_party/asio/asio/include/asio/ssl/impl/error.ipp +102 -0
  706. data/ext/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +73 -0
  707. data/ext/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +164 -0
  708. data/ext/third_party/asio/asio/include/asio/ssl/impl/src.hpp +29 -0
  709. data/ext/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +98 -0
  710. data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +900 -0
  711. data/ext/third_party/asio/asio/include/asio/ssl/stream_base.hpp +52 -0
  712. data/ext/third_party/asio/asio/include/asio/ssl/verify_context.hpp +67 -0
  713. data/ext/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +63 -0
  714. data/ext/third_party/asio/asio/include/asio/static_thread_pool.hpp +31 -0
  715. data/ext/third_party/asio/asio/include/asio/steady_timer.hpp +42 -0
  716. data/ext/third_party/asio/asio/include/asio/strand.hpp +537 -0
  717. data/ext/third_party/asio/asio/include/asio/streambuf.hpp +33 -0
  718. data/ext/third_party/asio/asio/include/asio/system_context.hpp +90 -0
  719. data/ext/third_party/asio/asio/include/asio/system_error.hpp +131 -0
  720. data/ext/third_party/asio/asio/include/asio/system_executor.hpp +662 -0
  721. data/ext/third_party/asio/asio/include/asio/system_timer.hpp +42 -0
  722. data/ext/third_party/asio/asio/include/asio/this_coro.hpp +45 -0
  723. data/ext/third_party/asio/asio/include/asio/thread.hpp +92 -0
  724. data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +1111 -0
  725. data/ext/third_party/asio/asio/include/asio/time_traits.hpp +86 -0
  726. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +114 -0
  727. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +114 -0
  728. data/ext/third_party/asio/asio/include/asio/traits/connect_free.hpp +112 -0
  729. data/ext/third_party/asio/asio/include/asio/traits/connect_member.hpp +112 -0
  730. data/ext/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +100 -0
  731. data/ext/third_party/asio/asio/include/asio/traits/execute_free.hpp +108 -0
  732. data/ext/third_party/asio/asio/include/asio/traits/execute_member.hpp +108 -0
  733. data/ext/third_party/asio/asio/include/asio/traits/prefer_free.hpp +108 -0
  734. data/ext/third_party/asio/asio/include/asio/traits/prefer_member.hpp +108 -0
  735. data/ext/third_party/asio/asio/include/asio/traits/query_free.hpp +108 -0
  736. data/ext/third_party/asio/asio/include/asio/traits/query_member.hpp +108 -0
  737. data/ext/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +108 -0
  738. data/ext/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +108 -0
  739. data/ext/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +108 -0
  740. data/ext/third_party/asio/asio/include/asio/traits/require_free.hpp +108 -0
  741. data/ext/third_party/asio/asio/include/asio/traits/require_member.hpp +108 -0
  742. data/ext/third_party/asio/asio/include/asio/traits/schedule_free.hpp +108 -0
  743. data/ext/third_party/asio/asio/include/asio/traits/schedule_member.hpp +108 -0
  744. data/ext/third_party/asio/asio/include/asio/traits/set_done_free.hpp +108 -0
  745. data/ext/third_party/asio/asio/include/asio/traits/set_done_member.hpp +108 -0
  746. data/ext/third_party/asio/asio/include/asio/traits/set_error_free.hpp +112 -0
  747. data/ext/third_party/asio/asio/include/asio/traits/set_error_member.hpp +112 -0
  748. data/ext/third_party/asio/asio/include/asio/traits/set_value_free.hpp +234 -0
  749. data/ext/third_party/asio/asio/include/asio/traits/set_value_member.hpp +234 -0
  750. data/ext/third_party/asio/asio/include/asio/traits/start_free.hpp +108 -0
  751. data/ext/third_party/asio/asio/include/asio/traits/start_member.hpp +108 -0
  752. data/ext/third_party/asio/asio/include/asio/traits/static_query.hpp +108 -0
  753. data/ext/third_party/asio/asio/include/asio/traits/static_require.hpp +123 -0
  754. data/ext/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +123 -0
  755. data/ext/third_party/asio/asio/include/asio/traits/submit_free.hpp +112 -0
  756. data/ext/third_party/asio/asio/include/asio/traits/submit_member.hpp +112 -0
  757. data/ext/third_party/asio/asio/include/asio/ts/buffer.hpp +24 -0
  758. data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +35 -0
  759. data/ext/third_party/asio/asio/include/asio/ts/internet.hpp +40 -0
  760. data/ext/third_party/asio/asio/include/asio/ts/io_context.hpp +20 -0
  761. data/ext/third_party/asio/asio/include/asio/ts/net.hpp +26 -0
  762. data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +262 -0
  763. data/ext/third_party/asio/asio/include/asio/ts/socket.hpp +27 -0
  764. data/ext/third_party/asio/asio/include/asio/ts/timer.hpp +26 -0
  765. data/ext/third_party/asio/asio/include/asio/unyield.hpp +21 -0
  766. data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +169 -0
  767. data/ext/third_party/asio/asio/include/asio/use_future.hpp +160 -0
  768. data/ext/third_party/asio/asio/include/asio/uses_executor.hpp +71 -0
  769. data/ext/third_party/asio/asio/include/asio/version.hpp +23 -0
  770. data/ext/third_party/asio/asio/include/asio/wait_traits.hpp +56 -0
  771. data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +435 -0
  772. data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +361 -0
  773. data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +490 -0
  774. data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +474 -0
  775. data/ext/third_party/asio/asio/include/asio/windows/object_handle.hpp +38 -0
  776. data/ext/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +39 -0
  777. data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +145 -0
  778. data/ext/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +37 -0
  779. data/ext/third_party/asio/asio/include/asio/windows/stream_handle.hpp +37 -0
  780. data/ext/third_party/asio/asio/include/asio/write.hpp +1246 -0
  781. data/ext/third_party/asio/asio/include/asio/write_at.hpp +702 -0
  782. data/ext/third_party/asio/asio/include/asio/yield.hpp +23 -0
  783. data/ext/third_party/gsl/CMakeLists.txt +127 -0
  784. data/ext/third_party/gsl/LICENSE +21 -0
  785. data/ext/third_party/gsl/ThirdPartyNotices.txt +41 -0
  786. data/ext/third_party/gsl/include/gsl/gsl +29 -0
  787. data/ext/third_party/gsl/include/gsl/gsl_algorithm +61 -0
  788. data/ext/third_party/gsl/include/gsl/gsl_assert +133 -0
  789. data/ext/third_party/gsl/include/gsl/gsl_byte +209 -0
  790. data/ext/third_party/gsl/include/gsl/gsl_narrow +52 -0
  791. data/ext/third_party/gsl/include/gsl/gsl_util +129 -0
  792. data/ext/third_party/gsl/include/gsl/multi_span +2263 -0
  793. data/ext/third_party/gsl/include/gsl/pointers +287 -0
  794. data/ext/third_party/gsl/include/gsl/span +816 -0
  795. data/ext/third_party/gsl/include/gsl/span_ext +198 -0
  796. data/ext/third_party/gsl/include/gsl/string_span +706 -0
  797. data/ext/third_party/http_parser/LICENSE-MIT +19 -0
  798. data/ext/third_party/http_parser/http_parser.c +2575 -0
  799. data/ext/third_party/http_parser/http_parser.h +449 -0
  800. data/ext/third_party/json/CMakeLists.txt +44 -0
  801. data/ext/third_party/json/LICENSE +21 -0
  802. data/ext/third_party/json/LICENSE.double-conversion +32 -0
  803. data/ext/third_party/json/LICENSE.itoa +19 -0
  804. data/ext/third_party/json/LICENSE.ryu +201 -0
  805. data/ext/third_party/json/include/tao/json.hpp +45 -0
  806. data/ext/third_party/json/include/tao/json/basic_value.hpp +942 -0
  807. data/ext/third_party/json/include/tao/json/binary.hpp +103 -0
  808. data/ext/third_party/json/include/tao/json/binary_view.hpp +31 -0
  809. data/ext/third_party/json/include/tao/json/binding.hpp +71 -0
  810. data/ext/third_party/json/include/tao/json/binding/constant.hpp +232 -0
  811. data/ext/third_party/json/include/tao/json/binding/element.hpp +182 -0
  812. data/ext/third_party/json/include/tao/json/binding/factory.hpp +251 -0
  813. data/ext/third_party/json/include/tao/json/binding/for_nothing_value.hpp +17 -0
  814. data/ext/third_party/json/include/tao/json/binding/for_unknown_key.hpp +17 -0
  815. data/ext/third_party/json/include/tao/json/binding/inherit.hpp +14 -0
  816. data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +104 -0
  817. data/ext/third_party/json/include/tao/json/binding/internal/inherit.hpp +45 -0
  818. data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +268 -0
  819. data/ext/third_party/json/include/tao/json/binding/internal/type_key.hpp +54 -0
  820. data/ext/third_party/json/include/tao/json/binding/member.hpp +32 -0
  821. data/ext/third_party/json/include/tao/json/binding/member_kind.hpp +17 -0
  822. data/ext/third_party/json/include/tao/json/binding/versions.hpp +129 -0
  823. data/ext/third_party/json/include/tao/json/cbor.hpp +19 -0
  824. data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +34 -0
  825. data/ext/third_party/json/include/tao/json/cbor/consume_string.hpp +32 -0
  826. data/ext/third_party/json/include/tao/json/cbor/events/from_binary.hpp +43 -0
  827. data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +27 -0
  828. data/ext/third_party/json/include/tao/json/cbor/events/from_input.hpp +43 -0
  829. data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +37 -0
  830. data/ext/third_party/json/include/tao/json/cbor/events/to_stream.hpp +161 -0
  831. data/ext/third_party/json/include/tao/json/cbor/events/to_string.hpp +31 -0
  832. data/ext/third_party/json/include/tao/json/cbor/from_binary.hpp +32 -0
  833. data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +33 -0
  834. data/ext/third_party/json/include/tao/json/cbor/from_input.hpp +33 -0
  835. data/ext/third_party/json/include/tao/json/cbor/from_string.hpp +32 -0
  836. data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +418 -0
  837. data/ext/third_party/json/include/tao/json/cbor/internal/major.hpp +28 -0
  838. data/ext/third_party/json/include/tao/json/cbor/parts_parser.hpp +392 -0
  839. data/ext/third_party/json/include/tao/json/cbor/to_stream.hpp +27 -0
  840. data/ext/third_party/json/include/tao/json/cbor/to_string.hpp +28 -0
  841. data/ext/third_party/json/include/tao/json/consume.hpp +43 -0
  842. data/ext/third_party/json/include/tao/json/consume_file.hpp +33 -0
  843. data/ext/third_party/json/include/tao/json/consume_string.hpp +31 -0
  844. data/ext/third_party/json/include/tao/json/contrib/array_traits.hpp +43 -0
  845. data/ext/third_party/json/include/tao/json/contrib/deque_traits.hpp +41 -0
  846. data/ext/third_party/json/include/tao/json/contrib/diff.hpp +106 -0
  847. data/ext/third_party/json/include/tao/json/contrib/get.hpp +152 -0
  848. data/ext/third_party/json/include/tao/json/contrib/internal/array_traits.hpp +92 -0
  849. data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +76 -0
  850. data/ext/third_party/json/include/tao/json/contrib/internal/object_traits.hpp +105 -0
  851. data/ext/third_party/json/include/tao/json/contrib/internal/type_traits.hpp +36 -0
  852. data/ext/third_party/json/include/tao/json/contrib/list_traits.hpp +41 -0
  853. data/ext/third_party/json/include/tao/json/contrib/map_traits.hpp +43 -0
  854. data/ext/third_party/json/include/tao/json/contrib/multimap_traits.hpp +43 -0
  855. data/ext/third_party/json/include/tao/json/contrib/multiset_traits.hpp +41 -0
  856. data/ext/third_party/json/include/tao/json/contrib/pair_traits.hpp +21 -0
  857. data/ext/third_party/json/include/tao/json/contrib/patch.hpp +105 -0
  858. data/ext/third_party/json/include/tao/json/contrib/pointer_traits.hpp +59 -0
  859. data/ext/third_party/json/include/tao/json/contrib/position.hpp +166 -0
  860. data/ext/third_party/json/include/tao/json/contrib/reference.hpp +113 -0
  861. data/ext/third_party/json/include/tao/json/contrib/schema.hpp +1874 -0
  862. data/ext/third_party/json/include/tao/json/contrib/set_traits.hpp +41 -0
  863. data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +98 -0
  864. data/ext/third_party/json/include/tao/json/contrib/traits.hpp +121 -0
  865. data/ext/third_party/json/include/tao/json/contrib/tuple_traits.hpp +51 -0
  866. data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +97 -0
  867. data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +43 -0
  868. data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +41 -0
  869. data/ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp +45 -0
  870. data/ext/third_party/json/include/tao/json/contrib/vector_traits.hpp +51 -0
  871. data/ext/third_party/json/include/tao/json/events.hpp +47 -0
  872. data/ext/third_party/json/include/tao/json/events/apply.hpp +20 -0
  873. data/ext/third_party/json/include/tao/json/events/binary_to_base64.hpp +26 -0
  874. data/ext/third_party/json/include/tao/json/events/binary_to_base64url.hpp +28 -0
  875. data/ext/third_party/json/include/tao/json/events/binary_to_exception.hpp +27 -0
  876. data/ext/third_party/json/include/tao/json/events/binary_to_hex.hpp +26 -0
  877. data/ext/third_party/json/include/tao/json/events/compare.hpp +255 -0
  878. data/ext/third_party/json/include/tao/json/events/debug.hpp +145 -0
  879. data/ext/third_party/json/include/tao/json/events/discard.hpp +43 -0
  880. data/ext/third_party/json/include/tao/json/events/from_file.hpp +28 -0
  881. data/ext/third_party/json/include/tao/json/events/from_input.hpp +45 -0
  882. data/ext/third_party/json/include/tao/json/events/from_stream.hpp +33 -0
  883. data/ext/third_party/json/include/tao/json/events/from_string.hpp +38 -0
  884. data/ext/third_party/json/include/tao/json/events/from_value.hpp +202 -0
  885. data/ext/third_party/json/include/tao/json/events/hash.hpp +174 -0
  886. data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +50 -0
  887. data/ext/third_party/json/include/tao/json/events/invalid_string_to_exception.hpp +49 -0
  888. data/ext/third_party/json/include/tao/json/events/invalid_string_to_hex.hpp +48 -0
  889. data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +62 -0
  890. data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +57 -0
  891. data/ext/third_party/json/include/tao/json/events/limit_nesting_depth.hpp +82 -0
  892. data/ext/third_party/json/include/tao/json/events/limit_value_count.hpp +46 -0
  893. data/ext/third_party/json/include/tao/json/events/non_finite_to_exception.hpp +31 -0
  894. data/ext/third_party/json/include/tao/json/events/non_finite_to_null.hpp +32 -0
  895. data/ext/third_party/json/include/tao/json/events/non_finite_to_string.hpp +40 -0
  896. data/ext/third_party/json/include/tao/json/events/prefer_signed.hpp +32 -0
  897. data/ext/third_party/json/include/tao/json/events/prefer_unsigned.hpp +32 -0
  898. data/ext/third_party/json/include/tao/json/events/produce.hpp +22 -0
  899. data/ext/third_party/json/include/tao/json/events/ref.hpp +111 -0
  900. data/ext/third_party/json/include/tao/json/events/statistics.hpp +112 -0
  901. data/ext/third_party/json/include/tao/json/events/tee.hpp +386 -0
  902. data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +172 -0
  903. data/ext/third_party/json/include/tao/json/events/to_stream.hpp +142 -0
  904. data/ext/third_party/json/include/tao/json/events/to_string.hpp +33 -0
  905. data/ext/third_party/json/include/tao/json/events/to_value.hpp +137 -0
  906. data/ext/third_party/json/include/tao/json/events/transformer.hpp +70 -0
  907. data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +411 -0
  908. data/ext/third_party/json/include/tao/json/events/validate_keys.hpp +51 -0
  909. data/ext/third_party/json/include/tao/json/events/virtual_base.hpp +192 -0
  910. data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +176 -0
  911. data/ext/third_party/json/include/tao/json/external/double.hpp +1313 -0
  912. data/ext/third_party/json/include/tao/json/external/itoa.hpp +149 -0
  913. data/ext/third_party/json/include/tao/json/external/pegtl.hpp +44 -0
  914. data/ext/third_party/json/include/tao/json/external/pegtl/apply_mode.hpp +19 -0
  915. data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +49 -0
  916. data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +54 -0
  917. data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +212 -0
  918. data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +38 -0
  919. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +53 -0
  920. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +62 -0
  921. data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +36 -0
  922. data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +50 -0
  923. data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +61 -0
  924. data/ext/third_party/json/include/tao/json/external/pegtl/config.hpp +11 -0
  925. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/abnf.hpp +35 -0
  926. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +67 -0
  927. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze.hpp +176 -0
  928. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze_traits.hpp +275 -0
  929. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/control_action.hpp +77 -0
  930. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/coverage.hpp +151 -0
  931. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/forward.hpp +16 -0
  932. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +272 -0
  933. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +66 -0
  934. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +196 -0
  935. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +196 -0
  936. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +103 -0
  937. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +56 -0
  938. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +431 -0
  939. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian.hpp +62 -0
  940. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian_gcc.hpp +206 -0
  941. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian_win.hpp +106 -0
  942. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_mask_uint.hpp +54 -0
  943. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_mask_uint8.hpp +33 -0
  944. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_uint.hpp +45 -0
  945. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_uint8.hpp +32 -0
  946. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_utf16.hpp +54 -0
  947. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_utf32.hpp +43 -0
  948. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/read_uint.hpp +77 -0
  949. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/set_stack_guard.hpp +52 -0
  950. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json.hpp +88 -0
  951. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json_pointer.hpp +33 -0
  952. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +440 -0
  953. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +105 -0
  954. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print.hpp +75 -0
  955. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print_coverage.hpp +53 -0
  956. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +234 -0
  957. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +69 -0
  958. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_last_states.hpp +117 -0
  959. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +94 -0
  960. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +43 -0
  961. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/shuffle_states.hpp +193 -0
  962. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/state_control.hpp +118 -0
  963. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/to_string.hpp +38 -0
  964. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/trace.hpp +227 -0
  965. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint16.hpp +62 -0
  966. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint32.hpp +62 -0
  967. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint64.hpp +63 -0
  968. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint8.hpp +36 -0
  969. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +199 -0
  970. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +106 -0
  971. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/utf16.hpp +49 -0
  972. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/utf32.hpp +49 -0
  973. data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +32 -0
  974. data/ext/third_party/json/include/tao/json/external/pegtl/demangle.hpp +138 -0
  975. data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +35 -0
  976. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +37 -0
  977. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +39 -0
  978. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +39 -0
  979. data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +35 -0
  980. data/ext/third_party/json/include/tao/json/external/pegtl/eol.hpp +37 -0
  981. data/ext/third_party/json/include/tao/json/external/pegtl/eol_pair.hpp +18 -0
  982. data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +44 -0
  983. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +54 -0
  984. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +106 -0
  985. data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +58 -0
  986. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +53 -0
  987. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +51 -0
  988. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0_single.hpp +34 -0
  989. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +34 -0
  990. data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +55 -0
  991. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +32 -0
  992. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +31 -0
  993. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +45 -0
  994. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +29 -0
  995. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +43 -0
  996. data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +54 -0
  997. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +32 -0
  998. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +32 -0
  999. data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +32 -0
  1000. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +49 -0
  1001. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstring_reader.hpp +40 -0
  1002. data/ext/third_party/json/include/tao/json/external/pegtl/internal/dependent_false.hpp +16 -0
  1003. data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +54 -0
  1004. data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +34 -0
  1005. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +54 -0
  1006. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable_control.hpp +25 -0
  1007. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +32 -0
  1008. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +32 -0
  1009. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +33 -0
  1010. data/ext/third_party/json/include/tao/json/external/pegtl/internal/failure.hpp +32 -0
  1011. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +134 -0
  1012. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +213 -0
  1013. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +113 -0
  1014. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +21 -0
  1015. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +21 -0
  1016. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +40 -0
  1017. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_unwind.hpp +21 -0
  1018. data/ext/third_party/json/include/tao/json/external/pegtl/internal/identifier.hpp +22 -0
  1019. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +54 -0
  1020. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +47 -0
  1021. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +21 -0
  1022. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +51 -0
  1023. data/ext/third_party/json/include/tao/json/external/pegtl/internal/input_pair.hpp +29 -0
  1024. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +39 -0
  1025. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +72 -0
  1026. data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +49 -0
  1027. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +37 -0
  1028. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +32 -0
  1029. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list.hpp +19 -0
  1030. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_must.hpp +20 -0
  1031. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +22 -0
  1032. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +22 -0
  1033. data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +80 -0
  1034. data/ext/third_party/json/include/tao/json/external/pegtl/internal/minus.hpp +21 -0
  1035. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +28 -0
  1036. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +26 -0
  1037. data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +64 -0
  1038. data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +55 -0
  1039. data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +55 -0
  1040. data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +57 -0
  1041. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad.hpp +19 -0
  1042. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad_opt.hpp +20 -0
  1043. data/ext/third_party/json/include/tao/json/external/pegtl/internal/path_to_string.hpp +26 -0
  1044. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +32 -0
  1045. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +89 -0
  1046. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pegtl_string.hpp +90 -0
  1047. data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +60 -0
  1048. data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +44 -0
  1049. data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +56 -0
  1050. data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +103 -0
  1051. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +72 -0
  1052. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +67 -0
  1053. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min.hpp +20 -0
  1054. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +81 -0
  1055. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +61 -0
  1056. data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +42 -0
  1057. data/ext/third_party/json/include/tao/json/external/pegtl/internal/result_on_found.hpp +19 -0
  1058. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +61 -0
  1059. data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +58 -0
  1060. data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +67 -0
  1061. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +52 -0
  1062. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star_must.hpp +19 -0
  1063. data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +59 -0
  1064. data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +58 -0
  1065. data/ext/third_party/json/include/tao/json/external/pegtl/internal/success.hpp +32 -0
  1066. data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +64 -0
  1067. data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +88 -0
  1068. data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +32 -0
  1069. data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +169 -0
  1070. data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +365 -0
  1071. data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +79 -0
  1072. data/ext/third_party/json/include/tao/json/external/pegtl/must_if.hpp +64 -0
  1073. data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +87 -0
  1074. data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +19 -0
  1075. data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +51 -0
  1076. data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +114 -0
  1077. data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +83 -0
  1078. data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +54 -0
  1079. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply.hpp +16 -0
  1080. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply0.hpp +16 -0
  1081. data/ext/third_party/json/include/tao/json/external/pegtl/rewind_mode.hpp +20 -0
  1082. data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +68 -0
  1083. data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +64 -0
  1084. data/ext/third_party/json/include/tao/json/external/pegtl/tracking_mode.hpp +19 -0
  1085. data/ext/third_party/json/include/tao/json/external/pegtl/type_list.hpp +46 -0
  1086. data/ext/third_party/json/include/tao/json/external/pegtl/utf8.hpp +28 -0
  1087. data/ext/third_party/json/include/tao/json/external/pegtl/version.hpp +13 -0
  1088. data/ext/third_party/json/include/tao/json/external/pegtl/visit.hpp +66 -0
  1089. data/ext/third_party/json/include/tao/json/external/ryu.hpp +1216 -0
  1090. data/ext/third_party/json/include/tao/json/forward.hpp +44 -0
  1091. data/ext/third_party/json/include/tao/json/from_file.hpp +32 -0
  1092. data/ext/third_party/json/include/tao/json/from_input.hpp +32 -0
  1093. data/ext/third_party/json/include/tao/json/from_stream.hpp +45 -0
  1094. data/ext/third_party/json/include/tao/json/from_string.hpp +41 -0
  1095. data/ext/third_party/json/include/tao/json/internal/action.hpp +268 -0
  1096. data/ext/third_party/json/include/tao/json/internal/base64.hpp +55 -0
  1097. data/ext/third_party/json/include/tao/json/internal/base64url.hpp +53 -0
  1098. data/ext/third_party/json/include/tao/json/internal/dependent_false.hpp +14 -0
  1099. data/ext/third_party/json/include/tao/json/internal/endian.hpp +60 -0
  1100. data/ext/third_party/json/include/tao/json/internal/endian_gcc.hpp +198 -0
  1101. data/ext/third_party/json/include/tao/json/internal/endian_win.hpp +103 -0
  1102. data/ext/third_party/json/include/tao/json/internal/errors.hpp +85 -0
  1103. data/ext/third_party/json/include/tao/json/internal/escape.hpp +77 -0
  1104. data/ext/third_party/json/include/tao/json/internal/format.hpp +57 -0
  1105. data/ext/third_party/json/include/tao/json/internal/grammar.hpp +229 -0
  1106. data/ext/third_party/json/include/tao/json/internal/hexdump.hpp +31 -0
  1107. data/ext/third_party/json/include/tao/json/internal/identity.hpp +22 -0
  1108. data/ext/third_party/json/include/tao/json/internal/number_state.hpp +80 -0
  1109. data/ext/third_party/json/include/tao/json/internal/number_traits.hpp +267 -0
  1110. data/ext/third_party/json/include/tao/json/internal/pair.hpp +42 -0
  1111. data/ext/third_party/json/include/tao/json/internal/parse_util.hpp +112 -0
  1112. data/ext/third_party/json/include/tao/json/internal/sha256.hpp +218 -0
  1113. data/ext/third_party/json/include/tao/json/internal/single.hpp +40 -0
  1114. data/ext/third_party/json/include/tao/json/internal/string_t.hpp +35 -0
  1115. data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +96 -0
  1116. data/ext/third_party/json/include/tao/json/internal/unescape_action.hpp +24 -0
  1117. data/ext/third_party/json/include/tao/json/internal/uri_fragment.hpp +182 -0
  1118. data/ext/third_party/json/include/tao/json/jaxn.hpp +19 -0
  1119. data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +34 -0
  1120. data/ext/third_party/json/include/tao/json/jaxn/consume_string.hpp +32 -0
  1121. data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +28 -0
  1122. data/ext/third_party/json/include/tao/json/jaxn/events/from_input.hpp +45 -0
  1123. data/ext/third_party/json/include/tao/json/jaxn/events/from_stream.hpp +33 -0
  1124. data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +39 -0
  1125. data/ext/third_party/json/include/tao/json/jaxn/events/to_pretty_stream.hpp +69 -0
  1126. data/ext/third_party/json/include/tao/json/jaxn/events/to_stream.hpp +67 -0
  1127. data/ext/third_party/json/include/tao/json/jaxn/events/to_string.hpp +33 -0
  1128. data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +33 -0
  1129. data/ext/third_party/json/include/tao/json/jaxn/from_input.hpp +33 -0
  1130. data/ext/third_party/json/include/tao/json/jaxn/from_stream.hpp +48 -0
  1131. data/ext/third_party/json/include/tao/json/jaxn/from_string.hpp +42 -0
  1132. data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +355 -0
  1133. data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +114 -0
  1134. data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +108 -0
  1135. data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +375 -0
  1136. data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +255 -0
  1137. data/ext/third_party/json/include/tao/json/jaxn/internal/unescape_action.hpp +28 -0
  1138. data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +27 -0
  1139. data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +261 -0
  1140. data/ext/third_party/json/include/tao/json/jaxn/to_stream.hpp +36 -0
  1141. data/ext/third_party/json/include/tao/json/jaxn/to_string.hpp +33 -0
  1142. data/ext/third_party/json/include/tao/json/message_extension.hpp +49 -0
  1143. data/ext/third_party/json/include/tao/json/msgpack.hpp +19 -0
  1144. data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +34 -0
  1145. data/ext/third_party/json/include/tao/json/msgpack/consume_string.hpp +32 -0
  1146. data/ext/third_party/json/include/tao/json/msgpack/events/from_binary.hpp +43 -0
  1147. data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +27 -0
  1148. data/ext/third_party/json/include/tao/json/msgpack/events/from_input.hpp +43 -0
  1149. data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +37 -0
  1150. data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +214 -0
  1151. data/ext/third_party/json/include/tao/json/msgpack/events/to_string.hpp +31 -0
  1152. data/ext/third_party/json/include/tao/json/msgpack/from_binary.hpp +32 -0
  1153. data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +33 -0
  1154. data/ext/third_party/json/include/tao/json/msgpack/from_input.hpp +33 -0
  1155. data/ext/third_party/json/include/tao/json/msgpack/from_string.hpp +32 -0
  1156. data/ext/third_party/json/include/tao/json/msgpack/internal/format.hpp +57 -0
  1157. data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +250 -0
  1158. data/ext/third_party/json/include/tao/json/msgpack/parts_parser.hpp +311 -0
  1159. data/ext/third_party/json/include/tao/json/msgpack/to_stream.hpp +27 -0
  1160. data/ext/third_party/json/include/tao/json/msgpack/to_string.hpp +28 -0
  1161. data/ext/third_party/json/include/tao/json/operators.hpp +490 -0
  1162. data/ext/third_party/json/include/tao/json/parts_parser.hpp +302 -0
  1163. data/ext/third_party/json/include/tao/json/pointer.hpp +432 -0
  1164. data/ext/third_party/json/include/tao/json/produce.hpp +61 -0
  1165. data/ext/third_party/json/include/tao/json/self_contained.hpp +131 -0
  1166. data/ext/third_party/json/include/tao/json/span.hpp +496 -0
  1167. data/ext/third_party/json/include/tao/json/stream.hpp +38 -0
  1168. data/ext/third_party/json/include/tao/json/to_stream.hpp +42 -0
  1169. data/ext/third_party/json/include/tao/json/to_string.hpp +23 -0
  1170. data/ext/third_party/json/include/tao/json/traits.hpp +971 -0
  1171. data/ext/third_party/json/include/tao/json/type.hpp +112 -0
  1172. data/ext/third_party/json/include/tao/json/ubjson.hpp +19 -0
  1173. data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +34 -0
  1174. data/ext/third_party/json/include/tao/json/ubjson/consume_string.hpp +32 -0
  1175. data/ext/third_party/json/include/tao/json/ubjson/events/from_binary.hpp +43 -0
  1176. data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +27 -0
  1177. data/ext/third_party/json/include/tao/json/ubjson/events/from_input.hpp +43 -0
  1178. data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +37 -0
  1179. data/ext/third_party/json/include/tao/json/ubjson/events/to_stream.hpp +174 -0
  1180. data/ext/third_party/json/include/tao/json/ubjson/events/to_string.hpp +31 -0
  1181. data/ext/third_party/json/include/tao/json/ubjson/from_binary.hpp +32 -0
  1182. data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +33 -0
  1183. data/ext/third_party/json/include/tao/json/ubjson/from_input.hpp +33 -0
  1184. data/ext/third_party/json/include/tao/json/ubjson/from_string.hpp +32 -0
  1185. data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +415 -0
  1186. data/ext/third_party/json/include/tao/json/ubjson/internal/marker.hpp +46 -0
  1187. data/ext/third_party/json/include/tao/json/ubjson/parts_parser.hpp +393 -0
  1188. data/ext/third_party/json/include/tao/json/ubjson/to_stream.hpp +28 -0
  1189. data/ext/third_party/json/include/tao/json/ubjson/to_string.hpp +29 -0
  1190. data/ext/third_party/json/include/tao/json/utf8.hpp +57 -0
  1191. data/ext/third_party/json/include/tao/json/value.hpp +12 -0
  1192. data/ext/third_party/snappy/CMakeLists.txt +345 -0
  1193. data/ext/third_party/snappy/COPYING +54 -0
  1194. data/ext/third_party/snappy/cmake/SnappyConfig.cmake.in +33 -0
  1195. data/ext/third_party/snappy/cmake/config.h.in +59 -0
  1196. data/ext/third_party/snappy/snappy-c.cc +90 -0
  1197. data/ext/third_party/snappy/snappy-c.h +138 -0
  1198. data/ext/third_party/snappy/snappy-internal.h +315 -0
  1199. data/ext/third_party/snappy/snappy-sinksource.cc +121 -0
  1200. data/ext/third_party/snappy/snappy-sinksource.h +182 -0
  1201. data/ext/third_party/snappy/snappy-stubs-internal.cc +42 -0
  1202. data/ext/third_party/snappy/snappy-stubs-internal.h +493 -0
  1203. data/ext/third_party/snappy/snappy-stubs-public.h.in +63 -0
  1204. data/ext/third_party/snappy/snappy.cc +1774 -0
  1205. data/ext/third_party/snappy/snappy.h +209 -0
  1206. data/ext/third_party/spdlog/CMakeLists.txt +291 -0
  1207. data/ext/third_party/spdlog/LICENSE +26 -0
  1208. data/ext/third_party/spdlog/cmake/ide.cmake +18 -0
  1209. data/ext/third_party/spdlog/cmake/pch.h.in +258 -0
  1210. data/ext/third_party/spdlog/cmake/spdlog.pc.in +13 -0
  1211. data/ext/third_party/spdlog/cmake/spdlogCPack.cmake +46 -0
  1212. data/ext/third_party/spdlog/cmake/spdlogConfig.cmake.in +15 -0
  1213. data/ext/third_party/spdlog/cmake/utils.cmake +61 -0
  1214. data/ext/third_party/spdlog/cmake/version.rc.in +42 -0
  1215. data/ext/third_party/spdlog/include/spdlog/async.h +93 -0
  1216. data/ext/third_party/spdlog/include/spdlog/async_logger-inl.h +92 -0
  1217. data/ext/third_party/spdlog/include/spdlog/async_logger.h +68 -0
  1218. data/ext/third_party/spdlog/include/spdlog/cfg/argv.h +44 -0
  1219. data/ext/third_party/spdlog/include/spdlog/cfg/env.h +38 -0
  1220. data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +119 -0
  1221. data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +29 -0
  1222. data/ext/third_party/spdlog/include/spdlog/common-inl.h +76 -0
  1223. data/ext/third_party/spdlog/include/spdlog/common.h +245 -0
  1224. data/ext/third_party/spdlog/include/spdlog/details/backtracer-inl.h +69 -0
  1225. data/ext/third_party/spdlog/include/spdlog/details/backtracer.h +45 -0
  1226. data/ext/third_party/spdlog/include/spdlog/details/circular_q.h +141 -0
  1227. data/ext/third_party/spdlog/include/spdlog/details/console_globals.h +32 -0
  1228. data/ext/third_party/spdlog/include/spdlog/details/file_helper-inl.h +132 -0
  1229. data/ext/third_party/spdlog/include/spdlog/details/file_helper.h +59 -0
  1230. data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +116 -0
  1231. data/ext/third_party/spdlog/include/spdlog/details/log_msg-inl.h +37 -0
  1232. data/ext/third_party/spdlog/include/spdlog/details/log_msg.h +36 -0
  1233. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer-inl.h +58 -0
  1234. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer.h +33 -0
  1235. data/ext/third_party/spdlog/include/spdlog/details/mpmc_blocking_q.h +120 -0
  1236. data/ext/third_party/spdlog/include/spdlog/details/null_mutex.h +49 -0
  1237. data/ext/third_party/spdlog/include/spdlog/details/os-inl.h +554 -0
  1238. data/ext/third_party/spdlog/include/spdlog/details/os.h +111 -0
  1239. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker-inl.h +49 -0
  1240. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker.h +40 -0
  1241. data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +313 -0
  1242. data/ext/third_party/spdlog/include/spdlog/details/registry.h +115 -0
  1243. data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +24 -0
  1244. data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +175 -0
  1245. data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +146 -0
  1246. data/ext/third_party/spdlog/include/spdlog/details/thread_pool-inl.h +124 -0
  1247. data/ext/third_party/spdlog/include/spdlog/details/thread_pool.h +120 -0
  1248. data/ext/third_party/spdlog/include/spdlog/details/windows_include.h +11 -0
  1249. data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +216 -0
  1250. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/LICENSE.rst +27 -0
  1251. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +1123 -0
  1252. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +566 -0
  1253. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +665 -0
  1254. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +1882 -0
  1255. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +1453 -0
  1256. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +3729 -0
  1257. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +78 -0
  1258. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/os.h +450 -0
  1259. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +167 -0
  1260. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +2 -0
  1261. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +751 -0
  1262. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +386 -0
  1263. data/ext/third_party/spdlog/include/spdlog/fmt/chrono.h +20 -0
  1264. data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +27 -0
  1265. data/ext/third_party/spdlog/include/spdlog/fmt/ostr.h +20 -0
  1266. data/ext/third_party/spdlog/include/spdlog/formatter.h +18 -0
  1267. data/ext/third_party/spdlog/include/spdlog/fwd.h +14 -0
  1268. data/ext/third_party/spdlog/include/spdlog/logger-inl.h +257 -0
  1269. data/ext/third_party/spdlog/include/spdlog/logger.h +366 -0
  1270. data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +1373 -0
  1271. data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +126 -0
  1272. data/ext/third_party/spdlog/include/spdlog/sinks/android_sink.h +119 -0
  1273. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +143 -0
  1274. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink.h +118 -0
  1275. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink-inl.h +63 -0
  1276. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink.h +52 -0
  1277. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +43 -0
  1278. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink.h +58 -0
  1279. data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +204 -0
  1280. data/ext/third_party/spdlog/include/spdlog/sinks/dist_sink.h +97 -0
  1281. data/ext/third_party/spdlog/include/spdlog/sinks/dup_filter_sink.h +90 -0
  1282. data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +49 -0
  1283. data/ext/third_party/spdlog/include/spdlog/sinks/null_sink.h +44 -0
  1284. data/ext/third_party/spdlog/include/spdlog/sinks/ostream_sink.h +50 -0
  1285. data/ext/third_party/spdlog/include/spdlog/sinks/ringbuffer_sink.h +74 -0
  1286. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +131 -0
  1287. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink.h +78 -0
  1288. data/ext/third_party/spdlog/include/spdlog/sinks/sink-inl.h +25 -0
  1289. data/ext/third_party/spdlog/include/spdlog/sinks/sink.h +35 -0
  1290. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +38 -0
  1291. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks.h +45 -0
  1292. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +123 -0
  1293. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +87 -0
  1294. data/ext/third_party/spdlog/include/spdlog/sinks/syslog_sink.h +109 -0
  1295. data/ext/third_party/spdlog/include/spdlog/sinks/systemd_sink.h +103 -0
  1296. data/ext/third_party/spdlog/include/spdlog/sinks/tcp_sink.h +81 -0
  1297. data/ext/third_party/spdlog/include/spdlog/sinks/win_eventlog_sink.h +266 -0
  1298. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +170 -0
  1299. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink.h +94 -0
  1300. data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +125 -0
  1301. data/ext/third_party/spdlog/include/spdlog/spdlog.h +295 -0
  1302. data/ext/third_party/spdlog/include/spdlog/stopwatch.h +61 -0
  1303. data/ext/third_party/spdlog/include/spdlog/tweakme.h +116 -0
  1304. data/ext/third_party/spdlog/include/spdlog/version.h +10 -0
  1305. data/ext/third_party/spdlog/src/async.cpp +13 -0
  1306. data/ext/third_party/spdlog/src/cfg.cpp +8 -0
  1307. data/ext/third_party/spdlog/src/color_sinks.cpp +51 -0
  1308. data/ext/third_party/spdlog/src/file_sinks.cpp +20 -0
  1309. data/ext/third_party/spdlog/src/fmt.cpp +63 -0
  1310. data/ext/third_party/spdlog/src/spdlog.cpp +26 -0
  1311. data/ext/third_party/spdlog/src/stdout_sinks.cpp +29 -0
  1312. data/lib/active_support/cache/couchbase_store.rb +362 -0
  1313. data/lib/couchbase.rb +20 -0
  1314. data/lib/couchbase/analytics_options.rb +107 -0
  1315. data/lib/couchbase/authenticator.rb +65 -0
  1316. data/lib/couchbase/binary_collection.rb +128 -0
  1317. data/lib/couchbase/binary_collection_options.rb +24 -0
  1318. data/lib/couchbase/bucket.rb +144 -0
  1319. data/lib/couchbase/cluster.rb +430 -0
  1320. data/lib/couchbase/collection.rb +562 -0
  1321. data/lib/couchbase/collection_options.rb +324 -0
  1322. data/lib/couchbase/configuration.rb +57 -0
  1323. data/lib/couchbase/datastructures.rb +24 -0
  1324. data/lib/couchbase/datastructures/couchbase_list.rb +160 -0
  1325. data/lib/couchbase/datastructures/couchbase_map.rb +194 -0
  1326. data/lib/couchbase/datastructures/couchbase_queue.rb +134 -0
  1327. data/lib/couchbase/datastructures/couchbase_set.rb +128 -0
  1328. data/lib/couchbase/diagnostics.rb +181 -0
  1329. data/lib/couchbase/errors.rb +345 -0
  1330. data/lib/couchbase/json_transcoder.rb +32 -0
  1331. data/lib/couchbase/libcouchbase.bundle +0 -0
  1332. data/lib/couchbase/logger.rb +42 -0
  1333. data/lib/couchbase/management.rb +27 -0
  1334. data/lib/couchbase/management/analytics_index_manager.rb +433 -0
  1335. data/lib/couchbase/management/bucket_manager.rb +292 -0
  1336. data/lib/couchbase/management/collection_manager.rb +202 -0
  1337. data/lib/couchbase/management/query_index_manager.rb +342 -0
  1338. data/lib/couchbase/management/search_index_manager.rb +408 -0
  1339. data/lib/couchbase/management/user_manager.rb +449 -0
  1340. data/lib/couchbase/management/view_index_manager.rb +237 -0
  1341. data/lib/couchbase/mutation_state.rb +63 -0
  1342. data/lib/couchbase/options.rb +2104 -0
  1343. data/lib/couchbase/query_options.rb +120 -0
  1344. data/lib/couchbase/railtie.rb +45 -0
  1345. data/lib/couchbase/scope.rb +127 -0
  1346. data/lib/couchbase/search_options.rb +1487 -0
  1347. data/lib/couchbase/subdoc.rb +290 -0
  1348. data/lib/couchbase/utils.rb +21 -0
  1349. data/lib/couchbase/utils/time.rb +52 -0
  1350. data/lib/couchbase/version.rb +37 -0
  1351. data/lib/couchbase/view_options.rb +65 -0
  1352. data/lib/rails/generators/couchbase/config/config_generator.rb +27 -0
  1353. metadata +1403 -0
@@ -0,0 +1,1530 @@
1
+ //
2
+ // io_context.hpp
3
+ // ~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
+ //
7
+ // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
+ //
10
+
11
+ #ifndef ASIO_IO_CONTEXT_HPP
12
+ #define ASIO_IO_CONTEXT_HPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include "asio/detail/config.hpp"
19
+ #include <cstddef>
20
+ #include <stdexcept>
21
+ #include <typeinfo>
22
+ #include "asio/async_result.hpp"
23
+ #include "asio/detail/wrapped_handler.hpp"
24
+ #include "asio/error_code.hpp"
25
+ #include "asio/execution.hpp"
26
+ #include "asio/execution_context.hpp"
27
+
28
+ #if defined(ASIO_HAS_CHRONO)
29
+ # include "asio/detail/chrono.hpp"
30
+ #endif // defined(ASIO_HAS_CHRONO)
31
+
32
+ #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
33
+ # include "asio/detail/winsock_init.hpp"
34
+ #elif defined(__sun) || defined(__QNX__) || defined(__hpux) || defined(_AIX) \
35
+ || defined(__osf__)
36
+ # include "asio/detail/signal_init.hpp"
37
+ #endif
38
+
39
+ #if defined(ASIO_HAS_IOCP)
40
+ # include "asio/detail/win_iocp_io_context.hpp"
41
+ #else
42
+ # include "asio/detail/scheduler.hpp"
43
+ #endif
44
+
45
+ #include "asio/detail/push_options.hpp"
46
+
47
+ namespace asio {
48
+
49
+ namespace detail {
50
+ #if defined(ASIO_HAS_IOCP)
51
+ typedef win_iocp_io_context io_context_impl;
52
+ class win_iocp_overlapped_ptr;
53
+ #else
54
+ typedef scheduler io_context_impl;
55
+ #endif
56
+
57
+ struct io_context_bits
58
+ {
59
+ ASIO_STATIC_CONSTEXPR(unsigned int, blocking_never = 1);
60
+ ASIO_STATIC_CONSTEXPR(unsigned int, relationship_continuation = 2);
61
+ ASIO_STATIC_CONSTEXPR(unsigned int, outstanding_work_tracked = 4);
62
+ };
63
+ } // namespace detail
64
+
65
+ /// Provides core I/O functionality.
66
+ /**
67
+ * The io_context class provides the core I/O functionality for users of the
68
+ * asynchronous I/O objects, including:
69
+ *
70
+ * @li asio::ip::tcp::socket
71
+ * @li asio::ip::tcp::acceptor
72
+ * @li asio::ip::udp::socket
73
+ * @li asio::deadline_timer.
74
+ *
75
+ * The io_context class also includes facilities intended for developers of
76
+ * custom asynchronous services.
77
+ *
78
+ * @par Thread Safety
79
+ * @e Distinct @e objects: Safe.@n
80
+ * @e Shared @e objects: Safe, with the specific exceptions of the restart()
81
+ * and notify_fork() functions. Calling restart() while there are unfinished
82
+ * run(), run_one(), run_for(), run_until(), poll() or poll_one() calls results
83
+ * in undefined behaviour. The notify_fork() function should not be called
84
+ * while any io_context function, or any function on an I/O object that is
85
+ * associated with the io_context, is being called in another thread.
86
+ *
87
+ * @par Concepts:
88
+ * Dispatcher.
89
+ *
90
+ * @par Synchronous and asynchronous operations
91
+ *
92
+ * Synchronous operations on I/O objects implicitly run the io_context object
93
+ * for an individual operation. The io_context functions run(), run_one(),
94
+ * run_for(), run_until(), poll() or poll_one() must be called for the
95
+ * io_context to perform asynchronous operations on behalf of a C++ program.
96
+ * Notification that an asynchronous operation has completed is delivered by
97
+ * invocation of the associated handler. Handlers are invoked only by a thread
98
+ * that is currently calling any overload of run(), run_one(), run_for(),
99
+ * run_until(), poll() or poll_one() for the io_context.
100
+ *
101
+ * @par Effect of exceptions thrown from handlers
102
+ *
103
+ * If an exception is thrown from a handler, the exception is allowed to
104
+ * propagate through the throwing thread's invocation of run(), run_one(),
105
+ * run_for(), run_until(), poll() or poll_one(). No other threads that are
106
+ * calling any of these functions are affected. It is then the responsibility
107
+ * of the application to catch the exception.
108
+ *
109
+ * After the exception has been caught, the run(), run_one(), run_for(),
110
+ * run_until(), poll() or poll_one() call may be restarted @em without the need
111
+ * for an intervening call to restart(). This allows the thread to rejoin the
112
+ * io_context object's thread pool without impacting any other threads in the
113
+ * pool.
114
+ *
115
+ * For example:
116
+ *
117
+ * @code
118
+ * asio::io_context io_context;
119
+ * ...
120
+ * for (;;)
121
+ * {
122
+ * try
123
+ * {
124
+ * io_context.run();
125
+ * break; // run() exited normally
126
+ * }
127
+ * catch (my_exception& e)
128
+ * {
129
+ * // Deal with exception as appropriate.
130
+ * }
131
+ * }
132
+ * @endcode
133
+ *
134
+ * @par Submitting arbitrary tasks to the io_context
135
+ *
136
+ * To submit functions to the io_context, use the @ref asio::dispatch,
137
+ * @ref asio::post or @ref asio::defer free functions.
138
+ *
139
+ * For example:
140
+ *
141
+ * @code void my_task()
142
+ * {
143
+ * ...
144
+ * }
145
+ *
146
+ * ...
147
+ *
148
+ * asio::io_context io_context;
149
+ *
150
+ * // Submit a function to the io_context.
151
+ * asio::post(io_context, my_task);
152
+ *
153
+ * // Submit a lambda object to the io_context.
154
+ * asio::post(io_context,
155
+ * []()
156
+ * {
157
+ * ...
158
+ * });
159
+ *
160
+ * // Run the io_context until it runs out of work.
161
+ * io_context.run(); @endcode
162
+ *
163
+ * @par Stopping the io_context from running out of work
164
+ *
165
+ * Some applications may need to prevent an io_context object's run() call from
166
+ * returning when there is no more work to do. For example, the io_context may
167
+ * be being run in a background thread that is launched prior to the
168
+ * application's asynchronous operations. The run() call may be kept running by
169
+ * creating an executor that tracks work against the io_context:
170
+ *
171
+ * @code asio::io_context io_context;
172
+ * auto work = asio::require(io_context.get_executor(),
173
+ * asio::execution::outstanding_work.tracked);
174
+ * ... @endcode
175
+ *
176
+ * If using C++03, which lacks automatic variable type deduction, you may
177
+ * compute the return type of the require call:
178
+ *
179
+ * @code asio::io_context io_context;
180
+ * typename asio::require_result<
181
+ * asio::io_context::executor_type,
182
+ * asio::exeution::outstanding_work_t::tracked_t>
183
+ * work = asio::require(io_context.get_executor(),
184
+ * asio::execution::outstanding_work.tracked);
185
+ * ... @endcode
186
+ *
187
+ * or store the result in the type-erasing executor wrapper, any_io_executor:
188
+ *
189
+ * @code asio::io_context io_context;
190
+ * asio::any_io_executor work
191
+ * = asio::require(io_context.get_executor(),
192
+ * asio::execution::outstanding_work.tracked);
193
+ * ... @endcode
194
+ *
195
+ * To effect a shutdown, the application will then need to call the io_context
196
+ * object's stop() member function. This will cause the io_context run() call
197
+ * to return as soon as possible, abandoning unfinished operations and without
198
+ * permitting ready handlers to be dispatched.
199
+ *
200
+ * Alternatively, if the application requires that all operations and handlers
201
+ * be allowed to finish normally, store the work-tracking executor in an
202
+ * any_io_executor object, so that it may be explicitly reset.
203
+ *
204
+ * @code asio::io_context io_context;
205
+ * asio::any_io_executor work
206
+ * = asio::require(io_context.get_executor(),
207
+ * asio::execution::outstanding_work.tracked);
208
+ * ...
209
+ * work = asio::any_io_executor(); // Allow run() to exit. @endcode
210
+ */
211
+ class io_context
212
+ : public execution_context
213
+ {
214
+ private:
215
+ typedef detail::io_context_impl impl_type;
216
+ #if defined(ASIO_HAS_IOCP)
217
+ friend class detail::win_iocp_overlapped_ptr;
218
+ #endif
219
+
220
+ public:
221
+ template <typename Allocator, unsigned int Bits>
222
+ class basic_executor_type;
223
+
224
+ template <typename Allocator, unsigned int Bits>
225
+ friend class basic_executor_type;
226
+
227
+ /// Executor used to submit functions to an io_context.
228
+ typedef basic_executor_type<std::allocator<void>, 0> executor_type;
229
+
230
+ #if !defined(ASIO_NO_DEPRECATED)
231
+ class work;
232
+ friend class work;
233
+ #endif // !defined(ASIO_NO_DEPRECATED)
234
+
235
+ class service;
236
+
237
+ #if !defined(ASIO_NO_EXTENSIONS) \
238
+ && !defined(ASIO_NO_TS_EXECUTORS)
239
+ class strand;
240
+ #endif // !defined(ASIO_NO_EXTENSIONS)
241
+ // && !defined(ASIO_NO_TS_EXECUTORS)
242
+
243
+ /// The type used to count the number of handlers executed by the context.
244
+ typedef std::size_t count_type;
245
+
246
+ /// Constructor.
247
+ ASIO_DECL io_context();
248
+
249
+ /// Constructor.
250
+ /**
251
+ * Construct with a hint about the required level of concurrency.
252
+ *
253
+ * @param concurrency_hint A suggestion to the implementation on how many
254
+ * threads it should allow to run simultaneously.
255
+ */
256
+ ASIO_DECL explicit io_context(int concurrency_hint);
257
+
258
+ /// Destructor.
259
+ /**
260
+ * On destruction, the io_context performs the following sequence of
261
+ * operations:
262
+ *
263
+ * @li For each service object @c svc in the io_context set, in reverse order
264
+ * of the beginning of service object lifetime, performs
265
+ * @c svc->shutdown().
266
+ *
267
+ * @li Uninvoked handler objects that were scheduled for deferred invocation
268
+ * on the io_context, or any associated strand, are destroyed.
269
+ *
270
+ * @li For each service object @c svc in the io_context set, in reverse order
271
+ * of the beginning of service object lifetime, performs
272
+ * <tt>delete static_cast<io_context::service*>(svc)</tt>.
273
+ *
274
+ * @note The destruction sequence described above permits programs to
275
+ * simplify their resource management by using @c shared_ptr<>. Where an
276
+ * object's lifetime is tied to the lifetime of a connection (or some other
277
+ * sequence of asynchronous operations), a @c shared_ptr to the object would
278
+ * be bound into the handlers for all asynchronous operations associated with
279
+ * it. This works as follows:
280
+ *
281
+ * @li When a single connection ends, all associated asynchronous operations
282
+ * complete. The corresponding handler objects are destroyed, and all
283
+ * @c shared_ptr references to the objects are destroyed.
284
+ *
285
+ * @li To shut down the whole program, the io_context function stop() is
286
+ * called to terminate any run() calls as soon as possible. The io_context
287
+ * destructor defined above destroys all handlers, causing all @c shared_ptr
288
+ * references to all connection objects to be destroyed.
289
+ */
290
+ ASIO_DECL ~io_context();
291
+
292
+ /// Obtains the executor associated with the io_context.
293
+ executor_type get_executor() ASIO_NOEXCEPT;
294
+
295
+ /// Run the io_context object's event processing loop.
296
+ /**
297
+ * The run() function blocks until all work has finished and there are no
298
+ * more handlers to be dispatched, or until the io_context has been stopped.
299
+ *
300
+ * Multiple threads may call the run() function to set up a pool of threads
301
+ * from which the io_context may execute handlers. All threads that are
302
+ * waiting in the pool are equivalent and the io_context may choose any one
303
+ * of them to invoke a handler.
304
+ *
305
+ * A normal exit from the run() function implies that the io_context object
306
+ * is stopped (the stopped() function returns @c true). Subsequent calls to
307
+ * run(), run_one(), poll() or poll_one() will return immediately unless there
308
+ * is a prior call to restart().
309
+ *
310
+ * @return The number of handlers that were executed.
311
+ *
312
+ * @note Calling the run() function from a thread that is currently calling
313
+ * one of run(), run_one(), run_for(), run_until(), poll() or poll_one() on
314
+ * the same io_context object may introduce the potential for deadlock. It is
315
+ * the caller's reponsibility to avoid this.
316
+ *
317
+ * The poll() function may also be used to dispatch ready handlers, but
318
+ * without blocking.
319
+ */
320
+ ASIO_DECL count_type run();
321
+
322
+ #if !defined(ASIO_NO_DEPRECATED)
323
+ /// (Deprecated: Use non-error_code overload.) Run the io_context object's
324
+ /// event processing loop.
325
+ /**
326
+ * The run() function blocks until all work has finished and there are no
327
+ * more handlers to be dispatched, or until the io_context has been stopped.
328
+ *
329
+ * Multiple threads may call the run() function to set up a pool of threads
330
+ * from which the io_context may execute handlers. All threads that are
331
+ * waiting in the pool are equivalent and the io_context may choose any one
332
+ * of them to invoke a handler.
333
+ *
334
+ * A normal exit from the run() function implies that the io_context object
335
+ * is stopped (the stopped() function returns @c true). Subsequent calls to
336
+ * run(), run_one(), poll() or poll_one() will return immediately unless there
337
+ * is a prior call to restart().
338
+ *
339
+ * @param ec Set to indicate what error occurred, if any.
340
+ *
341
+ * @return The number of handlers that were executed.
342
+ *
343
+ * @note Calling the run() function from a thread that is currently calling
344
+ * one of run(), run_one(), run_for(), run_until(), poll() or poll_one() on
345
+ * the same io_context object may introduce the potential for deadlock. It is
346
+ * the caller's reponsibility to avoid this.
347
+ *
348
+ * The poll() function may also be used to dispatch ready handlers, but
349
+ * without blocking.
350
+ */
351
+ ASIO_DECL count_type run(asio::error_code& ec);
352
+ #endif // !defined(ASIO_NO_DEPRECATED)
353
+
354
+ #if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION)
355
+ /// Run the io_context object's event processing loop for a specified
356
+ /// duration.
357
+ /**
358
+ * The run_for() function blocks until all work has finished and there are no
359
+ * more handlers to be dispatched, until the io_context has been stopped, or
360
+ * until the specified duration has elapsed.
361
+ *
362
+ * @param rel_time The duration for which the call may block.
363
+ *
364
+ * @return The number of handlers that were executed.
365
+ */
366
+ template <typename Rep, typename Period>
367
+ std::size_t run_for(const chrono::duration<Rep, Period>& rel_time);
368
+
369
+ /// Run the io_context object's event processing loop until a specified time.
370
+ /**
371
+ * The run_until() function blocks until all work has finished and there are
372
+ * no more handlers to be dispatched, until the io_context has been stopped,
373
+ * or until the specified time has been reached.
374
+ *
375
+ * @param abs_time The time point until which the call may block.
376
+ *
377
+ * @return The number of handlers that were executed.
378
+ */
379
+ template <typename Clock, typename Duration>
380
+ std::size_t run_until(const chrono::time_point<Clock, Duration>& abs_time);
381
+ #endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION)
382
+
383
+ /// Run the io_context object's event processing loop to execute at most one
384
+ /// handler.
385
+ /**
386
+ * The run_one() function blocks until one handler has been dispatched, or
387
+ * until the io_context has been stopped.
388
+ *
389
+ * @return The number of handlers that were executed. A zero return value
390
+ * implies that the io_context object is stopped (the stopped() function
391
+ * returns @c true). Subsequent calls to run(), run_one(), poll() or
392
+ * poll_one() will return immediately unless there is a prior call to
393
+ * restart().
394
+ *
395
+ * @note Calling the run_one() function from a thread that is currently
396
+ * calling one of run(), run_one(), run_for(), run_until(), poll() or
397
+ * poll_one() on the same io_context object may introduce the potential for
398
+ * deadlock. It is the caller's reponsibility to avoid this.
399
+ */
400
+ ASIO_DECL count_type run_one();
401
+
402
+ #if !defined(ASIO_NO_DEPRECATED)
403
+ /// (Deprecated: Use non-error_code overlaod.) Run the io_context object's
404
+ /// event processing loop to execute at most one handler.
405
+ /**
406
+ * The run_one() function blocks until one handler has been dispatched, or
407
+ * until the io_context has been stopped.
408
+ *
409
+ * @return The number of handlers that were executed. A zero return value
410
+ * implies that the io_context object is stopped (the stopped() function
411
+ * returns @c true). Subsequent calls to run(), run_one(), poll() or
412
+ * poll_one() will return immediately unless there is a prior call to
413
+ * restart().
414
+ *
415
+ * @return The number of handlers that were executed.
416
+ *
417
+ * @note Calling the run_one() function from a thread that is currently
418
+ * calling one of run(), run_one(), run_for(), run_until(), poll() or
419
+ * poll_one() on the same io_context object may introduce the potential for
420
+ * deadlock. It is the caller's reponsibility to avoid this.
421
+ */
422
+ ASIO_DECL count_type run_one(asio::error_code& ec);
423
+ #endif // !defined(ASIO_NO_DEPRECATED)
424
+
425
+ #if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION)
426
+ /// Run the io_context object's event processing loop for a specified duration
427
+ /// to execute at most one handler.
428
+ /**
429
+ * The run_one_for() function blocks until one handler has been dispatched,
430
+ * until the io_context has been stopped, or until the specified duration has
431
+ * elapsed.
432
+ *
433
+ * @param rel_time The duration for which the call may block.
434
+ *
435
+ * @return The number of handlers that were executed.
436
+ */
437
+ template <typename Rep, typename Period>
438
+ std::size_t run_one_for(const chrono::duration<Rep, Period>& rel_time);
439
+
440
+ /// Run the io_context object's event processing loop until a specified time
441
+ /// to execute at most one handler.
442
+ /**
443
+ * The run_one_until() function blocks until one handler has been dispatched,
444
+ * until the io_context has been stopped, or until the specified time has
445
+ * been reached.
446
+ *
447
+ * @param abs_time The time point until which the call may block.
448
+ *
449
+ * @return The number of handlers that were executed.
450
+ */
451
+ template <typename Clock, typename Duration>
452
+ std::size_t run_one_until(
453
+ const chrono::time_point<Clock, Duration>& abs_time);
454
+ #endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION)
455
+
456
+ /// Run the io_context object's event processing loop to execute ready
457
+ /// handlers.
458
+ /**
459
+ * The poll() function runs handlers that are ready to run, without blocking,
460
+ * until the io_context has been stopped or there are no more ready handlers.
461
+ *
462
+ * @return The number of handlers that were executed.
463
+ */
464
+ ASIO_DECL count_type poll();
465
+
466
+ #if !defined(ASIO_NO_DEPRECATED)
467
+ /// (Deprecated: Use non-error_code overload.) Run the io_context object's
468
+ /// event processing loop to execute ready handlers.
469
+ /**
470
+ * The poll() function runs handlers that are ready to run, without blocking,
471
+ * until the io_context has been stopped or there are no more ready handlers.
472
+ *
473
+ * @param ec Set to indicate what error occurred, if any.
474
+ *
475
+ * @return The number of handlers that were executed.
476
+ */
477
+ ASIO_DECL count_type poll(asio::error_code& ec);
478
+ #endif // !defined(ASIO_NO_DEPRECATED)
479
+
480
+ /// Run the io_context object's event processing loop to execute one ready
481
+ /// handler.
482
+ /**
483
+ * The poll_one() function runs at most one handler that is ready to run,
484
+ * without blocking.
485
+ *
486
+ * @return The number of handlers that were executed.
487
+ */
488
+ ASIO_DECL count_type poll_one();
489
+
490
+ #if !defined(ASIO_NO_DEPRECATED)
491
+ /// (Deprecated: Use non-error_code overload.) Run the io_context object's
492
+ /// event processing loop to execute one ready handler.
493
+ /**
494
+ * The poll_one() function runs at most one handler that is ready to run,
495
+ * without blocking.
496
+ *
497
+ * @param ec Set to indicate what error occurred, if any.
498
+ *
499
+ * @return The number of handlers that were executed.
500
+ */
501
+ ASIO_DECL count_type poll_one(asio::error_code& ec);
502
+ #endif // !defined(ASIO_NO_DEPRECATED)
503
+
504
+ /// Stop the io_context object's event processing loop.
505
+ /**
506
+ * This function does not block, but instead simply signals the io_context to
507
+ * stop. All invocations of its run() or run_one() member functions should
508
+ * return as soon as possible. Subsequent calls to run(), run_one(), poll()
509
+ * or poll_one() will return immediately until restart() is called.
510
+ */
511
+ ASIO_DECL void stop();
512
+
513
+ /// Determine whether the io_context object has been stopped.
514
+ /**
515
+ * This function is used to determine whether an io_context object has been
516
+ * stopped, either through an explicit call to stop(), or due to running out
517
+ * of work. When an io_context object is stopped, calls to run(), run_one(),
518
+ * poll() or poll_one() will return immediately without invoking any
519
+ * handlers.
520
+ *
521
+ * @return @c true if the io_context object is stopped, otherwise @c false.
522
+ */
523
+ ASIO_DECL bool stopped() const;
524
+
525
+ /// Restart the io_context in preparation for a subsequent run() invocation.
526
+ /**
527
+ * This function must be called prior to any second or later set of
528
+ * invocations of the run(), run_one(), poll() or poll_one() functions when a
529
+ * previous invocation of these functions returned due to the io_context
530
+ * being stopped or running out of work. After a call to restart(), the
531
+ * io_context object's stopped() function will return @c false.
532
+ *
533
+ * This function must not be called while there are any unfinished calls to
534
+ * the run(), run_one(), poll() or poll_one() functions.
535
+ */
536
+ ASIO_DECL void restart();
537
+
538
+ #if !defined(ASIO_NO_DEPRECATED)
539
+ /// (Deprecated: Use restart().) Reset the io_context in preparation for a
540
+ /// subsequent run() invocation.
541
+ /**
542
+ * This function must be called prior to any second or later set of
543
+ * invocations of the run(), run_one(), poll() or poll_one() functions when a
544
+ * previous invocation of these functions returned due to the io_context
545
+ * being stopped or running out of work. After a call to restart(), the
546
+ * io_context object's stopped() function will return @c false.
547
+ *
548
+ * This function must not be called while there are any unfinished calls to
549
+ * the run(), run_one(), poll() or poll_one() functions.
550
+ */
551
+ void reset();
552
+
553
+ /// (Deprecated: Use asio::dispatch().) Request the io_context to
554
+ /// invoke the given handler.
555
+ /**
556
+ * This function is used to ask the io_context to execute the given handler.
557
+ *
558
+ * The io_context guarantees that the handler will only be called in a thread
559
+ * in which the run(), run_one(), poll() or poll_one() member functions is
560
+ * currently being invoked. The handler may be executed inside this function
561
+ * if the guarantee can be met.
562
+ *
563
+ * @param handler The handler to be called. The io_context will make
564
+ * a copy of the handler object as required. The function signature of the
565
+ * handler must be: @code void handler(); @endcode
566
+ *
567
+ * @note This function throws an exception only if:
568
+ *
569
+ * @li the handler's @c asio_handler_allocate function; or
570
+ *
571
+ * @li the handler's copy constructor
572
+ *
573
+ * throws an exception.
574
+ */
575
+ template <typename LegacyCompletionHandler>
576
+ ASIO_INITFN_AUTO_RESULT_TYPE(LegacyCompletionHandler, void ())
577
+ dispatch(ASIO_MOVE_ARG(LegacyCompletionHandler) handler);
578
+
579
+ /// (Deprecated: Use asio::post().) Request the io_context to invoke
580
+ /// the given handler and return immediately.
581
+ /**
582
+ * This function is used to ask the io_context to execute the given handler,
583
+ * but without allowing the io_context to call the handler from inside this
584
+ * function.
585
+ *
586
+ * The io_context guarantees that the handler will only be called in a thread
587
+ * in which the run(), run_one(), poll() or poll_one() member functions is
588
+ * currently being invoked.
589
+ *
590
+ * @param handler The handler to be called. The io_context will make
591
+ * a copy of the handler object as required. The function signature of the
592
+ * handler must be: @code void handler(); @endcode
593
+ *
594
+ * @note This function throws an exception only if:
595
+ *
596
+ * @li the handler's @c asio_handler_allocate function; or
597
+ *
598
+ * @li the handler's copy constructor
599
+ *
600
+ * throws an exception.
601
+ */
602
+ template <typename LegacyCompletionHandler>
603
+ ASIO_INITFN_AUTO_RESULT_TYPE(LegacyCompletionHandler, void ())
604
+ post(ASIO_MOVE_ARG(LegacyCompletionHandler) handler);
605
+
606
+ /// (Deprecated: Use asio::bind_executor().) Create a new handler that
607
+ /// automatically dispatches the wrapped handler on the io_context.
608
+ /**
609
+ * This function is used to create a new handler function object that, when
610
+ * invoked, will automatically pass the wrapped handler to the io_context
611
+ * object's dispatch function.
612
+ *
613
+ * @param handler The handler to be wrapped. The io_context will make a copy
614
+ * of the handler object as required. The function signature of the handler
615
+ * must be: @code void handler(A1 a1, ... An an); @endcode
616
+ *
617
+ * @return A function object that, when invoked, passes the wrapped handler to
618
+ * the io_context object's dispatch function. Given a function object with the
619
+ * signature:
620
+ * @code R f(A1 a1, ... An an); @endcode
621
+ * If this function object is passed to the wrap function like so:
622
+ * @code io_context.wrap(f); @endcode
623
+ * then the return value is a function object with the signature
624
+ * @code void g(A1 a1, ... An an); @endcode
625
+ * that, when invoked, executes code equivalent to:
626
+ * @code io_context.dispatch(boost::bind(f, a1, ... an)); @endcode
627
+ */
628
+ template <typename Handler>
629
+ #if defined(GENERATING_DOCUMENTATION)
630
+ unspecified
631
+ #else
632
+ detail::wrapped_handler<io_context&, Handler>
633
+ #endif
634
+ wrap(Handler handler);
635
+ #endif // !defined(ASIO_NO_DEPRECATED)
636
+
637
+ private:
638
+ io_context(const io_context&) ASIO_DELETED;
639
+ io_context& operator=(const io_context&) ASIO_DELETED;
640
+
641
+ #if !defined(ASIO_NO_DEPRECATED)
642
+ struct initiate_dispatch;
643
+ struct initiate_post;
644
+ #endif // !defined(ASIO_NO_DEPRECATED)
645
+
646
+ // Helper function to add the implementation.
647
+ ASIO_DECL impl_type& add_impl(impl_type* impl);
648
+
649
+ // Backwards compatible overload for use with services derived from
650
+ // io_context::service.
651
+ template <typename Service>
652
+ friend Service& use_service(io_context& ioc);
653
+
654
+ #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
655
+ detail::winsock_init<> init_;
656
+ #elif defined(__sun) || defined(__QNX__) || defined(__hpux) || defined(_AIX) \
657
+ || defined(__osf__)
658
+ detail::signal_init<> init_;
659
+ #endif
660
+
661
+ // The implementation.
662
+ impl_type& impl_;
663
+ };
664
+
665
+ namespace detail {
666
+
667
+ } // namespace detail
668
+
669
+ /// Executor implementation type used to submit functions to an io_context.
670
+ template <typename Allocator, unsigned int Bits>
671
+ class io_context::basic_executor_type : detail::io_context_bits
672
+ {
673
+ public:
674
+ /// Copy constructor.
675
+ basic_executor_type(
676
+ const basic_executor_type& other) ASIO_NOEXCEPT
677
+ : io_context_(other.io_context_),
678
+ allocator_(other.allocator_),
679
+ bits_(other.bits_)
680
+ {
681
+ if (Bits & outstanding_work_tracked)
682
+ if (io_context_)
683
+ io_context_->impl_.work_started();
684
+ }
685
+
686
+ #if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
687
+ /// Move constructor.
688
+ basic_executor_type(basic_executor_type&& other) ASIO_NOEXCEPT
689
+ : io_context_(other.io_context_),
690
+ allocator_(ASIO_MOVE_CAST(Allocator)(other.allocator_)),
691
+ bits_(other.bits_)
692
+ {
693
+ if (Bits & outstanding_work_tracked)
694
+ other.io_context_ = 0;
695
+ }
696
+ #endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
697
+
698
+ /// Destructor.
699
+ ~basic_executor_type() ASIO_NOEXCEPT
700
+ {
701
+ if (Bits & outstanding_work_tracked)
702
+ if (io_context_)
703
+ io_context_->impl_.work_finished();
704
+ }
705
+
706
+ /// Assignment operator.
707
+ basic_executor_type& operator=(
708
+ const basic_executor_type& other) ASIO_NOEXCEPT;
709
+
710
+ #if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
711
+ /// Move assignment operator.
712
+ basic_executor_type& operator=(
713
+ basic_executor_type&& other) ASIO_NOEXCEPT;
714
+ #endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
715
+
716
+ /// Obtain an executor with the @c blocking.possibly property.
717
+ /**
718
+ * Do not call this function directly. It is intended for use with the
719
+ * asio::require customisation point.
720
+ *
721
+ * For example:
722
+ * @code auto ex1 = my_io_context.get_executor();
723
+ * auto ex2 = asio::require(ex1,
724
+ * asio::execution::blocking.possibly); @endcode
725
+ */
726
+ ASIO_CONSTEXPR basic_executor_type require(
727
+ execution::blocking_t::possibly_t) const
728
+ {
729
+ return basic_executor_type(io_context_,
730
+ allocator_, bits_ & ~blocking_never);
731
+ }
732
+
733
+ /// Obtain an executor with the @c blocking.never property.
734
+ /**
735
+ * Do not call this function directly. It is intended for use with the
736
+ * asio::require customisation point.
737
+ *
738
+ * For example:
739
+ * @code auto ex1 = my_io_context.get_executor();
740
+ * auto ex2 = asio::require(ex1,
741
+ * asio::execution::blocking.never); @endcode
742
+ */
743
+ ASIO_CONSTEXPR basic_executor_type require(
744
+ execution::blocking_t::never_t) const
745
+ {
746
+ return basic_executor_type(io_context_,
747
+ allocator_, bits_ | blocking_never);
748
+ }
749
+
750
+ /// Obtain an executor with the @c relationship.fork property.
751
+ /**
752
+ * Do not call this function directly. It is intended for use with the
753
+ * asio::require customisation point.
754
+ *
755
+ * For example:
756
+ * @code auto ex1 = my_io_context.get_executor();
757
+ * auto ex2 = asio::require(ex1,
758
+ * asio::execution::relationship.fork); @endcode
759
+ */
760
+ ASIO_CONSTEXPR basic_executor_type require(
761
+ execution::relationship_t::fork_t) const
762
+ {
763
+ return basic_executor_type(io_context_,
764
+ allocator_, bits_ & ~relationship_continuation);
765
+ }
766
+
767
+ /// Obtain an executor with the @c relationship.continuation property.
768
+ /**
769
+ * Do not call this function directly. It is intended for use with the
770
+ * asio::require customisation point.
771
+ *
772
+ * For example:
773
+ * @code auto ex1 = my_io_context.get_executor();
774
+ * auto ex2 = asio::require(ex1,
775
+ * asio::execution::relationship.continuation); @endcode
776
+ */
777
+ ASIO_CONSTEXPR basic_executor_type require(
778
+ execution::relationship_t::continuation_t) const
779
+ {
780
+ return basic_executor_type(io_context_,
781
+ allocator_, bits_ | relationship_continuation);
782
+ }
783
+
784
+ /// Obtain an executor with the @c outstanding_work.tracked property.
785
+ /**
786
+ * Do not call this function directly. It is intended for use with the
787
+ * asio::require customisation point.
788
+ *
789
+ * For example:
790
+ * @code auto ex1 = my_io_context.get_executor();
791
+ * auto ex2 = asio::require(ex1,
792
+ * asio::execution::outstanding_work.tracked); @endcode
793
+ */
794
+ ASIO_CONSTEXPR basic_executor_type<Allocator,
795
+ ASIO_UNSPECIFIED(Bits | outstanding_work_tracked)>
796
+ require(execution::outstanding_work_t::tracked_t) const
797
+ {
798
+ return basic_executor_type<Allocator, Bits | outstanding_work_tracked>(
799
+ io_context_, allocator_, bits_);
800
+ }
801
+
802
+ /// Obtain an executor with the @c outstanding_work.untracked property.
803
+ /**
804
+ * Do not call this function directly. It is intended for use with the
805
+ * asio::require customisation point.
806
+ *
807
+ * For example:
808
+ * @code auto ex1 = my_io_context.get_executor();
809
+ * auto ex2 = asio::require(ex1,
810
+ * asio::execution::outstanding_work.untracked); @endcode
811
+ */
812
+ ASIO_CONSTEXPR basic_executor_type<Allocator,
813
+ ASIO_UNSPECIFIED(Bits & ~outstanding_work_tracked)>
814
+ require(execution::outstanding_work_t::untracked_t) const
815
+ {
816
+ return basic_executor_type<Allocator, Bits & ~outstanding_work_tracked>(
817
+ io_context_, allocator_, bits_);
818
+ }
819
+
820
+ /// Obtain an executor with the specified @c allocator property.
821
+ /**
822
+ * Do not call this function directly. It is intended for use with the
823
+ * asio::require customisation point.
824
+ *
825
+ * For example:
826
+ * @code auto ex1 = my_io_context.get_executor();
827
+ * auto ex2 = asio::require(ex1,
828
+ * asio::execution::allocator(my_allocator)); @endcode
829
+ */
830
+ template <typename OtherAllocator>
831
+ ASIO_CONSTEXPR basic_executor_type<OtherAllocator, Bits>
832
+ require(execution::allocator_t<OtherAllocator> a) const
833
+ {
834
+ return basic_executor_type<OtherAllocator, Bits>(
835
+ io_context_, a.value(), bits_);
836
+ }
837
+
838
+ /// Obtain an executor with the default @c allocator property.
839
+ /**
840
+ * Do not call this function directly. It is intended for use with the
841
+ * asio::require customisation point.
842
+ *
843
+ * For example:
844
+ * @code auto ex1 = my_io_context.get_executor();
845
+ * auto ex2 = asio::require(ex1,
846
+ * asio::execution::allocator); @endcode
847
+ */
848
+ ASIO_CONSTEXPR basic_executor_type<std::allocator<void>, Bits>
849
+ require(execution::allocator_t<void>) const
850
+ {
851
+ return basic_executor_type<std::allocator<void>, Bits>(
852
+ io_context_, std::allocator<void>(), bits_);
853
+ }
854
+
855
+ /// Query the current value of the @c mapping property.
856
+ /**
857
+ * Do not call this function directly. It is intended for use with the
858
+ * asio::query customisation point.
859
+ *
860
+ * For example:
861
+ * @code auto ex = my_io_context.get_executor();
862
+ * if (asio::query(ex, asio::execution::mapping)
863
+ * == asio::execution::mapping.thread)
864
+ * ... @endcode
865
+ */
866
+ static ASIO_CONSTEXPR execution::mapping_t query(
867
+ execution::mapping_t) ASIO_NOEXCEPT
868
+ {
869
+ return execution::mapping.thread;
870
+ }
871
+
872
+ /// Query the current value of the @c context property.
873
+ /**
874
+ * Do not call this function directly. It is intended for use with the
875
+ * asio::query customisation point.
876
+ *
877
+ * For example:
878
+ * @code auto ex = my_io_context.get_executor();
879
+ * asio::io_context& ctx = asio::query(
880
+ * ex, asio::execution::context); @endcode
881
+ */
882
+ io_context& query(execution::context_t) const ASIO_NOEXCEPT
883
+ {
884
+ return *io_context_;
885
+ }
886
+
887
+ /// Query the current value of the @c blocking property.
888
+ /**
889
+ * Do not call this function directly. It is intended for use with the
890
+ * asio::query customisation point.
891
+ *
892
+ * For example:
893
+ * @code auto ex = my_io_context.get_executor();
894
+ * if (asio::query(ex, asio::execution::blocking)
895
+ * == asio::execution::blocking.always)
896
+ * ... @endcode
897
+ */
898
+ ASIO_CONSTEXPR execution::blocking_t query(
899
+ execution::blocking_t) const ASIO_NOEXCEPT
900
+ {
901
+ return (bits_ & blocking_never)
902
+ ? execution::blocking_t(execution::blocking.never)
903
+ : execution::blocking_t(execution::blocking.possibly);
904
+ }
905
+
906
+ /// Query the current value of the @c relationship property.
907
+ /**
908
+ * Do not call this function directly. It is intended for use with the
909
+ * asio::query customisation point.
910
+ *
911
+ * For example:
912
+ * @code auto ex = my_io_context.get_executor();
913
+ * if (asio::query(ex, asio::execution::relationship)
914
+ * == asio::execution::relationship.continuation)
915
+ * ... @endcode
916
+ */
917
+ ASIO_CONSTEXPR execution::relationship_t query(
918
+ execution::relationship_t) const ASIO_NOEXCEPT
919
+ {
920
+ return (bits_ & relationship_continuation)
921
+ ? execution::relationship_t(execution::relationship.continuation)
922
+ : execution::relationship_t(execution::relationship.fork);
923
+ }
924
+
925
+ /// Query the current value of the @c outstanding_work property.
926
+ /**
927
+ * Do not call this function directly. It is intended for use with the
928
+ * asio::query customisation point.
929
+ *
930
+ * For example:
931
+ * @code auto ex = my_io_context.get_executor();
932
+ * if (asio::query(ex, asio::execution::outstanding_work)
933
+ * == asio::execution::outstanding_work.tracked)
934
+ * ... @endcode
935
+ */
936
+ static ASIO_CONSTEXPR execution::outstanding_work_t query(
937
+ execution::outstanding_work_t) ASIO_NOEXCEPT
938
+ {
939
+ return (Bits & outstanding_work_tracked)
940
+ ? execution::outstanding_work_t(execution::outstanding_work.tracked)
941
+ : execution::outstanding_work_t(execution::outstanding_work.untracked);
942
+ }
943
+
944
+ /// Query the current value of the @c allocator property.
945
+ /**
946
+ * Do not call this function directly. It is intended for use with the
947
+ * asio::query customisation point.
948
+ *
949
+ * For example:
950
+ * @code auto ex = my_io_context.get_executor();
951
+ * auto alloc = asio::query(ex,
952
+ * asio::execution::allocator); @endcode
953
+ */
954
+ template <typename OtherAllocator>
955
+ ASIO_CONSTEXPR Allocator query(
956
+ execution::allocator_t<OtherAllocator>) const ASIO_NOEXCEPT
957
+ {
958
+ return allocator_;
959
+ }
960
+
961
+ /// Query the current value of the @c allocator property.
962
+ /**
963
+ * Do not call this function directly. It is intended for use with the
964
+ * asio::query customisation point.
965
+ *
966
+ * For example:
967
+ * @code auto ex = my_io_context.get_executor();
968
+ * auto alloc = asio::query(ex,
969
+ * asio::execution::allocator); @endcode
970
+ */
971
+ ASIO_CONSTEXPR Allocator query(
972
+ execution::allocator_t<void>) const ASIO_NOEXCEPT
973
+ {
974
+ return allocator_;
975
+ }
976
+
977
+ /// Determine whether the io_context is running in the current thread.
978
+ /**
979
+ * @return @c true if the current thread is running the io_context. Otherwise
980
+ * returns @c false.
981
+ */
982
+ bool running_in_this_thread() const ASIO_NOEXCEPT;
983
+
984
+ /// Compare two executors for equality.
985
+ /**
986
+ * Two executors are equal if they refer to the same underlying io_context.
987
+ */
988
+ friend bool operator==(const basic_executor_type& a,
989
+ const basic_executor_type& b) ASIO_NOEXCEPT
990
+ {
991
+ return a.io_context_ == b.io_context_
992
+ && a.allocator_ == b.allocator_
993
+ && a.bits_ == b.bits_;
994
+ }
995
+
996
+ /// Compare two executors for inequality.
997
+ /**
998
+ * Two executors are equal if they refer to the same underlying io_context.
999
+ */
1000
+ friend bool operator!=(const basic_executor_type& a,
1001
+ const basic_executor_type& b) ASIO_NOEXCEPT
1002
+ {
1003
+ return a.io_context_ != b.io_context_
1004
+ || a.allocator_ != b.allocator_
1005
+ || a.bits_ != b.bits_;
1006
+ }
1007
+
1008
+ /// Execution function.
1009
+ /**
1010
+ * Do not call this function directly. It is intended for use with the
1011
+ * execution::execute customisation point.
1012
+ *
1013
+ * For example:
1014
+ * @code auto ex = my_io_context.get_executor();
1015
+ * execution::execute(ex, my_function_object); @endcode
1016
+ */
1017
+ template <typename Function>
1018
+ void execute(ASIO_MOVE_ARG(Function) f) const;
1019
+
1020
+ #if !defined(ASIO_NO_TS_EXECUTORS)
1021
+ /// Obtain the underlying execution context.
1022
+ io_context& context() const ASIO_NOEXCEPT;
1023
+
1024
+ /// Inform the io_context that it has some outstanding work to do.
1025
+ /**
1026
+ * This function is used to inform the io_context that some work has begun.
1027
+ * This ensures that the io_context's run() and run_one() functions do not
1028
+ * exit while the work is underway.
1029
+ */
1030
+ void on_work_started() const ASIO_NOEXCEPT;
1031
+
1032
+ /// Inform the io_context that some work is no longer outstanding.
1033
+ /**
1034
+ * This function is used to inform the io_context that some work has
1035
+ * finished. Once the count of unfinished work reaches zero, the io_context
1036
+ * is stopped and the run() and run_one() functions may exit.
1037
+ */
1038
+ void on_work_finished() const ASIO_NOEXCEPT;
1039
+
1040
+ /// Request the io_context to invoke the given function object.
1041
+ /**
1042
+ * This function is used to ask the io_context to execute the given function
1043
+ * object. If the current thread is running the io_context, @c dispatch()
1044
+ * executes the function before returning. Otherwise, the function will be
1045
+ * scheduled to run on the io_context.
1046
+ *
1047
+ * @param f The function object to be called. The executor will make a copy
1048
+ * of the handler object as required. The function signature of the function
1049
+ * object must be: @code void function(); @endcode
1050
+ *
1051
+ * @param a An allocator that may be used by the executor to allocate the
1052
+ * internal storage needed for function invocation.
1053
+ */
1054
+ template <typename Function, typename OtherAllocator>
1055
+ void dispatch(ASIO_MOVE_ARG(Function) f,
1056
+ const OtherAllocator& a) const;
1057
+
1058
+ /// Request the io_context to invoke the given function object.
1059
+ /**
1060
+ * This function is used to ask the io_context to execute the given function
1061
+ * object. The function object will never be executed inside @c post().
1062
+ * Instead, it will be scheduled to run on the io_context.
1063
+ *
1064
+ * @param f The function object to be called. The executor will make a copy
1065
+ * of the handler object as required. The function signature of the function
1066
+ * object must be: @code void function(); @endcode
1067
+ *
1068
+ * @param a An allocator that may be used by the executor to allocate the
1069
+ * internal storage needed for function invocation.
1070
+ */
1071
+ template <typename Function, typename OtherAllocator>
1072
+ void post(ASIO_MOVE_ARG(Function) f,
1073
+ const OtherAllocator& a) const;
1074
+
1075
+ /// Request the io_context to invoke the given function object.
1076
+ /**
1077
+ * This function is used to ask the io_context to execute the given function
1078
+ * object. The function object will never be executed inside @c defer().
1079
+ * Instead, it will be scheduled to run on the io_context.
1080
+ *
1081
+ * If the current thread belongs to the io_context, @c defer() will delay
1082
+ * scheduling the function object until the current thread returns control to
1083
+ * the pool.
1084
+ *
1085
+ * @param f The function object to be called. The executor will make a copy
1086
+ * of the handler object as required. The function signature of the function
1087
+ * object must be: @code void function(); @endcode
1088
+ *
1089
+ * @param a An allocator that may be used by the executor to allocate the
1090
+ * internal storage needed for function invocation.
1091
+ */
1092
+ template <typename Function, typename OtherAllocator>
1093
+ void defer(ASIO_MOVE_ARG(Function) f,
1094
+ const OtherAllocator& a) const;
1095
+ #endif // !defined(ASIO_NO_TS_EXECUTORS)
1096
+
1097
+ private:
1098
+ friend class io_context;
1099
+ template <typename, unsigned int> friend class basic_executor_type;
1100
+
1101
+ // Constructor used by io_context::get_executor().
1102
+ explicit basic_executor_type(io_context& i) ASIO_NOEXCEPT
1103
+ : io_context_(&i),
1104
+ allocator_(),
1105
+ bits_(0)
1106
+ {
1107
+ if (Bits & outstanding_work_tracked)
1108
+ io_context_->impl_.work_started();
1109
+ }
1110
+
1111
+ // Constructor used by require().
1112
+ basic_executor_type(io_context* i,
1113
+ const Allocator& a, unsigned int bits) ASIO_NOEXCEPT
1114
+ : io_context_(i),
1115
+ allocator_(a),
1116
+ bits_(bits)
1117
+ {
1118
+ if (Bits & outstanding_work_tracked)
1119
+ if (io_context_)
1120
+ io_context_->impl_.work_started();
1121
+ }
1122
+
1123
+ // The underlying io_context.
1124
+ io_context* io_context_;
1125
+
1126
+ // The allocator used for execution functions.
1127
+ Allocator allocator_;
1128
+
1129
+ // The runtime-switched properties of the io_context executor.
1130
+ unsigned int bits_;
1131
+ };
1132
+
1133
+ #if !defined(ASIO_NO_DEPRECATED)
1134
+ /// (Deprecated: Use executor_work_guard.) Class to inform the io_context when
1135
+ /// it has work to do.
1136
+ /**
1137
+ * The work class is used to inform the io_context when work starts and
1138
+ * finishes. This ensures that the io_context object's run() function will not
1139
+ * exit while work is underway, and that it does exit when there is no
1140
+ * unfinished work remaining.
1141
+ *
1142
+ * The work class is copy-constructible so that it may be used as a data member
1143
+ * in a handler class. It is not assignable.
1144
+ */
1145
+ class io_context::work
1146
+ {
1147
+ public:
1148
+ /// Constructor notifies the io_context that work is starting.
1149
+ /**
1150
+ * The constructor is used to inform the io_context that some work has begun.
1151
+ * This ensures that the io_context object's run() function will not exit
1152
+ * while the work is underway.
1153
+ */
1154
+ explicit work(asio::io_context& io_context);
1155
+
1156
+ /// Copy constructor notifies the io_context that work is starting.
1157
+ /**
1158
+ * The constructor is used to inform the io_context that some work has begun.
1159
+ * This ensures that the io_context object's run() function will not exit
1160
+ * while the work is underway.
1161
+ */
1162
+ work(const work& other);
1163
+
1164
+ /// Destructor notifies the io_context that the work is complete.
1165
+ /**
1166
+ * The destructor is used to inform the io_context that some work has
1167
+ * finished. Once the count of unfinished work reaches zero, the io_context
1168
+ * object's run() function is permitted to exit.
1169
+ */
1170
+ ~work();
1171
+
1172
+ /// Get the io_context associated with the work.
1173
+ asio::io_context& get_io_context();
1174
+
1175
+ private:
1176
+ // Prevent assignment.
1177
+ void operator=(const work& other);
1178
+
1179
+ // The io_context implementation.
1180
+ detail::io_context_impl& io_context_impl_;
1181
+ };
1182
+ #endif // !defined(ASIO_NO_DEPRECATED)
1183
+
1184
+ /// Base class for all io_context services.
1185
+ class io_context::service
1186
+ : public execution_context::service
1187
+ {
1188
+ public:
1189
+ /// Get the io_context object that owns the service.
1190
+ asio::io_context& get_io_context();
1191
+
1192
+ private:
1193
+ /// Destroy all user-defined handler objects owned by the service.
1194
+ ASIO_DECL virtual void shutdown();
1195
+
1196
+ #if !defined(ASIO_NO_DEPRECATED)
1197
+ /// (Deprecated: Use shutdown().) Destroy all user-defined handler objects
1198
+ /// owned by the service.
1199
+ ASIO_DECL virtual void shutdown_service();
1200
+ #endif // !defined(ASIO_NO_DEPRECATED)
1201
+
1202
+ /// Handle notification of a fork-related event to perform any necessary
1203
+ /// housekeeping.
1204
+ /**
1205
+ * This function is not a pure virtual so that services only have to
1206
+ * implement it if necessary. The default implementation does nothing.
1207
+ */
1208
+ ASIO_DECL virtual void notify_fork(
1209
+ execution_context::fork_event event);
1210
+
1211
+ #if !defined(ASIO_NO_DEPRECATED)
1212
+ /// (Deprecated: Use notify_fork().) Handle notification of a fork-related
1213
+ /// event to perform any necessary housekeeping.
1214
+ /**
1215
+ * This function is not a pure virtual so that services only have to
1216
+ * implement it if necessary. The default implementation does nothing.
1217
+ */
1218
+ ASIO_DECL virtual void fork_service(
1219
+ execution_context::fork_event event);
1220
+ #endif // !defined(ASIO_NO_DEPRECATED)
1221
+
1222
+ protected:
1223
+ /// Constructor.
1224
+ /**
1225
+ * @param owner The io_context object that owns the service.
1226
+ */
1227
+ ASIO_DECL service(asio::io_context& owner);
1228
+
1229
+ /// Destructor.
1230
+ ASIO_DECL virtual ~service();
1231
+ };
1232
+
1233
+ namespace detail {
1234
+
1235
+ // Special service base class to keep classes header-file only.
1236
+ template <typename Type>
1237
+ class service_base
1238
+ : public asio::io_context::service
1239
+ {
1240
+ public:
1241
+ static asio::detail::service_id<Type> id;
1242
+
1243
+ // Constructor.
1244
+ service_base(asio::io_context& io_context)
1245
+ : asio::io_context::service(io_context)
1246
+ {
1247
+ }
1248
+ };
1249
+
1250
+ template <typename Type>
1251
+ asio::detail::service_id<Type> service_base<Type>::id;
1252
+
1253
+ } // namespace detail
1254
+
1255
+ #if !defined(GENERATING_DOCUMENTATION)
1256
+
1257
+ namespace traits {
1258
+
1259
+ #if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
1260
+
1261
+ template <typename Allocator, unsigned int Bits>
1262
+ struct equality_comparable<
1263
+ asio::io_context::basic_executor_type<Allocator, Bits>
1264
+ >
1265
+ {
1266
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1267
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1268
+ };
1269
+
1270
+ #endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
1271
+
1272
+ #if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
1273
+
1274
+ template <typename Allocator, unsigned int Bits, typename Function>
1275
+ struct execute_member<
1276
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1277
+ Function
1278
+ >
1279
+ {
1280
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1281
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
1282
+ typedef void result_type;
1283
+ };
1284
+
1285
+ #endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
1286
+
1287
+ #if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
1288
+
1289
+ template <typename Allocator, unsigned int Bits>
1290
+ struct require_member<
1291
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1292
+ asio::execution::blocking_t::possibly_t
1293
+ >
1294
+ {
1295
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1296
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
1297
+ typedef asio::io_context::basic_executor_type<
1298
+ Allocator, Bits> result_type;
1299
+ };
1300
+
1301
+ template <typename Allocator, unsigned int Bits>
1302
+ struct require_member<
1303
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1304
+ asio::execution::blocking_t::never_t
1305
+ >
1306
+ {
1307
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1308
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
1309
+ typedef asio::io_context::basic_executor_type<
1310
+ Allocator, Bits> result_type;
1311
+ };
1312
+
1313
+ template <typename Allocator, unsigned int Bits>
1314
+ struct require_member<
1315
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1316
+ asio::execution::relationship_t::fork_t
1317
+ >
1318
+ {
1319
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1320
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
1321
+ typedef asio::io_context::basic_executor_type<
1322
+ Allocator, Bits> result_type;
1323
+ };
1324
+
1325
+ template <typename Allocator, unsigned int Bits>
1326
+ struct require_member<
1327
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1328
+ asio::execution::relationship_t::continuation_t
1329
+ >
1330
+ {
1331
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1332
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
1333
+ typedef asio::io_context::basic_executor_type<
1334
+ Allocator, Bits> result_type;
1335
+ };
1336
+
1337
+ template <typename Allocator, unsigned int Bits>
1338
+ struct require_member<
1339
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1340
+ asio::execution::outstanding_work_t::tracked_t
1341
+ > : asio::detail::io_context_bits
1342
+ {
1343
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1344
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
1345
+ typedef asio::io_context::basic_executor_type<
1346
+ Allocator, Bits | outstanding_work_tracked> result_type;
1347
+ };
1348
+
1349
+ template <typename Allocator, unsigned int Bits>
1350
+ struct require_member<
1351
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1352
+ asio::execution::outstanding_work_t::untracked_t
1353
+ > : asio::detail::io_context_bits
1354
+ {
1355
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1356
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
1357
+ typedef asio::io_context::basic_executor_type<
1358
+ Allocator, Bits & ~outstanding_work_tracked> result_type;
1359
+ };
1360
+
1361
+ template <typename Allocator, unsigned int Bits>
1362
+ struct require_member<
1363
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1364
+ asio::execution::allocator_t<void>
1365
+ >
1366
+ {
1367
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1368
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
1369
+ typedef asio::io_context::basic_executor_type<
1370
+ std::allocator<void>, Bits> result_type;
1371
+ };
1372
+
1373
+ template <unsigned int Bits,
1374
+ typename Allocator, typename OtherAllocator>
1375
+ struct require_member<
1376
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1377
+ asio::execution::allocator_t<OtherAllocator>
1378
+ >
1379
+ {
1380
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1381
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
1382
+ typedef asio::io_context::basic_executor_type<
1383
+ OtherAllocator, Bits> result_type;
1384
+ };
1385
+
1386
+ #endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
1387
+
1388
+ #if !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
1389
+
1390
+ template <typename Allocator, unsigned int Bits, typename Property>
1391
+ struct query_static_constexpr_member<
1392
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1393
+ Property,
1394
+ typename asio::enable_if<
1395
+ asio::is_convertible<
1396
+ Property,
1397
+ asio::execution::outstanding_work_t
1398
+ >::value
1399
+ >::type
1400
+ > : asio::detail::io_context_bits
1401
+ {
1402
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1403
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1404
+ typedef asio::execution::outstanding_work_t result_type;
1405
+
1406
+ static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
1407
+ {
1408
+ return (Bits & outstanding_work_tracked)
1409
+ ? execution::outstanding_work_t(execution::outstanding_work.tracked)
1410
+ : execution::outstanding_work_t(execution::outstanding_work.untracked);
1411
+ }
1412
+ };
1413
+
1414
+ template <typename Allocator, unsigned int Bits, typename Property>
1415
+ struct query_static_constexpr_member<
1416
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1417
+ Property,
1418
+ typename asio::enable_if<
1419
+ asio::is_convertible<
1420
+ Property,
1421
+ asio::execution::mapping_t
1422
+ >::value
1423
+ >::type
1424
+ >
1425
+ {
1426
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1427
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1428
+ typedef asio::execution::mapping_t::thread_t result_type;
1429
+
1430
+ static ASIO_CONSTEXPR result_type value() ASIO_NOEXCEPT
1431
+ {
1432
+ return result_type();
1433
+ }
1434
+ };
1435
+
1436
+ #endif // !defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
1437
+
1438
+ #if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
1439
+
1440
+ template <typename Allocator, unsigned int Bits, typename Property>
1441
+ struct query_member<
1442
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1443
+ Property,
1444
+ typename asio::enable_if<
1445
+ asio::is_convertible<
1446
+ Property,
1447
+ asio::execution::blocking_t
1448
+ >::value
1449
+ >::type
1450
+ >
1451
+ {
1452
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1453
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1454
+ typedef asio::execution::blocking_t result_type;
1455
+ };
1456
+
1457
+ template <typename Allocator, unsigned int Bits, typename Property>
1458
+ struct query_member<
1459
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1460
+ Property,
1461
+ typename asio::enable_if<
1462
+ asio::is_convertible<
1463
+ Property,
1464
+ asio::execution::relationship_t
1465
+ >::value
1466
+ >::type
1467
+ >
1468
+ {
1469
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1470
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1471
+ typedef asio::execution::relationship_t result_type;
1472
+ };
1473
+
1474
+ template <typename Allocator, unsigned int Bits>
1475
+ struct query_member<
1476
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1477
+ asio::execution::context_t
1478
+ >
1479
+ {
1480
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1481
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1482
+ typedef asio::io_context& result_type;
1483
+ };
1484
+
1485
+ template <typename Allocator, unsigned int Bits>
1486
+ struct query_member<
1487
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1488
+ asio::execution::allocator_t<void>
1489
+ >
1490
+ {
1491
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1492
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1493
+ typedef Allocator result_type;
1494
+ };
1495
+
1496
+ template <typename Allocator, unsigned int Bits, typename OtherAllocator>
1497
+ struct query_member<
1498
+ asio::io_context::basic_executor_type<Allocator, Bits>,
1499
+ asio::execution::allocator_t<OtherAllocator>
1500
+ >
1501
+ {
1502
+ ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
1503
+ ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
1504
+ typedef Allocator result_type;
1505
+ };
1506
+
1507
+ #endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
1508
+
1509
+ } // namespace traits
1510
+
1511
+ #endif // !defined(GENERATING_DOCUMENTATION)
1512
+
1513
+ } // namespace asio
1514
+
1515
+ #include "asio/detail/pop_options.hpp"
1516
+
1517
+ #include "asio/impl/io_context.hpp"
1518
+ #if defined(ASIO_HEADER_ONLY)
1519
+ # include "asio/impl/io_context.ipp"
1520
+ #endif // defined(ASIO_HEADER_ONLY)
1521
+
1522
+ // If both io_context.hpp and strand.hpp have been included, automatically
1523
+ // include the header file needed for the io_context::strand class.
1524
+ #if !defined(ASIO_NO_EXTENSIONS)
1525
+ # if defined(ASIO_STRAND_HPP)
1526
+ # include "asio/io_context_strand.hpp"
1527
+ # endif // defined(ASIO_STRAND_HPP)
1528
+ #endif // !defined(ASIO_NO_EXTENSIONS)
1529
+
1530
+ #endif // ASIO_IO_CONTEXT_HPP