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

Sign up to get free protection for your applications and to get access to all the features.
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