couchbase 3.0.1-universal-darwin-19 → 3.0.2-universal-darwin-19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1318) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +73 -4
  3. data/ext/extconf.rb +0 -95
  4. data/lib/couchbase.rb +1 -0
  5. data/lib/couchbase/analytics_options.rb +1 -71
  6. data/lib/couchbase/binary_collection.rb +60 -22
  7. data/lib/couchbase/binary_collection_options.rb +0 -76
  8. data/lib/couchbase/bucket.rb +40 -36
  9. data/lib/couchbase/cluster.rb +89 -156
  10. data/lib/couchbase/collection.rb +290 -72
  11. data/lib/couchbase/collection_options.rb +30 -243
  12. data/lib/couchbase/datastructures/couchbase_list.rb +5 -16
  13. data/lib/couchbase/datastructures/couchbase_map.rb +5 -16
  14. data/lib/couchbase/datastructures/couchbase_queue.rb +5 -16
  15. data/lib/couchbase/datastructures/couchbase_set.rb +5 -16
  16. data/lib/couchbase/diagnostics.rb +181 -0
  17. data/lib/couchbase/json_transcoder.rb +1 -1
  18. data/lib/couchbase/libcouchbase.bundle +0 -0
  19. data/lib/couchbase/{common_options.rb → logger.rb} +24 -11
  20. data/lib/couchbase/management/query_index_manager.rb +1 -1
  21. data/lib/couchbase/management/user_manager.rb +3 -0
  22. data/lib/couchbase/options.rb +2094 -0
  23. data/lib/couchbase/query_options.rb +1 -144
  24. data/lib/couchbase/scope.rb +8 -25
  25. data/lib/couchbase/search_options.rb +0 -93
  26. data/lib/couchbase/version.rb +20 -1
  27. data/lib/couchbase/view_options.rb +1 -91
  28. metadata +8 -1296
  29. data/ext/CMakeLists.txt +0 -127
  30. data/ext/LICENSE.txt +0 -202
  31. data/ext/build_config.hxx.in +0 -20
  32. data/ext/build_version.hxx.in +0 -27
  33. data/ext/cmake/Backtrace.cmake +0 -35
  34. data/ext/cmake/BuildTracing.cmake +0 -6
  35. data/ext/cmake/Cache.cmake +0 -29
  36. data/ext/cmake/CompilerWarnings.cmake +0 -78
  37. data/ext/cmake/PreventInSourceBuilds.cmake +0 -18
  38. data/ext/cmake/Sanitizers.cmake +0 -66
  39. data/ext/cmake/StandardProjectSettings.cmake +0 -40
  40. data/ext/cmake/StaticAnalyzers.cmake +0 -37
  41. data/ext/cmake/Testing.cmake +0 -52
  42. data/ext/cmake/ThirdPartyDependencies.cmake +0 -20
  43. data/ext/cmake/VersionInfo.cmake +0 -37
  44. data/ext/couchbase/bucket.hxx +0 -338
  45. data/ext/couchbase/capabilities.hxx +0 -117
  46. data/ext/couchbase/cbcrypto/cbcrypto.cc +0 -888
  47. data/ext/couchbase/cbcrypto/cbcrypto.h +0 -89
  48. data/ext/couchbase/cbsasl/client.cc +0 -48
  49. data/ext/couchbase/cbsasl/client.h +0 -127
  50. data/ext/couchbase/cbsasl/context.cc +0 -33
  51. data/ext/couchbase/cbsasl/context.h +0 -52
  52. data/ext/couchbase/cbsasl/error.h +0 -72
  53. data/ext/couchbase/cbsasl/mechanism.cc +0 -48
  54. data/ext/couchbase/cbsasl/mechanism.h +0 -55
  55. data/ext/couchbase/cbsasl/plain/plain.cc +0 -36
  56. data/ext/couchbase/cbsasl/plain/plain.h +0 -53
  57. data/ext/couchbase/cbsasl/scram-sha/scram-sha.cc +0 -390
  58. data/ext/couchbase/cbsasl/scram-sha/scram-sha.h +0 -185
  59. data/ext/couchbase/cbsasl/scram-sha/stringutils.cc +0 -81
  60. data/ext/couchbase/cbsasl/scram-sha/stringutils.h +0 -48
  61. data/ext/couchbase/cluster.hxx +0 -267
  62. data/ext/couchbase/cluster_options.hxx +0 -54
  63. data/ext/couchbase/collections_manifest.hxx +0 -88
  64. data/ext/couchbase/configuration.hxx +0 -650
  65. data/ext/couchbase/couchbase.cxx +0 -6431
  66. data/ext/couchbase/diagnostics.hxx +0 -251
  67. data/ext/couchbase/document_id.hxx +0 -40
  68. data/ext/couchbase/error_map.hxx +0 -261
  69. data/ext/couchbase/errors.hxx +0 -706
  70. data/ext/couchbase/io/dns_client.hxx +0 -217
  71. data/ext/couchbase/io/dns_codec.hxx +0 -207
  72. data/ext/couchbase/io/dns_config.hxx +0 -116
  73. data/ext/couchbase/io/dns_message.hxx +0 -555
  74. data/ext/couchbase/io/http_command.hxx +0 -95
  75. data/ext/couchbase/io/http_context.hxx +0 -37
  76. data/ext/couchbase/io/http_message.hxx +0 -47
  77. data/ext/couchbase/io/http_parser.hxx +0 -176
  78. data/ext/couchbase/io/http_session.hxx +0 -442
  79. data/ext/couchbase/io/http_session_manager.hxx +0 -182
  80. data/ext/couchbase/io/mcbp_command.hxx +0 -246
  81. data/ext/couchbase/io/mcbp_message.hxx +0 -63
  82. data/ext/couchbase/io/mcbp_parser.hxx +0 -101
  83. data/ext/couchbase/io/mcbp_session.hxx +0 -1283
  84. data/ext/couchbase/io/query_cache.hxx +0 -61
  85. data/ext/couchbase/io/retry_action.hxx +0 -30
  86. data/ext/couchbase/io/retry_context.hxx +0 -38
  87. data/ext/couchbase/io/retry_orchestrator.hxx +0 -112
  88. data/ext/couchbase/io/retry_reason.hxx +0 -235
  89. data/ext/couchbase/io/retry_strategy.hxx +0 -156
  90. data/ext/couchbase/io/streams.hxx +0 -216
  91. data/ext/couchbase/mutation_token.hxx +0 -38
  92. data/ext/couchbase/operations.hxx +0 -104
  93. data/ext/couchbase/operations/analytics_dataset_create.hxx +0 -117
  94. data/ext/couchbase/operations/analytics_dataset_drop.hxx +0 -103
  95. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +0 -107
  96. data/ext/couchbase/operations/analytics_dataverse_create.hxx +0 -104
  97. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +0 -104
  98. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +0 -91
  99. data/ext/couchbase/operations/analytics_index_create.hxx +0 -128
  100. data/ext/couchbase/operations/analytics_index_drop.hxx +0 -110
  101. data/ext/couchbase/operations/analytics_index_get_all.hxx +0 -106
  102. data/ext/couchbase/operations/analytics_link_connect.hxx +0 -102
  103. data/ext/couchbase/operations/analytics_link_disconnect.hxx +0 -101
  104. data/ext/couchbase/operations/bucket_create.hxx +0 -147
  105. data/ext/couchbase/operations/bucket_drop.hxx +0 -68
  106. data/ext/couchbase/operations/bucket_flush.hxx +0 -68
  107. data/ext/couchbase/operations/bucket_get.hxx +0 -72
  108. data/ext/couchbase/operations/bucket_get_all.hxx +0 -65
  109. data/ext/couchbase/operations/bucket_settings.hxx +0 -150
  110. data/ext/couchbase/operations/bucket_update.hxx +0 -124
  111. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +0 -63
  112. data/ext/couchbase/operations/collection_create.hxx +0 -95
  113. data/ext/couchbase/operations/collection_drop.hxx +0 -85
  114. data/ext/couchbase/operations/collections_manifest_get.hxx +0 -70
  115. data/ext/couchbase/operations/design_document.hxx +0 -59
  116. data/ext/couchbase/operations/document_analytics.hxx +0 -293
  117. data/ext/couchbase/operations/document_decrement.hxx +0 -87
  118. data/ext/couchbase/operations/document_exists.hxx +0 -84
  119. data/ext/couchbase/operations/document_get.hxx +0 -69
  120. data/ext/couchbase/operations/document_get_and_lock.hxx +0 -71
  121. data/ext/couchbase/operations/document_get_and_touch.hxx +0 -71
  122. data/ext/couchbase/operations/document_get_projected.hxx +0 -249
  123. data/ext/couchbase/operations/document_increment.hxx +0 -89
  124. data/ext/couchbase/operations/document_insert.hxx +0 -81
  125. data/ext/couchbase/operations/document_lookup_in.hxx +0 -111
  126. data/ext/couchbase/operations/document_mutate_in.hxx +0 -145
  127. data/ext/couchbase/operations/document_query.hxx +0 -422
  128. data/ext/couchbase/operations/document_remove.hxx +0 -74
  129. data/ext/couchbase/operations/document_replace.hxx +0 -83
  130. data/ext/couchbase/operations/document_search.hxx +0 -370
  131. data/ext/couchbase/operations/document_touch.hxx +0 -67
  132. data/ext/couchbase/operations/document_unlock.hxx +0 -67
  133. data/ext/couchbase/operations/document_upsert.hxx +0 -81
  134. data/ext/couchbase/operations/document_view.hxx +0 -228
  135. data/ext/couchbase/operations/group_drop.hxx +0 -71
  136. data/ext/couchbase/operations/group_get.hxx +0 -75
  137. data/ext/couchbase/operations/group_get_all.hxx +0 -70
  138. data/ext/couchbase/operations/group_upsert.hxx +0 -118
  139. data/ext/couchbase/operations/query_index_build_deferred.hxx +0 -86
  140. data/ext/couchbase/operations/query_index_create.hxx +0 -145
  141. data/ext/couchbase/operations/query_index_drop.hxx +0 -119
  142. data/ext/couchbase/operations/query_index_get_all.hxx +0 -117
  143. data/ext/couchbase/operations/rbac.hxx +0 -276
  144. data/ext/couchbase/operations/role_get_all.hxx +0 -70
  145. data/ext/couchbase/operations/scope_create.hxx +0 -88
  146. data/ext/couchbase/operations/scope_drop.hxx +0 -82
  147. data/ext/couchbase/operations/scope_get_all.hxx +0 -76
  148. data/ext/couchbase/operations/search_get_stats.hxx +0 -59
  149. data/ext/couchbase/operations/search_index.hxx +0 -79
  150. data/ext/couchbase/operations/search_index_analyze_document.hxx +0 -92
  151. data/ext/couchbase/operations/search_index_control_ingest.hxx +0 -80
  152. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +0 -80
  153. data/ext/couchbase/operations/search_index_control_query.hxx +0 -80
  154. data/ext/couchbase/operations/search_index_drop.hxx +0 -77
  155. data/ext/couchbase/operations/search_index_get.hxx +0 -80
  156. data/ext/couchbase/operations/search_index_get_all.hxx +0 -82
  157. data/ext/couchbase/operations/search_index_get_documents_count.hxx +0 -89
  158. data/ext/couchbase/operations/search_index_get_stats.hxx +0 -81
  159. data/ext/couchbase/operations/search_index_upsert.hxx +0 -106
  160. data/ext/couchbase/operations/user_drop.hxx +0 -72
  161. data/ext/couchbase/operations/user_get.hxx +0 -76
  162. data/ext/couchbase/operations/user_get_all.hxx +0 -71
  163. data/ext/couchbase/operations/user_upsert.hxx +0 -125
  164. data/ext/couchbase/operations/view_index_drop.hxx +0 -67
  165. data/ext/couchbase/operations/view_index_get.hxx +0 -90
  166. data/ext/couchbase/operations/view_index_get_all.hxx +0 -125
  167. data/ext/couchbase/operations/view_index_upsert.hxx +0 -87
  168. data/ext/couchbase/origin.hxx +0 -178
  169. data/ext/couchbase/platform/backtrace.c +0 -189
  170. data/ext/couchbase/platform/backtrace.h +0 -54
  171. data/ext/couchbase/platform/base64.cc +0 -234
  172. data/ext/couchbase/platform/base64.h +0 -47
  173. data/ext/couchbase/platform/random.cc +0 -119
  174. data/ext/couchbase/platform/random.h +0 -39
  175. data/ext/couchbase/platform/string_hex.cc +0 -99
  176. data/ext/couchbase/platform/string_hex.h +0 -50
  177. data/ext/couchbase/platform/terminate_handler.cc +0 -123
  178. data/ext/couchbase/platform/terminate_handler.h +0 -36
  179. data/ext/couchbase/platform/uuid.cc +0 -96
  180. data/ext/couchbase/platform/uuid.h +0 -56
  181. data/ext/couchbase/protocol/client_opcode.hxx +0 -264
  182. data/ext/couchbase/protocol/client_request.hxx +0 -160
  183. data/ext/couchbase/protocol/client_response.hxx +0 -218
  184. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +0 -79
  185. data/ext/couchbase/protocol/cmd_decrement.hxx +0 -187
  186. data/ext/couchbase/protocol/cmd_exists.hxx +0 -171
  187. data/ext/couchbase/protocol/cmd_get.hxx +0 -122
  188. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +0 -142
  189. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +0 -142
  190. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +0 -126
  191. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +0 -117
  192. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +0 -99
  193. data/ext/couchbase/protocol/cmd_get_error_map.hxx +0 -126
  194. data/ext/couchbase/protocol/cmd_hello.hxx +0 -156
  195. data/ext/couchbase/protocol/cmd_increment.hxx +0 -187
  196. data/ext/couchbase/protocol/cmd_info.hxx +0 -25
  197. data/ext/couchbase/protocol/cmd_insert.hxx +0 -172
  198. data/ext/couchbase/protocol/cmd_lookup_in.hxx +0 -219
  199. data/ext/couchbase/protocol/cmd_mutate_in.hxx +0 -365
  200. data/ext/couchbase/protocol/cmd_remove.hxx +0 -134
  201. data/ext/couchbase/protocol/cmd_replace.hxx +0 -172
  202. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +0 -106
  203. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +0 -100
  204. data/ext/couchbase/protocol/cmd_sasl_step.hxx +0 -104
  205. data/ext/couchbase/protocol/cmd_select_bucket.hxx +0 -85
  206. data/ext/couchbase/protocol/cmd_touch.hxx +0 -102
  207. data/ext/couchbase/protocol/cmd_unlock.hxx +0 -95
  208. data/ext/couchbase/protocol/cmd_upsert.hxx +0 -172
  209. data/ext/couchbase/protocol/datatype.hxx +0 -48
  210. data/ext/couchbase/protocol/durability_level.hxx +0 -67
  211. data/ext/couchbase/protocol/frame_info_id.hxx +0 -187
  212. data/ext/couchbase/protocol/hello_feature.hxx +0 -255
  213. data/ext/couchbase/protocol/magic.hxx +0 -83
  214. data/ext/couchbase/protocol/server_opcode.hxx +0 -57
  215. data/ext/couchbase/protocol/server_request.hxx +0 -122
  216. data/ext/couchbase/protocol/status.hxx +0 -343
  217. data/ext/couchbase/protocol/unsigned_leb128.h +0 -195
  218. data/ext/couchbase/service_type.hxx +0 -60
  219. data/ext/couchbase/timeout_defaults.hxx +0 -41
  220. data/ext/couchbase/utils/byteswap.hxx +0 -33
  221. data/ext/couchbase/utils/connection_string.hxx +0 -379
  222. data/ext/couchbase/utils/crc32.hxx +0 -48
  223. data/ext/couchbase/utils/url_codec.hxx +0 -225
  224. data/ext/couchbase/version.hxx +0 -24
  225. data/ext/test/test_helper.hxx +0 -141
  226. data/ext/test/test_helper_native.hxx +0 -59
  227. data/ext/test/test_helper_ruby.hxx +0 -72
  228. data/ext/test/test_native_diagnostics.cxx +0 -385
  229. data/ext/test/test_native_trivial_crud.cxx +0 -83
  230. data/ext/test/test_ruby_trivial_crud.cxx +0 -35
  231. data/ext/test/test_ruby_trivial_query.cxx +0 -34
  232. data/ext/third_party/asio/asio/include/asio.hpp +0 -182
  233. data/ext/third_party/asio/asio/include/asio/any_io_executor.hpp +0 -71
  234. data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +0 -125
  235. data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +0 -166
  236. data/ext/third_party/asio/asio/include/asio/async_result.hpp +0 -582
  237. data/ext/third_party/asio/asio/include/asio/awaitable.hpp +0 -133
  238. data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +0 -1215
  239. data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +0 -693
  240. data/ext/third_party/asio/asio/include/asio/basic_io_object.hpp +0 -290
  241. data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +0 -1206
  242. data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +0 -761
  243. data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +0 -907
  244. data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +0 -568
  245. data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +0 -1894
  246. data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +0 -2501
  247. data/ext/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +0 -407
  248. data/ext/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +0 -687
  249. data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +0 -1053
  250. data/ext/third_party/asio/asio/include/asio/basic_streambuf.hpp +0 -452
  251. data/ext/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +0 -36
  252. data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +0 -811
  253. data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +0 -575
  254. data/ext/third_party/asio/asio/include/asio/buffer.hpp +0 -2496
  255. data/ext/third_party/asio/asio/include/asio/buffered_read_stream.hpp +0 -253
  256. data/ext/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +0 -25
  257. data/ext/third_party/asio/asio/include/asio/buffered_stream.hpp +0 -279
  258. data/ext/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +0 -25
  259. data/ext/third_party/asio/asio/include/asio/buffered_write_stream.hpp +0 -245
  260. data/ext/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +0 -25
  261. data/ext/third_party/asio/asio/include/asio/buffers_iterator.hpp +0 -521
  262. data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +0 -471
  263. data/ext/third_party/asio/asio/include/asio/completion_condition.hpp +0 -218
  264. data/ext/third_party/asio/asio/include/asio/compose.hpp +0 -136
  265. data/ext/third_party/asio/asio/include/asio/connect.hpp +0 -1076
  266. data/ext/third_party/asio/asio/include/asio/coroutine.hpp +0 -328
  267. data/ext/third_party/asio/asio/include/asio/deadline_timer.hpp +0 -38
  268. data/ext/third_party/asio/asio/include/asio/defer.hpp +0 -130
  269. data/ext/third_party/asio/asio/include/asio/detached.hpp +0 -112
  270. data/ext/third_party/asio/asio/include/asio/detail/array.hpp +0 -38
  271. data/ext/third_party/asio/asio/include/asio/detail/array_fwd.hpp +0 -34
  272. data/ext/third_party/asio/asio/include/asio/detail/assert.hpp +0 -32
  273. data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +0 -64
  274. data/ext/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +0 -69
  275. data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +0 -934
  276. data/ext/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +0 -107
  277. data/ext/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +0 -66
  278. data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +0 -650
  279. data/ext/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +0 -126
  280. data/ext/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +0 -88
  281. data/ext/third_party/asio/asio/include/asio/detail/call_stack.hpp +0 -125
  282. data/ext/third_party/asio/asio/include/asio/detail/chrono.hpp +0 -66
  283. data/ext/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +0 -190
  284. data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +0 -88
  285. data/ext/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +0 -94
  286. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +0 -120
  287. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +0 -149
  288. data/ext/third_party/asio/asio/include/asio/detail/config.hpp +0 -1822
  289. data/ext/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +0 -414
  290. data/ext/third_party/asio/asio/include/asio/detail/cstddef.hpp +0 -31
  291. data/ext/third_party/asio/asio/include/asio/detail/cstdint.hpp +0 -60
  292. data/ext/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +0 -34
  293. data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +0 -295
  294. data/ext/third_party/asio/asio/include/asio/detail/dependent_type.hpp +0 -36
  295. data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +0 -139
  296. data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +0 -148
  297. data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +0 -148
  298. data/ext/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +0 -218
  299. data/ext/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +0 -266
  300. data/ext/third_party/asio/asio/include/asio/detail/event.hpp +0 -48
  301. data/ext/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +0 -83
  302. data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +0 -203
  303. data/ext/third_party/asio/asio/include/asio/detail/executor_op.hpp +0 -84
  304. data/ext/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +0 -39
  305. data/ext/third_party/asio/asio/include/asio/detail/fenced_block.hpp +0 -80
  306. data/ext/third_party/asio/asio/include/asio/detail/functional.hpp +0 -38
  307. data/ext/third_party/asio/asio/include/asio/detail/future.hpp +0 -33
  308. data/ext/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +0 -91
  309. data/ext/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +0 -68
  310. data/ext/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +0 -65
  311. data/ext/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +0 -99
  312. data/ext/third_party/asio/asio/include/asio/detail/global.hpp +0 -52
  313. data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +0 -284
  314. data/ext/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +0 -45
  315. data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +0 -80
  316. data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +0 -264
  317. data/ext/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +0 -556
  318. data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +0 -438
  319. data/ext/third_party/asio/asio/include/asio/detail/hash_map.hpp +0 -331
  320. data/ext/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +0 -118
  321. data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +0 -608
  322. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +0 -91
  323. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +0 -446
  324. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +0 -89
  325. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +0 -787
  326. data/ext/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +0 -169
  327. data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +0 -396
  328. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +0 -93
  329. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +0 -570
  330. data/ext/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +0 -74
  331. data/ext/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +0 -129
  332. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +0 -59
  333. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +0 -46
  334. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +0 -84
  335. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +0 -46
  336. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +0 -223
  337. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +0 -149
  338. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +0 -300
  339. data/ext/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +0 -158
  340. data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +0 -654
  341. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +0 -100
  342. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +0 -338
  343. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +0 -94
  344. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +0 -197
  345. data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +0 -668
  346. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +0 -3962
  347. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +0 -185
  348. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +0 -385
  349. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +0 -134
  350. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +0 -117
  351. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +0 -178
  352. data/ext/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +0 -60
  353. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +0 -91
  354. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +0 -101
  355. data/ext/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +0 -76
  356. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +0 -525
  357. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +0 -103
  358. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +0 -603
  359. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +0 -192
  360. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +0 -801
  361. data/ext/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +0 -84
  362. data/ext/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +0 -448
  363. data/ext/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +0 -136
  364. data/ext/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +0 -150
  365. data/ext/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +0 -57
  366. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +0 -626
  367. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +0 -92
  368. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +0 -121
  369. data/ext/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +0 -82
  370. data/ext/third_party/asio/asio/include/asio/detail/io_control.hpp +0 -84
  371. data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +0 -175
  372. data/ext/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +0 -312
  373. data/ext/third_party/asio/asio/include/asio/detail/is_executor.hpp +0 -126
  374. data/ext/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +0 -70
  375. data/ext/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +0 -242
  376. data/ext/third_party/asio/asio/include/asio/detail/limits.hpp +0 -26
  377. data/ext/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +0 -59
  378. data/ext/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +0 -62
  379. data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +0 -73
  380. data/ext/third_party/asio/asio/include/asio/detail/mutex.hpp +0 -48
  381. data/ext/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +0 -54
  382. data/ext/third_party/asio/asio/include/asio/detail/noncopyable.hpp +0 -43
  383. data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +0 -106
  384. data/ext/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +0 -47
  385. data/ext/third_party/asio/asio/include/asio/detail/null_global.hpp +0 -59
  386. data/ext/third_party/asio/asio/include/asio/detail/null_mutex.hpp +0 -64
  387. data/ext/third_party/asio/asio/include/asio/detail/null_reactor.hpp +0 -68
  388. data/ext/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +0 -69
  389. data/ext/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +0 -519
  390. data/ext/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +0 -60
  391. data/ext/third_party/asio/asio/include/asio/detail/null_thread.hpp +0 -67
  392. data/ext/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +0 -68
  393. data/ext/third_party/asio/asio/include/asio/detail/object_pool.hpp +0 -171
  394. data/ext/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +0 -214
  395. data/ext/third_party/asio/asio/include/asio/detail/op_queue.hpp +0 -162
  396. data/ext/third_party/asio/asio/include/asio/detail/operation.hpp +0 -38
  397. data/ext/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +0 -89
  398. data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +0 -141
  399. data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +0 -175
  400. data/ext/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +0 -118
  401. data/ext/third_party/asio/asio/include/asio/detail/posix_global.hpp +0 -80
  402. data/ext/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +0 -76
  403. data/ext/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +0 -85
  404. data/ext/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +0 -64
  405. data/ext/third_party/asio/asio/include/asio/detail/posix_thread.hpp +0 -109
  406. data/ext/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +0 -79
  407. data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +0 -185
  408. data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +0 -416
  409. data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +0 -98
  410. data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +0 -237
  411. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +0 -242
  412. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +0 -123
  413. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +0 -159
  414. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +0 -164
  415. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +0 -145
  416. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +0 -162
  417. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +0 -156
  418. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +0 -528
  419. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +0 -541
  420. data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +0 -98
  421. data/ext/third_party/asio/asio/include/asio/detail/reactor.hpp +0 -32
  422. data/ext/third_party/asio/asio/include/asio/detail/reactor_fwd.hpp +0 -40
  423. data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +0 -67
  424. data/ext/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +0 -168
  425. data/ext/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +0 -106
  426. data/ext/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +0 -35
  427. data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +0 -140
  428. data/ext/third_party/asio/asio/include/asio/detail/resolve_op.hpp +0 -45
  429. data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +0 -150
  430. data/ext/third_party/asio/asio/include/asio/detail/resolver_service.hpp +0 -145
  431. data/ext/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +0 -143
  432. data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +0 -232
  433. data/ext/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +0 -78
  434. data/ext/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +0 -40
  435. data/ext/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +0 -101
  436. data/ext/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +0 -87
  437. data/ext/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +0 -46
  438. data/ext/third_party/asio/asio/include/asio/detail/select_reactor.hpp +0 -238
  439. data/ext/third_party/asio/asio/include/asio/detail/service_registry.hpp +0 -164
  440. data/ext/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +0 -44
  441. data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +0 -90
  442. data/ext/third_party/asio/asio/include/asio/detail/signal_init.hpp +0 -47
  443. data/ext/third_party/asio/asio/include/asio/detail/signal_op.hpp +0 -49
  444. data/ext/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +0 -229
  445. data/ext/third_party/asio/asio/include/asio/detail/socket_holder.hpp +0 -98
  446. data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +0 -383
  447. data/ext/third_party/asio/asio/include/asio/detail/socket_option.hpp +0 -316
  448. data/ext/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +0 -91
  449. data/ext/third_party/asio/asio/include/asio/detail/socket_types.hpp +0 -416
  450. data/ext/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +0 -62
  451. data/ext/third_party/asio/asio/include/asio/detail/source_location.hpp +0 -45
  452. data/ext/third_party/asio/asio/include/asio/detail/static_mutex.hpp +0 -52
  453. data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +0 -188
  454. data/ext/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +0 -62
  455. data/ext/third_party/asio/asio/include/asio/detail/std_global.hpp +0 -70
  456. data/ext/third_party/asio/asio/include/asio/detail/std_mutex.hpp +0 -73
  457. data/ext/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +0 -81
  458. data/ext/third_party/asio/asio/include/asio/detail/std_thread.hpp +0 -71
  459. data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +0 -166
  460. data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +0 -145
  461. data/ext/third_party/asio/asio/include/asio/detail/string_view.hpp +0 -47
  462. data/ext/third_party/asio/asio/include/asio/detail/thread.hpp +0 -60
  463. data/ext/third_party/asio/asio/include/asio/detail/thread_context.hpp +0 -42
  464. data/ext/third_party/asio/asio/include/asio/detail/thread_group.hpp +0 -95
  465. data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +0 -183
  466. data/ext/third_party/asio/asio/include/asio/detail/throw_error.hpp +0 -53
  467. data/ext/third_party/asio/asio/include/asio/detail/throw_exception.hpp +0 -51
  468. data/ext/third_party/asio/asio/include/asio/detail/timer_queue.hpp +0 -360
  469. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +0 -68
  470. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +0 -99
  471. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +0 -66
  472. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +0 -35
  473. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +0 -40
  474. data/ext/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +0 -69
  475. data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +0 -148
  476. data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +0 -294
  477. data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +0 -90
  478. data/ext/third_party/asio/asio/include/asio/detail/wait_op.hpp +0 -45
  479. data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +0 -164
  480. data/ext/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +0 -149
  481. data/ext/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +0 -90
  482. data/ext/third_party/asio/asio/include/asio/detail/win_global.hpp +0 -71
  483. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +0 -117
  484. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +0 -335
  485. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +0 -110
  486. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +0 -342
  487. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +0 -127
  488. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +0 -96
  489. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +0 -96
  490. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +0 -171
  491. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +0 -232
  492. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +0 -312
  493. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +0 -135
  494. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +0 -124
  495. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +0 -133
  496. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +0 -125
  497. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +0 -118
  498. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +0 -581
  499. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +0 -600
  500. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +0 -34
  501. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +0 -128
  502. data/ext/third_party/asio/asio/include/asio/detail/win_mutex.hpp +0 -78
  503. data/ext/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +0 -195
  504. data/ext/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +0 -74
  505. data/ext/third_party/asio/asio/include/asio/detail/win_thread.hpp +0 -147
  506. data/ext/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +0 -79
  507. data/ext/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +0 -124
  508. data/ext/third_party/asio/asio/include/asio/detail/wince_thread.hpp +0 -124
  509. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +0 -305
  510. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +0 -65
  511. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +0 -125
  512. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +0 -212
  513. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +0 -98
  514. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +0 -119
  515. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +0 -110
  516. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +0 -250
  517. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +0 -362
  518. data/ext/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +0 -147
  519. data/ext/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +0 -106
  520. data/ext/third_party/asio/asio/include/asio/detail/winsock_init.hpp +0 -128
  521. data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +0 -148
  522. data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +0 -327
  523. data/ext/third_party/asio/asio/include/asio/dispatch.hpp +0 -121
  524. data/ext/third_party/asio/asio/include/asio/error.hpp +0 -356
  525. data/ext/third_party/asio/asio/include/asio/error_code.hpp +0 -202
  526. data/ext/third_party/asio/asio/include/asio/execution.hpp +0 -48
  527. data/ext/third_party/asio/asio/include/asio/execution/allocator.hpp +0 -249
  528. data/ext/third_party/asio/asio/include/asio/execution/any_executor.hpp +0 -2264
  529. data/ext/third_party/asio/asio/include/asio/execution/bad_executor.hpp +0 -47
  530. data/ext/third_party/asio/asio/include/asio/execution/blocking.hpp +0 -1351
  531. data/ext/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +0 -1064
  532. data/ext/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +0 -390
  533. data/ext/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +0 -1018
  534. data/ext/third_party/asio/asio/include/asio/execution/connect.hpp +0 -486
  535. data/ext/third_party/asio/asio/include/asio/execution/context.hpp +0 -185
  536. data/ext/third_party/asio/asio/include/asio/execution/context_as.hpp +0 -201
  537. data/ext/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +0 -152
  538. data/ext/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +0 -105
  539. data/ext/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +0 -128
  540. data/ext/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +0 -261
  541. data/ext/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +0 -233
  542. data/ext/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +0 -90
  543. data/ext/third_party/asio/asio/include/asio/execution/execute.hpp +0 -264
  544. data/ext/third_party/asio/asio/include/asio/execution/executor.hpp +0 -238
  545. data/ext/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +0 -40
  546. data/ext/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +0 -36
  547. data/ext/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +0 -71
  548. data/ext/third_party/asio/asio/include/asio/execution/mapping.hpp +0 -917
  549. data/ext/third_party/asio/asio/include/asio/execution/occupancy.hpp +0 -178
  550. data/ext/third_party/asio/asio/include/asio/execution/operation_state.hpp +0 -94
  551. data/ext/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +0 -721
  552. data/ext/third_party/asio/asio/include/asio/execution/prefer_only.hpp +0 -327
  553. data/ext/third_party/asio/asio/include/asio/execution/receiver.hpp +0 -280
  554. data/ext/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +0 -48
  555. data/ext/third_party/asio/asio/include/asio/execution/relationship.hpp +0 -720
  556. data/ext/third_party/asio/asio/include/asio/execution/schedule.hpp +0 -290
  557. data/ext/third_party/asio/asio/include/asio/execution/scheduler.hpp +0 -86
  558. data/ext/third_party/asio/asio/include/asio/execution/sender.hpp +0 -311
  559. data/ext/third_party/asio/asio/include/asio/execution/set_done.hpp +0 -253
  560. data/ext/third_party/asio/asio/include/asio/execution/set_error.hpp +0 -253
  561. data/ext/third_party/asio/asio/include/asio/execution/set_value.hpp +0 -486
  562. data/ext/third_party/asio/asio/include/asio/execution/start.hpp +0 -250
  563. data/ext/third_party/asio/asio/include/asio/execution/submit.hpp +0 -450
  564. data/ext/third_party/asio/asio/include/asio/execution_context.hpp +0 -412
  565. data/ext/third_party/asio/asio/include/asio/executor.hpp +0 -347
  566. data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +0 -287
  567. data/ext/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +0 -193
  568. data/ext/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +0 -123
  569. data/ext/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +0 -133
  570. data/ext/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +0 -110
  571. data/ext/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +0 -121
  572. data/ext/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +0 -122
  573. data/ext/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +0 -127
  574. data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +0 -104
  575. data/ext/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +0 -54
  576. data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +0 -111
  577. data/ext/third_party/asio/asio/include/asio/high_resolution_timer.hpp +0 -44
  578. data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +0 -436
  579. data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +0 -527
  580. data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +0 -507
  581. data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +0 -298
  582. data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +0 -635
  583. data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +0 -916
  584. data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +0 -248
  585. data/ext/third_party/asio/asio/include/asio/impl/detached.hpp +0 -130
  586. data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +0 -243
  587. data/ext/third_party/asio/asio/include/asio/impl/error.ipp +0 -128
  588. data/ext/third_party/asio/asio/include/asio/impl/error_code.ipp +0 -206
  589. data/ext/third_party/asio/asio/include/asio/impl/execution_context.hpp +0 -109
  590. data/ext/third_party/asio/asio/include/asio/impl/execution_context.ipp +0 -82
  591. data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +0 -301
  592. data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +0 -43
  593. data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +0 -61
  594. data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +0 -440
  595. data/ext/third_party/asio/asio/include/asio/impl/io_context.ipp +0 -175
  596. data/ext/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +0 -49
  597. data/ext/third_party/asio/asio/include/asio/impl/post.hpp +0 -248
  598. data/ext/third_party/asio/asio/include/asio/impl/read.hpp +0 -1202
  599. data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +0 -744
  600. data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +0 -3335
  601. data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +0 -390
  602. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +0 -59
  603. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +0 -554
  604. data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +0 -526
  605. data/ext/third_party/asio/asio/include/asio/impl/src.hpp +0 -85
  606. data/ext/third_party/asio/asio/include/asio/impl/system_context.hpp +0 -34
  607. data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +0 -92
  608. data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +0 -186
  609. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +0 -350
  610. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +0 -141
  611. data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +0 -279
  612. data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +0 -1028
  613. data/ext/third_party/asio/asio/include/asio/impl/write.hpp +0 -1104
  614. data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +0 -666
  615. data/ext/third_party/asio/asio/include/asio/io_context.hpp +0 -1530
  616. data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +0 -376
  617. data/ext/third_party/asio/asio/include/asio/io_service.hpp +0 -33
  618. data/ext/third_party/asio/asio/include/asio/io_service_strand.hpp +0 -20
  619. data/ext/third_party/asio/asio/include/asio/ip/address.hpp +0 -268
  620. data/ext/third_party/asio/asio/include/asio/ip/address_v4.hpp +0 -335
  621. data/ext/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +0 -162
  622. data/ext/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +0 -134
  623. data/ext/third_party/asio/asio/include/asio/ip/address_v6.hpp +0 -341
  624. data/ext/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +0 -183
  625. data/ext/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +0 -129
  626. data/ext/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +0 -53
  627. data/ext/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +0 -264
  628. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +0 -1030
  629. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +0 -113
  630. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +0 -192
  631. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +0 -244
  632. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +0 -311
  633. data/ext/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +0 -141
  634. data/ext/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +0 -199
  635. data/ext/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +0 -566
  636. data/ext/third_party/asio/asio/include/asio/ip/host_name.hpp +0 -42
  637. data/ext/third_party/asio/asio/include/asio/ip/icmp.hpp +0 -115
  638. data/ext/third_party/asio/asio/include/asio/ip/impl/address.hpp +0 -67
  639. data/ext/third_party/asio/asio/include/asio/ip/impl/address.ipp +0 -239
  640. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +0 -67
  641. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +0 -210
  642. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +0 -67
  643. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +0 -350
  644. data/ext/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +0 -43
  645. data/ext/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +0 -54
  646. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +0 -54
  647. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +0 -216
  648. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +0 -53
  649. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +0 -185
  650. data/ext/third_party/asio/asio/include/asio/ip/multicast.hpp +0 -191
  651. data/ext/third_party/asio/asio/include/asio/ip/network_v4.hpp +0 -261
  652. data/ext/third_party/asio/asio/include/asio/ip/network_v6.hpp +0 -235
  653. data/ext/third_party/asio/asio/include/asio/ip/resolver_base.hpp +0 -129
  654. data/ext/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +0 -43
  655. data/ext/third_party/asio/asio/include/asio/ip/tcp.hpp +0 -155
  656. data/ext/third_party/asio/asio/include/asio/ip/udp.hpp +0 -111
  657. data/ext/third_party/asio/asio/include/asio/ip/unicast.hpp +0 -70
  658. data/ext/third_party/asio/asio/include/asio/ip/v6_only.hpp +0 -69
  659. data/ext/third_party/asio/asio/include/asio/is_applicable_property.hpp +0 -61
  660. data/ext/third_party/asio/asio/include/asio/is_executor.hpp +0 -46
  661. data/ext/third_party/asio/asio/include/asio/is_read_buffered.hpp +0 -59
  662. data/ext/third_party/asio/asio/include/asio/is_write_buffered.hpp +0 -59
  663. data/ext/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +0 -247
  664. data/ext/third_party/asio/asio/include/asio/local/connect_pair.hpp +0 -101
  665. data/ext/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +0 -80
  666. data/ext/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +0 -139
  667. data/ext/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +0 -136
  668. data/ext/third_party/asio/asio/include/asio/local/stream_protocol.hpp +0 -90
  669. data/ext/third_party/asio/asio/include/asio/multiple_exceptions.hpp +0 -58
  670. data/ext/third_party/asio/asio/include/asio/packaged_task.hpp +0 -126
  671. data/ext/third_party/asio/asio/include/asio/placeholders.hpp +0 -151
  672. data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +0 -697
  673. data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +0 -470
  674. data/ext/third_party/asio/asio/include/asio/posix/descriptor.hpp +0 -37
  675. data/ext/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +0 -90
  676. data/ext/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +0 -37
  677. data/ext/third_party/asio/asio/include/asio/post.hpp +0 -126
  678. data/ext/third_party/asio/asio/include/asio/prefer.hpp +0 -656
  679. data/ext/third_party/asio/asio/include/asio/query.hpp +0 -296
  680. data/ext/third_party/asio/asio/include/asio/read.hpp +0 -1288
  681. data/ext/third_party/asio/asio/include/asio/read_at.hpp +0 -694
  682. data/ext/third_party/asio/asio/include/asio/read_until.hpp +0 -2863
  683. data/ext/third_party/asio/asio/include/asio/redirect_error.hpp +0 -66
  684. data/ext/third_party/asio/asio/include/asio/require.hpp +0 -524
  685. data/ext/third_party/asio/asio/include/asio/require_concept.hpp +0 -310
  686. data/ext/third_party/asio/asio/include/asio/serial_port.hpp +0 -36
  687. data/ext/third_party/asio/asio/include/asio/serial_port_base.hpp +0 -167
  688. data/ext/third_party/asio/asio/include/asio/signal_set.hpp +0 -28
  689. data/ext/third_party/asio/asio/include/asio/socket_base.hpp +0 -559
  690. data/ext/third_party/asio/asio/include/asio/spawn.hpp +0 -344
  691. data/ext/third_party/asio/asio/include/asio/ssl.hpp +0 -28
  692. data/ext/third_party/asio/asio/include/asio/ssl/context.hpp +0 -761
  693. data/ext/third_party/asio/asio/include/asio/ssl/context_base.hpp +0 -209
  694. data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +0 -119
  695. data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +0 -165
  696. data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +0 -67
  697. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +0 -349
  698. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +0 -165
  699. data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +0 -415
  700. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +0 -101
  701. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +0 -34
  702. data/ext/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +0 -66
  703. data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +0 -72
  704. data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +0 -69
  705. data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +0 -169
  706. data/ext/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +0 -62
  707. data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +0 -76
  708. data/ext/third_party/asio/asio/include/asio/ssl/error.hpp +0 -125
  709. data/ext/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +0 -90
  710. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.hpp +0 -67
  711. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.ipp +0 -1238
  712. data/ext/third_party/asio/asio/include/asio/ssl/impl/error.ipp +0 -102
  713. data/ext/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +0 -73
  714. data/ext/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +0 -164
  715. data/ext/third_party/asio/asio/include/asio/ssl/impl/src.hpp +0 -29
  716. data/ext/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +0 -98
  717. data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +0 -900
  718. data/ext/third_party/asio/asio/include/asio/ssl/stream_base.hpp +0 -52
  719. data/ext/third_party/asio/asio/include/asio/ssl/verify_context.hpp +0 -67
  720. data/ext/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +0 -63
  721. data/ext/third_party/asio/asio/include/asio/static_thread_pool.hpp +0 -31
  722. data/ext/third_party/asio/asio/include/asio/steady_timer.hpp +0 -42
  723. data/ext/third_party/asio/asio/include/asio/strand.hpp +0 -537
  724. data/ext/third_party/asio/asio/include/asio/streambuf.hpp +0 -33
  725. data/ext/third_party/asio/asio/include/asio/system_context.hpp +0 -90
  726. data/ext/third_party/asio/asio/include/asio/system_error.hpp +0 -131
  727. data/ext/third_party/asio/asio/include/asio/system_executor.hpp +0 -662
  728. data/ext/third_party/asio/asio/include/asio/system_timer.hpp +0 -42
  729. data/ext/third_party/asio/asio/include/asio/this_coro.hpp +0 -45
  730. data/ext/third_party/asio/asio/include/asio/thread.hpp +0 -92
  731. data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +0 -1111
  732. data/ext/third_party/asio/asio/include/asio/time_traits.hpp +0 -86
  733. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +0 -114
  734. data/ext/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +0 -114
  735. data/ext/third_party/asio/asio/include/asio/traits/connect_free.hpp +0 -112
  736. data/ext/third_party/asio/asio/include/asio/traits/connect_member.hpp +0 -112
  737. data/ext/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +0 -100
  738. data/ext/third_party/asio/asio/include/asio/traits/execute_free.hpp +0 -108
  739. data/ext/third_party/asio/asio/include/asio/traits/execute_member.hpp +0 -108
  740. data/ext/third_party/asio/asio/include/asio/traits/prefer_free.hpp +0 -108
  741. data/ext/third_party/asio/asio/include/asio/traits/prefer_member.hpp +0 -108
  742. data/ext/third_party/asio/asio/include/asio/traits/query_free.hpp +0 -108
  743. data/ext/third_party/asio/asio/include/asio/traits/query_member.hpp +0 -108
  744. data/ext/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +0 -108
  745. data/ext/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +0 -108
  746. data/ext/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +0 -108
  747. data/ext/third_party/asio/asio/include/asio/traits/require_free.hpp +0 -108
  748. data/ext/third_party/asio/asio/include/asio/traits/require_member.hpp +0 -108
  749. data/ext/third_party/asio/asio/include/asio/traits/schedule_free.hpp +0 -108
  750. data/ext/third_party/asio/asio/include/asio/traits/schedule_member.hpp +0 -108
  751. data/ext/third_party/asio/asio/include/asio/traits/set_done_free.hpp +0 -108
  752. data/ext/third_party/asio/asio/include/asio/traits/set_done_member.hpp +0 -108
  753. data/ext/third_party/asio/asio/include/asio/traits/set_error_free.hpp +0 -112
  754. data/ext/third_party/asio/asio/include/asio/traits/set_error_member.hpp +0 -112
  755. data/ext/third_party/asio/asio/include/asio/traits/set_value_free.hpp +0 -234
  756. data/ext/third_party/asio/asio/include/asio/traits/set_value_member.hpp +0 -234
  757. data/ext/third_party/asio/asio/include/asio/traits/start_free.hpp +0 -108
  758. data/ext/third_party/asio/asio/include/asio/traits/start_member.hpp +0 -108
  759. data/ext/third_party/asio/asio/include/asio/traits/static_query.hpp +0 -108
  760. data/ext/third_party/asio/asio/include/asio/traits/static_require.hpp +0 -123
  761. data/ext/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +0 -123
  762. data/ext/third_party/asio/asio/include/asio/traits/submit_free.hpp +0 -112
  763. data/ext/third_party/asio/asio/include/asio/traits/submit_member.hpp +0 -112
  764. data/ext/third_party/asio/asio/include/asio/ts/buffer.hpp +0 -24
  765. data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +0 -35
  766. data/ext/third_party/asio/asio/include/asio/ts/internet.hpp +0 -40
  767. data/ext/third_party/asio/asio/include/asio/ts/io_context.hpp +0 -20
  768. data/ext/third_party/asio/asio/include/asio/ts/net.hpp +0 -26
  769. data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +0 -262
  770. data/ext/third_party/asio/asio/include/asio/ts/socket.hpp +0 -27
  771. data/ext/third_party/asio/asio/include/asio/ts/timer.hpp +0 -26
  772. data/ext/third_party/asio/asio/include/asio/unyield.hpp +0 -21
  773. data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +0 -169
  774. data/ext/third_party/asio/asio/include/asio/use_future.hpp +0 -160
  775. data/ext/third_party/asio/asio/include/asio/uses_executor.hpp +0 -71
  776. data/ext/third_party/asio/asio/include/asio/version.hpp +0 -23
  777. data/ext/third_party/asio/asio/include/asio/wait_traits.hpp +0 -56
  778. data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +0 -435
  779. data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +0 -361
  780. data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +0 -490
  781. data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +0 -474
  782. data/ext/third_party/asio/asio/include/asio/windows/object_handle.hpp +0 -38
  783. data/ext/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +0 -39
  784. data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +0 -145
  785. data/ext/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +0 -37
  786. data/ext/third_party/asio/asio/include/asio/windows/stream_handle.hpp +0 -37
  787. data/ext/third_party/asio/asio/include/asio/write.hpp +0 -1246
  788. data/ext/third_party/asio/asio/include/asio/write_at.hpp +0 -702
  789. data/ext/third_party/asio/asio/include/asio/yield.hpp +0 -23
  790. data/ext/third_party/gsl/CMakeLists.txt +0 -127
  791. data/ext/third_party/gsl/LICENSE +0 -21
  792. data/ext/third_party/gsl/ThirdPartyNotices.txt +0 -41
  793. data/ext/third_party/gsl/include/gsl/gsl +0 -29
  794. data/ext/third_party/gsl/include/gsl/gsl_algorithm +0 -61
  795. data/ext/third_party/gsl/include/gsl/gsl_assert +0 -133
  796. data/ext/third_party/gsl/include/gsl/gsl_byte +0 -209
  797. data/ext/third_party/gsl/include/gsl/gsl_narrow +0 -52
  798. data/ext/third_party/gsl/include/gsl/gsl_util +0 -129
  799. data/ext/third_party/gsl/include/gsl/multi_span +0 -2263
  800. data/ext/third_party/gsl/include/gsl/pointers +0 -287
  801. data/ext/third_party/gsl/include/gsl/span +0 -816
  802. data/ext/third_party/gsl/include/gsl/span_ext +0 -198
  803. data/ext/third_party/gsl/include/gsl/string_span +0 -706
  804. data/ext/third_party/http_parser/LICENSE-MIT +0 -19
  805. data/ext/third_party/http_parser/http_parser.c +0 -2575
  806. data/ext/third_party/http_parser/http_parser.h +0 -449
  807. data/ext/third_party/json/CMakeLists.txt +0 -44
  808. data/ext/third_party/json/LICENSE +0 -21
  809. data/ext/third_party/json/LICENSE.double-conversion +0 -32
  810. data/ext/third_party/json/LICENSE.itoa +0 -19
  811. data/ext/third_party/json/LICENSE.ryu +0 -201
  812. data/ext/third_party/json/include/tao/json.hpp +0 -45
  813. data/ext/third_party/json/include/tao/json/basic_value.hpp +0 -942
  814. data/ext/third_party/json/include/tao/json/binary.hpp +0 -103
  815. data/ext/third_party/json/include/tao/json/binary_view.hpp +0 -31
  816. data/ext/third_party/json/include/tao/json/binding.hpp +0 -71
  817. data/ext/third_party/json/include/tao/json/binding/constant.hpp +0 -232
  818. data/ext/third_party/json/include/tao/json/binding/element.hpp +0 -182
  819. data/ext/third_party/json/include/tao/json/binding/factory.hpp +0 -251
  820. data/ext/third_party/json/include/tao/json/binding/for_nothing_value.hpp +0 -17
  821. data/ext/third_party/json/include/tao/json/binding/for_unknown_key.hpp +0 -17
  822. data/ext/third_party/json/include/tao/json/binding/inherit.hpp +0 -14
  823. data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +0 -104
  824. data/ext/third_party/json/include/tao/json/binding/internal/inherit.hpp +0 -45
  825. data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +0 -268
  826. data/ext/third_party/json/include/tao/json/binding/internal/type_key.hpp +0 -54
  827. data/ext/third_party/json/include/tao/json/binding/member.hpp +0 -32
  828. data/ext/third_party/json/include/tao/json/binding/member_kind.hpp +0 -17
  829. data/ext/third_party/json/include/tao/json/binding/versions.hpp +0 -129
  830. data/ext/third_party/json/include/tao/json/cbor.hpp +0 -19
  831. data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +0 -34
  832. data/ext/third_party/json/include/tao/json/cbor/consume_string.hpp +0 -32
  833. data/ext/third_party/json/include/tao/json/cbor/events/from_binary.hpp +0 -43
  834. data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +0 -27
  835. data/ext/third_party/json/include/tao/json/cbor/events/from_input.hpp +0 -43
  836. data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +0 -37
  837. data/ext/third_party/json/include/tao/json/cbor/events/to_stream.hpp +0 -161
  838. data/ext/third_party/json/include/tao/json/cbor/events/to_string.hpp +0 -31
  839. data/ext/third_party/json/include/tao/json/cbor/from_binary.hpp +0 -32
  840. data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +0 -33
  841. data/ext/third_party/json/include/tao/json/cbor/from_input.hpp +0 -33
  842. data/ext/third_party/json/include/tao/json/cbor/from_string.hpp +0 -32
  843. data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +0 -418
  844. data/ext/third_party/json/include/tao/json/cbor/internal/major.hpp +0 -28
  845. data/ext/third_party/json/include/tao/json/cbor/parts_parser.hpp +0 -392
  846. data/ext/third_party/json/include/tao/json/cbor/to_stream.hpp +0 -27
  847. data/ext/third_party/json/include/tao/json/cbor/to_string.hpp +0 -28
  848. data/ext/third_party/json/include/tao/json/consume.hpp +0 -43
  849. data/ext/third_party/json/include/tao/json/consume_file.hpp +0 -33
  850. data/ext/third_party/json/include/tao/json/consume_string.hpp +0 -31
  851. data/ext/third_party/json/include/tao/json/contrib/array_traits.hpp +0 -43
  852. data/ext/third_party/json/include/tao/json/contrib/deque_traits.hpp +0 -41
  853. data/ext/third_party/json/include/tao/json/contrib/diff.hpp +0 -106
  854. data/ext/third_party/json/include/tao/json/contrib/get.hpp +0 -152
  855. data/ext/third_party/json/include/tao/json/contrib/internal/array_traits.hpp +0 -92
  856. data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +0 -76
  857. data/ext/third_party/json/include/tao/json/contrib/internal/object_traits.hpp +0 -105
  858. data/ext/third_party/json/include/tao/json/contrib/internal/type_traits.hpp +0 -36
  859. data/ext/third_party/json/include/tao/json/contrib/list_traits.hpp +0 -41
  860. data/ext/third_party/json/include/tao/json/contrib/map_traits.hpp +0 -43
  861. data/ext/third_party/json/include/tao/json/contrib/multimap_traits.hpp +0 -43
  862. data/ext/third_party/json/include/tao/json/contrib/multiset_traits.hpp +0 -41
  863. data/ext/third_party/json/include/tao/json/contrib/pair_traits.hpp +0 -21
  864. data/ext/third_party/json/include/tao/json/contrib/patch.hpp +0 -105
  865. data/ext/third_party/json/include/tao/json/contrib/pointer_traits.hpp +0 -59
  866. data/ext/third_party/json/include/tao/json/contrib/position.hpp +0 -166
  867. data/ext/third_party/json/include/tao/json/contrib/reference.hpp +0 -113
  868. data/ext/third_party/json/include/tao/json/contrib/schema.hpp +0 -1874
  869. data/ext/third_party/json/include/tao/json/contrib/set_traits.hpp +0 -41
  870. data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +0 -98
  871. data/ext/third_party/json/include/tao/json/contrib/traits.hpp +0 -121
  872. data/ext/third_party/json/include/tao/json/contrib/tuple_traits.hpp +0 -51
  873. data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +0 -97
  874. data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +0 -43
  875. data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +0 -41
  876. data/ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp +0 -45
  877. data/ext/third_party/json/include/tao/json/contrib/vector_traits.hpp +0 -51
  878. data/ext/third_party/json/include/tao/json/events.hpp +0 -47
  879. data/ext/third_party/json/include/tao/json/events/apply.hpp +0 -20
  880. data/ext/third_party/json/include/tao/json/events/binary_to_base64.hpp +0 -26
  881. data/ext/third_party/json/include/tao/json/events/binary_to_base64url.hpp +0 -28
  882. data/ext/third_party/json/include/tao/json/events/binary_to_exception.hpp +0 -27
  883. data/ext/third_party/json/include/tao/json/events/binary_to_hex.hpp +0 -26
  884. data/ext/third_party/json/include/tao/json/events/compare.hpp +0 -255
  885. data/ext/third_party/json/include/tao/json/events/debug.hpp +0 -145
  886. data/ext/third_party/json/include/tao/json/events/discard.hpp +0 -43
  887. data/ext/third_party/json/include/tao/json/events/from_file.hpp +0 -28
  888. data/ext/third_party/json/include/tao/json/events/from_input.hpp +0 -45
  889. data/ext/third_party/json/include/tao/json/events/from_stream.hpp +0 -33
  890. data/ext/third_party/json/include/tao/json/events/from_string.hpp +0 -38
  891. data/ext/third_party/json/include/tao/json/events/from_value.hpp +0 -202
  892. data/ext/third_party/json/include/tao/json/events/hash.hpp +0 -174
  893. data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +0 -50
  894. data/ext/third_party/json/include/tao/json/events/invalid_string_to_exception.hpp +0 -49
  895. data/ext/third_party/json/include/tao/json/events/invalid_string_to_hex.hpp +0 -48
  896. data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +0 -62
  897. data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +0 -57
  898. data/ext/third_party/json/include/tao/json/events/limit_nesting_depth.hpp +0 -82
  899. data/ext/third_party/json/include/tao/json/events/limit_value_count.hpp +0 -46
  900. data/ext/third_party/json/include/tao/json/events/non_finite_to_exception.hpp +0 -31
  901. data/ext/third_party/json/include/tao/json/events/non_finite_to_null.hpp +0 -32
  902. data/ext/third_party/json/include/tao/json/events/non_finite_to_string.hpp +0 -40
  903. data/ext/third_party/json/include/tao/json/events/prefer_signed.hpp +0 -32
  904. data/ext/third_party/json/include/tao/json/events/prefer_unsigned.hpp +0 -32
  905. data/ext/third_party/json/include/tao/json/events/produce.hpp +0 -22
  906. data/ext/third_party/json/include/tao/json/events/ref.hpp +0 -111
  907. data/ext/third_party/json/include/tao/json/events/statistics.hpp +0 -112
  908. data/ext/third_party/json/include/tao/json/events/tee.hpp +0 -386
  909. data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +0 -172
  910. data/ext/third_party/json/include/tao/json/events/to_stream.hpp +0 -142
  911. data/ext/third_party/json/include/tao/json/events/to_string.hpp +0 -33
  912. data/ext/third_party/json/include/tao/json/events/to_value.hpp +0 -137
  913. data/ext/third_party/json/include/tao/json/events/transformer.hpp +0 -70
  914. data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +0 -411
  915. data/ext/third_party/json/include/tao/json/events/validate_keys.hpp +0 -51
  916. data/ext/third_party/json/include/tao/json/events/virtual_base.hpp +0 -192
  917. data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +0 -176
  918. data/ext/third_party/json/include/tao/json/external/double.hpp +0 -1313
  919. data/ext/third_party/json/include/tao/json/external/itoa.hpp +0 -149
  920. data/ext/third_party/json/include/tao/json/external/pegtl.hpp +0 -44
  921. data/ext/third_party/json/include/tao/json/external/pegtl/apply_mode.hpp +0 -19
  922. data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +0 -49
  923. data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +0 -54
  924. data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +0 -212
  925. data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +0 -38
  926. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +0 -53
  927. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +0 -62
  928. data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +0 -36
  929. data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +0 -50
  930. data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +0 -61
  931. data/ext/third_party/json/include/tao/json/external/pegtl/config.hpp +0 -11
  932. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/abnf.hpp +0 -35
  933. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +0 -67
  934. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze.hpp +0 -176
  935. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/analyze_traits.hpp +0 -275
  936. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/control_action.hpp +0 -77
  937. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/coverage.hpp +0 -151
  938. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/forward.hpp +0 -16
  939. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +0 -272
  940. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +0 -66
  941. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +0 -196
  942. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +0 -196
  943. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +0 -103
  944. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +0 -56
  945. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +0 -431
  946. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian.hpp +0 -62
  947. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian_gcc.hpp +0 -206
  948. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/endian_win.hpp +0 -106
  949. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_mask_uint.hpp +0 -54
  950. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_mask_uint8.hpp +0 -33
  951. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_uint.hpp +0 -45
  952. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_uint8.hpp +0 -32
  953. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_utf16.hpp +0 -54
  954. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/peek_utf32.hpp +0 -43
  955. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/read_uint.hpp +0 -77
  956. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/internal/set_stack_guard.hpp +0 -52
  957. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json.hpp +0 -88
  958. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json_pointer.hpp +0 -33
  959. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +0 -440
  960. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +0 -105
  961. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print.hpp +0 -75
  962. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/print_coverage.hpp +0 -53
  963. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +0 -234
  964. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +0 -69
  965. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_last_states.hpp +0 -117
  966. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +0 -94
  967. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +0 -43
  968. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/shuffle_states.hpp +0 -193
  969. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/state_control.hpp +0 -118
  970. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/to_string.hpp +0 -38
  971. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/trace.hpp +0 -227
  972. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint16.hpp +0 -62
  973. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint32.hpp +0 -62
  974. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint64.hpp +0 -63
  975. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uint8.hpp +0 -36
  976. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +0 -199
  977. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +0 -106
  978. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/utf16.hpp +0 -49
  979. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/utf32.hpp +0 -49
  980. data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +0 -32
  981. data/ext/third_party/json/include/tao/json/external/pegtl/demangle.hpp +0 -138
  982. data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +0 -35
  983. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +0 -37
  984. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +0 -39
  985. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +0 -39
  986. data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +0 -35
  987. data/ext/third_party/json/include/tao/json/external/pegtl/eol.hpp +0 -37
  988. data/ext/third_party/json/include/tao/json/external/pegtl/eol_pair.hpp +0 -18
  989. data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +0 -44
  990. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +0 -54
  991. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +0 -106
  992. data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +0 -58
  993. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +0 -53
  994. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +0 -51
  995. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0_single.hpp +0 -34
  996. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +0 -34
  997. data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +0 -55
  998. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +0 -32
  999. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +0 -31
  1000. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +0 -45
  1001. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +0 -29
  1002. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +0 -43
  1003. data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +0 -54
  1004. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +0 -32
  1005. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +0 -32
  1006. data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +0 -32
  1007. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +0 -49
  1008. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstring_reader.hpp +0 -40
  1009. data/ext/third_party/json/include/tao/json/external/pegtl/internal/dependent_false.hpp +0 -16
  1010. data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +0 -54
  1011. data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +0 -34
  1012. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +0 -54
  1013. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable_control.hpp +0 -25
  1014. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +0 -32
  1015. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +0 -32
  1016. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +0 -33
  1017. data/ext/third_party/json/include/tao/json/external/pegtl/internal/failure.hpp +0 -32
  1018. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +0 -134
  1019. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +0 -213
  1020. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +0 -117
  1021. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +0 -21
  1022. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +0 -21
  1023. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +0 -40
  1024. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_unwind.hpp +0 -21
  1025. data/ext/third_party/json/include/tao/json/external/pegtl/internal/identifier.hpp +0 -22
  1026. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +0 -54
  1027. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +0 -47
  1028. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +0 -21
  1029. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +0 -51
  1030. data/ext/third_party/json/include/tao/json/external/pegtl/internal/input_pair.hpp +0 -29
  1031. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +0 -39
  1032. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +0 -72
  1033. data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +0 -49
  1034. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +0 -37
  1035. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +0 -32
  1036. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list.hpp +0 -19
  1037. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_must.hpp +0 -20
  1038. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +0 -22
  1039. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +0 -22
  1040. data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +0 -80
  1041. data/ext/third_party/json/include/tao/json/external/pegtl/internal/minus.hpp +0 -21
  1042. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +0 -28
  1043. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +0 -26
  1044. data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +0 -64
  1045. data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +0 -55
  1046. data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +0 -55
  1047. data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +0 -57
  1048. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad.hpp +0 -19
  1049. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad_opt.hpp +0 -20
  1050. data/ext/third_party/json/include/tao/json/external/pegtl/internal/path_to_string.hpp +0 -26
  1051. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +0 -32
  1052. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +0 -89
  1053. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pegtl_string.hpp +0 -90
  1054. data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +0 -60
  1055. data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +0 -44
  1056. data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +0 -56
  1057. data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +0 -103
  1058. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +0 -72
  1059. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +0 -67
  1060. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min.hpp +0 -20
  1061. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +0 -81
  1062. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +0 -61
  1063. data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +0 -42
  1064. data/ext/third_party/json/include/tao/json/external/pegtl/internal/result_on_found.hpp +0 -19
  1065. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +0 -61
  1066. data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +0 -58
  1067. data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +0 -67
  1068. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +0 -52
  1069. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star_must.hpp +0 -19
  1070. data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +0 -59
  1071. data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +0 -58
  1072. data/ext/third_party/json/include/tao/json/external/pegtl/internal/success.hpp +0 -32
  1073. data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +0 -64
  1074. data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +0 -88
  1075. data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +0 -32
  1076. data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +0 -169
  1077. data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +0 -365
  1078. data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +0 -79
  1079. data/ext/third_party/json/include/tao/json/external/pegtl/must_if.hpp +0 -64
  1080. data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +0 -87
  1081. data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +0 -19
  1082. data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +0 -51
  1083. data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +0 -114
  1084. data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +0 -83
  1085. data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +0 -54
  1086. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply.hpp +0 -16
  1087. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply0.hpp +0 -16
  1088. data/ext/third_party/json/include/tao/json/external/pegtl/rewind_mode.hpp +0 -20
  1089. data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +0 -68
  1090. data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +0 -64
  1091. data/ext/third_party/json/include/tao/json/external/pegtl/tracking_mode.hpp +0 -19
  1092. data/ext/third_party/json/include/tao/json/external/pegtl/type_list.hpp +0 -46
  1093. data/ext/third_party/json/include/tao/json/external/pegtl/utf8.hpp +0 -28
  1094. data/ext/third_party/json/include/tao/json/external/pegtl/version.hpp +0 -13
  1095. data/ext/third_party/json/include/tao/json/external/pegtl/visit.hpp +0 -66
  1096. data/ext/third_party/json/include/tao/json/external/ryu.hpp +0 -1216
  1097. data/ext/third_party/json/include/tao/json/forward.hpp +0 -44
  1098. data/ext/third_party/json/include/tao/json/from_file.hpp +0 -32
  1099. data/ext/third_party/json/include/tao/json/from_input.hpp +0 -32
  1100. data/ext/third_party/json/include/tao/json/from_stream.hpp +0 -45
  1101. data/ext/third_party/json/include/tao/json/from_string.hpp +0 -41
  1102. data/ext/third_party/json/include/tao/json/internal/action.hpp +0 -268
  1103. data/ext/third_party/json/include/tao/json/internal/base64.hpp +0 -55
  1104. data/ext/third_party/json/include/tao/json/internal/base64url.hpp +0 -53
  1105. data/ext/third_party/json/include/tao/json/internal/dependent_false.hpp +0 -14
  1106. data/ext/third_party/json/include/tao/json/internal/endian.hpp +0 -60
  1107. data/ext/third_party/json/include/tao/json/internal/endian_gcc.hpp +0 -198
  1108. data/ext/third_party/json/include/tao/json/internal/endian_win.hpp +0 -103
  1109. data/ext/third_party/json/include/tao/json/internal/errors.hpp +0 -85
  1110. data/ext/third_party/json/include/tao/json/internal/escape.hpp +0 -77
  1111. data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -57
  1112. data/ext/third_party/json/include/tao/json/internal/grammar.hpp +0 -229
  1113. data/ext/third_party/json/include/tao/json/internal/hexdump.hpp +0 -31
  1114. data/ext/third_party/json/include/tao/json/internal/identity.hpp +0 -22
  1115. data/ext/third_party/json/include/tao/json/internal/number_state.hpp +0 -80
  1116. data/ext/third_party/json/include/tao/json/internal/number_traits.hpp +0 -267
  1117. data/ext/third_party/json/include/tao/json/internal/pair.hpp +0 -42
  1118. data/ext/third_party/json/include/tao/json/internal/parse_util.hpp +0 -112
  1119. data/ext/third_party/json/include/tao/json/internal/sha256.hpp +0 -218
  1120. data/ext/third_party/json/include/tao/json/internal/single.hpp +0 -40
  1121. data/ext/third_party/json/include/tao/json/internal/string_t.hpp +0 -35
  1122. data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +0 -96
  1123. data/ext/third_party/json/include/tao/json/internal/unescape_action.hpp +0 -24
  1124. data/ext/third_party/json/include/tao/json/internal/uri_fragment.hpp +0 -182
  1125. data/ext/third_party/json/include/tao/json/jaxn.hpp +0 -19
  1126. data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +0 -34
  1127. data/ext/third_party/json/include/tao/json/jaxn/consume_string.hpp +0 -32
  1128. data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +0 -28
  1129. data/ext/third_party/json/include/tao/json/jaxn/events/from_input.hpp +0 -45
  1130. data/ext/third_party/json/include/tao/json/jaxn/events/from_stream.hpp +0 -33
  1131. data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +0 -39
  1132. data/ext/third_party/json/include/tao/json/jaxn/events/to_pretty_stream.hpp +0 -69
  1133. data/ext/third_party/json/include/tao/json/jaxn/events/to_stream.hpp +0 -67
  1134. data/ext/third_party/json/include/tao/json/jaxn/events/to_string.hpp +0 -33
  1135. data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +0 -33
  1136. data/ext/third_party/json/include/tao/json/jaxn/from_input.hpp +0 -33
  1137. data/ext/third_party/json/include/tao/json/jaxn/from_stream.hpp +0 -48
  1138. data/ext/third_party/json/include/tao/json/jaxn/from_string.hpp +0 -42
  1139. data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +0 -355
  1140. data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +0 -114
  1141. data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +0 -108
  1142. data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +0 -375
  1143. data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +0 -255
  1144. data/ext/third_party/json/include/tao/json/jaxn/internal/unescape_action.hpp +0 -28
  1145. data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +0 -27
  1146. data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +0 -261
  1147. data/ext/third_party/json/include/tao/json/jaxn/to_stream.hpp +0 -36
  1148. data/ext/third_party/json/include/tao/json/jaxn/to_string.hpp +0 -33
  1149. data/ext/third_party/json/include/tao/json/message_extension.hpp +0 -49
  1150. data/ext/third_party/json/include/tao/json/msgpack.hpp +0 -19
  1151. data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +0 -34
  1152. data/ext/third_party/json/include/tao/json/msgpack/consume_string.hpp +0 -32
  1153. data/ext/third_party/json/include/tao/json/msgpack/events/from_binary.hpp +0 -43
  1154. data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +0 -27
  1155. data/ext/third_party/json/include/tao/json/msgpack/events/from_input.hpp +0 -43
  1156. data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +0 -37
  1157. data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +0 -214
  1158. data/ext/third_party/json/include/tao/json/msgpack/events/to_string.hpp +0 -31
  1159. data/ext/third_party/json/include/tao/json/msgpack/from_binary.hpp +0 -32
  1160. data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +0 -33
  1161. data/ext/third_party/json/include/tao/json/msgpack/from_input.hpp +0 -33
  1162. data/ext/third_party/json/include/tao/json/msgpack/from_string.hpp +0 -32
  1163. data/ext/third_party/json/include/tao/json/msgpack/internal/format.hpp +0 -57
  1164. data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +0 -250
  1165. data/ext/third_party/json/include/tao/json/msgpack/parts_parser.hpp +0 -311
  1166. data/ext/third_party/json/include/tao/json/msgpack/to_stream.hpp +0 -27
  1167. data/ext/third_party/json/include/tao/json/msgpack/to_string.hpp +0 -28
  1168. data/ext/third_party/json/include/tao/json/operators.hpp +0 -490
  1169. data/ext/third_party/json/include/tao/json/parts_parser.hpp +0 -302
  1170. data/ext/third_party/json/include/tao/json/pointer.hpp +0 -432
  1171. data/ext/third_party/json/include/tao/json/produce.hpp +0 -61
  1172. data/ext/third_party/json/include/tao/json/self_contained.hpp +0 -131
  1173. data/ext/third_party/json/include/tao/json/span.hpp +0 -496
  1174. data/ext/third_party/json/include/tao/json/stream.hpp +0 -38
  1175. data/ext/third_party/json/include/tao/json/to_stream.hpp +0 -42
  1176. data/ext/third_party/json/include/tao/json/to_string.hpp +0 -23
  1177. data/ext/third_party/json/include/tao/json/traits.hpp +0 -971
  1178. data/ext/third_party/json/include/tao/json/type.hpp +0 -112
  1179. data/ext/third_party/json/include/tao/json/ubjson.hpp +0 -19
  1180. data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +0 -34
  1181. data/ext/third_party/json/include/tao/json/ubjson/consume_string.hpp +0 -32
  1182. data/ext/third_party/json/include/tao/json/ubjson/events/from_binary.hpp +0 -43
  1183. data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +0 -27
  1184. data/ext/third_party/json/include/tao/json/ubjson/events/from_input.hpp +0 -43
  1185. data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +0 -37
  1186. data/ext/third_party/json/include/tao/json/ubjson/events/to_stream.hpp +0 -174
  1187. data/ext/third_party/json/include/tao/json/ubjson/events/to_string.hpp +0 -31
  1188. data/ext/third_party/json/include/tao/json/ubjson/from_binary.hpp +0 -32
  1189. data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +0 -33
  1190. data/ext/third_party/json/include/tao/json/ubjson/from_input.hpp +0 -33
  1191. data/ext/third_party/json/include/tao/json/ubjson/from_string.hpp +0 -32
  1192. data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +0 -415
  1193. data/ext/third_party/json/include/tao/json/ubjson/internal/marker.hpp +0 -46
  1194. data/ext/third_party/json/include/tao/json/ubjson/parts_parser.hpp +0 -393
  1195. data/ext/third_party/json/include/tao/json/ubjson/to_stream.hpp +0 -28
  1196. data/ext/third_party/json/include/tao/json/ubjson/to_string.hpp +0 -29
  1197. data/ext/third_party/json/include/tao/json/utf8.hpp +0 -57
  1198. data/ext/third_party/json/include/tao/json/value.hpp +0 -12
  1199. data/ext/third_party/snappy/CMakeLists.txt +0 -345
  1200. data/ext/third_party/snappy/COPYING +0 -54
  1201. data/ext/third_party/snappy/cmake/SnappyConfig.cmake.in +0 -33
  1202. data/ext/third_party/snappy/cmake/config.h.in +0 -59
  1203. data/ext/third_party/snappy/snappy-c.cc +0 -90
  1204. data/ext/third_party/snappy/snappy-c.h +0 -138
  1205. data/ext/third_party/snappy/snappy-internal.h +0 -315
  1206. data/ext/third_party/snappy/snappy-sinksource.cc +0 -121
  1207. data/ext/third_party/snappy/snappy-sinksource.h +0 -182
  1208. data/ext/third_party/snappy/snappy-stubs-internal.cc +0 -42
  1209. data/ext/third_party/snappy/snappy-stubs-internal.h +0 -493
  1210. data/ext/third_party/snappy/snappy-stubs-public.h.in +0 -63
  1211. data/ext/third_party/snappy/snappy.cc +0 -1774
  1212. data/ext/third_party/snappy/snappy.h +0 -209
  1213. data/ext/third_party/spdlog/CMakeLists.txt +0 -291
  1214. data/ext/third_party/spdlog/LICENSE +0 -26
  1215. data/ext/third_party/spdlog/cmake/ide.cmake +0 -18
  1216. data/ext/third_party/spdlog/cmake/pch.h.in +0 -258
  1217. data/ext/third_party/spdlog/cmake/spdlog.pc.in +0 -13
  1218. data/ext/third_party/spdlog/cmake/spdlogCPack.cmake +0 -46
  1219. data/ext/third_party/spdlog/cmake/spdlogConfig.cmake.in +0 -15
  1220. data/ext/third_party/spdlog/cmake/utils.cmake +0 -61
  1221. data/ext/third_party/spdlog/cmake/version.rc.in +0 -42
  1222. data/ext/third_party/spdlog/include/spdlog/async.h +0 -93
  1223. data/ext/third_party/spdlog/include/spdlog/async_logger-inl.h +0 -92
  1224. data/ext/third_party/spdlog/include/spdlog/async_logger.h +0 -68
  1225. data/ext/third_party/spdlog/include/spdlog/cfg/argv.h +0 -44
  1226. data/ext/third_party/spdlog/include/spdlog/cfg/env.h +0 -38
  1227. data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +0 -119
  1228. data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +0 -29
  1229. data/ext/third_party/spdlog/include/spdlog/common-inl.h +0 -76
  1230. data/ext/third_party/spdlog/include/spdlog/common.h +0 -245
  1231. data/ext/third_party/spdlog/include/spdlog/details/backtracer-inl.h +0 -69
  1232. data/ext/third_party/spdlog/include/spdlog/details/backtracer.h +0 -45
  1233. data/ext/third_party/spdlog/include/spdlog/details/circular_q.h +0 -141
  1234. data/ext/third_party/spdlog/include/spdlog/details/console_globals.h +0 -32
  1235. data/ext/third_party/spdlog/include/spdlog/details/file_helper-inl.h +0 -132
  1236. data/ext/third_party/spdlog/include/spdlog/details/file_helper.h +0 -59
  1237. data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +0 -116
  1238. data/ext/third_party/spdlog/include/spdlog/details/log_msg-inl.h +0 -37
  1239. data/ext/third_party/spdlog/include/spdlog/details/log_msg.h +0 -36
  1240. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -58
  1241. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer.h +0 -33
  1242. data/ext/third_party/spdlog/include/spdlog/details/mpmc_blocking_q.h +0 -120
  1243. data/ext/third_party/spdlog/include/spdlog/details/null_mutex.h +0 -49
  1244. data/ext/third_party/spdlog/include/spdlog/details/os-inl.h +0 -554
  1245. data/ext/third_party/spdlog/include/spdlog/details/os.h +0 -111
  1246. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -49
  1247. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker.h +0 -40
  1248. data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +0 -313
  1249. data/ext/third_party/spdlog/include/spdlog/details/registry.h +0 -115
  1250. data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +0 -24
  1251. data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +0 -175
  1252. data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +0 -146
  1253. data/ext/third_party/spdlog/include/spdlog/details/thread_pool-inl.h +0 -124
  1254. data/ext/third_party/spdlog/include/spdlog/details/thread_pool.h +0 -120
  1255. data/ext/third_party/spdlog/include/spdlog/details/windows_include.h +0 -11
  1256. data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -216
  1257. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/LICENSE.rst +0 -27
  1258. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -1123
  1259. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +0 -566
  1260. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +0 -665
  1261. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +0 -1882
  1262. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1453
  1263. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +0 -3729
  1264. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +0 -78
  1265. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/os.h +0 -450
  1266. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -167
  1267. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +0 -2
  1268. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +0 -751
  1269. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -386
  1270. data/ext/third_party/spdlog/include/spdlog/fmt/chrono.h +0 -20
  1271. data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +0 -27
  1272. data/ext/third_party/spdlog/include/spdlog/fmt/ostr.h +0 -20
  1273. data/ext/third_party/spdlog/include/spdlog/formatter.h +0 -18
  1274. data/ext/third_party/spdlog/include/spdlog/fwd.h +0 -14
  1275. data/ext/third_party/spdlog/include/spdlog/logger-inl.h +0 -257
  1276. data/ext/third_party/spdlog/include/spdlog/logger.h +0 -366
  1277. data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +0 -1373
  1278. data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +0 -126
  1279. data/ext/third_party/spdlog/include/spdlog/sinks/android_sink.h +0 -119
  1280. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -143
  1281. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink.h +0 -118
  1282. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -63
  1283. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink.h +0 -52
  1284. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -43
  1285. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -58
  1286. data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +0 -204
  1287. data/ext/third_party/spdlog/include/spdlog/sinks/dist_sink.h +0 -97
  1288. data/ext/third_party/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -90
  1289. data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +0 -49
  1290. data/ext/third_party/spdlog/include/spdlog/sinks/null_sink.h +0 -44
  1291. data/ext/third_party/spdlog/include/spdlog/sinks/ostream_sink.h +0 -50
  1292. data/ext/third_party/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -74
  1293. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +0 -131
  1294. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -78
  1295. data/ext/third_party/spdlog/include/spdlog/sinks/sink-inl.h +0 -25
  1296. data/ext/third_party/spdlog/include/spdlog/sinks/sink.h +0 -35
  1297. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -38
  1298. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -45
  1299. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -123
  1300. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -87
  1301. data/ext/third_party/spdlog/include/spdlog/sinks/syslog_sink.h +0 -109
  1302. data/ext/third_party/spdlog/include/spdlog/sinks/systemd_sink.h +0 -103
  1303. data/ext/third_party/spdlog/include/spdlog/sinks/tcp_sink.h +0 -81
  1304. data/ext/third_party/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -266
  1305. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +0 -170
  1306. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -94
  1307. data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +0 -125
  1308. data/ext/third_party/spdlog/include/spdlog/spdlog.h +0 -295
  1309. data/ext/third_party/spdlog/include/spdlog/stopwatch.h +0 -61
  1310. data/ext/third_party/spdlog/include/spdlog/tweakme.h +0 -116
  1311. data/ext/third_party/spdlog/include/spdlog/version.h +0 -10
  1312. data/ext/third_party/spdlog/src/async.cpp +0 -13
  1313. data/ext/third_party/spdlog/src/cfg.cpp +0 -8
  1314. data/ext/third_party/spdlog/src/color_sinks.cpp +0 -51
  1315. data/ext/third_party/spdlog/src/file_sinks.cpp +0 -20
  1316. data/ext/third_party/spdlog/src/fmt.cpp +0 -63
  1317. data/ext/third_party/spdlog/src/spdlog.cpp +0 -26
  1318. data/ext/third_party/spdlog/src/stdout_sinks.cpp +0 -29
