couchbase 3.0.0.alpha.2-universal-darwin-19 → 3.0.0-universal-darwin-19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (888) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +227 -0
  3. data/.rubocop_todo.yml +47 -0
  4. data/.yardopts +1 -0
  5. data/CONTRIBUTING.md +110 -0
  6. data/Gemfile +16 -3
  7. data/README.md +6 -4
  8. data/Rakefile +6 -2
  9. data/couchbase.gemspec +46 -13
  10. data/examples/analytics.rb +236 -0
  11. data/examples/auth.rb +33 -0
  12. data/examples/crud.rb +16 -2
  13. data/examples/managing_analytics_indexes.rb +86 -0
  14. data/examples/managing_buckets.rb +17 -3
  15. data/examples/managing_collections.rb +22 -9
  16. data/examples/managing_query_indexes.rb +39 -19
  17. data/examples/managing_search_indexes.rb +77 -0
  18. data/examples/managing_view_indexes.rb +68 -0
  19. data/examples/query.rb +17 -3
  20. data/examples/query_with_consistency.rb +30 -20
  21. data/examples/search.rb +202 -0
  22. data/examples/search_with_consistency.rb +97 -0
  23. data/examples/subdocument.rb +42 -30
  24. data/examples/view.rb +59 -0
  25. data/ext/.clang-tidy +2 -0
  26. data/ext/.idea/misc.xml +12 -0
  27. data/ext/CMakeLists.txt +50 -3
  28. data/ext/build_config.hxx.in +20 -0
  29. data/ext/build_version.hxx.in +1 -1
  30. data/ext/couchbase/bucket.hxx +228 -51
  31. data/ext/couchbase/cluster.hxx +147 -87
  32. data/ext/couchbase/cluster_options.hxx +53 -0
  33. data/ext/couchbase/configuration.hxx +232 -14
  34. data/ext/couchbase/couchbase.cxx +4250 -1458
  35. data/ext/couchbase/error_map.hxx +202 -2
  36. data/ext/couchbase/errors.hxx +8 -2
  37. data/ext/couchbase/io/dns_client.hxx +217 -0
  38. data/ext/couchbase/io/dns_codec.hxx +207 -0
  39. data/ext/couchbase/io/dns_config.hxx +116 -0
  40. data/ext/couchbase/io/dns_message.hxx +555 -0
  41. data/ext/couchbase/io/http_command.hxx +91 -0
  42. data/ext/couchbase/io/http_session.hxx +119 -47
  43. data/ext/couchbase/io/{session_manager.hxx → http_session_manager.hxx} +34 -34
  44. data/ext/couchbase/io/mcbp_command.hxx +237 -0
  45. data/ext/couchbase/io/mcbp_message.hxx +24 -2
  46. data/ext/couchbase/io/mcbp_parser.hxx +2 -0
  47. data/ext/couchbase/io/mcbp_session.hxx +455 -173
  48. data/ext/couchbase/io/retry_action.hxx +30 -0
  49. data/ext/couchbase/io/retry_context.hxx +39 -0
  50. data/ext/couchbase/io/retry_orchestrator.hxx +96 -0
  51. data/ext/couchbase/io/retry_reason.hxx +235 -0
  52. data/ext/couchbase/io/retry_strategy.hxx +156 -0
  53. data/ext/couchbase/io/streams.hxx +165 -0
  54. data/ext/couchbase/mutation_token.hxx +1 -1
  55. data/ext/couchbase/operations.hxx +33 -1
  56. data/ext/couchbase/operations/analytics_dataset_create.hxx +117 -0
  57. data/ext/couchbase/operations/analytics_dataset_drop.hxx +103 -0
  58. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +107 -0
  59. data/ext/couchbase/operations/analytics_dataverse_create.hxx +104 -0
  60. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +104 -0
  61. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +91 -0
  62. data/ext/couchbase/operations/analytics_index_create.hxx +128 -0
  63. data/ext/couchbase/operations/analytics_index_drop.hxx +110 -0
  64. data/ext/couchbase/operations/analytics_index_get_all.hxx +106 -0
  65. data/ext/couchbase/operations/analytics_link_connect.hxx +102 -0
  66. data/ext/couchbase/operations/analytics_link_disconnect.hxx +101 -0
  67. data/ext/couchbase/operations/bucket_create.hxx +5 -2
  68. data/ext/couchbase/operations/bucket_drop.hxx +5 -2
  69. data/ext/couchbase/operations/bucket_flush.hxx +5 -2
  70. data/ext/couchbase/operations/bucket_get.hxx +5 -2
  71. data/ext/couchbase/operations/bucket_get_all.hxx +5 -2
  72. data/ext/couchbase/operations/bucket_update.hxx +5 -2
  73. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +5 -2
  74. data/ext/couchbase/operations/collection_create.hxx +10 -3
  75. data/ext/couchbase/operations/collection_drop.hxx +5 -2
  76. data/ext/couchbase/operations/design_document.hxx +59 -0
  77. data/ext/couchbase/operations/document_analytics.hxx +288 -0
  78. data/ext/couchbase/operations/document_decrement.hxx +11 -4
  79. data/ext/couchbase/operations/document_exists.hxx +5 -1
  80. data/ext/couchbase/operations/document_get.hxx +8 -1
  81. data/ext/couchbase/operations/document_get_and_lock.hxx +8 -1
  82. data/ext/couchbase/operations/document_get_and_touch.hxx +10 -3
  83. data/ext/couchbase/operations/document_get_projected.hxx +249 -0
  84. data/ext/couchbase/operations/document_increment.hxx +14 -5
  85. data/ext/couchbase/operations/document_insert.hxx +10 -3
  86. data/ext/couchbase/operations/document_lookup_in.hxx +27 -1
  87. data/ext/couchbase/operations/document_mutate_in.hxx +51 -2
  88. data/ext/couchbase/operations/document_query.hxx +31 -11
  89. data/ext/couchbase/operations/document_remove.hxx +8 -1
  90. data/ext/couchbase/operations/document_replace.hxx +10 -3
  91. data/ext/couchbase/operations/document_search.hxx +360 -0
  92. data/ext/couchbase/operations/document_touch.hxx +10 -3
  93. data/ext/couchbase/operations/document_unlock.hxx +8 -1
  94. data/ext/couchbase/operations/document_upsert.hxx +10 -3
  95. data/ext/couchbase/operations/document_view.hxx +228 -0
  96. data/ext/couchbase/operations/query_index_build_deferred.hxx +4 -3
  97. data/ext/couchbase/operations/query_index_create.hxx +18 -7
  98. data/ext/couchbase/operations/query_index_drop.hxx +16 -5
  99. data/ext/couchbase/operations/query_index_get_all.hxx +15 -5
  100. data/ext/couchbase/operations/scope_create.hxx +5 -2
  101. data/ext/couchbase/operations/scope_drop.hxx +5 -2
  102. data/ext/couchbase/operations/scope_get_all.hxx +6 -2
  103. data/ext/couchbase/operations/search_index.hxx +79 -0
  104. data/ext/couchbase/operations/search_index_analyze_document.hxx +92 -0
  105. data/ext/couchbase/operations/search_index_control_ingest.hxx +80 -0
  106. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +80 -0
  107. data/ext/couchbase/operations/search_index_control_query.hxx +80 -0
  108. data/ext/couchbase/operations/search_index_drop.hxx +77 -0
  109. data/ext/couchbase/operations/search_index_get.hxx +80 -0
  110. data/ext/couchbase/operations/search_index_get_all.hxx +82 -0
  111. data/ext/couchbase/operations/search_index_get_documents_count.hxx +81 -0
  112. data/ext/couchbase/operations/search_index_upsert.hxx +106 -0
  113. data/ext/couchbase/operations/view_index_drop.hxx +67 -0
  114. data/ext/couchbase/operations/view_index_get.hxx +90 -0
  115. data/ext/couchbase/operations/view_index_get_all.hxx +125 -0
  116. data/ext/couchbase/operations/view_index_upsert.hxx +87 -0
  117. data/ext/couchbase/origin.hxx +178 -0
  118. data/ext/couchbase/platform/backtrace.c +189 -0
  119. data/ext/couchbase/platform/backtrace.h +54 -0
  120. data/ext/couchbase/platform/terminate_handler.cc +122 -0
  121. data/ext/couchbase/platform/terminate_handler.h +36 -0
  122. data/ext/couchbase/protocol/client_opcode.hxx +17 -3
  123. data/ext/couchbase/protocol/client_response.hxx +1 -1
  124. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +1 -6
  125. data/ext/couchbase/protocol/cmd_decrement.hxx +5 -5
  126. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +5 -5
  127. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +7 -7
  128. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +117 -0
  129. data/ext/couchbase/protocol/cmd_hello.hxx +10 -0
  130. data/ext/couchbase/protocol/cmd_increment.hxx +5 -5
  131. data/ext/couchbase/protocol/cmd_info.hxx +0 -11
  132. data/ext/couchbase/protocol/cmd_insert.hxx +5 -5
  133. data/ext/couchbase/protocol/cmd_lookup_in.hxx +1 -0
  134. data/ext/couchbase/protocol/cmd_mutate_in.hxx +53 -5
  135. data/ext/couchbase/protocol/cmd_replace.hxx +5 -5
  136. data/ext/couchbase/protocol/cmd_touch.hxx +1 -1
  137. data/ext/couchbase/protocol/cmd_upsert.hxx +5 -5
  138. data/ext/couchbase/protocol/status.hxx +14 -4
  139. data/ext/couchbase/service_type.hxx +38 -1
  140. data/ext/couchbase/timeout_defaults.hxx +41 -0
  141. data/ext/couchbase/utils/connection_string.hxx +370 -0
  142. data/ext/couchbase/version.hxx +2 -2
  143. data/ext/extconf.rb +60 -24
  144. data/ext/test/main.cxx +139 -22
  145. data/ext/third_party/http_parser/Makefile +160 -0
  146. data/ext/third_party/json/Makefile +77 -0
  147. data/lib/couchbase.rb +0 -1
  148. data/lib/couchbase/analytics_options.rb +177 -0
  149. data/lib/couchbase/authenticator.rb +14 -0
  150. data/lib/couchbase/binary_collection.rb +17 -13
  151. data/lib/couchbase/binary_collection_options.rb +14 -8
  152. data/lib/couchbase/bucket.rb +55 -3
  153. data/lib/couchbase/cluster.rb +219 -250
  154. data/lib/couchbase/collection.rb +67 -33
  155. data/lib/couchbase/collection_options.rb +95 -15
  156. data/lib/couchbase/common_options.rb +1 -1
  157. data/{bin/console → lib/couchbase/datastructures.rb} +4 -7
  158. data/lib/couchbase/datastructures/couchbase_list.rb +171 -0
  159. data/lib/couchbase/datastructures/couchbase_map.rb +205 -0
  160. data/lib/couchbase/datastructures/couchbase_queue.rb +145 -0
  161. data/lib/couchbase/datastructures/couchbase_set.rb +139 -0
  162. data/lib/couchbase/errors.rb +76 -66
  163. data/lib/couchbase/json_transcoder.rb +4 -4
  164. data/lib/couchbase/libcouchbase.bundle +0 -0
  165. data/lib/couchbase/management/analytics_index_manager.rb +139 -25
  166. data/lib/couchbase/management/bucket_manager.rb +19 -5
  167. data/lib/couchbase/management/collection_manager.rb +16 -7
  168. data/lib/couchbase/management/query_index_manager.rb +75 -20
  169. data/lib/couchbase/management/search_index_manager.rb +65 -15
  170. data/lib/couchbase/management/user_manager.rb +2 -2
  171. data/lib/couchbase/management/view_index_manager.rb +70 -11
  172. data/lib/couchbase/mutation_state.rb +13 -0
  173. data/lib/couchbase/query_options.rb +256 -0
  174. data/lib/couchbase/scope.rb +61 -8
  175. data/lib/couchbase/search_options.rb +1512 -0
  176. data/lib/couchbase/subdoc.rb +87 -23
  177. data/lib/couchbase/version.rb +2 -2
  178. data/lib/couchbase/view_options.rb +155 -0
  179. metadata +86 -781
  180. data/.github/workflows/tests-6.0.3.yml +0 -49
  181. data/.github/workflows/tests.yml +0 -47
  182. data/.gitignore +0 -20
  183. data/.gitmodules +0 -18
  184. data/.idea/.gitignore +0 -5
  185. data/.idea/dictionaries/gem_terms.xml +0 -18
  186. data/.idea/inspectionProfiles/Project_Default.xml +0 -8
  187. data/.idea/vcs.xml +0 -12
  188. data/bin/init-cluster +0 -62
  189. data/bin/setup +0 -24
  190. data/ext/couchbase/configuration_monitor.hxx +0 -93
  191. data/ext/couchbase/operations/command.hxx +0 -77
  192. data/ext/third_party/asio/asio/src/examples/cpp03/Makefile.am +0 -251
  193. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/.gitignore +0 -10
  194. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/server.cpp +0 -285
  195. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/.gitignore +0 -10
  196. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/reference_counted.cpp +0 -131
  197. data/ext/third_party/asio/asio/src/examples/cpp03/chat/.gitignore +0 -11
  198. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_client.cpp +0 -177
  199. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_message.hpp +0 -93
  200. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_server.cpp +0 -249
  201. data/ext/third_party/asio/asio/src/examples/cpp03/chat/posix_chat_client.cpp +0 -204
  202. data/ext/third_party/asio/asio/src/examples/cpp03/echo/.gitignore +0 -11
  203. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp +0 -137
  204. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp +0 -92
  205. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp +0 -59
  206. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp +0 -79
  207. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp +0 -59
  208. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp +0 -53
  209. data/ext/third_party/asio/asio/src/examples/cpp03/fork/.gitignore +0 -11
  210. data/ext/third_party/asio/asio/src/examples/cpp03/fork/daemon.cpp +0 -190
  211. data/ext/third_party/asio/asio/src/examples/cpp03/fork/process_per_connection.cpp +0 -161
  212. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/.gitignore +0 -10
  213. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/async_client.cpp +0 -204
  214. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/sync_client.cpp +0 -106
  215. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_1K.html +0 -28
  216. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_2K.html +0 -49
  217. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_4K.html +0 -91
  218. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_8K.html +0 -175
  219. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/.gitignore +0 -11
  220. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.cpp +0 -99
  221. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.hpp +0 -83
  222. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.cpp +0 -38
  223. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.hpp +0 -44
  224. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/header.hpp +0 -28
  225. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/main.cpp +0 -44
  226. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.cpp +0 -46
  227. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.hpp +0 -27
  228. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.cpp +0 -256
  229. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.hpp +0 -64
  230. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request.hpp +0 -34
  231. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.cpp +0 -122
  232. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.hpp +0 -46
  233. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.cpp +0 -315
  234. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.hpp +0 -95
  235. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.cpp +0 -94
  236. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.hpp +0 -69
  237. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/.gitignore +0 -11
  238. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.cpp +0 -93
  239. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.hpp +0 -75
  240. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/header.hpp +0 -28
  241. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.cpp +0 -69
  242. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.hpp +0 -58
  243. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/main.cpp +0 -46
  244. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.cpp +0 -46
  245. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.hpp +0 -27
  246. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.cpp +0 -256
  247. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.hpp +0 -64
  248. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request.hpp +0 -34
  249. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.cpp +0 -122
  250. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.hpp +0 -46
  251. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.cpp +0 -315
  252. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.hpp +0 -95
  253. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.cpp +0 -77
  254. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.hpp +0 -68
  255. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/.gitignore +0 -11
  256. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.cpp +0 -94
  257. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.hpp +0 -78
  258. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/header.hpp +0 -28
  259. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/main.cpp +0 -46
  260. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.cpp +0 -46
  261. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.hpp +0 -27
  262. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.cpp +0 -256
  263. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.hpp +0 -64
  264. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request.hpp +0 -34
  265. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.cpp +0 -122
  266. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.hpp +0 -46
  267. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.cpp +0 -315
  268. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.hpp +0 -95
  269. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.cpp +0 -89
  270. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.hpp +0 -70
  271. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/.gitignore +0 -11
  272. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.cpp +0 -122
  273. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.hpp +0 -44
  274. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/header.hpp +0 -28
  275. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/main.cpp +0 -58
  276. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.cpp +0 -46
  277. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.hpp +0 -27
  278. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.cpp +0 -256
  279. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.hpp +0 -64
  280. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request.hpp +0 -46
  281. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.cpp +0 -226
  282. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.hpp +0 -78
  283. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.cpp +0 -122
  284. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.hpp +0 -73
  285. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/.gitignore +0 -10
  286. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/icmp_header.hpp +0 -94
  287. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ipv4_header.hpp +0 -102
  288. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ping.cpp +0 -163
  289. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/.gitignore +0 -10
  290. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp +0 -171
  291. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/.gitignore +0 -11
  292. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_client.cpp +0 -44
  293. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_server.cpp +0 -51
  294. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/http_client.cpp +0 -91
  295. data/ext/third_party/asio/asio/src/examples/cpp03/local/.gitignore +0 -13
  296. data/ext/third_party/asio/asio/src/examples/cpp03/local/connect_pair.cpp +0 -141
  297. data/ext/third_party/asio/asio/src/examples/cpp03/local/iostream_client.cpp +0 -62
  298. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_client.cpp +0 -61
  299. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_server.cpp +0 -141
  300. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/.gitignore +0 -11
  301. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/receiver.cpp +0 -93
  302. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/sender.cpp +0 -98
  303. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/.gitignore +0 -10
  304. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp +0 -240
  305. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/.gitignore +0 -11
  306. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/client.cpp +0 -192
  307. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/protocol.hpp +0 -156
  308. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/server.cpp +0 -187
  309. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/.gitignore +0 -11
  310. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/client.cpp +0 -125
  311. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/connection.hpp +0 -188
  312. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/server.cpp +0 -123
  313. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/stock.hpp +0 -50
  314. data/ext/third_party/asio/asio/src/examples/cpp03/services/.gitignore +0 -11
  315. data/ext/third_party/asio/asio/src/examples/cpp03/services/basic_logger.hpp +0 -83
  316. data/ext/third_party/asio/asio/src/examples/cpp03/services/daytime_client.cpp +0 -97
  317. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger.hpp +0 -24
  318. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.cpp +0 -11
  319. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.hpp +0 -145
  320. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/.gitignore +0 -10
  321. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/socks4.hpp +0 -144
  322. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/sync_client.cpp +0 -94
  323. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/.gitignore +0 -12
  324. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/echo_server.cpp +0 -122
  325. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/parallel_grep.cpp +0 -89
  326. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/.gitignore +0 -11
  327. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/README +0 -8
  328. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/ca.pem +0 -49
  329. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/client.cpp +0 -157
  330. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/dh2048.pem +0 -8
  331. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.cpp +0 -170
  332. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.pem +0 -71
  333. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/.gitignore +0 -11
  334. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp +0 -311
  335. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp +0 -191
  336. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp +0 -200
  337. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp +0 -154
  338. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/server.cpp +0 -433
  339. data/ext/third_party/asio/asio/src/examples/cpp03/timers/.gitignore +0 -10
  340. data/ext/third_party/asio/asio/src/examples/cpp03/timers/time_t_timer.cpp +0 -106
  341. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/.gitignore +0 -10
  342. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/client.cpp +0 -57
  343. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/.gitignore +0 -10
  344. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/server.cpp +0 -50
  345. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/.gitignore +0 -10
  346. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/server.cpp +0 -119
  347. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/.gitignore +0 -10
  348. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/client.cpp +0 -52
  349. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/.gitignore +0 -10
  350. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/server.cpp +0 -53
  351. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/.gitignore +0 -10
  352. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/server.cpp +0 -89
  353. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/.gitignore +0 -10
  354. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/server.cpp +0 -160
  355. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime_dox.txt +0 -500
  356. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/index_dox.txt +0 -48
  357. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/.gitignore +0 -10
  358. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/timer.cpp +0 -24
  359. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/.gitignore +0 -10
  360. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/timer.cpp +0 -29
  361. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/.gitignore +0 -10
  362. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/timer.cpp +0 -43
  363. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/.gitignore +0 -10
  364. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/timer.cpp +0 -54
  365. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/.gitignore +0 -10
  366. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/timer.cpp +0 -80
  367. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer_dox.txt +0 -378
  368. data/ext/third_party/asio/asio/src/examples/cpp03/windows/.gitignore +0 -10
  369. data/ext/third_party/asio/asio/src/examples/cpp03/windows/transmit_file.cpp +0 -177
  370. data/ext/third_party/asio/asio/src/examples/cpp11/Makefile.am +0 -161
  371. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/.gitignore +0 -10
  372. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/server.cpp +0 -255
  373. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/.gitignore +0 -10
  374. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/reference_counted.cpp +0 -122
  375. data/ext/third_party/asio/asio/src/examples/cpp11/chat/.gitignore +0 -11
  376. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_client.cpp +0 -167
  377. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_message.hpp +0 -91
  378. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_server.cpp +0 -227
  379. data/ext/third_party/asio/asio/src/examples/cpp11/echo/.gitignore +0 -11
  380. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp +0 -114
  381. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp +0 -82
  382. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp +0 -55
  383. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp +0 -74
  384. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp +0 -58
  385. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp +0 -52
  386. data/ext/third_party/asio/asio/src/examples/cpp11/executors/.gitignore +0 -5
  387. data/ext/third_party/asio/asio/src/examples/cpp11/executors/actor.cpp +0 -286
  388. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_1.cpp +0 -54
  389. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_2.cpp +0 -54
  390. data/ext/third_party/asio/asio/src/examples/cpp11/executors/fork_join.cpp +0 -328
  391. data/ext/third_party/asio/asio/src/examples/cpp11/executors/pipeline.cpp +0 -299
  392. data/ext/third_party/asio/asio/src/examples/cpp11/executors/priority_scheduler.cpp +0 -174
  393. data/ext/third_party/asio/asio/src/examples/cpp11/fork/.gitignore +0 -11
  394. data/ext/third_party/asio/asio/src/examples/cpp11/fork/daemon.cpp +0 -189
  395. data/ext/third_party/asio/asio/src/examples/cpp11/fork/process_per_connection.cpp +0 -162
  396. data/ext/third_party/asio/asio/src/examples/cpp11/futures/.gitignore +0 -11
  397. data/ext/third_party/asio/asio/src/examples/cpp11/futures/daytime_client.cpp +0 -94
  398. data/ext/third_party/asio/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp +0 -201
  399. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/.gitignore +0 -11
  400. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.cpp +0 -94
  401. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.hpp +0 -79
  402. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.cpp +0 -40
  403. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.hpp +0 -48
  404. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/header.hpp +0 -28
  405. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/main.cpp +0 -43
  406. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.cpp +0 -45
  407. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.hpp +0 -27
  408. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.cpp +0 -255
  409. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.hpp +0 -64
  410. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request.hpp +0 -34
  411. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.cpp +0 -121
  412. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.hpp +0 -47
  413. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.cpp +0 -315
  414. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.hpp +0 -96
  415. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.cpp +0 -94
  416. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.hpp +0 -64
  417. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/.gitignore +0 -10
  418. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp +0 -202
  419. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/.gitignore +0 -11
  420. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/http_client.cpp +0 -91
  421. data/ext/third_party/asio/asio/src/examples/cpp11/local/.gitignore +0 -13
  422. data/ext/third_party/asio/asio/src/examples/cpp11/local/connect_pair.cpp +0 -129
  423. data/ext/third_party/asio/asio/src/examples/cpp11/local/iostream_client.cpp +0 -61
  424. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_client.cpp +0 -60
  425. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_server.cpp +0 -121
  426. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/.gitignore +0 -11
  427. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/receiver.cpp +0 -88
  428. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/sender.cpp +0 -91
  429. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/.gitignore +0 -10
  430. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp +0 -212
  431. data/ext/third_party/asio/asio/src/examples/cpp11/operations/.gitignore +0 -10
  432. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_1.cpp +0 -113
  433. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_2.cpp +0 -131
  434. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_3.cpp +0 -192
  435. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_4.cpp +0 -207
  436. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_5.cpp +0 -243
  437. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_6.cpp +0 -302
  438. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_7.cpp +0 -222
  439. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_8.cpp +0 -217
  440. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/.gitignore +0 -10
  441. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/socks4.hpp +0 -143
  442. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/sync_client.cpp +0 -93
  443. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/.gitignore +0 -12
  444. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/echo_server.cpp +0 -111
  445. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/parallel_grep.cpp +0 -84
  446. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/.gitignore +0 -11
  447. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/README +0 -8
  448. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/ca.pem +0 -49
  449. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/client.cpp +0 -165
  450. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/dh2048.pem +0 -8
  451. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.cpp +0 -143
  452. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.pem +0 -71
  453. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/.gitignore +0 -11
  454. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp +0 -311
  455. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp +0 -192
  456. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp +0 -197
  457. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp +0 -155
  458. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/server.cpp +0 -433
  459. data/ext/third_party/asio/asio/src/examples/cpp11/timers/.gitignore +0 -10
  460. data/ext/third_party/asio/asio/src/examples/cpp11/timers/time_t_timer.cpp +0 -106
  461. data/ext/third_party/asio/asio/src/examples/cpp14/Makefile.am +0 -64
  462. data/ext/third_party/asio/asio/src/examples/cpp14/echo/.gitignore +0 -11
  463. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp +0 -117
  464. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp +0 -83
  465. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp +0 -55
  466. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp +0 -77
  467. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp +0 -59
  468. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp +0 -53
  469. data/ext/third_party/asio/asio/src/examples/cpp14/executors/.gitignore +0 -6
  470. data/ext/third_party/asio/asio/src/examples/cpp14/executors/actor.cpp +0 -281
  471. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_1.cpp +0 -47
  472. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_2.cpp +0 -68
  473. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_1.cpp +0 -54
  474. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_2.cpp +0 -53
  475. data/ext/third_party/asio/asio/src/examples/cpp14/executors/fork_join.cpp +0 -327
  476. data/ext/third_party/asio/asio/src/examples/cpp14/executors/pipeline.cpp +0 -294
  477. data/ext/third_party/asio/asio/src/examples/cpp14/executors/priority_scheduler.cpp +0 -173
  478. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/.gitignore +0 -11
  479. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/http_client.cpp +0 -91
  480. data/ext/third_party/asio/asio/src/examples/cpp14/operations/.gitignore +0 -10
  481. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_1.cpp +0 -113
  482. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_2.cpp +0 -131
  483. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_3.cpp +0 -186
  484. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_4.cpp +0 -201
  485. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_5.cpp +0 -238
  486. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_6.cpp +0 -298
  487. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_7.cpp +0 -219
  488. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_8.cpp +0 -212
  489. data/ext/third_party/asio/asio/src/examples/cpp17/Makefile.am +0 -8
  490. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp +0 -225
  491. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp +0 -76
  492. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server_with_default.cpp +0 -78
  493. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp +0 -107
  494. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp +0 -85
  495. data/ext/third_party/asio/asio/src/tests/.gitignore +0 -11
  496. data/ext/third_party/asio/asio/src/tests/Makefile.am +0 -432
  497. data/ext/third_party/asio/asio/src/tests/latency/.gitignore +0 -11
  498. data/ext/third_party/asio/asio/src/tests/latency/allocator.hpp +0 -52
  499. data/ext/third_party/asio/asio/src/tests/latency/high_res_clock.hpp +0 -53
  500. data/ext/third_party/asio/asio/src/tests/latency/tcp_client.cpp +0 -124
  501. data/ext/third_party/asio/asio/src/tests/latency/tcp_server.cpp +0 -114
  502. data/ext/third_party/asio/asio/src/tests/latency/udp_client.cpp +0 -104
  503. data/ext/third_party/asio/asio/src/tests/latency/udp_server.cpp +0 -125
  504. data/ext/third_party/asio/asio/src/tests/performance/.gitignore +0 -11
  505. data/ext/third_party/asio/asio/src/tests/performance/client.cpp +0 -286
  506. data/ext/third_party/asio/asio/src/tests/performance/handler_allocator.hpp +0 -112
  507. data/ext/third_party/asio/asio/src/tests/performance/server.cpp +0 -233
  508. data/ext/third_party/asio/asio/src/tests/unit/.gitignore +0 -75
  509. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_ops.hpp +0 -415
  510. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_result.hpp +0 -94
  511. data/ext/third_party/asio/asio/src/tests/unit/archetypes/gettable_socket_option.hpp +0 -54
  512. data/ext/third_party/asio/asio/src/tests/unit/archetypes/io_control_command.hpp +0 -32
  513. data/ext/third_party/asio/asio/src/tests/unit/archetypes/settable_socket_option.hpp +0 -49
  514. data/ext/third_party/asio/asio/src/tests/unit/associated_allocator.cpp +0 -25
  515. data/ext/third_party/asio/asio/src/tests/unit/associated_executor.cpp +0 -25
  516. data/ext/third_party/asio/asio/src/tests/unit/async_result.cpp +0 -25
  517. data/ext/third_party/asio/asio/src/tests/unit/awaitable.cpp +0 -25
  518. data/ext/third_party/asio/asio/src/tests/unit/basic_datagram_socket.cpp +0 -25
  519. data/ext/third_party/asio/asio/src/tests/unit/basic_deadline_timer.cpp +0 -25
  520. data/ext/third_party/asio/asio/src/tests/unit/basic_raw_socket.cpp +0 -25
  521. data/ext/third_party/asio/asio/src/tests/unit/basic_seq_packet_socket.cpp +0 -25
  522. data/ext/third_party/asio/asio/src/tests/unit/basic_serial_port.cpp +0 -26
  523. data/ext/third_party/asio/asio/src/tests/unit/basic_signal_set.cpp +0 -25
  524. data/ext/third_party/asio/asio/src/tests/unit/basic_socket.cpp +0 -25
  525. data/ext/third_party/asio/asio/src/tests/unit/basic_socket_acceptor.cpp +0 -25
  526. data/ext/third_party/asio/asio/src/tests/unit/basic_stream_socket.cpp +0 -25
  527. data/ext/third_party/asio/asio/src/tests/unit/basic_streambuf.cpp +0 -25
  528. data/ext/third_party/asio/asio/src/tests/unit/basic_waitable_timer.cpp +0 -25
  529. data/ext/third_party/asio/asio/src/tests/unit/bind_executor.cpp +0 -25
  530. data/ext/third_party/asio/asio/src/tests/unit/buffer.cpp +0 -830
  531. data/ext/third_party/asio/asio/src/tests/unit/buffered_read_stream.cpp +0 -338
  532. data/ext/third_party/asio/asio/src/tests/unit/buffered_stream.cpp +0 -364
  533. data/ext/third_party/asio/asio/src/tests/unit/buffered_write_stream.cpp +0 -353
  534. data/ext/third_party/asio/asio/src/tests/unit/buffers_iterator.cpp +0 -292
  535. data/ext/third_party/asio/asio/src/tests/unit/co_spawn.cpp +0 -25
  536. data/ext/third_party/asio/asio/src/tests/unit/completion_condition.cpp +0 -25
  537. data/ext/third_party/asio/asio/src/tests/unit/compose.cpp +0 -185
  538. data/ext/third_party/asio/asio/src/tests/unit/connect.cpp +0 -1190
  539. data/ext/third_party/asio/asio/src/tests/unit/coroutine.cpp +0 -112
  540. data/ext/third_party/asio/asio/src/tests/unit/deadline_timer.cpp +0 -392
  541. data/ext/third_party/asio/asio/src/tests/unit/defer.cpp +0 -25
  542. data/ext/third_party/asio/asio/src/tests/unit/detached.cpp +0 -25
  543. data/ext/third_party/asio/asio/src/tests/unit/dispatch.cpp +0 -25
  544. data/ext/third_party/asio/asio/src/tests/unit/error.cpp +0 -89
  545. data/ext/third_party/asio/asio/src/tests/unit/execution_context.cpp +0 -25
  546. data/ext/third_party/asio/asio/src/tests/unit/executor.cpp +0 -25
  547. data/ext/third_party/asio/asio/src/tests/unit/executor_work_guard.cpp +0 -25
  548. data/ext/third_party/asio/asio/src/tests/unit/generic/.gitignore +0 -14
  549. data/ext/third_party/asio/asio/src/tests/unit/generic/basic_endpoint.cpp +0 -25
  550. data/ext/third_party/asio/asio/src/tests/unit/generic/datagram_protocol.cpp +0 -263
  551. data/ext/third_party/asio/asio/src/tests/unit/generic/raw_protocol.cpp +0 -263
  552. data/ext/third_party/asio/asio/src/tests/unit/generic/seq_packet_protocol.cpp +0 -205
  553. data/ext/third_party/asio/asio/src/tests/unit/generic/stream_protocol.cpp +0 -248
  554. data/ext/third_party/asio/asio/src/tests/unit/high_resolution_timer.cpp +0 -30
  555. data/ext/third_party/asio/asio/src/tests/unit/io_context.cpp +0 -362
  556. data/ext/third_party/asio/asio/src/tests/unit/io_context_strand.cpp +0 -325
  557. data/ext/third_party/asio/asio/src/tests/unit/ip/.gitignore +0 -27
  558. data/ext/third_party/asio/asio/src/tests/unit/ip/address.cpp +0 -144
  559. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_endpoint.cpp +0 -25
  560. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver.cpp +0 -25
  561. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_entry.cpp +0 -25
  562. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_iterator.cpp +0 -25
  563. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_query.cpp +0 -25
  564. data/ext/third_party/asio/asio/src/tests/unit/ip/host_name.cpp +0 -55
  565. data/ext/third_party/asio/asio/src/tests/unit/ip/icmp.cpp +0 -577
  566. data/ext/third_party/asio/asio/src/tests/unit/ip/multicast.cpp +0 -363
  567. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v4.cpp +0 -314
  568. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v6.cpp +0 -238
  569. data/ext/third_party/asio/asio/src/tests/unit/ip/resolver_query_base.cpp +0 -25
  570. data/ext/third_party/asio/asio/src/tests/unit/ip/tcp.cpp +0 -1346
  571. data/ext/third_party/asio/asio/src/tests/unit/ip/udp.cpp +0 -673
  572. data/ext/third_party/asio/asio/src/tests/unit/ip/unicast.cpp +0 -171
  573. data/ext/third_party/asio/asio/src/tests/unit/ip/v6_only.cpp +0 -135
  574. data/ext/third_party/asio/asio/src/tests/unit/is_read_buffered.cpp +0 -129
  575. data/ext/third_party/asio/asio/src/tests/unit/is_write_buffered.cpp +0 -129
  576. data/ext/third_party/asio/asio/src/tests/unit/local/.gitignore +0 -13
  577. data/ext/third_party/asio/asio/src/tests/unit/local/basic_endpoint.cpp +0 -25
  578. data/ext/third_party/asio/asio/src/tests/unit/local/connect_pair.cpp +0 -76
  579. data/ext/third_party/asio/asio/src/tests/unit/local/datagram_protocol.cpp +0 -242
  580. data/ext/third_party/asio/asio/src/tests/unit/local/stream_protocol.cpp +0 -219
  581. data/ext/third_party/asio/asio/src/tests/unit/packaged_task.cpp +0 -25
  582. data/ext/third_party/asio/asio/src/tests/unit/placeholders.cpp +0 -25
  583. data/ext/third_party/asio/asio/src/tests/unit/posix/.gitignore +0 -14
  584. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_descriptor.cpp +0 -25
  585. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_stream_descriptor.cpp +0 -25
  586. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor.cpp +0 -25
  587. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor_base.cpp +0 -25
  588. data/ext/third_party/asio/asio/src/tests/unit/posix/stream_descriptor.cpp +0 -183
  589. data/ext/third_party/asio/asio/src/tests/unit/post.cpp +0 -25
  590. data/ext/third_party/asio/asio/src/tests/unit/read.cpp +0 -4997
  591. data/ext/third_party/asio/asio/src/tests/unit/read_at.cpp +0 -7502
  592. data/ext/third_party/asio/asio/src/tests/unit/read_until.cpp +0 -1658
  593. data/ext/third_party/asio/asio/src/tests/unit/redirect_error.cpp +0 -25
  594. data/ext/third_party/asio/asio/src/tests/unit/serial_port.cpp +0 -173
  595. data/ext/third_party/asio/asio/src/tests/unit/serial_port_base.cpp +0 -99
  596. data/ext/third_party/asio/asio/src/tests/unit/signal_set.cpp +0 -95
  597. data/ext/third_party/asio/asio/src/tests/unit/socket_base.cpp +0 -650
  598. data/ext/third_party/asio/asio/src/tests/unit/ssl/.gitignore +0 -15
  599. data/ext/third_party/asio/asio/src/tests/unit/ssl/context.cpp +0 -25
  600. data/ext/third_party/asio/asio/src/tests/unit/ssl/context_base.cpp +0 -25
  601. data/ext/third_party/asio/asio/src/tests/unit/ssl/error.cpp +0 -25
  602. data/ext/third_party/asio/asio/src/tests/unit/ssl/host_name_verification.cpp +0 -25
  603. data/ext/third_party/asio/asio/src/tests/unit/ssl/rfc2818_verification.cpp +0 -25
  604. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream.cpp +0 -191
  605. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream_base.cpp +0 -25
  606. data/ext/third_party/asio/asio/src/tests/unit/steady_timer.cpp +0 -30
  607. data/ext/third_party/asio/asio/src/tests/unit/strand.cpp +0 -263
  608. data/ext/third_party/asio/asio/src/tests/unit/streambuf.cpp +0 -62
  609. data/ext/third_party/asio/asio/src/tests/unit/system_context.cpp +0 -30
  610. data/ext/third_party/asio/asio/src/tests/unit/system_executor.cpp +0 -30
  611. data/ext/third_party/asio/asio/src/tests/unit/system_timer.cpp +0 -399
  612. data/ext/third_party/asio/asio/src/tests/unit/this_coro.cpp +0 -25
  613. data/ext/third_party/asio/asio/src/tests/unit/thread.cpp +0 -25
  614. data/ext/third_party/asio/asio/src/tests/unit/time_traits.cpp +0 -25
  615. data/ext/third_party/asio/asio/src/tests/unit/ts/.gitignore +0 -17
  616. data/ext/third_party/asio/asio/src/tests/unit/ts/buffer.cpp +0 -30
  617. data/ext/third_party/asio/asio/src/tests/unit/ts/executor.cpp +0 -30
  618. data/ext/third_party/asio/asio/src/tests/unit/ts/internet.cpp +0 -30
  619. data/ext/third_party/asio/asio/src/tests/unit/ts/io_context.cpp +0 -30
  620. data/ext/third_party/asio/asio/src/tests/unit/ts/net.cpp +0 -30
  621. data/ext/third_party/asio/asio/src/tests/unit/ts/netfwd.cpp +0 -33
  622. data/ext/third_party/asio/asio/src/tests/unit/ts/socket.cpp +0 -30
  623. data/ext/third_party/asio/asio/src/tests/unit/ts/timer.cpp +0 -30
  624. data/ext/third_party/asio/asio/src/tests/unit/unit_test.hpp +0 -175
  625. data/ext/third_party/asio/asio/src/tests/unit/use_awaitable.cpp +0 -25
  626. data/ext/third_party/asio/asio/src/tests/unit/use_future.cpp +0 -670
  627. data/ext/third_party/asio/asio/src/tests/unit/uses_executor.cpp +0 -25
  628. data/ext/third_party/asio/asio/src/tests/unit/wait_traits.cpp +0 -25
  629. data/ext/third_party/asio/asio/src/tests/unit/windows/.gitignore +0 -18
  630. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_object_handle.cpp +0 -25
  631. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_overlapped_handle.cpp +0 -25
  632. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_random_access_handle.cpp +0 -25
  633. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_stream_handle.cpp +0 -25
  634. data/ext/third_party/asio/asio/src/tests/unit/windows/object_handle.cpp +0 -130
  635. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_handle.cpp +0 -26
  636. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_ptr.cpp +0 -107
  637. data/ext/third_party/asio/asio/src/tests/unit/windows/random_access_handle.cpp +0 -155
  638. data/ext/third_party/asio/asio/src/tests/unit/windows/stream_handle.cpp +0 -148
  639. data/ext/third_party/asio/asio/src/tests/unit/write.cpp +0 -4904
  640. data/ext/third_party/asio/asio/src/tests/unit/write_at.cpp +0 -7563
  641. data/ext/third_party/asio/asio/src/tools/handlerviz.pl +0 -299
  642. data/ext/third_party/gsl/tests/CMakeLists.txt +0 -267
  643. data/ext/third_party/gsl/tests/CMakeLists.txt.in +0 -14
  644. data/ext/third_party/gsl/tests/algorithm_tests.cpp +0 -227
  645. data/ext/third_party/gsl/tests/assertion_tests.cpp +0 -61
  646. data/ext/third_party/gsl/tests/at_tests.cpp +0 -135
  647. data/ext/third_party/gsl/tests/bounds_tests.cpp +0 -102
  648. data/ext/third_party/gsl/tests/byte_tests.cpp +0 -129
  649. data/ext/third_party/gsl/tests/multi_span_tests.cpp +0 -1866
  650. data/ext/third_party/gsl/tests/no_exception_ensure_tests.cpp +0 -48
  651. data/ext/third_party/gsl/tests/notnull_tests.cpp +0 -535
  652. data/ext/third_party/gsl/tests/owner_tests.cpp +0 -43
  653. data/ext/third_party/gsl/tests/span_compatibility_tests.cpp +0 -1021
  654. data/ext/third_party/gsl/tests/span_ext_tests.cpp +0 -360
  655. data/ext/third_party/gsl/tests/span_tests.cpp +0 -1244
  656. data/ext/third_party/gsl/tests/strict_notnull_tests.cpp +0 -190
  657. data/ext/third_party/gsl/tests/strided_span_tests.cpp +0 -790
  658. data/ext/third_party/gsl/tests/string_span_tests.cpp +0 -1217
  659. data/ext/third_party/gsl/tests/utils_tests.cpp +0 -129
  660. data/ext/third_party/http_parser/contrib/parsertrace.c +0 -157
  661. data/ext/third_party/http_parser/contrib/url_parser.c +0 -47
  662. data/ext/third_party/http_parser/fuzzers/fuzz_parser.c +0 -26
  663. data/ext/third_party/http_parser/fuzzers/fuzz_url.c +0 -14
  664. data/ext/third_party/json/contrib/nlohmann.cpp +0 -48
  665. data/ext/third_party/json/contrib/nlohmann/from_value.hpp +0 -62
  666. data/ext/third_party/json/contrib/nlohmann/json.hpp +0 -18928
  667. data/ext/third_party/json/contrib/nlohmann/to_value.hpp +0 -109
  668. data/ext/third_party/json/doc/Advanced-Use-Cases.md +0 -83
  669. data/ext/third_party/json/doc/Batteries-Included.md +0 -212
  670. data/ext/third_party/json/doc/Binding-Traits.md +0 -319
  671. data/ext/third_party/json/doc/Changelog.md +0 -31
  672. data/ext/third_party/json/doc/Common-Use-Cases.md +0 -148
  673. data/ext/third_party/json/doc/Design-Decisions.md +0 -36
  674. data/ext/third_party/json/doc/Events-Interface.md +0 -140
  675. data/ext/third_party/json/doc/Getting-Started.md +0 -19
  676. data/ext/third_party/json/doc/Instance-Sharing.md +0 -163
  677. data/ext/third_party/json/doc/Interoperability.md +0 -75
  678. data/ext/third_party/json/doc/Overview.md +0 -24
  679. data/ext/third_party/json/doc/Overview.png +0 -0
  680. data/ext/third_party/json/doc/Parser-Interface.md +0 -84
  681. data/ext/third_party/json/doc/README.md +0 -78
  682. data/ext/third_party/json/doc/Scratchpad.md +0 -25
  683. data/ext/third_party/json/doc/Type-Traits.md +0 -364
  684. data/ext/third_party/json/doc/Types.png +0 -0
  685. data/ext/third_party/json/doc/Value-Class.md +0 -525
  686. data/ext/third_party/json/src/example/json/CMakeLists.txt +0 -67
  687. data/ext/third_party/json/src/example/json/cbor_to_jaxn.cpp +0 -18
  688. data/ext/third_party/json/src/example/json/cbor_to_json.cpp +0 -18
  689. data/ext/third_party/json/src/example/json/cbor_to_msgpack.cpp +0 -18
  690. data/ext/third_party/json/src/example/json/cbor_to_pretty_jaxn.cpp +0 -18
  691. data/ext/third_party/json/src/example/json/cbor_to_pretty_json.cpp +0 -18
  692. data/ext/third_party/json/src/example/json/cbor_to_ubjson.cpp +0 -18
  693. data/ext/third_party/json/src/example/json/jaxn_to_cbor.cpp +0 -18
  694. data/ext/third_party/json/src/example/json/jaxn_to_cplusplus.cpp +0 -249
  695. data/ext/third_party/json/src/example/json/jaxn_to_jaxn.cpp +0 -18
  696. data/ext/third_party/json/src/example/json/jaxn_to_msgpack.cpp +0 -18
  697. data/ext/third_party/json/src/example/json/jaxn_to_pretty_jaxn.cpp +0 -18
  698. data/ext/third_party/json/src/example/json/jaxn_to_ubjson.cpp +0 -18
  699. data/ext/third_party/json/src/example/json/json_to_cbor.cpp +0 -18
  700. data/ext/third_party/json/src/example/json/json_to_json.cpp +0 -18
  701. data/ext/third_party/json/src/example/json/json_to_msgpack.cpp +0 -18
  702. data/ext/third_party/json/src/example/json/json_to_pretty_json.cpp +0 -18
  703. data/ext/third_party/json/src/example/json/json_to_ubjson.cpp +0 -18
  704. data/ext/third_party/json/src/example/json/msgpack_to_cbor.cpp +0 -18
  705. data/ext/third_party/json/src/example/json/msgpack_to_jaxn.cpp +0 -18
  706. data/ext/third_party/json/src/example/json/msgpack_to_json.cpp +0 -18
  707. data/ext/third_party/json/src/example/json/msgpack_to_pretty_jaxn.cpp +0 -18
  708. data/ext/third_party/json/src/example/json/msgpack_to_pretty_json.cpp +0 -18
  709. data/ext/third_party/json/src/example/json/msgpack_to_ubjson.cpp +0 -18
  710. data/ext/third_party/json/src/example/json/printf_doubles.cpp +0 -51
  711. data/ext/third_party/json/src/example/json/ubjson_to_cbor.cpp +0 -18
  712. data/ext/third_party/json/src/example/json/ubjson_to_jaxn.cpp +0 -18
  713. data/ext/third_party/json/src/example/json/ubjson_to_json.cpp +0 -18
  714. data/ext/third_party/json/src/example/json/ubjson_to_msgpack.cpp +0 -18
  715. data/ext/third_party/json/src/example/json/ubjson_to_pretty_jaxn.cpp +0 -18
  716. data/ext/third_party/json/src/example/json/ubjson_to_pretty_json.cpp +0 -18
  717. data/ext/third_party/json/src/example/json/validate_event_order.cpp +0 -27
  718. data/ext/third_party/json/src/example/json/validate_integer.cpp +0 -56
  719. data/ext/third_party/json/src/perf/json/bench_mark.hpp +0 -43
  720. data/ext/third_party/json/src/perf/json/benchmark.cpp +0 -34
  721. data/ext/third_party/json/src/perf/json/parse_file.cpp +0 -17
  722. data/ext/third_party/json/src/perf/json/pretty_print_file.cpp +0 -19
  723. data/ext/third_party/json/src/perf/json/print_double.cpp +0 -34
  724. data/ext/third_party/json/src/perf/json/print_file.cpp +0 -19
  725. data/ext/third_party/json/src/perf/json/sizes.cpp +0 -24
  726. data/ext/third_party/json/src/perf/json/syntax_only.cpp +0 -27
  727. data/ext/third_party/json/src/test/json/CMakeLists.txt +0 -97
  728. data/ext/third_party/json/src/test/json/big_list_of_naughty_strings.cpp +0 -43
  729. data/ext/third_party/json/src/test/json/binding_array.cpp +0 -549
  730. data/ext/third_party/json/src/test/json/binding_factory.cpp +0 -265
  731. data/ext/third_party/json/src/test/json/binding_object.cpp +0 -208
  732. data/ext/third_party/json/src/test/json/binding_versions.cpp +0 -95
  733. data/ext/third_party/json/src/test/json/cbor.cpp +0 -149
  734. data/ext/third_party/json/src/test/json/cbor_parts_parser.cpp +0 -36
  735. data/ext/third_party/json/src/test/json/contrib_diff.cpp +0 -43
  736. data/ext/third_party/json/src/test/json/contrib_get.cpp +0 -42
  737. data/ext/third_party/json/src/test/json/contrib_patch_add.cpp +0 -75
  738. data/ext/third_party/json/src/test/json/contrib_patch_copy.cpp +0 -113
  739. data/ext/third_party/json/src/test/json/contrib_patch_move.cpp +0 -97
  740. data/ext/third_party/json/src/test/json/contrib_patch_remove.cpp +0 -85
  741. data/ext/third_party/json/src/test/json/contrib_patch_replace.cpp +0 -79
  742. data/ext/third_party/json/src/test/json/contrib_patch_test.cpp +0 -69
  743. data/ext/third_party/json/src/test/json/contrib_position.cpp +0 -48
  744. data/ext/third_party/json/src/test/json/contrib_reference.cpp +0 -44
  745. data/ext/third_party/json/src/test/json/contrib_schema.cpp +0 -132
  746. data/ext/third_party/json/src/test/json/contrib_traits.cpp +0 -258
  747. data/ext/third_party/json/src/test/json/double.cpp +0 -182
  748. data/ext/third_party/json/src/test/json/enable_implicit_constructor.cpp +0 -54
  749. data/ext/third_party/json/src/test/json/escape.cpp +0 -42
  750. data/ext/third_party/json/src/test/json/events_binary_to.cpp +0 -56
  751. data/ext/third_party/json/src/test/json/events_compare.cpp +0 -433
  752. data/ext/third_party/json/src/test/json/events_debug.cpp +0 -24
  753. data/ext/third_party/json/src/test/json/events_hash.cpp +0 -65
  754. data/ext/third_party/json/src/test/json/events_to_stream.cpp +0 -28
  755. data/ext/third_party/json/src/test/json/events_to_string.cpp +0 -25
  756. data/ext/third_party/json/src/test/json/include_json.cpp +0 -14
  757. data/ext/third_party/json/src/test/json/integer.cpp +0 -118
  758. data/ext/third_party/json/src/test/json/jaxn_ostream.cpp +0 -76
  759. data/ext/third_party/json/src/test/json/jaxn_parse.cpp +0 -239
  760. data/ext/third_party/json/src/test/json/jaxn_parts_parser.cpp +0 -220
  761. data/ext/third_party/json/src/test/json/json_ostream.cpp +0 -102
  762. data/ext/third_party/json/src/test/json/json_parse.cpp +0 -153
  763. data/ext/third_party/json/src/test/json/json_parts_parser.cpp +0 -124
  764. data/ext/third_party/json/src/test/json/json_pointer.cpp +0 -176
  765. data/ext/third_party/json/src/test/json/key_camel_case_to_snake_case.cpp +0 -38
  766. data/ext/third_party/json/src/test/json/key_snake_case_to_camel_case.cpp +0 -33
  767. data/ext/third_party/json/src/test/json/literal.cpp +0 -18
  768. data/ext/third_party/json/src/test/json/main.hpp +0 -20
  769. data/ext/third_party/json/src/test/json/make_events.hpp +0 -362
  770. data/ext/third_party/json/src/test/json/msgpack.cpp +0 -136
  771. data/ext/third_party/json/src/test/json/object_construction.cpp +0 -167
  772. data/ext/third_party/json/src/test/json/opaque_pointer.cpp +0 -192
  773. data/ext/third_party/json/src/test/json/operators.cpp +0 -494
  774. data/ext/third_party/json/src/test/json/optional.cpp +0 -79
  775. data/ext/third_party/json/src/test/json/public_base.cpp +0 -142
  776. data/ext/third_party/json/src/test/json/self_contained.cpp +0 -106
  777. data/ext/third_party/json/src/test/json/sha256.cpp +0 -38
  778. data/ext/third_party/json/src/test/json/string_view.cpp +0 -70
  779. data/ext/third_party/json/src/test/json/temporary_parsing.cpp +0 -339
  780. data/ext/third_party/json/src/test/json/test.hpp +0 -74
  781. data/ext/third_party/json/src/test/json/test_events.hpp +0 -250
  782. data/ext/third_party/json/src/test/json/test_types.hpp +0 -557
  783. data/ext/third_party/json/src/test/json/test_unhex.hpp +0 -42
  784. data/ext/third_party/json/src/test/json/type.cpp +0 -35
  785. data/ext/third_party/json/src/test/json/ubjson.cpp +0 -119
  786. data/ext/third_party/json/src/test/json/uri_fragment.cpp +0 -52
  787. data/ext/third_party/json/src/test/json/validate_event_interfaces.cpp +0 -177
  788. data/ext/third_party/json/src/test/json/validate_utf8.cpp +0 -37
  789. data/ext/third_party/json/src/test/json/value_access.cpp +0 -144
  790. data/ext/third_party/json/src/test/json/value_basics.cpp +0 -241
  791. data/ext/third_party/json/src/test/json/value_create.cpp +0 -372
  792. data/ext/third_party/json/src/test/json/value_ptr.cpp +0 -33
  793. data/ext/third_party/json/src/test/json/value_subscript.cpp +0 -89
  794. data/ext/third_party/json/src/test/json/with_arguments.cpp +0 -98
  795. data/ext/third_party/json/tests/blns.json +0 -496
  796. data/ext/third_party/json/tests/canada.json +0 -9
  797. data/ext/third_party/json/tests/citm_catalog.json +0 -50469
  798. data/ext/third_party/json/tests/draft4/additionalItems.json +0 -82
  799. data/ext/third_party/json/tests/draft4/additionalProperties.json +0 -88
  800. data/ext/third_party/json/tests/draft4/allOf.json +0 -112
  801. data/ext/third_party/json/tests/draft4/anyOf.json +0 -68
  802. data/ext/third_party/json/tests/draft4/default.json +0 -49
  803. data/ext/third_party/json/tests/draft4/definitions.json +0 -32
  804. data/ext/third_party/json/tests/draft4/dependencies.json +0 -113
  805. data/ext/third_party/json/tests/draft4/enum.json +0 -72
  806. data/ext/third_party/json/tests/draft4/items.json +0 -46
  807. data/ext/third_party/json/tests/draft4/maxItems.json +0 -28
  808. data/ext/third_party/json/tests/draft4/maxLength.json +0 -33
  809. data/ext/third_party/json/tests/draft4/maxProperties.json +0 -28
  810. data/ext/third_party/json/tests/draft4/maximum.json +0 -42
  811. data/ext/third_party/json/tests/draft4/minItems.json +0 -28
  812. data/ext/third_party/json/tests/draft4/minLength.json +0 -33
  813. data/ext/third_party/json/tests/draft4/minProperties.json +0 -28
  814. data/ext/third_party/json/tests/draft4/minimum.json +0 -42
  815. data/ext/third_party/json/tests/draft4/multipleOf.json +0 -60
  816. data/ext/third_party/json/tests/draft4/not.json +0 -96
  817. data/ext/third_party/json/tests/draft4/oneOf.json +0 -68
  818. data/ext/third_party/json/tests/draft4/optional/bignum.json +0 -107
  819. data/ext/third_party/json/tests/draft4/optional/format.json +0 -148
  820. data/ext/third_party/json/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  821. data/ext/third_party/json/tests/draft4/pattern.json +0 -34
  822. data/ext/third_party/json/tests/draft4/patternProperties.json +0 -110
  823. data/ext/third_party/json/tests/draft4/properties.json +0 -92
  824. data/ext/third_party/json/tests/draft4/ref.json +0 -179
  825. data/ext/third_party/json/tests/draft4/refRemote.json +0 -74
  826. data/ext/third_party/json/tests/draft4/required.json +0 -44
  827. data/ext/third_party/json/tests/draft4/type.json +0 -345
  828. data/ext/third_party/json/tests/draft4/uniqueItems.json +0 -79
  829. data/ext/third_party/json/tests/taocpp/binary.jaxn +0 -4
  830. data/ext/third_party/json/tests/taocpp/dateTime.json +0 -108
  831. data/ext/third_party/json/tests/taocpp/make_events.cbor +0 -0
  832. data/ext/third_party/json/tests/taocpp/number.json +0 -682
  833. data/ext/third_party/json/tests/taocpp/position.json +0 -8
  834. data/ext/third_party/json/tests/taocpp/schema.json +0 -378
  835. data/ext/third_party/json/tests/twitter.json +0 -15482
  836. data/ext/third_party/snappy/testdata/alice29.txt +0 -3609
  837. data/ext/third_party/snappy/testdata/asyoulik.txt +0 -4122
  838. data/ext/third_party/snappy/testdata/baddata1.snappy +0 -0
  839. data/ext/third_party/snappy/testdata/baddata2.snappy +0 -0
  840. data/ext/third_party/snappy/testdata/baddata3.snappy +0 -0
  841. data/ext/third_party/snappy/testdata/fireworks.jpeg +0 -0
  842. data/ext/third_party/snappy/testdata/geo.protodata +0 -0
  843. data/ext/third_party/snappy/testdata/html +0 -1
  844. data/ext/third_party/snappy/testdata/html_x_4 +0 -1
  845. data/ext/third_party/snappy/testdata/kppkn.gtb +0 -0
  846. data/ext/third_party/snappy/testdata/lcet10.txt +0 -7519
  847. data/ext/third_party/snappy/testdata/paper-100k.pdf +2 -600
  848. data/ext/third_party/snappy/testdata/plrabn12.txt +0 -10699
  849. data/ext/third_party/snappy/testdata/urls.10K +0 -10000
  850. data/ext/third_party/spdlog/bench/CMakeLists.txt +0 -25
  851. data/ext/third_party/spdlog/bench/async_bench.cpp +0 -179
  852. data/ext/third_party/spdlog/bench/bench.cpp +0 -238
  853. data/ext/third_party/spdlog/bench/formatter-bench.cpp +0 -80
  854. data/ext/third_party/spdlog/bench/latency.cpp +0 -166
  855. data/ext/third_party/spdlog/bench/utils.h +0 -34
  856. data/ext/third_party/spdlog/example/CMakeLists.txt +0 -23
  857. data/ext/third_party/spdlog/example/example.cpp +0 -282
  858. data/ext/third_party/spdlog/logos/jetbrains-variant-4.svg +0 -43
  859. data/ext/third_party/spdlog/scripts/extract_version.py +0 -17
  860. data/ext/third_party/spdlog/scripts/format.sh +0 -16
  861. data/ext/third_party/spdlog/tests/CMakeLists.txt +0 -70
  862. data/ext/third_party/spdlog/tests/catch.hpp +0 -15372
  863. data/ext/third_party/spdlog/tests/catch.license +0 -23
  864. data/ext/third_party/spdlog/tests/includes.h +0 -26
  865. data/ext/third_party/spdlog/tests/main.cpp +0 -2
  866. data/ext/third_party/spdlog/tests/test_async.cpp +0 -188
  867. data/ext/third_party/spdlog/tests/test_backtrace.cpp +0 -65
  868. data/ext/third_party/spdlog/tests/test_cfg.cpp +0 -93
  869. data/ext/third_party/spdlog/tests/test_create_dir.cpp +0 -80
  870. data/ext/third_party/spdlog/tests/test_daily_logger.cpp +0 -149
  871. data/ext/third_party/spdlog/tests/test_dup_filter.cpp +0 -88
  872. data/ext/third_party/spdlog/tests/test_errors.cpp +0 -118
  873. data/ext/third_party/spdlog/tests/test_eventlog.cpp +0 -71
  874. data/ext/third_party/spdlog/tests/test_file_helper.cpp +0 -102
  875. data/ext/third_party/spdlog/tests/test_file_logging.cpp +0 -98
  876. data/ext/third_party/spdlog/tests/test_fmt_helper.cpp +0 -86
  877. data/ext/third_party/spdlog/tests/test_macros.cpp +0 -60
  878. data/ext/third_party/spdlog/tests/test_misc.cpp +0 -271
  879. data/ext/third_party/spdlog/tests/test_mpmc_q.cpp +0 -106
  880. data/ext/third_party/spdlog/tests/test_pattern_formatter.cpp +0 -443
  881. data/ext/third_party/spdlog/tests/test_registry.cpp +0 -116
  882. data/ext/third_party/spdlog/tests/test_sink.h +0 -79
  883. data/ext/third_party/spdlog/tests/test_stdout_api.cpp +0 -98
  884. data/ext/third_party/spdlog/tests/test_systemd.cpp +0 -15
  885. data/ext/third_party/spdlog/tests/test_time_point.cpp +0 -36
  886. data/ext/third_party/spdlog/tests/utils.cpp +0 -125
  887. data/ext/third_party/spdlog/tests/utils.h +0 -18
  888. data/rbi/couchbase.rbi +0 -79