@@ -1,2496 +0,0 @@
1
- //
2
- // buffer.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_BUFFER_HPP
12
- #define ASIO_BUFFER_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 <cstring>
21
- #include <limits>
22
- #include <stdexcept>
23
- #include <string>
24
- #include <vector>
25
- #include "asio/detail/array_fwd.hpp"
26
- #include "asio/detail/memory.hpp"
27
- #include "asio/detail/string_view.hpp"
28
- #include "asio/detail/throw_exception.hpp"
29
- #include "asio/detail/type_traits.hpp"
30
-
31
- #if defined(ASIO_MSVC) && (ASIO_MSVC >= 1700)
32
- # if defined(_HAS_ITERATOR_DEBUGGING) && (_HAS_ITERATOR_DEBUGGING != 0)
33
- # if !defined(ASIO_DISABLE_BUFFER_DEBUGGING)
34
- # define ASIO_ENABLE_BUFFER_DEBUGGING
35
- # endif // !defined(ASIO_DISABLE_BUFFER_DEBUGGING)
36
- # endif // defined(_HAS_ITERATOR_DEBUGGING)
37
- #endif // defined(ASIO_MSVC) && (ASIO_MSVC >= 1700)
38
-
39
- #if defined(__GNUC__)
40
- # if defined(_GLIBCXX_DEBUG)
41
- # if !defined(ASIO_DISABLE_BUFFER_DEBUGGING)
42
- # define ASIO_ENABLE_BUFFER_DEBUGGING
43
- # endif // !defined(ASIO_DISABLE_BUFFER_DEBUGGING)
44
- # endif // defined(_GLIBCXX_DEBUG)
45
- #endif // defined(__GNUC__)
46
-
47
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
48
- # include "asio/detail/functional.hpp"
49
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
50
-
51
- #if defined(ASIO_HAS_BOOST_WORKAROUND)
52
- # include <boost/detail/workaround.hpp>
53
- # if !defined(__clang__)
54
- # if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
55
- # define ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND
56
- # endif // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
57
- # elif BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
58
- # define ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND
59
- # endif // BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
60
- #endif // defined(ASIO_HAS_BOOST_WORKAROUND)
61
-
62
- #if defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND)
63
- # include "asio/detail/type_traits.hpp"
64
- #endif // defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND)
65
-
66
- #include "asio/detail/push_options.hpp"
67
-
68
- namespace asio {
69
-
70
- class mutable_buffer;
71
- class const_buffer;
72
-
73
- /// Holds a buffer that can be modified.
74
- /**
75
- * The mutable_buffer class provides a safe representation of a buffer that can
76
- * be modified. It does not own the underlying data, and so is cheap to copy or
77
- * assign.
78
- *
79
- * @par Accessing Buffer Contents
80
- *
81
- * The contents of a buffer may be accessed using the @c data() and @c size()
82
- * member functions:
83
- *
84
- * @code asio::mutable_buffer b1 = ...;
85
- * std::size_t s1 = b1.size();
86
- * unsigned char* p1 = static_cast<unsigned char*>(b1.data());
87
- * @endcode
88
- *
89
- * The @c data() member function permits violations of type safety, so uses of
90
- * it in application code should be carefully considered.
91
- */
92
- class mutable_buffer
93
- {
94
- public:
95
- /// Construct an empty buffer.
96
- mutable_buffer() ASIO_NOEXCEPT
97
- : data_(0),
98
- size_(0)
99
- {
100
- }
101
-
102
- /// Construct a buffer to represent a given memory range.
103
- mutable_buffer(void* data, std::size_t size) ASIO_NOEXCEPT
104
- : data_(data),
105
- size_(size)
106
- {
107
- }
108
-
109
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
110
- mutable_buffer(void* data, std::size_t size,
111
- asio::detail::function<void()> debug_check)
112
- : data_(data),
113
- size_(size),
114
- debug_check_(debug_check)
115
- {
116
- }
117
-
118
- const asio::detail::function<void()>& get_debug_check() const
119
- {
120
- return debug_check_;
121
- }
122
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
123
-
124
- /// Get a pointer to the beginning of the memory range.
125
- void* data() const ASIO_NOEXCEPT
126
- {
127
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
128
- if (size_ && debug_check_)
129
- debug_check_();
130
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
131
- return data_;
132
- }
133
-
134
- /// Get the size of the memory range.
135
- std::size_t size() const ASIO_NOEXCEPT
136
- {
137
- return size_;
138
- }
139
-
140
- /// Move the start of the buffer by the specified number of bytes.
141
- mutable_buffer& operator+=(std::size_t n) ASIO_NOEXCEPT
142
- {
143
- std::size_t offset = n < size_ ? n : size_;
144
- data_ = static_cast<char*>(data_) + offset;
145
- size_ -= offset;
146
- return *this;
147
- }
148
-
149
- private:
150
- void* data_;
151
- std::size_t size_;
152
-
153
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
154
- asio::detail::function<void()> debug_check_;
155
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
156
- };
157
-
158
- #if !defined(ASIO_NO_DEPRECATED)
159
-
160
- /// (Deprecated: Use mutable_buffer.) Adapts a single modifiable buffer so that
161
- /// it meets the requirements of the MutableBufferSequence concept.
162
- class mutable_buffers_1
163
- : public mutable_buffer
164
- {
165
- public:
166
- /// The type for each element in the list of buffers.
167
- typedef mutable_buffer value_type;
168
-
169
- /// A random-access iterator type that may be used to read elements.
170
- typedef const mutable_buffer* const_iterator;
171
-
172
- /// Construct to represent a given memory range.
173
- mutable_buffers_1(void* data, std::size_t size) ASIO_NOEXCEPT
174
- : mutable_buffer(data, size)
175
- {
176
- }
177
-
178
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
179
- mutable_buffers_1(void* data, std::size_t size,
180
- asio::detail::function<void()> debug_check)
181
- : mutable_buffer(data, size, debug_check)
182
- {
183
- }
184
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
185
-
186
- /// Construct to represent a single modifiable buffer.
187
- explicit mutable_buffers_1(const mutable_buffer& b) ASIO_NOEXCEPT
188
- : mutable_buffer(b)
189
- {
190
- }
191
-
192
- /// Get a random-access iterator to the first element.
193
- const_iterator begin() const ASIO_NOEXCEPT
194
- {
195
- return this;
196
- }
197
-
198
- /// Get a random-access iterator for one past the last element.
199
- const_iterator end() const ASIO_NOEXCEPT
200
- {
201
- return begin() + 1;
202
- }
203
- };
204
-
205
- #endif // !defined(ASIO_NO_DEPRECATED)
206
-
207
- /// Holds a buffer that cannot be modified.
208
- /**
209
- * The const_buffer class provides a safe representation of a buffer that cannot
210
- * be modified. It does not own the underlying data, and so is cheap to copy or
211
- * assign.
212
- *
213
- * @par Accessing Buffer Contents
214
- *
215
- * The contents of a buffer may be accessed using the @c data() and @c size()
216
- * member functions:
217
- *
218
- * @code asio::const_buffer b1 = ...;
219
- * std::size_t s1 = b1.size();
220
- * const unsigned char* p1 = static_cast<const unsigned char*>(b1.data());
221
- * @endcode
222
- *
223
- * The @c data() member function permits violations of type safety, so uses of
224
- * it in application code should be carefully considered.
225
- */
226
- class const_buffer
227
- {
228
- public:
229
- /// Construct an empty buffer.
230
- const_buffer() ASIO_NOEXCEPT
231
- : data_(0),
232
- size_(0)
233
- {
234
- }
235
-
236
- /// Construct a buffer to represent a given memory range.
237
- const_buffer(const void* data, std::size_t size) ASIO_NOEXCEPT
238
- : data_(data),
239
- size_(size)
240
- {
241
- }
242
-
243
- /// Construct a non-modifiable buffer from a modifiable one.
244
- const_buffer(const mutable_buffer& b) ASIO_NOEXCEPT
245
- : data_(b.data()),
246
- size_(b.size())
247
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
248
- , debug_check_(b.get_debug_check())
249
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
250
- {
251
- }
252
-
253
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
254
- const_buffer(const void* data, std::size_t size,
255
- asio::detail::function<void()> debug_check)
256
- : data_(data),
257
- size_(size),
258
- debug_check_(debug_check)
259
- {
260
- }
261
-
262
- const asio::detail::function<void()>& get_debug_check() const
263
- {
264
- return debug_check_;
265
- }
266
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
267
-
268
- /// Get a pointer to the beginning of the memory range.
269
- const void* data() const ASIO_NOEXCEPT
270
- {
271
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
272
- if (size_ && debug_check_)
273
- debug_check_();
274
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
275
- return data_;
276
- }
277
-
278
- /// Get the size of the memory range.
279
- std::size_t size() const ASIO_NOEXCEPT
280
- {
281
- return size_;
282
- }
283
-
284
- /// Move the start of the buffer by the specified number of bytes.
285
- const_buffer& operator+=(std::size_t n) ASIO_NOEXCEPT
286
- {
287
- std::size_t offset = n < size_ ? n : size_;
288
- data_ = static_cast<const char*>(data_) + offset;
289
- size_ -= offset;
290
- return *this;
291
- }
292
-
293
- private:
294
- const void* data_;
295
- std::size_t size_;
296
-
297
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
298
- asio::detail::function<void()> debug_check_;
299
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
300
- };
301
-
302
- #if !defined(ASIO_NO_DEPRECATED)
303
-
304
- /// (Deprecated: Use const_buffer.) Adapts a single non-modifiable buffer so
305
- /// that it meets the requirements of the ConstBufferSequence concept.
306
- class const_buffers_1
307
- : public const_buffer
308
- {
309
- public:
310
- /// The type for each element in the list of buffers.
311
- typedef const_buffer value_type;
312
-
313
- /// A random-access iterator type that may be used to read elements.
314
- typedef const const_buffer* const_iterator;
315
-
316
- /// Construct to represent a given memory range.
317
- const_buffers_1(const void* data, std::size_t size) ASIO_NOEXCEPT
318
- : const_buffer(data, size)
319
- {
320
- }
321
-
322
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
323
- const_buffers_1(const void* data, std::size_t size,
324
- asio::detail::function<void()> debug_check)
325
- : const_buffer(data, size, debug_check)
326
- {
327
- }
328
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
329
-
330
- /// Construct to represent a single non-modifiable buffer.
331
- explicit const_buffers_1(const const_buffer& b) ASIO_NOEXCEPT
332
- : const_buffer(b)
333
- {
334
- }
335
-
336
- /// Get a random-access iterator to the first element.
337
- const_iterator begin() const ASIO_NOEXCEPT
338
- {
339
- return this;
340
- }
341
-
342
- /// Get a random-access iterator for one past the last element.
343
- const_iterator end() const ASIO_NOEXCEPT
344
- {
345
- return begin() + 1;
346
- }
347
- };
348
-
349
- #endif // !defined(ASIO_NO_DEPRECATED)
350
-
351
- /// (Deprecated: Use the socket/descriptor wait() and async_wait() member
352
- /// functions.) An implementation of both the ConstBufferSequence and
353
- /// MutableBufferSequence concepts to represent a null buffer sequence.
354
- class null_buffers
355
- {
356
- public:
357
- /// The type for each element in the list of buffers.
358
- typedef mutable_buffer value_type;
359
-
360
- /// A random-access iterator type that may be used to read elements.
361
- typedef const mutable_buffer* const_iterator;
362
-
363
- /// Get a random-access iterator to the first element.
364
- const_iterator begin() const ASIO_NOEXCEPT
365
- {
366
- return &buf_;
367
- }
368
-
369
- /// Get a random-access iterator for one past the last element.
370
- const_iterator end() const ASIO_NOEXCEPT
371
- {
372
- return &buf_;
373
- }
374
-
375
- private:
376
- mutable_buffer buf_;
377
- };
378
-
379
- /** @defgroup buffer_sequence_begin asio::buffer_sequence_begin
380
- *
381
- * @brief The asio::buffer_sequence_begin function returns an iterator
382
- * pointing to the first element in a buffer sequence.
383
- */
384
- /*@{*/
385
-
386
- /// Get an iterator to the first element in a buffer sequence.
387
- template <typename MutableBuffer>
388
- inline const mutable_buffer* buffer_sequence_begin(const MutableBuffer& b,
389
- typename enable_if<
390
- is_convertible<const MutableBuffer*, const mutable_buffer*>::value
391
- >::type* = 0) ASIO_NOEXCEPT
392
- {
393
- return static_cast<const mutable_buffer*>(detail::addressof(b));
394
- }
395
-
396
- /// Get an iterator to the first element in a buffer sequence.
397
- template <typename ConstBuffer>
398
- inline const const_buffer* buffer_sequence_begin(const ConstBuffer& b,
399
- typename enable_if<
400
- is_convertible<const ConstBuffer*, const const_buffer*>::value
401
- >::type* = 0) ASIO_NOEXCEPT
402
- {
403
- return static_cast<const const_buffer*>(detail::addressof(b));
404
- }
405
-
406
- #if defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
407
-
408
- /// Get an iterator to the first element in a buffer sequence.
409
- template <typename C>
410
- inline auto buffer_sequence_begin(C& c,
411
- typename enable_if<
412
- !is_convertible<const C*, const mutable_buffer*>::value
413
- && !is_convertible<const C*, const const_buffer*>::value
414
- >::type* = 0) ASIO_NOEXCEPT -> decltype(c.begin())
415
- {
416
- return c.begin();
417
- }
418
-
419
- /// Get an iterator to the first element in a buffer sequence.
420
- template <typename C>
421
- inline auto buffer_sequence_begin(const C& c,
422
- typename enable_if<
423
- !is_convertible<const C*, const mutable_buffer*>::value
424
- && !is_convertible<const C*, const const_buffer*>::value
425
- >::type* = 0) ASIO_NOEXCEPT -> decltype(c.begin())
426
- {
427
- return c.begin();
428
- }
429
-
430
- #else // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
431
-
432
- template <typename C>
433
- inline typename C::iterator buffer_sequence_begin(C& c,
434
- typename enable_if<
435
- !is_convertible<const C*, const mutable_buffer*>::value
436
- && !is_convertible<const C*, const const_buffer*>::value
437
- >::type* = 0) ASIO_NOEXCEPT
438
- {
439
- return c.begin();
440
- }
441
-
442
- template <typename C>
443
- inline typename C::const_iterator buffer_sequence_begin(const C& c,
444
- typename enable_if<
445
- !is_convertible<const C*, const mutable_buffer*>::value
446
- && !is_convertible<const C*, const const_buffer*>::value
447
- >::type* = 0) ASIO_NOEXCEPT
448
- {
449
- return c.begin();
450
- }
451
-
452
- #endif // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
453
-
454
- /*@}*/
455
-
456
- /** @defgroup buffer_sequence_end asio::buffer_sequence_end
457
- *
458
- * @brief The asio::buffer_sequence_end function returns an iterator
459
- * pointing to one past the end element in a buffer sequence.
460
- */
461
- /*@{*/
462
-
463
- /// Get an iterator to one past the end element in a buffer sequence.
464
- template <typename MutableBuffer>
465
- inline const mutable_buffer* buffer_sequence_end(const MutableBuffer& b,
466
- typename enable_if<
467
- is_convertible<const MutableBuffer*, const mutable_buffer*>::value
468
- >::type* = 0) ASIO_NOEXCEPT
469
- {
470
- return static_cast<const mutable_buffer*>(detail::addressof(b)) + 1;
471
- }
472
-
473
- /// Get an iterator to one past the end element in a buffer sequence.
474
- template <typename ConstBuffer>
475
- inline const const_buffer* buffer_sequence_end(const ConstBuffer& b,
476
- typename enable_if<
477
- is_convertible<const ConstBuffer*, const const_buffer*>::value
478
- >::type* = 0) ASIO_NOEXCEPT
479
- {
480
- return static_cast<const const_buffer*>(detail::addressof(b)) + 1;
481
- }
482
-
483
- #if defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
484
-
485
- /// Get an iterator to one past the end element in a buffer sequence.
486
- template <typename C>
487
- inline auto buffer_sequence_end(C& c,
488
- typename enable_if<
489
- !is_convertible<const C*, const mutable_buffer*>::value
490
- && !is_convertible<const C*, const const_buffer*>::value
491
- >::type* = 0) ASIO_NOEXCEPT -> decltype(c.end())
492
- {
493
- return c.end();
494
- }
495
-
496
- /// Get an iterator to one past the end element in a buffer sequence.
497
- template <typename C>
498
- inline auto buffer_sequence_end(const C& c,
499
- typename enable_if<
500
- !is_convertible<const C*, const mutable_buffer*>::value
501
- && !is_convertible<const C*, const const_buffer*>::value
502
- >::type* = 0) ASIO_NOEXCEPT -> decltype(c.end())
503
- {
504
- return c.end();
505
- }
506
-
507
- #else // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
508
-
509
- template <typename C>
510
- inline typename C::iterator buffer_sequence_end(C& c,
511
- typename enable_if<
512
- !is_convertible<const C*, const mutable_buffer*>::value
513
- && !is_convertible<const C*, const const_buffer*>::value
514
- >::type* = 0) ASIO_NOEXCEPT
515
- {
516
- return c.end();
517
- }
518
-
519
- template <typename C>
520
- inline typename C::const_iterator buffer_sequence_end(const C& c,
521
- typename enable_if<
522
- !is_convertible<const C*, const mutable_buffer*>::value
523
- && !is_convertible<const C*, const const_buffer*>::value
524
- >::type* = 0) ASIO_NOEXCEPT
525
- {
526
- return c.end();
527
- }
528
-
529
- #endif // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
530
-
531
- /*@}*/
532
-
533
- namespace detail {
534
-
535
- // Tag types used to select appropriately optimised overloads.
536
- struct one_buffer {};
537
- struct multiple_buffers {};
538
-
539
- // Helper trait to detect single buffers.
540
- template <typename BufferSequence>
541
- struct buffer_sequence_cardinality :
542
- conditional<
543
- is_same<BufferSequence, mutable_buffer>::value
544
- #if !defined(ASIO_NO_DEPRECATED)
545
- || is_same<BufferSequence, mutable_buffers_1>::value
546
- || is_same<BufferSequence, const_buffers_1>::value
547
- #endif // !defined(ASIO_NO_DEPRECATED)
548
- || is_same<BufferSequence, const_buffer>::value,
549
- one_buffer, multiple_buffers>::type {};
550
-
551
- template <typename Iterator>
552
- inline std::size_t buffer_size(one_buffer,
553
- Iterator begin, Iterator) ASIO_NOEXCEPT
554
- {
555
- return const_buffer(*begin).size();
556
- }
557
-
558
- template <typename Iterator>
559
- inline std::size_t buffer_size(multiple_buffers,
560
- Iterator begin, Iterator end) ASIO_NOEXCEPT
561
- {
562
- std::size_t total_buffer_size = 0;
563
-
564
- Iterator iter = begin;
565
- for (; iter != end; ++iter)
566
- {
567
- const_buffer b(*iter);
568
- total_buffer_size += b.size();
569
- }
570
-
571
- return total_buffer_size;
572
- }
573
-
574
- } // namespace detail
575
-
576
- /// Get the total number of bytes in a buffer sequence.
577
- /**
578
- * The @c buffer_size function determines the total size of all buffers in the
579
- * buffer sequence, as if computed as follows:
580
- *
581
- * @code size_t total_size = 0;
582
- * auto i = asio::buffer_sequence_begin(buffers);
583
- * auto end = asio::buffer_sequence_end(buffers);
584
- * for (; i != end; ++i)
585
- * {
586
- * const_buffer b(*i);
587
- * total_size += b.size();
588
- * }
589
- * return total_size; @endcode
590
- *
591
- * The @c BufferSequence template parameter may meet either of the @c
592
- * ConstBufferSequence or @c MutableBufferSequence type requirements.
593
- */
594
- template <typename BufferSequence>
595
- inline std::size_t buffer_size(const BufferSequence& b) ASIO_NOEXCEPT
596
- {
597
- return detail::buffer_size(
598
- detail::buffer_sequence_cardinality<BufferSequence>(),
599
- asio::buffer_sequence_begin(b),
600
- asio::buffer_sequence_end(b));
601
- }
602
-
603
- #if !defined(ASIO_NO_DEPRECATED)
604
-
605
- /** @defgroup buffer_cast asio::buffer_cast
606
- *
607
- * @brief (Deprecated: Use the @c data() member function.) The
608
- * asio::buffer_cast function is used to obtain a pointer to the
609
- * underlying memory region associated with a buffer.
610
- *
611
- * @par Examples:
612
- *
613
- * To access the memory of a non-modifiable buffer, use:
614
- * @code asio::const_buffer b1 = ...;
615
- * const unsigned char* p1 = asio::buffer_cast<const unsigned char*>(b1);
616
- * @endcode
617
- *
618
- * To access the memory of a modifiable buffer, use:
619
- * @code asio::mutable_buffer b2 = ...;
620
- * unsigned char* p2 = asio::buffer_cast<unsigned char*>(b2);
621
- * @endcode
622
- *
623
- * The asio::buffer_cast function permits violations of type safety, so
624
- * uses of it in application code should be carefully considered.
625
- */
626
- /*@{*/
627
-
628
- /// Cast a non-modifiable buffer to a specified pointer to POD type.
629
- template <typename PointerToPodType>
630
- inline PointerToPodType buffer_cast(const mutable_buffer& b) ASIO_NOEXCEPT
631
- {
632
- return static_cast<PointerToPodType>(b.data());
633
- }
634
-
635
- /// Cast a non-modifiable buffer to a specified pointer to POD type.
636
- template <typename PointerToPodType>
637
- inline PointerToPodType buffer_cast(const const_buffer& b) ASIO_NOEXCEPT
638
- {
639
- return static_cast<PointerToPodType>(b.data());
640
- }
641
-
642
- /*@}*/
643
-
644
- #endif // !defined(ASIO_NO_DEPRECATED)
645
-
646
- /// Create a new modifiable buffer that is offset from the start of another.
647
- /**
648
- * @relates mutable_buffer
649
- */
650
- inline mutable_buffer operator+(const mutable_buffer& b,
651
- std::size_t n) ASIO_NOEXCEPT
652
- {
653
- std::size_t offset = n < b.size() ? n : b.size();
654
- char* new_data = static_cast<char*>(b.data()) + offset;
655
- std::size_t new_size = b.size() - offset;
656
- return mutable_buffer(new_data, new_size
657
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
658
- , b.get_debug_check()
659
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
660
- );
661
- }
662
-
663
- /// Create a new modifiable buffer that is offset from the start of another.
664
- /**
665
- * @relates mutable_buffer
666
- */
667
- inline mutable_buffer operator+(std::size_t n,
668
- const mutable_buffer& b) ASIO_NOEXCEPT
669
- {
670
- return b + n;
671
- }
672
-
673
- /// Create a new non-modifiable buffer that is offset from the start of another.
674
- /**
675
- * @relates const_buffer
676
- */
677
- inline const_buffer operator+(const const_buffer& b,
678
- std::size_t n) ASIO_NOEXCEPT
679
- {
680
- std::size_t offset = n < b.size() ? n : b.size();
681
- const char* new_data = static_cast<const char*>(b.data()) + offset;
682
- std::size_t new_size = b.size() - offset;
683
- return const_buffer(new_data, new_size
684
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
685
- , b.get_debug_check()
686
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
687
- );
688
- }
689
-
690
- /// Create a new non-modifiable buffer that is offset from the start of another.
691
- /**
692
- * @relates const_buffer
693
- */
694
- inline const_buffer operator+(std::size_t n,
695
- const const_buffer& b) ASIO_NOEXCEPT
696
- {
697
- return b + n;
698
- }
699
-
700
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
701
- namespace detail {
702
-
703
- template <typename Iterator>
704
- class buffer_debug_check
705
- {
706
- public:
707
- buffer_debug_check(Iterator iter)
708
- : iter_(iter)
709
- {
710
- }
711
-
712
- ~buffer_debug_check()
713
- {
714
- #if defined(ASIO_MSVC) && (ASIO_MSVC == 1400)
715
- // MSVC 8's string iterator checking may crash in a std::string::iterator
716
- // object's destructor when the iterator points to an already-destroyed
717
- // std::string object, unless the iterator is cleared first.
718
- iter_ = Iterator();
719
- #endif // defined(ASIO_MSVC) && (ASIO_MSVC == 1400)
720
- }
721
-
722
- void operator()()
723
- {
724
- (void)*iter_;
725
- }
726
-
727
- private:
728
- Iterator iter_;
729
- };
730
-
731
- } // namespace detail
732
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
733
-
734
- /** @defgroup buffer asio::buffer
735
- *
736
- * @brief The asio::buffer function is used to create a buffer object to
737
- * represent raw memory, an array of POD elements, a vector of POD elements,
738
- * or a std::string.
739
- *
740
- * A buffer object represents a contiguous region of memory as a 2-tuple
741
- * consisting of a pointer and size in bytes. A tuple of the form <tt>{void*,
742
- * size_t}</tt> specifies a mutable (modifiable) region of memory. Similarly, a
743
- * tuple of the form <tt>{const void*, size_t}</tt> specifies a const
744
- * (non-modifiable) region of memory. These two forms correspond to the classes
745
- * mutable_buffer and const_buffer, respectively. To mirror C++'s conversion
746
- * rules, a mutable_buffer is implicitly convertible to a const_buffer, and the
747
- * opposite conversion is not permitted.
748
- *
749
- * The simplest use case involves reading or writing a single buffer of a
750
- * specified size:
751
- *
752
- * @code sock.send(asio::buffer(data, size)); @endcode
753
- *
754
- * In the above example, the return value of asio::buffer meets the
755
- * requirements of the ConstBufferSequence concept so that it may be directly
756
- * passed to the socket's write function. A buffer created for modifiable
757
- * memory also meets the requirements of the MutableBufferSequence concept.
758
- *
759
- * An individual buffer may be created from a builtin array, std::vector,
760
- * std::array or boost::array of POD elements. This helps prevent buffer
761
- * overruns by automatically determining the size of the buffer:
762
- *
763
- * @code char d1[128];
764
- * size_t bytes_transferred = sock.receive(asio::buffer(d1));
765
- *
766
- * std::vector<char> d2(128);
767
- * bytes_transferred = sock.receive(asio::buffer(d2));
768
- *
769
- * std::array<char, 128> d3;
770
- * bytes_transferred = sock.receive(asio::buffer(d3));
771
- *
772
- * boost::array<char, 128> d4;
773
- * bytes_transferred = sock.receive(asio::buffer(d4)); @endcode
774
- *
775
- * In all three cases above, the buffers created are exactly 128 bytes long.
776
- * Note that a vector is @e never automatically resized when creating or using
777
- * a buffer. The buffer size is determined using the vector's <tt>size()</tt>
778
- * member function, and not its capacity.
779
- *
780
- * @par Accessing Buffer Contents
781
- *
782
- * The contents of a buffer may be accessed using the @c data() and @c size()
783
- * member functions:
784
- *
785
- * @code asio::mutable_buffer b1 = ...;
786
- * std::size_t s1 = b1.size();
787
- * unsigned char* p1 = static_cast<unsigned char*>(b1.data());
788
- *
789
- * asio::const_buffer b2 = ...;
790
- * std::size_t s2 = b2.size();
791
- * const void* p2 = b2.data(); @endcode
792
- *
793
- * The @c data() member function permits violations of type safety, so
794
- * uses of it in application code should be carefully considered.
795
- *
796
- * For convenience, a @ref buffer_size function is provided that works with
797
- * both buffers and buffer sequences (that is, types meeting the
798
- * ConstBufferSequence or MutableBufferSequence type requirements). In this
799
- * case, the function returns the total size of all buffers in the sequence.
800
- *
801
- * @par Buffer Copying
802
- *
803
- * The @ref buffer_copy function may be used to copy raw bytes between
804
- * individual buffers and buffer sequences.
805
- *
806
- * In particular, when used with the @ref buffer_size function, the @ref
807
- * buffer_copy function can be used to linearise a sequence of buffers. For
808
- * example:
809
- *
810
- * @code vector<const_buffer> buffers = ...;
811
- *
812
- * vector<unsigned char> data(asio::buffer_size(buffers));
813
- * asio::buffer_copy(asio::buffer(data), buffers); @endcode
814
- *
815
- * Note that @ref buffer_copy is implemented in terms of @c memcpy, and
816
- * consequently it cannot be used to copy between overlapping memory regions.
817
- *
818
- * @par Buffer Invalidation
819
- *
820
- * A buffer object does not have any ownership of the memory it refers to. It
821
- * is the responsibility of the application to ensure the memory region remains
822
- * valid until it is no longer required for an I/O operation. When the memory
823
- * is no longer available, the buffer is said to have been invalidated.
824
- *
825
- * For the asio::buffer overloads that accept an argument of type
826
- * std::vector, the buffer objects returned are invalidated by any vector
827
- * operation that also invalidates all references, pointers and iterators
828
- * referring to the elements in the sequence (C++ Std, 23.2.4)
829
- *
830
- * For the asio::buffer overloads that accept an argument of type
831
- * std::basic_string, the buffer objects returned are invalidated according to
832
- * the rules defined for invalidation of references, pointers and iterators
833
- * referring to elements of the sequence (C++ Std, 21.3).
834
- *
835
- * @par Buffer Arithmetic
836
- *
837
- * Buffer objects may be manipulated using simple arithmetic in a safe way
838
- * which helps prevent buffer overruns. Consider an array initialised as
839
- * follows:
840
- *
841
- * @code boost::array<char, 6> a = { 'a', 'b', 'c', 'd', 'e' }; @endcode
842
- *
843
- * A buffer object @c b1 created using:
844
- *
845
- * @code b1 = asio::buffer(a); @endcode
846
- *
847
- * represents the entire array, <tt>{ 'a', 'b', 'c', 'd', 'e' }</tt>. An
848
- * optional second argument to the asio::buffer function may be used to
849
- * limit the size, in bytes, of the buffer:
850
- *
851
- * @code b2 = asio::buffer(a, 3); @endcode
852
- *
853
- * such that @c b2 represents the data <tt>{ 'a', 'b', 'c' }</tt>. Even if the
854
- * size argument exceeds the actual size of the array, the size of the buffer
855
- * object created will be limited to the array size.
856
- *
857
- * An offset may be applied to an existing buffer to create a new one:
858
- *
859
- * @code b3 = b1 + 2; @endcode
860
- *
861
- * where @c b3 will set to represent <tt>{ 'c', 'd', 'e' }</tt>. If the offset
862
- * exceeds the size of the existing buffer, the newly created buffer will be
863
- * empty.
864
- *
865
- * Both an offset and size may be specified to create a buffer that corresponds
866
- * to a specific range of bytes within an existing buffer:
867
- *
868
- * @code b4 = asio::buffer(b1 + 1, 3); @endcode
869
- *
870
- * so that @c b4 will refer to the bytes <tt>{ 'b', 'c', 'd' }</tt>.
871
- *
872
- * @par Buffers and Scatter-Gather I/O
873
- *
874
- * To read or write using multiple buffers (i.e. scatter-gather I/O), multiple
875
- * buffer objects may be assigned into a container that supports the
876
- * MutableBufferSequence (for read) or ConstBufferSequence (for write) concepts:
877
- *
878
- * @code
879
- * char d1[128];
880
- * std::vector<char> d2(128);
881
- * boost::array<char, 128> d3;
882
- *
883
- * boost::array<mutable_buffer, 3> bufs1 = {
884
- * asio::buffer(d1),
885
- * asio::buffer(d2),
886
- * asio::buffer(d3) };
887
- * bytes_transferred = sock.receive(bufs1);
888
- *
889
- * std::vector<const_buffer> bufs2;
890
- * bufs2.push_back(asio::buffer(d1));
891
- * bufs2.push_back(asio::buffer(d2));
892
- * bufs2.push_back(asio::buffer(d3));
893
- * bytes_transferred = sock.send(bufs2); @endcode
894
- */
895
- /*@{*/
896
-
897
- #if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION)
898
- # define ASIO_MUTABLE_BUFFER mutable_buffer
899
- # define ASIO_CONST_BUFFER const_buffer
900
- #else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION)
901
- # define ASIO_MUTABLE_BUFFER mutable_buffers_1
902
- # define ASIO_CONST_BUFFER const_buffers_1
903
- #endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION)
904
-
905
- /// Create a new modifiable buffer from an existing buffer.
906
- /**
907
- * @returns <tt>mutable_buffer(b)</tt>.
908
- */
909
- inline ASIO_MUTABLE_BUFFER buffer(
910
- const mutable_buffer& b) ASIO_NOEXCEPT
911
- {
912
- return ASIO_MUTABLE_BUFFER(b);
913
- }
914
-
915
- /// Create a new modifiable buffer from an existing buffer.
916
- /**
917
- * @returns A mutable_buffer value equivalent to:
918
- * @code mutable_buffer(
919
- * b.data(),
920
- * min(b.size(), max_size_in_bytes)); @endcode
921
- */
922
- inline ASIO_MUTABLE_BUFFER buffer(const mutable_buffer& b,
923
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
924
- {
925
- return ASIO_MUTABLE_BUFFER(
926
- mutable_buffer(b.data(),
927
- b.size() < max_size_in_bytes
928
- ? b.size() : max_size_in_bytes
929
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
930
- , b.get_debug_check()
931
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
932
- ));
933
- }
934
-
935
- /// Create a new non-modifiable buffer from an existing buffer.
936
- /**
937
- * @returns <tt>const_buffer(b)</tt>.
938
- */
939
- inline ASIO_CONST_BUFFER buffer(
940
- const const_buffer& b) ASIO_NOEXCEPT
941
- {
942
- return ASIO_CONST_BUFFER(b);
943
- }
944
-
945
- /// Create a new non-modifiable buffer from an existing buffer.
946
- /**
947
- * @returns A const_buffer value equivalent to:
948
- * @code const_buffer(
949
- * b.data(),
950
- * min(b.size(), max_size_in_bytes)); @endcode
951
- */
952
- inline ASIO_CONST_BUFFER buffer(const const_buffer& b,
953
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
954
- {
955
- return ASIO_CONST_BUFFER(b.data(),
956
- b.size() < max_size_in_bytes
957
- ? b.size() : max_size_in_bytes
958
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
959
- , b.get_debug_check()
960
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
961
- );
962
- }
963
-
964
- /// Create a new modifiable buffer that represents the given memory range.
965
- /**
966
- * @returns <tt>mutable_buffer(data, size_in_bytes)</tt>.
967
- */
968
- inline ASIO_MUTABLE_BUFFER buffer(void* data,
969
- std::size_t size_in_bytes) ASIO_NOEXCEPT
970
- {
971
- return ASIO_MUTABLE_BUFFER(data, size_in_bytes);
972
- }
973
-
974
- /// Create a new non-modifiable buffer that represents the given memory range.
975
- /**
976
- * @returns <tt>const_buffer(data, size_in_bytes)</tt>.
977
- */
978
- inline ASIO_CONST_BUFFER buffer(const void* data,
979
- std::size_t size_in_bytes) ASIO_NOEXCEPT
980
- {
981
- return ASIO_CONST_BUFFER(data, size_in_bytes);
982
- }
983
-
984
- /// Create a new modifiable buffer that represents the given POD array.
985
- /**
986
- * @returns A mutable_buffer value equivalent to:
987
- * @code mutable_buffer(
988
- * static_cast<void*>(data),
989
- * N * sizeof(PodType)); @endcode
990
- */
991
- template <typename PodType, std::size_t N>
992
- inline ASIO_MUTABLE_BUFFER buffer(PodType (&data)[N]) ASIO_NOEXCEPT
993
- {
994
- return ASIO_MUTABLE_BUFFER(data, N * sizeof(PodType));
995
- }
996
-
997
- /// Create a new modifiable buffer that represents the given POD array.
998
- /**
999
- * @returns A mutable_buffer value equivalent to:
1000
- * @code mutable_buffer(
1001
- * static_cast<void*>(data),
1002
- * min(N * sizeof(PodType), max_size_in_bytes)); @endcode
1003
- */
1004
- template <typename PodType, std::size_t N>
1005
- inline ASIO_MUTABLE_BUFFER buffer(PodType (&data)[N],
1006
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1007
- {
1008
- return ASIO_MUTABLE_BUFFER(data,
1009
- N * sizeof(PodType) < max_size_in_bytes
1010
- ? N * sizeof(PodType) : max_size_in_bytes);
1011
- }
1012
-
1013
- /// Create a new non-modifiable buffer that represents the given POD array.
1014
- /**
1015
- * @returns A const_buffer value equivalent to:
1016
- * @code const_buffer(
1017
- * static_cast<const void*>(data),
1018
- * N * sizeof(PodType)); @endcode
1019
- */
1020
- template <typename PodType, std::size_t N>
1021
- inline ASIO_CONST_BUFFER buffer(
1022
- const PodType (&data)[N]) ASIO_NOEXCEPT
1023
- {
1024
- return ASIO_CONST_BUFFER(data, N * sizeof(PodType));
1025
- }
1026
-
1027
- /// Create a new non-modifiable buffer that represents the given POD array.
1028
- /**
1029
- * @returns A const_buffer value equivalent to:
1030
- * @code const_buffer(
1031
- * static_cast<const void*>(data),
1032
- * min(N * sizeof(PodType), max_size_in_bytes)); @endcode
1033
- */
1034
- template <typename PodType, std::size_t N>
1035
- inline ASIO_CONST_BUFFER buffer(const PodType (&data)[N],
1036
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1037
- {
1038
- return ASIO_CONST_BUFFER(data,
1039
- N * sizeof(PodType) < max_size_in_bytes
1040
- ? N * sizeof(PodType) : max_size_in_bytes);
1041
- }
1042
-
1043
- #if defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND)
1044
-
1045
- // Borland C++ and Sun Studio think the overloads:
1046
- //
1047
- // unspecified buffer(boost::array<PodType, N>& array ...);
1048
- //
1049
- // and
1050
- //
1051
- // unspecified buffer(boost::array<const PodType, N>& array ...);
1052
- //
1053
- // are ambiguous. This will be worked around by using a buffer_types traits
1054
- // class that contains typedefs for the appropriate buffer and container
1055
- // classes, based on whether PodType is const or non-const.
1056
-
1057
- namespace detail {
1058
-
1059
- template <bool IsConst>
1060
- struct buffer_types_base;
1061
-
1062
- template <>
1063
- struct buffer_types_base<false>
1064
- {
1065
- typedef mutable_buffer buffer_type;
1066
- typedef ASIO_MUTABLE_BUFFER container_type;
1067
- };
1068
-
1069
- template <>
1070
- struct buffer_types_base<true>
1071
- {
1072
- typedef const_buffer buffer_type;
1073
- typedef ASIO_CONST_BUFFER container_type;
1074
- };
1075
-
1076
- template <typename PodType>
1077
- struct buffer_types
1078
- : public buffer_types_base<is_const<PodType>::value>
1079
- {
1080
- };
1081
-
1082
- } // namespace detail
1083
-
1084
- template <typename PodType, std::size_t N>
1085
- inline typename detail::buffer_types<PodType>::container_type
1086
- buffer(boost::array<PodType, N>& data) ASIO_NOEXCEPT
1087
- {
1088
- typedef typename asio::detail::buffer_types<PodType>::buffer_type
1089
- buffer_type;
1090
- typedef typename asio::detail::buffer_types<PodType>::container_type
1091
- container_type;
1092
- return container_type(
1093
- buffer_type(data.c_array(), data.size() * sizeof(PodType)));
1094
- }
1095
-
1096
- template <typename PodType, std::size_t N>
1097
- inline typename detail::buffer_types<PodType>::container_type
1098
- buffer(boost::array<PodType, N>& data,
1099
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1100
- {
1101
- typedef typename asio::detail::buffer_types<PodType>::buffer_type
1102
- buffer_type;
1103
- typedef typename asio::detail::buffer_types<PodType>::container_type
1104
- container_type;
1105
- return container_type(
1106
- buffer_type(data.c_array(),
1107
- data.size() * sizeof(PodType) < max_size_in_bytes
1108
- ? data.size() * sizeof(PodType) : max_size_in_bytes));
1109
- }
1110
-
1111
- #else // defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND)
1112
-
1113
- /// Create a new modifiable buffer that represents the given POD array.
1114
- /**
1115
- * @returns A mutable_buffer value equivalent to:
1116
- * @code mutable_buffer(
1117
- * data.data(),
1118
- * data.size() * sizeof(PodType)); @endcode
1119
- */
1120
- template <typename PodType, std::size_t N>
1121
- inline ASIO_MUTABLE_BUFFER buffer(
1122
- boost::array<PodType, N>& data) ASIO_NOEXCEPT
1123
- {
1124
- return ASIO_MUTABLE_BUFFER(
1125
- data.c_array(), data.size() * sizeof(PodType));
1126
- }
1127
-
1128
- /// Create a new modifiable buffer that represents the given POD array.
1129
- /**
1130
- * @returns A mutable_buffer value equivalent to:
1131
- * @code mutable_buffer(
1132
- * data.data(),
1133
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1134
- */
1135
- template <typename PodType, std::size_t N>
1136
- inline ASIO_MUTABLE_BUFFER buffer(boost::array<PodType, N>& data,
1137
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1138
- {
1139
- return ASIO_MUTABLE_BUFFER(data.c_array(),
1140
- data.size() * sizeof(PodType) < max_size_in_bytes
1141
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1142
- }
1143
-
1144
- /// Create a new non-modifiable buffer that represents the given POD array.
1145
- /**
1146
- * @returns A const_buffer value equivalent to:
1147
- * @code const_buffer(
1148
- * data.data(),
1149
- * data.size() * sizeof(PodType)); @endcode
1150
- */
1151
- template <typename PodType, std::size_t N>
1152
- inline ASIO_CONST_BUFFER buffer(
1153
- boost::array<const PodType, N>& data) ASIO_NOEXCEPT
1154
- {
1155
- return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType));
1156
- }
1157
-
1158
- /// Create a new non-modifiable buffer that represents the given POD array.
1159
- /**
1160
- * @returns A const_buffer value equivalent to:
1161
- * @code const_buffer(
1162
- * data.data(),
1163
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1164
- */
1165
- template <typename PodType, std::size_t N>
1166
- inline ASIO_CONST_BUFFER buffer(boost::array<const PodType, N>& data,
1167
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1168
- {
1169
- return ASIO_CONST_BUFFER(data.data(),
1170
- data.size() * sizeof(PodType) < max_size_in_bytes
1171
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1172
- }
1173
-
1174
- #endif // defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND)
1175
-
1176
- /// Create a new non-modifiable buffer that represents the given POD array.
1177
- /**
1178
- * @returns A const_buffer value equivalent to:
1179
- * @code const_buffer(
1180
- * data.data(),
1181
- * data.size() * sizeof(PodType)); @endcode
1182
- */
1183
- template <typename PodType, std::size_t N>
1184
- inline ASIO_CONST_BUFFER buffer(
1185
- const boost::array<PodType, N>& data) ASIO_NOEXCEPT
1186
- {
1187
- return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType));
1188
- }
1189
-
1190
- /// Create a new non-modifiable buffer that represents the given POD array.
1191
- /**
1192
- * @returns A const_buffer value equivalent to:
1193
- * @code const_buffer(
1194
- * data.data(),
1195
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1196
- */
1197
- template <typename PodType, std::size_t N>
1198
- inline ASIO_CONST_BUFFER buffer(const boost::array<PodType, N>& data,
1199
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1200
- {
1201
- return ASIO_CONST_BUFFER(data.data(),
1202
- data.size() * sizeof(PodType) < max_size_in_bytes
1203
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1204
- }
1205
-
1206
- #if defined(ASIO_HAS_STD_ARRAY) || defined(GENERATING_DOCUMENTATION)
1207
-
1208
- /// Create a new modifiable buffer that represents the given POD array.
1209
- /**
1210
- * @returns A mutable_buffer value equivalent to:
1211
- * @code mutable_buffer(
1212
- * data.data(),
1213
- * data.size() * sizeof(PodType)); @endcode
1214
- */
1215
- template <typename PodType, std::size_t N>
1216
- inline ASIO_MUTABLE_BUFFER buffer(
1217
- std::array<PodType, N>& data) ASIO_NOEXCEPT
1218
- {
1219
- return ASIO_MUTABLE_BUFFER(data.data(), data.size() * sizeof(PodType));
1220
- }
1221
-
1222
- /// Create a new modifiable buffer that represents the given POD array.
1223
- /**
1224
- * @returns A mutable_buffer value equivalent to:
1225
- * @code mutable_buffer(
1226
- * data.data(),
1227
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1228
- */
1229
- template <typename PodType, std::size_t N>
1230
- inline ASIO_MUTABLE_BUFFER buffer(std::array<PodType, N>& data,
1231
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1232
- {
1233
- return ASIO_MUTABLE_BUFFER(data.data(),
1234
- data.size() * sizeof(PodType) < max_size_in_bytes
1235
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1236
- }
1237
-
1238
- /// Create a new non-modifiable buffer that represents the given POD array.
1239
- /**
1240
- * @returns A const_buffer value equivalent to:
1241
- * @code const_buffer(
1242
- * data.data(),
1243
- * data.size() * sizeof(PodType)); @endcode
1244
- */
1245
- template <typename PodType, std::size_t N>
1246
- inline ASIO_CONST_BUFFER buffer(
1247
- std::array<const PodType, N>& data) ASIO_NOEXCEPT
1248
- {
1249
- return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType));
1250
- }
1251
-
1252
- /// Create a new non-modifiable buffer that represents the given POD array.
1253
- /**
1254
- * @returns A const_buffer value equivalent to:
1255
- * @code const_buffer(
1256
- * data.data(),
1257
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1258
- */
1259
- template <typename PodType, std::size_t N>
1260
- inline ASIO_CONST_BUFFER buffer(std::array<const PodType, N>& data,
1261
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1262
- {
1263
- return ASIO_CONST_BUFFER(data.data(),
1264
- data.size() * sizeof(PodType) < max_size_in_bytes
1265
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1266
- }
1267
-
1268
- /// Create a new non-modifiable buffer that represents the given POD array.
1269
- /**
1270
- * @returns A const_buffer value equivalent to:
1271
- * @code const_buffer(
1272
- * data.data(),
1273
- * data.size() * sizeof(PodType)); @endcode
1274
- */
1275
- template <typename PodType, std::size_t N>
1276
- inline ASIO_CONST_BUFFER buffer(
1277
- const std::array<PodType, N>& data) ASIO_NOEXCEPT
1278
- {
1279
- return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType));
1280
- }
1281
-
1282
- /// Create a new non-modifiable buffer that represents the given POD array.
1283
- /**
1284
- * @returns A const_buffer value equivalent to:
1285
- * @code const_buffer(
1286
- * data.data(),
1287
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1288
- */
1289
- template <typename PodType, std::size_t N>
1290
- inline ASIO_CONST_BUFFER buffer(const std::array<PodType, N>& data,
1291
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1292
- {
1293
- return ASIO_CONST_BUFFER(data.data(),
1294
- data.size() * sizeof(PodType) < max_size_in_bytes
1295
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1296
- }
1297
-
1298
- #endif // defined(ASIO_HAS_STD_ARRAY) || defined(GENERATING_DOCUMENTATION)
1299
-
1300
- /// Create a new modifiable buffer that represents the given POD vector.
1301
- /**
1302
- * @returns A mutable_buffer value equivalent to:
1303
- * @code mutable_buffer(
1304
- * data.size() ? &data[0] : 0,
1305
- * data.size() * sizeof(PodType)); @endcode
1306
- *
1307
- * @note The buffer is invalidated by any vector operation that would also
1308
- * invalidate iterators.
1309
- */
1310
- template <typename PodType, typename Allocator>
1311
- inline ASIO_MUTABLE_BUFFER buffer(
1312
- std::vector<PodType, Allocator>& data) ASIO_NOEXCEPT
1313
- {
1314
- return ASIO_MUTABLE_BUFFER(
1315
- data.size() ? &data[0] : 0, data.size() * sizeof(PodType)
1316
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
1317
- , detail::buffer_debug_check<
1318
- typename std::vector<PodType, Allocator>::iterator
1319
- >(data.begin())
1320
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
1321
- );
1322
- }
1323
-
1324
- /// Create a new modifiable buffer that represents the given POD vector.
1325
- /**
1326
- * @returns A mutable_buffer value equivalent to:
1327
- * @code mutable_buffer(
1328
- * data.size() ? &data[0] : 0,
1329
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1330
- *
1331
- * @note The buffer is invalidated by any vector operation that would also
1332
- * invalidate iterators.
1333
- */
1334
- template <typename PodType, typename Allocator>
1335
- inline ASIO_MUTABLE_BUFFER buffer(std::vector<PodType, Allocator>& data,
1336
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1337
- {
1338
- return ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0,
1339
- data.size() * sizeof(PodType) < max_size_in_bytes
1340
- ? data.size() * sizeof(PodType) : max_size_in_bytes
1341
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
1342
- , detail::buffer_debug_check<
1343
- typename std::vector<PodType, Allocator>::iterator
1344
- >(data.begin())
1345
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
1346
- );
1347
- }
1348
-
1349
- /// Create a new non-modifiable buffer that represents the given POD vector.
1350
- /**
1351
- * @returns A const_buffer value equivalent to:
1352
- * @code const_buffer(
1353
- * data.size() ? &data[0] : 0,
1354
- * data.size() * sizeof(PodType)); @endcode
1355
- *
1356
- * @note The buffer is invalidated by any vector operation that would also
1357
- * invalidate iterators.
1358
- */
1359
- template <typename PodType, typename Allocator>
1360
- inline ASIO_CONST_BUFFER buffer(
1361
- const std::vector<PodType, Allocator>& data) ASIO_NOEXCEPT
1362
- {
1363
- return ASIO_CONST_BUFFER(
1364
- data.size() ? &data[0] : 0, data.size() * sizeof(PodType)
1365
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
1366
- , detail::buffer_debug_check<
1367
- typename std::vector<PodType, Allocator>::const_iterator
1368
- >(data.begin())
1369
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
1370
- );
1371
- }
1372
-
1373
- /// Create a new non-modifiable buffer that represents the given POD vector.
1374
- /**
1375
- * @returns A const_buffer value equivalent to:
1376
- * @code const_buffer(
1377
- * data.size() ? &data[0] : 0,
1378
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1379
- *
1380
- * @note The buffer is invalidated by any vector operation that would also
1381
- * invalidate iterators.
1382
- */
1383
- template <typename PodType, typename Allocator>
1384
- inline ASIO_CONST_BUFFER buffer(
1385
- const std::vector<PodType, Allocator>& data,
1386
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1387
- {
1388
- return ASIO_CONST_BUFFER(data.size() ? &data[0] : 0,
1389
- data.size() * sizeof(PodType) < max_size_in_bytes
1390
- ? data.size() * sizeof(PodType) : max_size_in_bytes
1391
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
1392
- , detail::buffer_debug_check<
1393
- typename std::vector<PodType, Allocator>::const_iterator
1394
- >(data.begin())
1395
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
1396
- );
1397
- }
1398
-
1399
- /// Create a new modifiable buffer that represents the given string.
1400
- /**
1401
- * @returns <tt>mutable_buffer(data.size() ? &data[0] : 0,
1402
- * data.size() * sizeof(Elem))</tt>.
1403
- *
1404
- * @note The buffer is invalidated by any non-const operation called on the
1405
- * given string object.
1406
- */
1407
- template <typename Elem, typename Traits, typename Allocator>
1408
- inline ASIO_MUTABLE_BUFFER buffer(
1409
- std::basic_string<Elem, Traits, Allocator>& data) ASIO_NOEXCEPT
1410
- {
1411
- return ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0,
1412
- data.size() * sizeof(Elem)
1413
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
1414
- , detail::buffer_debug_check<
1415
- typename std::basic_string<Elem, Traits, Allocator>::iterator
1416
- >(data.begin())
1417
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
1418
- );
1419
- }
1420
-
1421
- /// Create a new modifiable buffer that represents the given string.
1422
- /**
1423
- * @returns A mutable_buffer value equivalent to:
1424
- * @code mutable_buffer(
1425
- * data.size() ? &data[0] : 0,
1426
- * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode
1427
- *
1428
- * @note The buffer is invalidated by any non-const operation called on the
1429
- * given string object.
1430
- */
1431
- template <typename Elem, typename Traits, typename Allocator>
1432
- inline ASIO_MUTABLE_BUFFER buffer(
1433
- std::basic_string<Elem, Traits, Allocator>& data,
1434
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1435
- {
1436
- return ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0,
1437
- data.size() * sizeof(Elem) < max_size_in_bytes
1438
- ? data.size() * sizeof(Elem) : max_size_in_bytes
1439
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
1440
- , detail::buffer_debug_check<
1441
- typename std::basic_string<Elem, Traits, Allocator>::iterator
1442
- >(data.begin())
1443
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
1444
- );
1445
- }
1446
-
1447
- /// Create a new non-modifiable buffer that represents the given string.
1448
- /**
1449
- * @returns <tt>const_buffer(data.data(), data.size() * sizeof(Elem))</tt>.
1450
- *
1451
- * @note The buffer is invalidated by any non-const operation called on the
1452
- * given string object.
1453
- */
1454
- template <typename Elem, typename Traits, typename Allocator>
1455
- inline ASIO_CONST_BUFFER buffer(
1456
- const std::basic_string<Elem, Traits, Allocator>& data) ASIO_NOEXCEPT
1457
- {
1458
- return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(Elem)
1459
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
1460
- , detail::buffer_debug_check<
1461
- typename std::basic_string<Elem, Traits, Allocator>::const_iterator
1462
- >(data.begin())
1463
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
1464
- );
1465
- }
1466
-
1467
- /// Create a new non-modifiable buffer that represents the given string.
1468
- /**
1469
- * @returns A const_buffer value equivalent to:
1470
- * @code const_buffer(
1471
- * data.data(),
1472
- * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode
1473
- *
1474
- * @note The buffer is invalidated by any non-const operation called on the
1475
- * given string object.
1476
- */
1477
- template <typename Elem, typename Traits, typename Allocator>
1478
- inline ASIO_CONST_BUFFER buffer(
1479
- const std::basic_string<Elem, Traits, Allocator>& data,
1480
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1481
- {
1482
- return ASIO_CONST_BUFFER(data.data(),
1483
- data.size() * sizeof(Elem) < max_size_in_bytes
1484
- ? data.size() * sizeof(Elem) : max_size_in_bytes
1485
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
1486
- , detail::buffer_debug_check<
1487
- typename std::basic_string<Elem, Traits, Allocator>::const_iterator
1488
- >(data.begin())
1489
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
1490
- );
1491
- }
1492
-
1493
- #if defined(ASIO_HAS_STRING_VIEW) \
1494
- || defined(GENERATING_DOCUMENTATION)
1495
-
1496
- /// Create a new modifiable buffer that represents the given string_view.
1497
- /**
1498
- * @returns <tt>mutable_buffer(data.size() ? &data[0] : 0,
1499
- * data.size() * sizeof(Elem))</tt>.
1500
- */
1501
- template <typename Elem, typename Traits>
1502
- inline ASIO_CONST_BUFFER buffer(
1503
- basic_string_view<Elem, Traits> data) ASIO_NOEXCEPT
1504
- {
1505
- return ASIO_CONST_BUFFER(data.size() ? &data[0] : 0,
1506
- data.size() * sizeof(Elem)
1507
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
1508
- , detail::buffer_debug_check<
1509
- typename basic_string_view<Elem, Traits>::iterator
1510
- >(data.begin())
1511
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
1512
- );
1513
- }
1514
-
1515
- /// Create a new non-modifiable buffer that represents the given string.
1516
- /**
1517
- * @returns A mutable_buffer value equivalent to:
1518
- * @code mutable_buffer(
1519
- * data.size() ? &data[0] : 0,
1520
- * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode
1521
- */
1522
- template <typename Elem, typename Traits>
1523
- inline ASIO_CONST_BUFFER buffer(
1524
- basic_string_view<Elem, Traits> data,
1525
- std::size_t max_size_in_bytes) ASIO_NOEXCEPT
1526
- {
1527
- return ASIO_CONST_BUFFER(data.size() ? &data[0] : 0,
1528
- data.size() * sizeof(Elem) < max_size_in_bytes
1529
- ? data.size() * sizeof(Elem) : max_size_in_bytes
1530
- #if defined(ASIO_ENABLE_BUFFER_DEBUGGING)
1531
- , detail::buffer_debug_check<
1532
- typename basic_string_view<Elem, Traits>::iterator
1533
- >(data.begin())
1534
- #endif // ASIO_ENABLE_BUFFER_DEBUGGING
1535
- );
1536
- }
1537
-
1538
- #endif // defined(ASIO_HAS_STRING_VIEW)
1539
- // || defined(GENERATING_DOCUMENTATION)
1540
-
1541
- /*@}*/
1542
-
1543
- /// Adapt a basic_string to the DynamicBuffer requirements.
1544
- /**
1545
- * Requires that <tt>sizeof(Elem) == 1</tt>.
1546
- */
1547
- template <typename Elem, typename Traits, typename Allocator>
1548
- class dynamic_string_buffer
1549
- {
1550
- public:
1551
- /// The type used to represent a sequence of constant buffers that refers to
1552
- /// the underlying memory.
1553
- typedef ASIO_CONST_BUFFER const_buffers_type;
1554
-
1555
- /// The type used to represent a sequence of mutable buffers that refers to
1556
- /// the underlying memory.
1557
- typedef ASIO_MUTABLE_BUFFER mutable_buffers_type;
1558
-
1559
- /// Construct a dynamic buffer from a string.
1560
- /**
1561
- * @param s The string to be used as backing storage for the dynamic buffer.
1562
- * The object stores a reference to the string and the user is responsible
1563
- * for ensuring that the string object remains valid while the
1564
- * dynamic_string_buffer object, and copies of the object, are in use.
1565
- *
1566
- * @b DynamicBuffer_v1: Any existing data in the string is treated as the
1567
- * dynamic buffer's input sequence.
1568
- *
1569
- * @param maximum_size Specifies a maximum size for the buffer, in bytes.
1570
- */
1571
- explicit dynamic_string_buffer(std::basic_string<Elem, Traits, Allocator>& s,
1572
- std::size_t maximum_size =
1573
- (std::numeric_limits<std::size_t>::max)()) ASIO_NOEXCEPT
1574
- : string_(s),
1575
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1576
- size_((std::numeric_limits<std::size_t>::max)()),
1577
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1578
- max_size_(maximum_size)
1579
- {
1580
- }
1581
-
1582
- /// @b DynamicBuffer_v2: Copy construct a dynamic buffer.
1583
- dynamic_string_buffer(const dynamic_string_buffer& other) ASIO_NOEXCEPT
1584
- : string_(other.string_),
1585
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1586
- size_(other.size_),
1587
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1588
- max_size_(other.max_size_)
1589
- {
1590
- }
1591
-
1592
- #if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
1593
- /// Move construct a dynamic buffer.
1594
- dynamic_string_buffer(dynamic_string_buffer&& other) ASIO_NOEXCEPT
1595
- : string_(other.string_),
1596
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1597
- size_(other.size_),
1598
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1599
- max_size_(other.max_size_)
1600
- {
1601
- }
1602
- #endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
1603
-
1604
- /// @b DynamicBuffer_v1: Get the size of the input sequence.
1605
- /// @b DynamicBuffer_v2: Get the current size of the underlying memory.
1606
- /**
1607
- * @returns @b DynamicBuffer_v1 The current size of the input sequence.
1608
- * @b DynamicBuffer_v2: The current size of the underlying string if less than
1609
- * max_size(). Otherwise returns max_size().
1610
- */
1611
- std::size_t size() const ASIO_NOEXCEPT
1612
- {
1613
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1614
- if (size_ != (std::numeric_limits<std::size_t>::max)())
1615
- return size_;
1616
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1617
- return (std::min)(string_.size(), max_size());
1618
- }
1619
-
1620
- /// Get the maximum size of the dynamic buffer.
1621
- /**
1622
- * @returns The allowed maximum size of the underlying memory.
1623
- */
1624
- std::size_t max_size() const ASIO_NOEXCEPT
1625
- {
1626
- return max_size_;
1627
- }
1628
-
1629
- /// Get the maximum size that the buffer may grow to without triggering
1630
- /// reallocation.
1631
- /**
1632
- * @returns The current capacity of the underlying string if less than
1633
- * max_size(). Otherwise returns max_size().
1634
- */
1635
- std::size_t capacity() const ASIO_NOEXCEPT
1636
- {
1637
- return (std::min)(string_.capacity(), max_size());
1638
- }
1639
-
1640
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1641
- /// @b DynamicBuffer_v1: Get a list of buffers that represents the input
1642
- /// sequence.
1643
- /**
1644
- * @returns An object of type @c const_buffers_type that satisfies
1645
- * ConstBufferSequence requirements, representing the basic_string memory in
1646
- * the input sequence.
1647
- *
1648
- * @note The returned object is invalidated by any @c dynamic_string_buffer
1649
- * or @c basic_string member function that resizes or erases the string.
1650
- */
1651
- const_buffers_type data() const ASIO_NOEXCEPT
1652
- {
1653
- return const_buffers_type(asio::buffer(string_, size_));
1654
- }
1655
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1656
-
1657
- /// @b DynamicBuffer_v2: Get a sequence of buffers that represents the
1658
- /// underlying memory.
1659
- /**
1660
- * @param pos Position of the first byte to represent in the buffer sequence
1661
- *
1662
- * @param n The number of bytes to return in the buffer sequence. If the
1663
- * underlying memory is shorter, the buffer sequence represents as many bytes
1664
- * as are available.
1665
- *
1666
- * @returns An object of type @c mutable_buffers_type that satisfies
1667
- * MutableBufferSequence requirements, representing the basic_string memory.
1668
- *
1669
- * @note The returned object is invalidated by any @c dynamic_string_buffer
1670
- * or @c basic_string member function that resizes or erases the string.
1671
- */
1672
- mutable_buffers_type data(std::size_t pos, std::size_t n) ASIO_NOEXCEPT
1673
- {
1674
- return mutable_buffers_type(asio::buffer(
1675
- asio::buffer(string_, max_size_) + pos, n));
1676
- }
1677
-
1678
- /// @b DynamicBuffer_v2: Get a sequence of buffers that represents the
1679
- /// underlying memory.
1680
- /**
1681
- * @param pos Position of the first byte to represent in the buffer sequence
1682
- *
1683
- * @param n The number of bytes to return in the buffer sequence. If the
1684
- * underlying memory is shorter, the buffer sequence represents as many bytes
1685
- * as are available.
1686
- *
1687
- * @note The returned object is invalidated by any @c dynamic_string_buffer
1688
- * or @c basic_string member function that resizes or erases the string.
1689
- */
1690
- const_buffers_type data(std::size_t pos,
1691
- std::size_t n) const ASIO_NOEXCEPT
1692
- {
1693
- return const_buffers_type(asio::buffer(
1694
- asio::buffer(string_, max_size_) + pos, n));
1695
- }
1696
-
1697
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1698
- /// @b DynamicBuffer_v1: Get a list of buffers that represents the output
1699
- /// sequence, with the given size.
1700
- /**
1701
- * Ensures that the output sequence can accommodate @c n bytes, resizing the
1702
- * basic_string object as necessary.
1703
- *
1704
- * @returns An object of type @c mutable_buffers_type that satisfies
1705
- * MutableBufferSequence requirements, representing basic_string memory
1706
- * at the start of the output sequence of size @c n.
1707
- *
1708
- * @throws std::length_error If <tt>size() + n > max_size()</tt>.
1709
- *
1710
- * @note The returned object is invalidated by any @c dynamic_string_buffer
1711
- * or @c basic_string member function that modifies the input sequence or
1712
- * output sequence.
1713
- */
1714
- mutable_buffers_type prepare(std::size_t n)
1715
- {
1716
- if (size() > max_size() || max_size() - size() < n)
1717
- {
1718
- std::length_error ex("dynamic_string_buffer too long");
1719
- asio::detail::throw_exception(ex);
1720
- }
1721
-
1722
- if (size_ == (std::numeric_limits<std::size_t>::max)())
1723
- size_ = string_.size(); // Enable v1 behaviour.
1724
-
1725
- string_.resize(size_ + n);
1726
-
1727
- return asio::buffer(asio::buffer(string_) + size_, n);
1728
- }
1729
-
1730
- /// @b DynamicBuffer_v1: Move bytes from the output sequence to the input
1731
- /// sequence.
1732
- /**
1733
- * @param n The number of bytes to append from the start of the output
1734
- * sequence to the end of the input sequence. The remainder of the output
1735
- * sequence is discarded.
1736
- *
1737
- * Requires a preceding call <tt>prepare(x)</tt> where <tt>x >= n</tt>, and
1738
- * no intervening operations that modify the input or output sequence.
1739
- *
1740
- * @note If @c n is greater than the size of the output sequence, the entire
1741
- * output sequence is moved to the input sequence and no error is issued.
1742
- */
1743
- void commit(std::size_t n)
1744
- {
1745
- size_ += (std::min)(n, string_.size() - size_);
1746
- string_.resize(size_);
1747
- }
1748
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1749
-
1750
- /// @b DynamicBuffer_v2: Grow the underlying memory by the specified number of
1751
- /// bytes.
1752
- /**
1753
- * Resizes the string to accommodate an additional @c n bytes at the end.
1754
- *
1755
- * @throws std::length_error If <tt>size() + n > max_size()</tt>.
1756
- */
1757
- void grow(std::size_t n)
1758
- {
1759
- if (size() > max_size() || max_size() - size() < n)
1760
- {
1761
- std::length_error ex("dynamic_string_buffer too long");
1762
- asio::detail::throw_exception(ex);
1763
- }
1764
-
1765
- string_.resize(size() + n);
1766
- }
1767
-
1768
- /// @b DynamicBuffer_v2: Shrink the underlying memory by the specified number
1769
- /// of bytes.
1770
- /**
1771
- * Erases @c n bytes from the end of the string by resizing the basic_string
1772
- * object. If @c n is greater than the current size of the string, the string
1773
- * is emptied.
1774
- */
1775
- void shrink(std::size_t n)
1776
- {
1777
- string_.resize(n > size() ? 0 : size() - n);
1778
- }
1779
-
1780
- /// @b DynamicBuffer_v1: Remove characters from the input sequence.
1781
- /// @b DynamicBuffer_v2: Consume the specified number of bytes from the
1782
- /// beginning of the underlying memory.
1783
- /**
1784
- * @b DynamicBuffer_v1: Removes @c n characters from the beginning of the
1785
- * input sequence. @note If @c n is greater than the size of the input
1786
- * sequence, the entire input sequence is consumed and no error is issued.
1787
- *
1788
- * @b DynamicBuffer_v2: Erases @c n bytes from the beginning of the string.
1789
- * If @c n is greater than the current size of the string, the string is
1790
- * emptied.
1791
- */
1792
- void consume(std::size_t n)
1793
- {
1794
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1795
- if (size_ != (std::numeric_limits<std::size_t>::max)())
1796
- {
1797
- std::size_t consume_length = (std::min)(n, size_);
1798
- string_.erase(0, consume_length);
1799
- size_ -= consume_length;
1800
- return;
1801
- }
1802
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1803
- string_.erase(0, n);
1804
- }
1805
-
1806
- private:
1807
- std::basic_string<Elem, Traits, Allocator>& string_;
1808
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1809
- std::size_t size_;
1810
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1811
- const std::size_t max_size_;
1812
- };
1813
-
1814
- /// Adapt a vector to the DynamicBuffer requirements.
1815
- /**
1816
- * Requires that <tt>sizeof(Elem) == 1</tt>.
1817
- */
1818
- template <typename Elem, typename Allocator>
1819
- class dynamic_vector_buffer
1820
- {
1821
- public:
1822
- /// The type used to represent a sequence of constant buffers that refers to
1823
- /// the underlying memory.
1824
- typedef ASIO_CONST_BUFFER const_buffers_type;
1825
-
1826
- /// The type used to represent a sequence of mutable buffers that refers to
1827
- /// the underlying memory.
1828
- typedef ASIO_MUTABLE_BUFFER mutable_buffers_type;
1829
-
1830
- /// Construct a dynamic buffer from a vector.
1831
- /**
1832
- * @param v The vector to be used as backing storage for the dynamic buffer.
1833
- * The object stores a reference to the vector and the user is responsible
1834
- * for ensuring that the vector object remains valid while the
1835
- * dynamic_vector_buffer object, and copies of the object, are in use.
1836
- *
1837
- * @param maximum_size Specifies a maximum size for the buffer, in bytes.
1838
- */
1839
- explicit dynamic_vector_buffer(std::vector<Elem, Allocator>& v,
1840
- std::size_t maximum_size =
1841
- (std::numeric_limits<std::size_t>::max)()) ASIO_NOEXCEPT
1842
- : vector_(v),
1843
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1844
- size_((std::numeric_limits<std::size_t>::max)()),
1845
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1846
- max_size_(maximum_size)
1847
- {
1848
- }
1849
-
1850
- /// @b DynamicBuffer_v2: Copy construct a dynamic buffer.
1851
- dynamic_vector_buffer(const dynamic_vector_buffer& other) ASIO_NOEXCEPT
1852
- : vector_(other.vector_),
1853
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1854
- size_(other.size_),
1855
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1856
- max_size_(other.max_size_)
1857
- {
1858
- }
1859
-
1860
- #if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
1861
- /// Move construct a dynamic buffer.
1862
- dynamic_vector_buffer(dynamic_vector_buffer&& other) ASIO_NOEXCEPT
1863
- : vector_(other.vector_),
1864
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1865
- size_(other.size_),
1866
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1867
- max_size_(other.max_size_)
1868
- {
1869
- }
1870
- #endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
1871
-
1872
- /// @b DynamicBuffer_v1: Get the size of the input sequence.
1873
- /// @b DynamicBuffer_v2: Get the current size of the underlying memory.
1874
- /**
1875
- * @returns @b DynamicBuffer_v1 The current size of the input sequence.
1876
- * @b DynamicBuffer_v2: The current size of the underlying vector if less than
1877
- * max_size(). Otherwise returns max_size().
1878
- */
1879
- std::size_t size() const ASIO_NOEXCEPT
1880
- {
1881
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1882
- if (size_ != (std::numeric_limits<std::size_t>::max)())
1883
- return size_;
1884
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1885
- return (std::min)(vector_.size(), max_size());
1886
- }
1887
-
1888
- /// Get the maximum size of the dynamic buffer.
1889
- /**
1890
- * @returns @b DynamicBuffer_v1: The allowed maximum of the sum of the sizes
1891
- * of the input sequence and output sequence. @b DynamicBuffer_v2: The allowed
1892
- * maximum size of the underlying memory.
1893
- */
1894
- std::size_t max_size() const ASIO_NOEXCEPT
1895
- {
1896
- return max_size_;
1897
- }
1898
-
1899
- /// Get the maximum size that the buffer may grow to without triggering
1900
- /// reallocation.
1901
- /**
1902
- * @returns @b DynamicBuffer_v1: The current total capacity of the buffer,
1903
- * i.e. for both the input sequence and output sequence. @b DynamicBuffer_v2:
1904
- * The current capacity of the underlying vector if less than max_size().
1905
- * Otherwise returns max_size().
1906
- */
1907
- std::size_t capacity() const ASIO_NOEXCEPT
1908
- {
1909
- return (std::min)(vector_.capacity(), max_size());
1910
- }
1911
-
1912
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1913
- /// @b DynamicBuffer_v1: Get a list of buffers that represents the input
1914
- /// sequence.
1915
- /**
1916
- * @returns An object of type @c const_buffers_type that satisfies
1917
- * ConstBufferSequence requirements, representing the vector memory in the
1918
- * input sequence.
1919
- *
1920
- * @note The returned object is invalidated by any @c dynamic_vector_buffer
1921
- * or @c vector member function that modifies the input sequence or output
1922
- * sequence.
1923
- */
1924
- const_buffers_type data() const ASIO_NOEXCEPT
1925
- {
1926
- return const_buffers_type(asio::buffer(vector_, size_));
1927
- }
1928
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1929
-
1930
- /// @b DynamicBuffer_v2: Get a sequence of buffers that represents the
1931
- /// underlying memory.
1932
- /**
1933
- * @param pos Position of the first byte to represent in the buffer sequence
1934
- *
1935
- * @param n The number of bytes to return in the buffer sequence. If the
1936
- * underlying memory is shorter, the buffer sequence represents as many bytes
1937
- * as are available.
1938
- *
1939
- * @returns An object of type @c mutable_buffers_type that satisfies
1940
- * MutableBufferSequence requirements, representing the vector memory.
1941
- *
1942
- * @note The returned object is invalidated by any @c dynamic_vector_buffer
1943
- * or @c vector member function that resizes or erases the vector.
1944
- */
1945
- mutable_buffers_type data(std::size_t pos, std::size_t n) ASIO_NOEXCEPT
1946
- {
1947
- return mutable_buffers_type(asio::buffer(
1948
- asio::buffer(vector_, max_size_) + pos, n));
1949
- }
1950
-
1951
- /// @b DynamicBuffer_v2: Get a sequence of buffers that represents the
1952
- /// underlying memory.
1953
- /**
1954
- * @param pos Position of the first byte to represent in the buffer sequence
1955
- *
1956
- * @param n The number of bytes to return in the buffer sequence. If the
1957
- * underlying memory is shorter, the buffer sequence represents as many bytes
1958
- * as are available.
1959
- *
1960
- * @note The returned object is invalidated by any @c dynamic_vector_buffer
1961
- * or @c vector member function that resizes or erases the vector.
1962
- */
1963
- const_buffers_type data(std::size_t pos,
1964
- std::size_t n) const ASIO_NOEXCEPT
1965
- {
1966
- return const_buffers_type(asio::buffer(
1967
- asio::buffer(vector_, max_size_) + pos, n));
1968
- }
1969
-
1970
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
1971
- /// @b DynamicBuffer_v1: Get a list of buffers that represents the output
1972
- /// sequence, with the given size.
1973
- /**
1974
- * Ensures that the output sequence can accommodate @c n bytes, resizing the
1975
- * vector object as necessary.
1976
- *
1977
- * @returns An object of type @c mutable_buffers_type that satisfies
1978
- * MutableBufferSequence requirements, representing vector memory at the
1979
- * start of the output sequence of size @c n.
1980
- *
1981
- * @throws std::length_error If <tt>size() + n > max_size()</tt>.
1982
- *
1983
- * @note The returned object is invalidated by any @c dynamic_vector_buffer
1984
- * or @c vector member function that modifies the input sequence or output
1985
- * sequence.
1986
- */
1987
- mutable_buffers_type prepare(std::size_t n)
1988
- {
1989
- if (size () > max_size() || max_size() - size() < n)
1990
- {
1991
- std::length_error ex("dynamic_vector_buffer too long");
1992
- asio::detail::throw_exception(ex);
1993
- }
1994
-
1995
- if (size_ == (std::numeric_limits<std::size_t>::max)())
1996
- size_ = vector_.size(); // Enable v1 behaviour.
1997
-
1998
- vector_.resize(size_ + n);
1999
-
2000
- return asio::buffer(asio::buffer(vector_) + size_, n);
2001
- }
2002
-
2003
- /// @b DynamicBuffer_v1: Move bytes from the output sequence to the input
2004
- /// sequence.
2005
- /**
2006
- * @param n The number of bytes to append from the start of the output
2007
- * sequence to the end of the input sequence. The remainder of the output
2008
- * sequence is discarded.
2009
- *
2010
- * Requires a preceding call <tt>prepare(x)</tt> where <tt>x >= n</tt>, and
2011
- * no intervening operations that modify the input or output sequence.
2012
- *
2013
- * @note If @c n is greater than the size of the output sequence, the entire
2014
- * output sequence is moved to the input sequence and no error is issued.
2015
- */
2016
- void commit(std::size_t n)
2017
- {
2018
- size_ += (std::min)(n, vector_.size() - size_);
2019
- vector_.resize(size_);
2020
- }
2021
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
2022
-
2023
- /// @b DynamicBuffer_v2: Grow the underlying memory by the specified number of
2024
- /// bytes.
2025
- /**
2026
- * Resizes the vector to accommodate an additional @c n bytes at the end.
2027
- *
2028
- * @throws std::length_error If <tt>size() + n > max_size()</tt>.
2029
- */
2030
- void grow(std::size_t n)
2031
- {
2032
- if (size() > max_size() || max_size() - size() < n)
2033
- {
2034
- std::length_error ex("dynamic_vector_buffer too long");
2035
- asio::detail::throw_exception(ex);
2036
- }
2037
-
2038
- vector_.resize(size() + n);
2039
- }
2040
-
2041
- /// @b DynamicBuffer_v2: Shrink the underlying memory by the specified number
2042
- /// of bytes.
2043
- /**
2044
- * Erases @c n bytes from the end of the vector by resizing the vector
2045
- * object. If @c n is greater than the current size of the vector, the vector
2046
- * is emptied.
2047
- */
2048
- void shrink(std::size_t n)
2049
- {
2050
- vector_.resize(n > size() ? 0 : size() - n);
2051
- }
2052
-
2053
- /// @b DynamicBuffer_v1: Remove characters from the input sequence.
2054
- /// @b DynamicBuffer_v2: Consume the specified number of bytes from the
2055
- /// beginning of the underlying memory.
2056
- /**
2057
- * @b DynamicBuffer_v1: Removes @c n characters from the beginning of the
2058
- * input sequence. @note If @c n is greater than the size of the input
2059
- * sequence, the entire input sequence is consumed and no error is issued.
2060
- *
2061
- * @b DynamicBuffer_v2: Erases @c n bytes from the beginning of the vector.
2062
- * If @c n is greater than the current size of the vector, the vector is
2063
- * emptied.
2064
- */
2065
- void consume(std::size_t n)
2066
- {
2067
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
2068
- if (size_ != (std::numeric_limits<std::size_t>::max)())
2069
- {
2070
- std::size_t consume_length = (std::min)(n, size_);
2071
- vector_.erase(vector_.begin(), vector_.begin() + consume_length);
2072
- size_ -= consume_length;
2073
- return;
2074
- }
2075
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
2076
- vector_.erase(vector_.begin(), vector_.begin() + (std::min)(size(), n));
2077
- }
2078
-
2079
- private:
2080
- std::vector<Elem, Allocator>& vector_;
2081
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
2082
- std::size_t size_;
2083
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
2084
- const std::size_t max_size_;
2085
- };
2086
-
2087
- /** @defgroup dynamic_buffer asio::dynamic_buffer
2088
- *
2089
- * @brief The asio::dynamic_buffer function is used to create a
2090
- * dynamically resized buffer from a @c std::basic_string or @c std::vector.
2091
- */
2092
- /*@{*/
2093
-
2094
- /// Create a new dynamic buffer that represents the given string.
2095
- /**
2096
- * @returns <tt>dynamic_string_buffer<Elem, Traits, Allocator>(data)</tt>.
2097
- */
2098
- template <typename Elem, typename Traits, typename Allocator>
2099
- inline dynamic_string_buffer<Elem, Traits, Allocator> dynamic_buffer(
2100
- std::basic_string<Elem, Traits, Allocator>& data) ASIO_NOEXCEPT
2101
- {
2102
- return dynamic_string_buffer<Elem, Traits, Allocator>(data);
2103
- }
2104
-
2105
- /// Create a new dynamic buffer that represents the given string.
2106
- /**
2107
- * @returns <tt>dynamic_string_buffer<Elem, Traits, Allocator>(data,
2108
- * max_size)</tt>.
2109
- */
2110
- template <typename Elem, typename Traits, typename Allocator>
2111
- inline dynamic_string_buffer<Elem, Traits, Allocator> dynamic_buffer(
2112
- std::basic_string<Elem, Traits, Allocator>& data,
2113
- std::size_t max_size) ASIO_NOEXCEPT
2114
- {
2115
- return dynamic_string_buffer<Elem, Traits, Allocator>(data, max_size);
2116
- }
2117
-
2118
- /// Create a new dynamic buffer that represents the given vector.
2119
- /**
2120
- * @returns <tt>dynamic_vector_buffer<Elem, Allocator>(data)</tt>.
2121
- */
2122
- template <typename Elem, typename Allocator>
2123
- inline dynamic_vector_buffer<Elem, Allocator> dynamic_buffer(
2124
- std::vector<Elem, Allocator>& data) ASIO_NOEXCEPT
2125
- {
2126
- return dynamic_vector_buffer<Elem, Allocator>(data);
2127
- }
2128
-
2129
- /// Create a new dynamic buffer that represents the given vector.
2130
- /**
2131
- * @returns <tt>dynamic_vector_buffer<Elem, Allocator>(data, max_size)</tt>.
2132
- */
2133
- template <typename Elem, typename Allocator>
2134
- inline dynamic_vector_buffer<Elem, Allocator> dynamic_buffer(
2135
- std::vector<Elem, Allocator>& data,
2136
- std::size_t max_size) ASIO_NOEXCEPT
2137
- {
2138
- return dynamic_vector_buffer<Elem, Allocator>(data, max_size);
2139
- }
2140
-
2141
- /*@}*/
2142
-
2143
- /** @defgroup buffer_copy asio::buffer_copy
2144
- *
2145
- * @brief The asio::buffer_copy function is used to copy bytes from a
2146
- * source buffer (or buffer sequence) to a target buffer (or buffer sequence).
2147
- *
2148
- * The @c buffer_copy function is available in two forms:
2149
- *
2150
- * @li A 2-argument form: @c buffer_copy(target, source)
2151
- *
2152
- * @li A 3-argument form: @c buffer_copy(target, source, max_bytes_to_copy)
2153
- *
2154
- * Both forms return the number of bytes actually copied. The number of bytes
2155
- * copied is the lesser of:
2156
- *
2157
- * @li @c buffer_size(target)
2158
- *
2159
- * @li @c buffer_size(source)
2160
- *
2161
- * @li @c If specified, @c max_bytes_to_copy.
2162
- *
2163
- * This prevents buffer overflow, regardless of the buffer sizes used in the
2164
- * copy operation.
2165
- *
2166
- * Note that @ref buffer_copy is implemented in terms of @c memcpy, and
2167
- * consequently it cannot be used to copy between overlapping memory regions.
2168
- */
2169
- /*@{*/
2170
-
2171
- namespace detail {
2172
-
2173
- inline std::size_t buffer_copy_1(const mutable_buffer& target,
2174
- const const_buffer& source)
2175
- {
2176
- using namespace std; // For memcpy.
2177
- std::size_t target_size = target.size();
2178
- std::size_t source_size = source.size();
2179
- std::size_t n = target_size < source_size ? target_size : source_size;
2180
- if (n > 0)
2181
- memcpy(target.data(), source.data(), n);
2182
- return n;
2183
- }
2184
-
2185
- template <typename TargetIterator, typename SourceIterator>
2186
- inline std::size_t buffer_copy(one_buffer, one_buffer,
2187
- TargetIterator target_begin, TargetIterator,
2188
- SourceIterator source_begin, SourceIterator) ASIO_NOEXCEPT
2189
- {
2190
- return (buffer_copy_1)(*target_begin, *source_begin);
2191
- }
2192
-
2193
- template <typename TargetIterator, typename SourceIterator>
2194
- inline std::size_t buffer_copy(one_buffer, one_buffer,
2195
- TargetIterator target_begin, TargetIterator,
2196
- SourceIterator source_begin, SourceIterator,
2197
- std::size_t max_bytes_to_copy) ASIO_NOEXCEPT
2198
- {
2199
- return (buffer_copy_1)(*target_begin,
2200
- asio::buffer(*source_begin, max_bytes_to_copy));
2201
- }
2202
-
2203
- template <typename TargetIterator, typename SourceIterator>
2204
- std::size_t buffer_copy(one_buffer, multiple_buffers,
2205
- TargetIterator target_begin, TargetIterator,
2206
- SourceIterator source_begin, SourceIterator source_end,
2207
- std::size_t max_bytes_to_copy
2208
- = (std::numeric_limits<std::size_t>::max)()) ASIO_NOEXCEPT
2209
- {
2210
- std::size_t total_bytes_copied = 0;
2211
- SourceIterator source_iter = source_begin;
2212
-
2213
- for (mutable_buffer target_buffer(
2214
- asio::buffer(*target_begin, max_bytes_to_copy));
2215
- target_buffer.size() && source_iter != source_end; ++source_iter)
2216
- {
2217
- const_buffer source_buffer(*source_iter);
2218
- std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
2219
- total_bytes_copied += bytes_copied;
2220
- target_buffer += bytes_copied;
2221
- }
2222
-
2223
- return total_bytes_copied;
2224
- }
2225
-
2226
- template <typename TargetIterator, typename SourceIterator>
2227
- std::size_t buffer_copy(multiple_buffers, one_buffer,
2228
- TargetIterator target_begin, TargetIterator target_end,
2229
- SourceIterator source_begin, SourceIterator,
2230
- std::size_t max_bytes_to_copy
2231
- = (std::numeric_limits<std::size_t>::max)()) ASIO_NOEXCEPT
2232
- {
2233
- std::size_t total_bytes_copied = 0;
2234
- TargetIterator target_iter = target_begin;
2235
-
2236
- for (const_buffer source_buffer(
2237
- asio::buffer(*source_begin, max_bytes_to_copy));
2238
- source_buffer.size() && target_iter != target_end; ++target_iter)
2239
- {
2240
- mutable_buffer target_buffer(*target_iter);
2241
- std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
2242
- total_bytes_copied += bytes_copied;
2243
- source_buffer += bytes_copied;
2244
- }
2245
-
2246
- return total_bytes_copied;
2247
- }
2248
-
2249
- template <typename TargetIterator, typename SourceIterator>
2250
- std::size_t buffer_copy(multiple_buffers, multiple_buffers,
2251
- TargetIterator target_begin, TargetIterator target_end,
2252
- SourceIterator source_begin, SourceIterator source_end) ASIO_NOEXCEPT
2253
- {
2254
- std::size_t total_bytes_copied = 0;
2255
-
2256
- TargetIterator target_iter = target_begin;
2257
- std::size_t target_buffer_offset = 0;
2258
-
2259
- SourceIterator source_iter = source_begin;
2260
- std::size_t source_buffer_offset = 0;
2261
-
2262
- while (target_iter != target_end && source_iter != source_end)
2263
- {
2264
- mutable_buffer target_buffer =
2265
- mutable_buffer(*target_iter) + target_buffer_offset;
2266
-
2267
- const_buffer source_buffer =
2268
- const_buffer(*source_iter) + source_buffer_offset;
2269
-
2270
- std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
2271
- total_bytes_copied += bytes_copied;
2272
-
2273
- if (bytes_copied == target_buffer.size())
2274
- {
2275
- ++target_iter;
2276
- target_buffer_offset = 0;
2277
- }
2278
- else
2279
- target_buffer_offset += bytes_copied;
2280
-
2281
- if (bytes_copied == source_buffer.size())
2282
- {
2283
- ++source_iter;
2284
- source_buffer_offset = 0;
2285
- }
2286
- else
2287
- source_buffer_offset += bytes_copied;
2288
- }
2289
-
2290
- return total_bytes_copied;
2291
- }
2292
-
2293
- template <typename TargetIterator, typename SourceIterator>
2294
- std::size_t buffer_copy(multiple_buffers, multiple_buffers,
2295
- TargetIterator target_begin, TargetIterator target_end,
2296
- SourceIterator source_begin, SourceIterator source_end,
2297
- std::size_t max_bytes_to_copy) ASIO_NOEXCEPT
2298
- {
2299
- std::size_t total_bytes_copied = 0;
2300
-
2301
- TargetIterator target_iter = target_begin;
2302
- std::size_t target_buffer_offset = 0;
2303
-
2304
- SourceIterator source_iter = source_begin;
2305
- std::size_t source_buffer_offset = 0;
2306
-
2307
- while (total_bytes_copied != max_bytes_to_copy
2308
- && target_iter != target_end && source_iter != source_end)
2309
- {
2310
- mutable_buffer target_buffer =
2311
- mutable_buffer(*target_iter) + target_buffer_offset;
2312
-
2313
- const_buffer source_buffer =
2314
- const_buffer(*source_iter) + source_buffer_offset;
2315
-
2316
- std::size_t bytes_copied = (buffer_copy_1)(
2317
- target_buffer, asio::buffer(source_buffer,
2318
- max_bytes_to_copy - total_bytes_copied));
2319
- total_bytes_copied += bytes_copied;
2320
-
2321
- if (bytes_copied == target_buffer.size())
2322
- {
2323
- ++target_iter;
2324
- target_buffer_offset = 0;
2325
- }
2326
- else
2327
- target_buffer_offset += bytes_copied;
2328
-
2329
- if (bytes_copied == source_buffer.size())
2330
- {
2331
- ++source_iter;
2332
- source_buffer_offset = 0;
2333
- }
2334
- else
2335
- source_buffer_offset += bytes_copied;
2336
- }
2337
-
2338
- return total_bytes_copied;
2339
- }
2340
-
2341
- } // namespace detail
2342
-
2343
- /// Copies bytes from a source buffer sequence to a target buffer sequence.
2344
- /**
2345
- * @param target A modifiable buffer sequence representing the memory regions to
2346
- * which the bytes will be copied.
2347
- *
2348
- * @param source A non-modifiable buffer sequence representing the memory
2349
- * regions from which the bytes will be copied.
2350
- *
2351
- * @returns The number of bytes copied.
2352
- *
2353
- * @note The number of bytes copied is the lesser of:
2354
- *
2355
- * @li @c buffer_size(target)
2356
- *
2357
- * @li @c buffer_size(source)
2358
- *
2359
- * This function is implemented in terms of @c memcpy, and consequently it
2360
- * cannot be used to copy between overlapping memory regions.
2361
- */
2362
- template <typename MutableBufferSequence, typename ConstBufferSequence>
2363
- inline std::size_t buffer_copy(const MutableBufferSequence& target,
2364
- const ConstBufferSequence& source) ASIO_NOEXCEPT
2365
- {
2366
- return detail::buffer_copy(
2367
- detail::buffer_sequence_cardinality<MutableBufferSequence>(),
2368
- detail::buffer_sequence_cardinality<ConstBufferSequence>(),
2369
- asio::buffer_sequence_begin(target),
2370
- asio::buffer_sequence_end(target),
2371
- asio::buffer_sequence_begin(source),
2372
- asio::buffer_sequence_end(source));
2373
- }
2374
-
2375
- /// Copies a limited number of bytes from a source buffer sequence to a target
2376
- /// buffer sequence.
2377
- /**
2378
- * @param target A modifiable buffer sequence representing the memory regions to
2379
- * which the bytes will be copied.
2380
- *
2381
- * @param source A non-modifiable buffer sequence representing the memory
2382
- * regions from which the bytes will be copied.
2383
- *
2384
- * @param max_bytes_to_copy The maximum number of bytes to be copied.
2385
- *
2386
- * @returns The number of bytes copied.
2387
- *
2388
- * @note The number of bytes copied is the lesser of:
2389
- *
2390
- * @li @c buffer_size(target)
2391
- *
2392
- * @li @c buffer_size(source)
2393
- *
2394
- * @li @c max_bytes_to_copy
2395
- *
2396
- * This function is implemented in terms of @c memcpy, and consequently it
2397
- * cannot be used to copy between overlapping memory regions.
2398
- */
2399
- template <typename MutableBufferSequence, typename ConstBufferSequence>
2400
- inline std::size_t buffer_copy(const MutableBufferSequence& target,
2401
- const ConstBufferSequence& source,
2402
- std::size_t max_bytes_to_copy) ASIO_NOEXCEPT
2403
- {
2404
- return detail::buffer_copy(
2405
- detail::buffer_sequence_cardinality<MutableBufferSequence>(),
2406
- detail::buffer_sequence_cardinality<ConstBufferSequence>(),
2407
- asio::buffer_sequence_begin(target),
2408
- asio::buffer_sequence_end(target),
2409
- asio::buffer_sequence_begin(source),
2410
- asio::buffer_sequence_end(source), max_bytes_to_copy);
2411
- }
2412
-
2413
- /*@}*/
2414
-
2415
- } // namespace asio
2416
-
2417
- #include "asio/detail/pop_options.hpp"
2418
- #include "asio/detail/is_buffer_sequence.hpp"
2419
- #include "asio/detail/push_options.hpp"
2420
-
2421
- namespace asio {
2422
-
2423
- /// Trait to determine whether a type satisfies the MutableBufferSequence
2424
- /// requirements.
2425
- template <typename T>
2426
- struct is_mutable_buffer_sequence
2427
- #if defined(GENERATING_DOCUMENTATION)
2428
- : integral_constant<bool, automatically_determined>
2429
- #else // defined(GENERATING_DOCUMENTATION)
2430
- : asio::detail::is_buffer_sequence<T, mutable_buffer>
2431
- #endif // defined(GENERATING_DOCUMENTATION)
2432
- {
2433
- };
2434
-
2435
- /// Trait to determine whether a type satisfies the ConstBufferSequence
2436
- /// requirements.
2437
- template <typename T>
2438
- struct is_const_buffer_sequence
2439
- #if defined(GENERATING_DOCUMENTATION)
2440
- : integral_constant<bool, automatically_determined>
2441
- #else // defined(GENERATING_DOCUMENTATION)
2442
- : asio::detail::is_buffer_sequence<T, const_buffer>
2443
- #endif // defined(GENERATING_DOCUMENTATION)
2444
- {
2445
- };
2446
-
2447
- #if !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
2448
- /// Trait to determine whether a type satisfies the DynamicBuffer_v1
2449
- /// requirements.
2450
- template <typename T>
2451
- struct is_dynamic_buffer_v1
2452
- #if defined(GENERATING_DOCUMENTATION)
2453
- : integral_constant<bool, automatically_determined>
2454
- #else // defined(GENERATING_DOCUMENTATION)
2455
- : asio::detail::is_dynamic_buffer_v1<T>
2456
- #endif // defined(GENERATING_DOCUMENTATION)
2457
- {
2458
- };
2459
- #endif // !defined(ASIO_NO_DYNAMIC_BUFFER_V1)
2460
-
2461
- /// Trait to determine whether a type satisfies the DynamicBuffer_v2
2462
- /// requirements.
2463
- template <typename T>
2464
- struct is_dynamic_buffer_v2
2465
- #if defined(GENERATING_DOCUMENTATION)
2466
- : integral_constant<bool, automatically_determined>
2467
- #else // defined(GENERATING_DOCUMENTATION)
2468
- : asio::detail::is_dynamic_buffer_v2<T>
2469
- #endif // defined(GENERATING_DOCUMENTATION)
2470
- {
2471
- };
2472
-
2473
- /// Trait to determine whether a type satisfies the DynamicBuffer requirements.
2474
- /**
2475
- * If @c ASIO_NO_DYNAMIC_BUFFER_V1 is not defined, determines whether the
2476
- * type satisfies the DynamicBuffer_v1 requirements. Otherwise, if @c
2477
- * ASIO_NO_DYNAMIC_BUFFER_V1 is defined, determines whether the type
2478
- * satisfies the DynamicBuffer_v2 requirements.
2479
- */
2480
- template <typename T>
2481
- struct is_dynamic_buffer
2482
- #if defined(GENERATING_DOCUMENTATION)
2483
- : integral_constant<bool, automatically_determined>
2484
- #elif defined(ASIO_NO_DYNAMIC_BUFFER_V1)
2485
- : asio::is_dynamic_buffer_v2<T>
2486
- #else // defined(ASIO_NO_DYNAMIC_BUFFER_V1)
2487
- : asio::is_dynamic_buffer_v1<T>
2488
- #endif // defined(ASIO_NO_DYNAMIC_BUFFER_V1)
2489
- {
2490
- };
2491
-
2492
- } // namespace asio
2493
-
2494
- #include "asio/detail/pop_options.hpp"
2495
-
2496
- #endif // ASIO_BUFFER_HPP