@@ -1,219 +0,0 @@
1
- //
2
- // composed_7.cpp
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
- #include <asio/compose.hpp>
12
- #include <asio/io_context.hpp>
13
- #include <asio/ip/tcp.hpp>
14
- #include <asio/steady_timer.hpp>
15
- #include <asio/use_future.hpp>
16
- #include <asio/write.hpp>
17
- #include <functional>
18
- #include <iostream>
19
- #include <memory>
20
- #include <sstream>
21
- #include <string>
22
- #include <type_traits>
23
- #include <utility>
24
-
25
- using asio::ip::tcp;
26
-
27
- // NOTE: This example requires the new asio::async_compose function. For
28
- // an example that works with the Networking TS style of completion tokens,
29
- // please see an older version of asio.
30
-
31
- //------------------------------------------------------------------------------
32
-
33
- // This composed operation shows composition of multiple underlying operations.
34
- // It automatically serialises a message, using its I/O streams insertion
35
- // operator, before sending it N times on the socket. To do this, it must
36
- // allocate a buffer for the encoded message and ensure this buffer's validity
37
- // until all underlying async_write operation complete. A one second delay is
38
- // inserted prior to each write operation, using a steady_timer.
39
-
40
- template <typename T, typename CompletionToken>
41
- auto async_write_messages(tcp::socket& socket,
42
- const T& message, std::size_t repeat_count,
43
- CompletionToken&& token)
44
- // The return type of the initiating function is deduced from the combination
45
- // of CompletionToken type and the completion handler's signature. When the
46
- // completion token is a simple callback, the return type is always void.
47
- // In this example, when the completion token is asio::yield_context
48
- // (used for stackful coroutines) the return type would be also be void, as
49
- // there is no non-error argument to the completion handler. When the
50
- // completion token is asio::use_future it would be std::future<void>.
51
- //
52
- // In C++14 we can omit the return type as it is automatically deduced from
53
- // the return type of asio::async_initiate.
54
- {
55
- // Encode the message and copy it into an allocated buffer. The buffer will
56
- // be maintained for the lifetime of the composed asynchronous operation.
57
- std::ostringstream os;
58
- os << message;
59
- std::unique_ptr<std::string> encoded_message(new std::string(os.str()));
60
-
61
- // Create a steady_timer to be used for the delay between messages.
62
- std::unique_ptr<asio::steady_timer> delay_timer(
63
- new asio::steady_timer(socket.get_executor()));
64
-
65
- // To manage the cycle between the multiple underlying asychronous
66
- // operations, our implementation is a state machine.
67
- enum { starting, waiting, writing };
68
-
69
- // The asio::async_compose function takes:
70
- //
71
- // - our asynchronous operation implementation,
72
- // - the completion token,
73
- // - the completion handler signature, and
74
- // - any I/O objects (or executors) used by the operation
75
- //
76
- // It then wraps our implementation, which is implemented here as a state
77
- // machine in a lambda, in an intermediate completion handler that meets the
78
- // requirements of a conforming asynchronous operation. This includes
79
- // tracking outstanding work against the I/O executors associated with the
80
- // operation (in this example, this is the socket's executor).
81
- //
82
- // The first argument to our lambda is a reference to the enclosing
83
- // intermediate completion handler. This intermediate completion handler is
84
- // provided for us by the asio::async_compose function, and takes care
85
- // of all the details required to implement a conforming asynchronous
86
- // operation. When calling an underlying asynchronous operation, we pass it
87
- // this enclosing intermediate completion handler as the completion token.
88
- //
89
- // All arguments to our lambda after the first must be defaulted to allow the
90
- // state machine to be started, as well as to allow the completion handler to
91
- // match the completion signature of both the async_write and
92
- // steady_timer::async_wait operations.
93
- return asio::async_compose<
94
- CompletionToken, void(std::error_code)>(
95
- [
96
- // The implementation holds a reference to the socket as it is used for
97
- // multiple async_write operations.
98
- &socket,
99
-
100
- // The allocated buffer for the encoded message. The std::unique_ptr
101
- // smart pointer is move-only, and as a consequence our lambda
102
- // implementation is also move-only.
103
- encoded_message = std::move(encoded_message),
104
-
105
- // The repeat count remaining.
106
- repeat_count,
107
-
108
- // A steady timer used for introducing a delay.
109
- delay_timer = std::move(delay_timer),
110
-
111
- // To manage the cycle between the multiple underlying asychronous
112
- // operations, our implementation is a state machine.
113
- state = starting
114
- ]
115
- (
116
- auto& self,
117
- const std::error_code& error = {},
118
- std::size_t = 0
119
- ) mutable
120
- {
121
- if (!error)
122
- {
123
- switch (state)
124
- {
125
- case starting:
126
- case writing:
127
- if (repeat_count > 0)
128
- {
129
- --repeat_count;
130
- state = waiting;
131
- delay_timer->expires_after(std::chrono::seconds(1));
132
- delay_timer->async_wait(std::move(self));
133
- return; // Composed operation not yet complete.
134
- }
135
- break; // Composed operation complete, continue below.
136
- case waiting:
137
- state = writing;
138
- asio::async_write(socket,
139
- asio::buffer(*encoded_message), std::move(self));
140
- return; // Composed operation not yet complete.
141
- }
142
- }
143
-
144
- // This point is reached only on completion of the entire composed
145
- // operation.
146
-
147
- // Deallocate the encoded message and delay timer before calling the
148
- // user-supplied completion handler.
149
- encoded_message.reset();
150
- delay_timer.reset();
151
-
152
- // Call the user-supplied handler with the result of the operation.
153
- self.complete(error);
154
- },
155
- token, socket);
156
- }
157
-
158
- //------------------------------------------------------------------------------
159
-
160
- void test_callback()
161
- {
162
- asio::io_context io_context;
163
-
164
- tcp::acceptor acceptor(io_context, {tcp::v4(), 55555});
165
- tcp::socket socket = acceptor.accept();
166
-
167
- // Test our asynchronous operation using a lambda as a callback.
168
- async_write_messages(socket, "Testing callback\r\n", 5,
169
- [](const std::error_code& error)
170
- {
171
- if (!error)
172
- {
173
- std::cout << "Messages sent\n";
174
- }
175
- else
176
- {
177
- std::cout << "Error: " << error.message() << "\n";
178
- }
179
- });
180
-
181
- io_context.run();
182
- }
183
-
184
- //------------------------------------------------------------------------------
185
-
186
- void test_future()
187
- {
188
- asio::io_context io_context;
189
-
190
- tcp::acceptor acceptor(io_context, {tcp::v4(), 55555});
191
- tcp::socket socket = acceptor.accept();
192
-
193
- // Test our asynchronous operation using the use_future completion token.
194
- // This token causes the operation's initiating function to return a future,
195
- // which may be used to synchronously wait for the result of the operation.
196
- std::future<void> f = async_write_messages(
197
- socket, "Testing future\r\n", 5, asio::use_future);
198
-
199
- io_context.run();
200
-
201
- try
202
- {
203
- // Get the result of the operation.
204
- f.get();
205
- std::cout << "Messages sent\n";
206
- }
207
- catch (const std::exception& e)
208
- {
209
- std::cout << "Error: " << e.what() << "\n";
210
- }
211
- }
212
-
213
- //------------------------------------------------------------------------------
214
-
215
- int main()
216
- {
217
- test_callback();
218
- test_future();
219
- }
@@ -1,212 +0,0 @@
1
- //
2
- // composed_8.cpp
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
- #include <asio/compose.hpp>
12
- #include <asio/coroutine.hpp>
13
- #include <asio/io_context.hpp>
14
- #include <asio/ip/tcp.hpp>
15
- #include <asio/steady_timer.hpp>
16
- #include <asio/use_future.hpp>
17
- #include <asio/write.hpp>
18
- #include <functional>
19
- #include <iostream>
20
- #include <memory>
21
- #include <sstream>
22
- #include <string>
23
- #include <type_traits>
24
- #include <utility>
25
-
26
- using asio::ip::tcp;
27
-
28
- // NOTE: This example requires the new asio::async_compose function. For
29
- // an example that works with the Networking TS style of completion tokens,
30
- // please see an older version of asio.
31
-
32
- //------------------------------------------------------------------------------
33
-
34
- // This composed operation shows composition of multiple underlying operations,
35
- // using asio's stackless coroutines support to express the flow of control. It
36
- // automatically serialises a message, using its I/O streams insertion
37
- // operator, before sending it N times on the socket. To do this, it must
38
- // allocate a buffer for the encoded message and ensure this buffer's validity
39
- // until all underlying async_write operation complete. A one second delay is
40
- // inserted prior to each write operation, using a steady_timer.
41
-
42
- #include <asio/yield.hpp>
43
-
44
- template <typename T, typename CompletionToken>
45
- auto async_write_messages(tcp::socket& socket,
46
- const T& message, std::size_t repeat_count,
47
- CompletionToken&& token)
48
- // The return type of the initiating function is deduced from the combination
49
- // of CompletionToken type and the completion handler's signature. When the
50
- // completion token is a simple callback, the return type is always void.
51
- // In this example, when the completion token is asio::yield_context
52
- // (used for stackful coroutines) the return type would be also be void, as
53
- // there is no non-error argument to the completion handler. When the
54
- // completion token is asio::use_future it would be std::future<void>.
55
- //
56
- // In C++14 we can omit the return type as it is automatically deduced from
57
- // the return type of asio::async_initiate.
58
- {
59
- // Encode the message and copy it into an allocated buffer. The buffer will
60
- // be maintained for the lifetime of the composed asynchronous operation.
61
- std::ostringstream os;
62
- os << message;
63
- std::unique_ptr<std::string> encoded_message(new std::string(os.str()));
64
-
65
- // Create a steady_timer to be used for the delay between messages.
66
- std::unique_ptr<asio::steady_timer> delay_timer(
67
- new asio::steady_timer(socket.get_executor()));
68
-
69
- // The asio::async_compose function takes:
70
- //
71
- // - our asynchronous operation implementation,
72
- // - the completion token,
73
- // - the completion handler signature, and
74
- // - any I/O objects (or executors) used by the operation
75
- //
76
- // It then wraps our implementation, which is implemented here as a stackless
77
- // coroutine in a lambda, in an intermediate completion handler that meets the
78
- // requirements of a conforming asynchronous operation. This includes
79
- // tracking outstanding work against the I/O executors associated with the
80
- // operation (in this example, this is the socket's executor).
81
- //
82
- // The first argument to our lambda is a reference to the enclosing
83
- // intermediate completion handler. This intermediate completion handler is
84
- // provided for us by the asio::async_compose function, and takes care
85
- // of all the details required to implement a conforming asynchronous
86
- // operation. When calling an underlying asynchronous operation, we pass it
87
- // this enclosing intermediate completion handler as the completion token.
88
- //
89
- // All arguments to our lambda after the first must be defaulted to allow the
90
- // state machine to be started, as well as to allow the completion handler to
91
- // match the completion signature of both the async_write and
92
- // steady_timer::async_wait operations.
93
- return asio::async_compose<
94
- CompletionToken, void(std::error_code)>(
95
- [
96
- // The implementation holds a reference to the socket as it is used for
97
- // multiple async_write operations.
98
- &socket,
99
-
100
- // The allocated buffer for the encoded message. The std::unique_ptr
101
- // smart pointer is move-only, and as a consequence our lambda
102
- // implementation is also move-only.
103
- encoded_message = std::move(encoded_message),
104
-
105
- // The repeat count remaining.
106
- repeat_count,
107
-
108
- // A steady timer used for introducing a delay.
109
- delay_timer = std::move(delay_timer),
110
-
111
- // The coroutine state.
112
- coro = asio::coroutine()
113
- ]
114
- (
115
- auto& self,
116
- const std::error_code& error = {},
117
- std::size_t = 0
118
- ) mutable
119
- {
120
- reenter (coro)
121
- {
122
- while (repeat_count > 0)
123
- {
124
- --repeat_count;
125
-
126
- delay_timer->expires_after(std::chrono::seconds(1));
127
- yield delay_timer->async_wait(std::move(self));
128
- if (error)
129
- break;
130
-
131
- yield asio::async_write(socket,
132
- asio::buffer(*encoded_message), std::move(self));
133
- if (error)
134
- break;
135
- }
136
-
137
- // Deallocate the encoded message and delay timer before calling the
138
- // user-supplied completion handler.
139
- encoded_message.reset();
140
- delay_timer.reset();
141
-
142
- // Call the user-supplied handler with the result of the operation.
143
- self.complete(error);
144
- }
145
- },
146
- token, socket);
147
- }
148
-
149
- #include <asio/unyield.hpp>
150
-
151
- //------------------------------------------------------------------------------
152
-
153
- void test_callback()
154
- {
155
- asio::io_context io_context;
156
-
157
- tcp::acceptor acceptor(io_context, {tcp::v4(), 55555});
158
- tcp::socket socket = acceptor.accept();
159
-
160
- // Test our asynchronous operation using a lambda as a callback.
161
- async_write_messages(socket, "Testing callback\r\n", 5,
162
- [](const std::error_code& error)
163
- {
164
- if (!error)
165
- {
166
- std::cout << "Messages sent\n";
167
- }
168
- else
169
- {
170
- std::cout << "Error: " << error.message() << "\n";
171
- }
172
- });
173
-
174
- io_context.run();
175
- }
176
-
177
- //------------------------------------------------------------------------------
178
-
179
- void test_future()
180
- {
181
- asio::io_context io_context;
182
-
183
- tcp::acceptor acceptor(io_context, {tcp::v4(), 55555});
184
- tcp::socket socket = acceptor.accept();
185
-
186
- // Test our asynchronous operation using the use_future completion token.
187
- // This token causes the operation's initiating function to return a future,
188
- // which may be used to synchronously wait for the result of the operation.
189
- std::future<void> f = async_write_messages(
190
- socket, "Testing future\r\n", 5, asio::use_future);
191
-
192
- io_context.run();
193
-
194
- try
195
- {
196
- // Get the result of the operation.
197
- f.get();
198
- std::cout << "Messages sent\n";
199
- }
200
- catch (const std::exception& e)
201
- {
202
- std::cout << "Error: " << e.what() << "\n";
203
- }
204
- }
205
-
206
- //------------------------------------------------------------------------------
207
-
208
- int main()
209
- {
210
- test_callback();
211
- test_future();
212
- }
@@ -1,8 +0,0 @@
1
- EXTRA_DIST = \
2
- coroutines_ts/chat_server.cpp \
3
- coroutines_ts/echo_server.cpp \
4
- coroutines_ts/range_based_for.cpp \
5
- coroutines_ts/refactored_echo_server.cpp
6
-
7
- MAINTAINERCLEANFILES = \
8
- $(srcdir)/Makefile.in
@@ -1,225 +0,0 @@
1
- //
2
- // chat_server.cpp
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
- #include <cstdlib>
12
- #include <deque>
13
- #include <iostream>
14
- #include <list>
15
- #include <memory>
16
- #include <set>
17
- #include <string>
18
- #include <utility>
19
- #include <asio/awaitable.hpp>
20
- #include <asio/detached.hpp>
21
- #include <asio/co_spawn.hpp>
22
- #include <asio/io_context.hpp>
23
- #include <asio/ip/tcp.hpp>
24
- #include <asio/read_until.hpp>
25
- #include <asio/redirect_error.hpp>
26
- #include <asio/signal_set.hpp>
27
- #include <asio/steady_timer.hpp>
28
- #include <asio/use_awaitable.hpp>
29
- #include <asio/write.hpp>
30
-
31
- using asio::ip::tcp;
32
- using asio::awaitable;
33
- using asio::co_spawn;
34
- using asio::detached;
35
- using asio::redirect_error;
36
- using asio::use_awaitable;
37
-
38
- //----------------------------------------------------------------------
39
-
40
- class chat_participant
41
- {
42
- public:
43
- virtual ~chat_participant() {}
44
- virtual void deliver(const std::string& msg) = 0;
45
- };
46
-
47
- typedef std::shared_ptr<chat_participant> chat_participant_ptr;
48
-
49
- //----------------------------------------------------------------------
50
-
51
- class chat_room
52
- {
53
- public:
54
- void join(chat_participant_ptr participant)
55
- {
56
- participants_.insert(participant);
57
- for (auto msg: recent_msgs_)
58
- participant->deliver(msg);
59
- }
60
-
61
- void leave(chat_participant_ptr participant)
62
- {
63
- participants_.erase(participant);
64
- }
65
-
66
- void deliver(const std::string& msg)
67
- {
68
- recent_msgs_.push_back(msg);
69
- while (recent_msgs_.size() > max_recent_msgs)
70
- recent_msgs_.pop_front();
71
-
72
- for (auto participant: participants_)
73
- participant->deliver(msg);
74
- }
75
-
76
- private:
77
- std::set<chat_participant_ptr> participants_;
78
- enum { max_recent_msgs = 100 };
79
- std::deque<std::string> recent_msgs_;
80
- };
81
-
82
- //----------------------------------------------------------------------
83
-
84
- class chat_session
85
- : public chat_participant,
86
- public std::enable_shared_from_this<chat_session>
87
- {
88
- public:
89
- chat_session(tcp::socket socket, chat_room& room)
90
- : socket_(std::move(socket)),
91
- timer_(socket_.get_executor()),
92
- room_(room)
93
- {
94
- timer_.expires_at(std::chrono::steady_clock::time_point::max());
95
- }
96
-
97
- void start()
98
- {
99
- room_.join(shared_from_this());
100
-
101
- co_spawn(socket_.get_executor(),
102
- [self = shared_from_this()]{ return self->reader(); },
103
- detached);
104
-
105
- co_spawn(socket_.get_executor(),
106
- [self = shared_from_this()]{ return self->writer(); },
107
- detached);
108
- }
109
-
110
- void deliver(const std::string& msg)
111
- {
112
- write_msgs_.push_back(msg);
113
- timer_.cancel_one();
114
- }
115
-
116
- private:
117
- awaitable<void> reader()
118
- {
119
- try
120
- {
121
- for (std::string read_msg;;)
122
- {
123
- std::size_t n = co_await asio::async_read_until(socket_,
124
- asio::dynamic_buffer(read_msg, 1024), "\n", use_awaitable);
125
-
126
- room_.deliver(read_msg.substr(0, n));
127
- read_msg.erase(0, n);
128
- }
129
- }
130
- catch (std::exception&)
131
- {
132
- stop();
133
- }
134
- }
135
-
136
- awaitable<void> writer()
137
- {
138
- try
139
- {
140
- while (socket_.is_open())
141
- {
142
- if (write_msgs_.empty())
143
- {
144
- asio::error_code ec;
145
- co_await timer_.async_wait(redirect_error(use_awaitable, ec));
146
- }
147
- else
148
- {
149
- co_await asio::async_write(socket_,
150
- asio::buffer(write_msgs_.front()), use_awaitable);
151
- write_msgs_.pop_front();
152
- }
153
- }
154
- }
155
- catch (std::exception&)
156
- {
157
- stop();
158
- }
159
- }
160
-
161
- void stop()
162
- {
163
- room_.leave(shared_from_this());
164
- socket_.close();
165
- timer_.cancel();
166
- }
167
-
168
- tcp::socket socket_;
169
- asio::steady_timer timer_;
170
- chat_room& room_;
171
- std::deque<std::string> write_msgs_;
172
- };
173
-
174
- //----------------------------------------------------------------------
175
-
176
- awaitable<void> listener(tcp::acceptor acceptor)
177
- {
178
- chat_room room;
179
-
180
- for (;;)
181
- {
182
- std::make_shared<chat_session>(
183
- co_await acceptor.async_accept(use_awaitable),
184
- room
185
- )->start();
186
- }
187
- }
188
-
189
- //----------------------------------------------------------------------
190
-
191
- int main(int argc, char* argv[])
192
- {
193
- try
194
- {
195
- if (argc < 2)
196
- {
197
- std::cerr << "Usage: chat_server <port> [<port> ...]\n";
198
- return 1;
199
- }
200
-
201
- asio::io_context io_context(1);
202
-
203
- for (int i = 1; i < argc; ++i)
204
- {
205
- unsigned short port = std::atoi(argv[i]);
206
- co_spawn(io_context,
207
- [&io_context, port]
208
- {
209
- return listener(tcp::acceptor(io_context, {tcp::v4(), port}));
210
- },
211
- detached);
212
- }
213
-
214
- asio::signal_set signals(io_context, SIGINT, SIGTERM);
215
- signals.async_wait([&](auto, auto){ io_context.stop(); });
216
-
217
- io_context.run();
218
- }
219
- catch (std::exception& e)
220
- {
221
- std::cerr << "Exception: " << e.what() << "\n";
222
- }
223
-
224
- return 0;
225
- }