couchbase 3.0.0.alpha.1-universal-darwin-19 → 3.0.0.beta.1-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 (912) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/Gemfile +12 -2
  4. data/README.md +57 -2
  5. data/Rakefile +22 -0
  6. data/couchbase.gemspec +44 -11
  7. data/examples/analytics.rb +221 -0
  8. data/examples/crud.rb +1 -2
  9. data/examples/managing_analytics_indexes.rb +72 -0
  10. data/examples/managing_buckets.rb +47 -0
  11. data/examples/managing_collections.rb +58 -0
  12. data/examples/managing_query_indexes.rb +63 -0
  13. data/examples/managing_search_indexes.rb +62 -0
  14. data/examples/managing_view_indexes.rb +54 -0
  15. data/examples/query.rb +3 -2
  16. data/examples/query_with_consistency.rb +76 -0
  17. data/examples/search.rb +187 -0
  18. data/examples/search_with_consistency.rb +84 -0
  19. data/examples/subdocument.rb +25 -3
  20. data/examples/view.rb +50 -0
  21. data/ext/.clang-format +1 -1
  22. data/ext/.clang-tidy +2 -0
  23. data/ext/.idea/dictionaries/couchbase_terms.xml +2 -0
  24. data/ext/.idea/misc.xml +12 -0
  25. data/ext/.idea/vcs.xml +1 -0
  26. data/ext/CMakeLists.txt +40 -13
  27. data/ext/{couchbase/io/binary_message.hxx → build_config.hxx.in} +1 -19
  28. data/ext/build_version.hxx.in +26 -0
  29. data/ext/couchbase/bucket.hxx +105 -19
  30. data/ext/couchbase/cluster.hxx +148 -90
  31. data/ext/couchbase/cluster_options.hxx +53 -0
  32. data/ext/couchbase/collections_manifest.hxx +3 -3
  33. data/ext/couchbase/configuration.hxx +234 -2
  34. data/ext/couchbase/couchbase.cxx +4833 -476
  35. data/ext/couchbase/{operations/document_id.hxx → document_id.hxx} +5 -4
  36. data/ext/couchbase/io/dns_client.hxx +217 -0
  37. data/ext/couchbase/io/dns_codec.hxx +207 -0
  38. data/ext/couchbase/io/dns_config.hxx +116 -0
  39. data/ext/couchbase/io/dns_message.hxx +555 -0
  40. data/ext/couchbase/io/http_command.hxx +91 -0
  41. data/ext/couchbase/io/http_message.hxx +5 -1
  42. data/ext/couchbase/io/http_parser.hxx +2 -1
  43. data/ext/couchbase/io/http_session.hxx +120 -41
  44. data/ext/couchbase/io/{session_manager.hxx → http_session_manager.hxx} +43 -28
  45. data/ext/couchbase/io/mcbp_command.hxx +180 -0
  46. data/ext/couchbase/io/mcbp_message.hxx +63 -0
  47. data/ext/couchbase/io/mcbp_parser.hxx +101 -0
  48. data/ext/couchbase/io/mcbp_session.hxx +1046 -0
  49. data/ext/couchbase/io/streams.hxx +165 -0
  50. data/ext/couchbase/mutation_token.hxx +2 -1
  51. data/ext/couchbase/operations.hxx +70 -8
  52. data/ext/couchbase/operations/analytics_dataset_create.hxx +117 -0
  53. data/ext/couchbase/operations/analytics_dataset_drop.hxx +103 -0
  54. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +107 -0
  55. data/ext/couchbase/operations/analytics_dataverse_create.hxx +104 -0
  56. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +104 -0
  57. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +91 -0
  58. data/ext/couchbase/operations/analytics_index_create.hxx +128 -0
  59. data/ext/couchbase/operations/analytics_index_drop.hxx +110 -0
  60. data/ext/couchbase/operations/analytics_index_get_all.hxx +106 -0
  61. data/ext/couchbase/operations/analytics_link_connect.hxx +102 -0
  62. data/ext/couchbase/operations/analytics_link_disconnect.hxx +101 -0
  63. data/ext/couchbase/operations/bucket_create.hxx +141 -0
  64. data/ext/couchbase/operations/bucket_drop.hxx +68 -0
  65. data/ext/couchbase/operations/bucket_flush.hxx +68 -0
  66. data/ext/couchbase/operations/bucket_get.hxx +72 -0
  67. data/ext/couchbase/operations/bucket_get_all.hxx +65 -0
  68. data/ext/couchbase/operations/bucket_settings.hxx +111 -0
  69. data/ext/couchbase/operations/bucket_update.hxx +118 -0
  70. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +63 -0
  71. data/ext/couchbase/operations/collection_create.hxx +93 -0
  72. data/ext/couchbase/operations/collection_drop.hxx +85 -0
  73. data/ext/couchbase/operations/design_document.hxx +59 -0
  74. data/ext/couchbase/operations/document_analytics.hxx +288 -0
  75. data/ext/couchbase/operations/document_decrement.hxx +85 -0
  76. data/ext/couchbase/operations/document_exists.hxx +82 -0
  77. data/ext/couchbase/operations/{get.hxx → document_get.hxx} +10 -3
  78. data/ext/couchbase/operations/document_get_and_lock.hxx +69 -0
  79. data/ext/couchbase/operations/document_get_and_touch.hxx +69 -0
  80. data/ext/couchbase/operations/document_get_projected.hxx +247 -0
  81. data/ext/couchbase/operations/document_increment.hxx +87 -0
  82. data/ext/couchbase/operations/document_insert.hxx +79 -0
  83. data/ext/couchbase/operations/{lookup_in.hxx → document_lookup_in.hxx} +27 -3
  84. data/ext/couchbase/operations/{mutate_in.hxx → document_mutate_in.hxx} +58 -3
  85. data/ext/couchbase/operations/{query.hxx → document_query.hxx} +117 -12
  86. data/ext/couchbase/operations/{remove.hxx → document_remove.hxx} +17 -3
  87. data/ext/couchbase/operations/document_replace.hxx +81 -0
  88. data/ext/couchbase/operations/document_search.hxx +355 -0
  89. data/ext/couchbase/operations/document_touch.hxx +65 -0
  90. data/ext/couchbase/operations/{upsert.hxx → document_unlock.hxx} +17 -12
  91. data/ext/couchbase/operations/document_upsert.hxx +79 -0
  92. data/ext/couchbase/operations/document_view.hxx +228 -0
  93. data/ext/couchbase/operations/query_index_build_deferred.hxx +86 -0
  94. data/ext/couchbase/operations/query_index_create.hxx +135 -0
  95. data/ext/couchbase/operations/query_index_drop.hxx +109 -0
  96. data/ext/couchbase/operations/query_index_get_all.hxx +107 -0
  97. data/ext/couchbase/operations/scope_create.hxx +84 -0
  98. data/ext/couchbase/operations/scope_drop.hxx +82 -0
  99. data/ext/couchbase/operations/scope_get_all.hxx +76 -0
  100. data/ext/couchbase/operations/search_index.hxx +79 -0
  101. data/ext/couchbase/operations/search_index_analyze_document.hxx +92 -0
  102. data/ext/couchbase/operations/search_index_control_ingest.hxx +80 -0
  103. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +80 -0
  104. data/ext/couchbase/operations/search_index_control_query.hxx +80 -0
  105. data/ext/couchbase/operations/search_index_drop.hxx +77 -0
  106. data/ext/couchbase/operations/search_index_get.hxx +80 -0
  107. data/ext/couchbase/operations/search_index_get_all.hxx +82 -0
  108. data/ext/couchbase/operations/search_index_get_documents_count.hxx +81 -0
  109. data/ext/couchbase/operations/search_index_upsert.hxx +106 -0
  110. data/ext/couchbase/operations/view_index_drop.hxx +67 -0
  111. data/ext/couchbase/operations/view_index_get.hxx +90 -0
  112. data/ext/couchbase/operations/view_index_get_all.hxx +125 -0
  113. data/ext/couchbase/operations/view_index_upsert.hxx +87 -0
  114. data/ext/couchbase/origin.hxx +148 -0
  115. data/ext/couchbase/protocol/client_opcode.hxx +52 -3
  116. data/ext/couchbase/protocol/client_request.hxx +56 -9
  117. data/ext/couchbase/protocol/client_response.hxx +53 -16
  118. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +76 -0
  119. data/ext/couchbase/protocol/cmd_decrement.hxx +187 -0
  120. data/ext/couchbase/protocol/cmd_exists.hxx +171 -0
  121. data/ext/couchbase/protocol/cmd_get.hxx +31 -8
  122. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +142 -0
  123. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +142 -0
  124. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +16 -8
  125. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +117 -0
  126. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +16 -3
  127. data/ext/couchbase/protocol/cmd_get_error_map.hxx +16 -3
  128. data/ext/couchbase/protocol/cmd_hello.hxx +34 -8
  129. data/ext/couchbase/protocol/cmd_increment.hxx +187 -0
  130. data/ext/couchbase/protocol/cmd_info.hxx +1 -11
  131. data/ext/couchbase/protocol/cmd_insert.hxx +172 -0
  132. data/ext/couchbase/protocol/cmd_lookup_in.hxx +29 -13
  133. data/ext/couchbase/protocol/cmd_mutate_in.hxx +116 -16
  134. data/ext/couchbase/protocol/cmd_remove.hxx +59 -4
  135. data/ext/couchbase/protocol/cmd_replace.hxx +172 -0
  136. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +15 -3
  137. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +15 -3
  138. data/ext/couchbase/protocol/cmd_sasl_step.hxx +15 -3
  139. data/ext/couchbase/protocol/cmd_select_bucket.hxx +14 -2
  140. data/ext/couchbase/protocol/cmd_touch.hxx +102 -0
  141. data/ext/couchbase/protocol/cmd_unlock.hxx +95 -0
  142. data/ext/couchbase/protocol/cmd_upsert.hxx +54 -18
  143. data/ext/couchbase/protocol/durability_level.hxx +67 -0
  144. data/ext/couchbase/protocol/frame_info_id.hxx +187 -0
  145. data/ext/couchbase/protocol/hello_feature.hxx +137 -0
  146. data/ext/couchbase/protocol/server_opcode.hxx +57 -0
  147. data/ext/couchbase/protocol/server_request.hxx +122 -0
  148. data/ext/couchbase/protocol/unsigned_leb128.h +15 -15
  149. data/ext/couchbase/service_type.hxx +38 -1
  150. data/ext/couchbase/timeout_defaults.hxx +41 -0
  151. data/ext/couchbase/utils/byteswap.hxx +1 -2
  152. data/ext/couchbase/utils/connection_string.hxx +370 -0
  153. data/ext/couchbase/utils/url_codec.hxx +225 -0
  154. data/ext/couchbase/version.hxx +3 -1
  155. data/ext/extconf.rb +46 -10
  156. data/ext/test/main.cxx +111 -118
  157. data/ext/third_party/http_parser/Makefile +160 -0
  158. data/ext/third_party/json/Makefile +77 -0
  159. data/ext/third_party/snappy/.appveyor.yml +36 -0
  160. data/ext/third_party/snappy/.gitignore +8 -0
  161. data/ext/third_party/snappy/.travis.yml +98 -0
  162. data/ext/third_party/snappy/AUTHORS +1 -0
  163. data/ext/third_party/snappy/CMakeLists.txt +345 -0
  164. data/ext/third_party/snappy/CONTRIBUTING.md +26 -0
  165. data/ext/third_party/snappy/COPYING +54 -0
  166. data/ext/third_party/snappy/NEWS +188 -0
  167. data/ext/third_party/snappy/README.md +148 -0
  168. data/ext/third_party/snappy/cmake/SnappyConfig.cmake.in +33 -0
  169. data/ext/third_party/snappy/cmake/config.h.in +59 -0
  170. data/ext/third_party/snappy/docs/README.md +72 -0
  171. data/ext/third_party/snappy/format_description.txt +110 -0
  172. data/ext/third_party/snappy/framing_format.txt +135 -0
  173. data/ext/third_party/snappy/snappy-c.cc +90 -0
  174. data/ext/third_party/snappy/snappy-c.h +138 -0
  175. data/ext/third_party/snappy/snappy-internal.h +315 -0
  176. data/ext/third_party/snappy/snappy-sinksource.cc +121 -0
  177. data/ext/third_party/snappy/snappy-sinksource.h +182 -0
  178. data/ext/third_party/snappy/snappy-stubs-internal.cc +42 -0
  179. data/ext/third_party/snappy/snappy-stubs-internal.h +493 -0
  180. data/ext/third_party/snappy/snappy-stubs-public.h.in +63 -0
  181. data/ext/third_party/snappy/snappy-test.cc +613 -0
  182. data/ext/third_party/snappy/snappy-test.h +526 -0
  183. data/ext/third_party/snappy/snappy.cc +1770 -0
  184. data/ext/third_party/snappy/snappy.h +209 -0
  185. data/ext/third_party/snappy/snappy_compress_fuzzer.cc +60 -0
  186. data/ext/third_party/snappy/snappy_uncompress_fuzzer.cc +58 -0
  187. data/ext/third_party/snappy/snappy_unittest.cc +1512 -0
  188. data/lib/couchbase/analytics_options.rb +179 -0
  189. data/lib/couchbase/binary_collection.rb +37 -76
  190. data/lib/couchbase/binary_collection_options.rb +98 -0
  191. data/lib/couchbase/bucket.rb +63 -5
  192. data/lib/couchbase/cluster.rb +189 -113
  193. data/lib/couchbase/collection.rb +153 -200
  194. data/lib/couchbase/collection_options.rb +496 -0
  195. data/{bin/console → lib/couchbase/datastructures.rb} +4 -7
  196. data/lib/couchbase/datastructures/couchbase_list.rb +171 -0
  197. data/lib/couchbase/datastructures/couchbase_map.rb +205 -0
  198. data/lib/couchbase/datastructures/couchbase_queue.rb +145 -0
  199. data/lib/couchbase/datastructures/couchbase_set.rb +138 -0
  200. data/lib/couchbase/errors.rb +140 -135
  201. data/{bin/setup → lib/couchbase/json_transcoder.rb} +17 -8
  202. data/lib/couchbase/libcouchbase.bundle +0 -0
  203. data/lib/couchbase/management/analytics_index_manager.rb +309 -19
  204. data/lib/couchbase/management/bucket_manager.rb +98 -33
  205. data/lib/couchbase/management/collection_manager.rb +175 -1
  206. data/lib/couchbase/management/query_index_manager.rb +271 -0
  207. data/lib/couchbase/management/search_index_manager.rb +338 -0
  208. data/lib/couchbase/management/user_manager.rb +13 -11
  209. data/lib/couchbase/management/view_index_manager.rb +204 -1
  210. data/lib/couchbase/mutation_state.rb +12 -1
  211. data/lib/couchbase/query_options.rb +242 -0
  212. data/lib/couchbase/scope.rb +3 -10
  213. data/lib/couchbase/search_options.rb +1499 -0
  214. data/lib/couchbase/subdoc.rb +80 -19
  215. data/lib/couchbase/version.rb +1 -1
  216. data/lib/couchbase/view_options.rb +156 -0
  217. metadata +164 -777
  218. data/.gitignore +0 -20
  219. data/.gitmodules +0 -15
  220. data/.idea/.gitignore +0 -5
  221. data/.idea/dictionaries/gem_terms.xml +0 -13
  222. data/.idea/inspectionProfiles/Project_Default.xml +0 -7
  223. data/.idea/vcs.xml +0 -11
  224. data/.travis.yml +0 -7
  225. data/ext/couchbase/configuration_monitor.hxx +0 -93
  226. data/ext/couchbase/io/binary_parser.hxx +0 -64
  227. data/ext/couchbase/io/key_value_session.hxx +0 -754
  228. data/ext/couchbase/operations/command.hxx +0 -77
  229. data/ext/third_party/asio/asio/src/examples/cpp03/Makefile.am +0 -251
  230. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/.gitignore +0 -10
  231. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/server.cpp +0 -285
  232. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/.gitignore +0 -10
  233. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/reference_counted.cpp +0 -131
  234. data/ext/third_party/asio/asio/src/examples/cpp03/chat/.gitignore +0 -11
  235. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_client.cpp +0 -177
  236. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_message.hpp +0 -93
  237. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_server.cpp +0 -249
  238. data/ext/third_party/asio/asio/src/examples/cpp03/chat/posix_chat_client.cpp +0 -204
  239. data/ext/third_party/asio/asio/src/examples/cpp03/echo/.gitignore +0 -11
  240. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp +0 -137
  241. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp +0 -92
  242. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp +0 -59
  243. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp +0 -79
  244. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp +0 -59
  245. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp +0 -53
  246. data/ext/third_party/asio/asio/src/examples/cpp03/fork/.gitignore +0 -11
  247. data/ext/third_party/asio/asio/src/examples/cpp03/fork/daemon.cpp +0 -190
  248. data/ext/third_party/asio/asio/src/examples/cpp03/fork/process_per_connection.cpp +0 -161
  249. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/.gitignore +0 -10
  250. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/async_client.cpp +0 -204
  251. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/sync_client.cpp +0 -106
  252. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_1K.html +0 -28
  253. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_2K.html +0 -49
  254. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_4K.html +0 -91
  255. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_8K.html +0 -175
  256. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/.gitignore +0 -11
  257. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.cpp +0 -99
  258. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.hpp +0 -83
  259. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.cpp +0 -38
  260. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.hpp +0 -44
  261. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/header.hpp +0 -28
  262. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/main.cpp +0 -44
  263. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.cpp +0 -46
  264. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.hpp +0 -27
  265. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.cpp +0 -256
  266. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.hpp +0 -64
  267. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request.hpp +0 -34
  268. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.cpp +0 -122
  269. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.hpp +0 -46
  270. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.cpp +0 -315
  271. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.hpp +0 -95
  272. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.cpp +0 -94
  273. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.hpp +0 -69
  274. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/.gitignore +0 -11
  275. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.cpp +0 -93
  276. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.hpp +0 -75
  277. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/header.hpp +0 -28
  278. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.cpp +0 -69
  279. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.hpp +0 -58
  280. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/main.cpp +0 -46
  281. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.cpp +0 -46
  282. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.hpp +0 -27
  283. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.cpp +0 -256
  284. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.hpp +0 -64
  285. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request.hpp +0 -34
  286. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.cpp +0 -122
  287. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.hpp +0 -46
  288. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.cpp +0 -315
  289. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.hpp +0 -95
  290. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.cpp +0 -77
  291. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.hpp +0 -68
  292. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/.gitignore +0 -11
  293. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.cpp +0 -94
  294. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.hpp +0 -78
  295. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/header.hpp +0 -28
  296. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/main.cpp +0 -46
  297. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.cpp +0 -46
  298. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.hpp +0 -27
  299. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.cpp +0 -256
  300. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.hpp +0 -64
  301. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request.hpp +0 -34
  302. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.cpp +0 -122
  303. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.hpp +0 -46
  304. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.cpp +0 -315
  305. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.hpp +0 -95
  306. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.cpp +0 -89
  307. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.hpp +0 -70
  308. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/.gitignore +0 -11
  309. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.cpp +0 -122
  310. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.hpp +0 -44
  311. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/header.hpp +0 -28
  312. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/main.cpp +0 -58
  313. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.cpp +0 -46
  314. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.hpp +0 -27
  315. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.cpp +0 -256
  316. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.hpp +0 -64
  317. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request.hpp +0 -46
  318. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.cpp +0 -226
  319. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.hpp +0 -78
  320. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.cpp +0 -122
  321. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.hpp +0 -73
  322. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/.gitignore +0 -10
  323. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/icmp_header.hpp +0 -94
  324. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ipv4_header.hpp +0 -102
  325. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ping.cpp +0 -163
  326. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/.gitignore +0 -10
  327. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp +0 -171
  328. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/.gitignore +0 -11
  329. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_client.cpp +0 -44
  330. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_server.cpp +0 -51
  331. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/http_client.cpp +0 -91
  332. data/ext/third_party/asio/asio/src/examples/cpp03/local/.gitignore +0 -13
  333. data/ext/third_party/asio/asio/src/examples/cpp03/local/connect_pair.cpp +0 -141
  334. data/ext/third_party/asio/asio/src/examples/cpp03/local/iostream_client.cpp +0 -62
  335. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_client.cpp +0 -61
  336. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_server.cpp +0 -141
  337. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/.gitignore +0 -11
  338. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/receiver.cpp +0 -93
  339. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/sender.cpp +0 -98
  340. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/.gitignore +0 -10
  341. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp +0 -240
  342. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/.gitignore +0 -11
  343. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/client.cpp +0 -192
  344. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/protocol.hpp +0 -156
  345. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/server.cpp +0 -187
  346. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/.gitignore +0 -11
  347. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/client.cpp +0 -125
  348. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/connection.hpp +0 -188
  349. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/server.cpp +0 -123
  350. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/stock.hpp +0 -50
  351. data/ext/third_party/asio/asio/src/examples/cpp03/services/.gitignore +0 -11
  352. data/ext/third_party/asio/asio/src/examples/cpp03/services/basic_logger.hpp +0 -83
  353. data/ext/third_party/asio/asio/src/examples/cpp03/services/daytime_client.cpp +0 -97
  354. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger.hpp +0 -24
  355. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.cpp +0 -11
  356. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.hpp +0 -145
  357. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/.gitignore +0 -10
  358. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/socks4.hpp +0 -144
  359. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/sync_client.cpp +0 -94
  360. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/.gitignore +0 -12
  361. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/echo_server.cpp +0 -122
  362. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/parallel_grep.cpp +0 -89
  363. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/.gitignore +0 -11
  364. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/README +0 -8
  365. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/ca.pem +0 -49
  366. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/client.cpp +0 -157
  367. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/dh2048.pem +0 -8
  368. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.cpp +0 -170
  369. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.pem +0 -71
  370. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/.gitignore +0 -11
  371. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp +0 -311
  372. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp +0 -191
  373. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp +0 -200
  374. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp +0 -154
  375. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/server.cpp +0 -433
  376. data/ext/third_party/asio/asio/src/examples/cpp03/timers/.gitignore +0 -10
  377. data/ext/third_party/asio/asio/src/examples/cpp03/timers/time_t_timer.cpp +0 -106
  378. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/.gitignore +0 -10
  379. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/client.cpp +0 -57
  380. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/.gitignore +0 -10
  381. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/server.cpp +0 -50
  382. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/.gitignore +0 -10
  383. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/server.cpp +0 -119
  384. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/.gitignore +0 -10
  385. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/client.cpp +0 -52
  386. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/.gitignore +0 -10
  387. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/server.cpp +0 -53
  388. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/.gitignore +0 -10
  389. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/server.cpp +0 -89
  390. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/.gitignore +0 -10
  391. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/server.cpp +0 -160
  392. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime_dox.txt +0 -500
  393. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/index_dox.txt +0 -48
  394. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/.gitignore +0 -10
  395. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/timer.cpp +0 -24
  396. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/.gitignore +0 -10
  397. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/timer.cpp +0 -29
  398. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/.gitignore +0 -10
  399. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/timer.cpp +0 -43
  400. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/.gitignore +0 -10
  401. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/timer.cpp +0 -54
  402. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/.gitignore +0 -10
  403. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/timer.cpp +0 -80
  404. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer_dox.txt +0 -378
  405. data/ext/third_party/asio/asio/src/examples/cpp03/windows/.gitignore +0 -10
  406. data/ext/third_party/asio/asio/src/examples/cpp03/windows/transmit_file.cpp +0 -177
  407. data/ext/third_party/asio/asio/src/examples/cpp11/Makefile.am +0 -161
  408. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/.gitignore +0 -10
  409. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/server.cpp +0 -255
  410. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/.gitignore +0 -10
  411. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/reference_counted.cpp +0 -122
  412. data/ext/third_party/asio/asio/src/examples/cpp11/chat/.gitignore +0 -11
  413. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_client.cpp +0 -167
  414. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_message.hpp +0 -91
  415. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_server.cpp +0 -227
  416. data/ext/third_party/asio/asio/src/examples/cpp11/echo/.gitignore +0 -11
  417. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp +0 -114
  418. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp +0 -82
  419. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp +0 -55
  420. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp +0 -74
  421. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp +0 -58
  422. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp +0 -52
  423. data/ext/third_party/asio/asio/src/examples/cpp11/executors/.gitignore +0 -5
  424. data/ext/third_party/asio/asio/src/examples/cpp11/executors/actor.cpp +0 -286
  425. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_1.cpp +0 -54
  426. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_2.cpp +0 -54
  427. data/ext/third_party/asio/asio/src/examples/cpp11/executors/fork_join.cpp +0 -328
  428. data/ext/third_party/asio/asio/src/examples/cpp11/executors/pipeline.cpp +0 -299
  429. data/ext/third_party/asio/asio/src/examples/cpp11/executors/priority_scheduler.cpp +0 -174
  430. data/ext/third_party/asio/asio/src/examples/cpp11/fork/.gitignore +0 -11
  431. data/ext/third_party/asio/asio/src/examples/cpp11/fork/daemon.cpp +0 -189
  432. data/ext/third_party/asio/asio/src/examples/cpp11/fork/process_per_connection.cpp +0 -162
  433. data/ext/third_party/asio/asio/src/examples/cpp11/futures/.gitignore +0 -11
  434. data/ext/third_party/asio/asio/src/examples/cpp11/futures/daytime_client.cpp +0 -94
  435. data/ext/third_party/asio/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp +0 -201
  436. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/.gitignore +0 -11
  437. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.cpp +0 -94
  438. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.hpp +0 -79
  439. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.cpp +0 -40
  440. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.hpp +0 -48
  441. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/header.hpp +0 -28
  442. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/main.cpp +0 -43
  443. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.cpp +0 -45
  444. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.hpp +0 -27
  445. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.cpp +0 -255
  446. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.hpp +0 -64
  447. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request.hpp +0 -34
  448. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.cpp +0 -121
  449. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.hpp +0 -47
  450. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.cpp +0 -315
  451. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.hpp +0 -96
  452. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.cpp +0 -94
  453. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.hpp +0 -64
  454. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/.gitignore +0 -10
  455. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp +0 -202
  456. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/.gitignore +0 -11
  457. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/http_client.cpp +0 -91
  458. data/ext/third_party/asio/asio/src/examples/cpp11/local/.gitignore +0 -13
  459. data/ext/third_party/asio/asio/src/examples/cpp11/local/connect_pair.cpp +0 -129
  460. data/ext/third_party/asio/asio/src/examples/cpp11/local/iostream_client.cpp +0 -61
  461. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_client.cpp +0 -60
  462. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_server.cpp +0 -121
  463. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/.gitignore +0 -11
  464. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/receiver.cpp +0 -88
  465. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/sender.cpp +0 -91
  466. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/.gitignore +0 -10
  467. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp +0 -212
  468. data/ext/third_party/asio/asio/src/examples/cpp11/operations/.gitignore +0 -10
  469. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_1.cpp +0 -113
  470. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_2.cpp +0 -131
  471. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_3.cpp +0 -192
  472. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_4.cpp +0 -207
  473. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_5.cpp +0 -243
  474. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_6.cpp +0 -302
  475. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_7.cpp +0 -222
  476. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_8.cpp +0 -217
  477. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/.gitignore +0 -10
  478. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/socks4.hpp +0 -143
  479. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/sync_client.cpp +0 -93
  480. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/.gitignore +0 -12
  481. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/echo_server.cpp +0 -111
  482. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/parallel_grep.cpp +0 -84
  483. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/.gitignore +0 -11
  484. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/README +0 -8
  485. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/ca.pem +0 -49
  486. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/client.cpp +0 -165
  487. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/dh2048.pem +0 -8
  488. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.cpp +0 -143
  489. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.pem +0 -71
  490. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/.gitignore +0 -11
  491. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp +0 -311
  492. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp +0 -192
  493. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp +0 -197
  494. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp +0 -155
  495. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/server.cpp +0 -433
  496. data/ext/third_party/asio/asio/src/examples/cpp11/timers/.gitignore +0 -10
  497. data/ext/third_party/asio/asio/src/examples/cpp11/timers/time_t_timer.cpp +0 -106
  498. data/ext/third_party/asio/asio/src/examples/cpp14/Makefile.am +0 -64
  499. data/ext/third_party/asio/asio/src/examples/cpp14/echo/.gitignore +0 -11
  500. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp +0 -117
  501. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp +0 -83
  502. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp +0 -55
  503. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp +0 -77
  504. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp +0 -59
  505. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp +0 -53
  506. data/ext/third_party/asio/asio/src/examples/cpp14/executors/.gitignore +0 -6
  507. data/ext/third_party/asio/asio/src/examples/cpp14/executors/actor.cpp +0 -281
  508. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_1.cpp +0 -47
  509. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_2.cpp +0 -68
  510. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_1.cpp +0 -54
  511. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_2.cpp +0 -53
  512. data/ext/third_party/asio/asio/src/examples/cpp14/executors/fork_join.cpp +0 -327
  513. data/ext/third_party/asio/asio/src/examples/cpp14/executors/pipeline.cpp +0 -294
  514. data/ext/third_party/asio/asio/src/examples/cpp14/executors/priority_scheduler.cpp +0 -173
  515. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/.gitignore +0 -11
  516. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/http_client.cpp +0 -91
  517. data/ext/third_party/asio/asio/src/examples/cpp14/operations/.gitignore +0 -10
  518. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_1.cpp +0 -113
  519. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_2.cpp +0 -131
  520. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_3.cpp +0 -186
  521. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_4.cpp +0 -201
  522. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_5.cpp +0 -238
  523. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_6.cpp +0 -298
  524. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_7.cpp +0 -219
  525. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_8.cpp +0 -212
  526. data/ext/third_party/asio/asio/src/examples/cpp17/Makefile.am +0 -8
  527. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp +0 -225
  528. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp +0 -76
  529. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server_with_default.cpp +0 -78
  530. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp +0 -107
  531. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp +0 -85
  532. data/ext/third_party/asio/asio/src/tests/.gitignore +0 -11
  533. data/ext/third_party/asio/asio/src/tests/Makefile.am +0 -432
  534. data/ext/third_party/asio/asio/src/tests/latency/.gitignore +0 -11
  535. data/ext/third_party/asio/asio/src/tests/latency/allocator.hpp +0 -52
  536. data/ext/third_party/asio/asio/src/tests/latency/high_res_clock.hpp +0 -53
  537. data/ext/third_party/asio/asio/src/tests/latency/tcp_client.cpp +0 -124
  538. data/ext/third_party/asio/asio/src/tests/latency/tcp_server.cpp +0 -114
  539. data/ext/third_party/asio/asio/src/tests/latency/udp_client.cpp +0 -104
  540. data/ext/third_party/asio/asio/src/tests/latency/udp_server.cpp +0 -125
  541. data/ext/third_party/asio/asio/src/tests/performance/.gitignore +0 -11
  542. data/ext/third_party/asio/asio/src/tests/performance/client.cpp +0 -286
  543. data/ext/third_party/asio/asio/src/tests/performance/handler_allocator.hpp +0 -112
  544. data/ext/third_party/asio/asio/src/tests/performance/server.cpp +0 -233
  545. data/ext/third_party/asio/asio/src/tests/unit/.gitignore +0 -75
  546. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_ops.hpp +0 -415
  547. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_result.hpp +0 -94
  548. data/ext/third_party/asio/asio/src/tests/unit/archetypes/gettable_socket_option.hpp +0 -54
  549. data/ext/third_party/asio/asio/src/tests/unit/archetypes/io_control_command.hpp +0 -32
  550. data/ext/third_party/asio/asio/src/tests/unit/archetypes/settable_socket_option.hpp +0 -49
  551. data/ext/third_party/asio/asio/src/tests/unit/associated_allocator.cpp +0 -25
  552. data/ext/third_party/asio/asio/src/tests/unit/associated_executor.cpp +0 -25
  553. data/ext/third_party/asio/asio/src/tests/unit/async_result.cpp +0 -25
  554. data/ext/third_party/asio/asio/src/tests/unit/awaitable.cpp +0 -25
  555. data/ext/third_party/asio/asio/src/tests/unit/basic_datagram_socket.cpp +0 -25
  556. data/ext/third_party/asio/asio/src/tests/unit/basic_deadline_timer.cpp +0 -25
  557. data/ext/third_party/asio/asio/src/tests/unit/basic_raw_socket.cpp +0 -25
  558. data/ext/third_party/asio/asio/src/tests/unit/basic_seq_packet_socket.cpp +0 -25
  559. data/ext/third_party/asio/asio/src/tests/unit/basic_serial_port.cpp +0 -26
  560. data/ext/third_party/asio/asio/src/tests/unit/basic_signal_set.cpp +0 -25
  561. data/ext/third_party/asio/asio/src/tests/unit/basic_socket.cpp +0 -25
  562. data/ext/third_party/asio/asio/src/tests/unit/basic_socket_acceptor.cpp +0 -25
  563. data/ext/third_party/asio/asio/src/tests/unit/basic_stream_socket.cpp +0 -25
  564. data/ext/third_party/asio/asio/src/tests/unit/basic_streambuf.cpp +0 -25
  565. data/ext/third_party/asio/asio/src/tests/unit/basic_waitable_timer.cpp +0 -25
  566. data/ext/third_party/asio/asio/src/tests/unit/bind_executor.cpp +0 -25
  567. data/ext/third_party/asio/asio/src/tests/unit/buffer.cpp +0 -830
  568. data/ext/third_party/asio/asio/src/tests/unit/buffered_read_stream.cpp +0 -338
  569. data/ext/third_party/asio/asio/src/tests/unit/buffered_stream.cpp +0 -364
  570. data/ext/third_party/asio/asio/src/tests/unit/buffered_write_stream.cpp +0 -353
  571. data/ext/third_party/asio/asio/src/tests/unit/buffers_iterator.cpp +0 -292
  572. data/ext/third_party/asio/asio/src/tests/unit/co_spawn.cpp +0 -25
  573. data/ext/third_party/asio/asio/src/tests/unit/completion_condition.cpp +0 -25
  574. data/ext/third_party/asio/asio/src/tests/unit/compose.cpp +0 -185
  575. data/ext/third_party/asio/asio/src/tests/unit/connect.cpp +0 -1190
  576. data/ext/third_party/asio/asio/src/tests/unit/coroutine.cpp +0 -112
  577. data/ext/third_party/asio/asio/src/tests/unit/deadline_timer.cpp +0 -392
  578. data/ext/third_party/asio/asio/src/tests/unit/defer.cpp +0 -25
  579. data/ext/third_party/asio/asio/src/tests/unit/detached.cpp +0 -25
  580. data/ext/third_party/asio/asio/src/tests/unit/dispatch.cpp +0 -25
  581. data/ext/third_party/asio/asio/src/tests/unit/error.cpp +0 -89
  582. data/ext/third_party/asio/asio/src/tests/unit/execution_context.cpp +0 -25
  583. data/ext/third_party/asio/asio/src/tests/unit/executor.cpp +0 -25
  584. data/ext/third_party/asio/asio/src/tests/unit/executor_work_guard.cpp +0 -25
  585. data/ext/third_party/asio/asio/src/tests/unit/generic/.gitignore +0 -14
  586. data/ext/third_party/asio/asio/src/tests/unit/generic/basic_endpoint.cpp +0 -25
  587. data/ext/third_party/asio/asio/src/tests/unit/generic/datagram_protocol.cpp +0 -263
  588. data/ext/third_party/asio/asio/src/tests/unit/generic/raw_protocol.cpp +0 -263
  589. data/ext/third_party/asio/asio/src/tests/unit/generic/seq_packet_protocol.cpp +0 -205
  590. data/ext/third_party/asio/asio/src/tests/unit/generic/stream_protocol.cpp +0 -248
  591. data/ext/third_party/asio/asio/src/tests/unit/high_resolution_timer.cpp +0 -30
  592. data/ext/third_party/asio/asio/src/tests/unit/io_context.cpp +0 -362
  593. data/ext/third_party/asio/asio/src/tests/unit/io_context_strand.cpp +0 -325
  594. data/ext/third_party/asio/asio/src/tests/unit/ip/.gitignore +0 -27
  595. data/ext/third_party/asio/asio/src/tests/unit/ip/address.cpp +0 -144
  596. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_endpoint.cpp +0 -25
  597. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver.cpp +0 -25
  598. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_entry.cpp +0 -25
  599. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_iterator.cpp +0 -25
  600. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_query.cpp +0 -25
  601. data/ext/third_party/asio/asio/src/tests/unit/ip/host_name.cpp +0 -55
  602. data/ext/third_party/asio/asio/src/tests/unit/ip/icmp.cpp +0 -577
  603. data/ext/third_party/asio/asio/src/tests/unit/ip/multicast.cpp +0 -363
  604. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v4.cpp +0 -314
  605. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v6.cpp +0 -238
  606. data/ext/third_party/asio/asio/src/tests/unit/ip/resolver_query_base.cpp +0 -25
  607. data/ext/third_party/asio/asio/src/tests/unit/ip/tcp.cpp +0 -1346
  608. data/ext/third_party/asio/asio/src/tests/unit/ip/udp.cpp +0 -673
  609. data/ext/third_party/asio/asio/src/tests/unit/ip/unicast.cpp +0 -171
  610. data/ext/third_party/asio/asio/src/tests/unit/ip/v6_only.cpp +0 -135
  611. data/ext/third_party/asio/asio/src/tests/unit/is_read_buffered.cpp +0 -129
  612. data/ext/third_party/asio/asio/src/tests/unit/is_write_buffered.cpp +0 -129
  613. data/ext/third_party/asio/asio/src/tests/unit/local/.gitignore +0 -13
  614. data/ext/third_party/asio/asio/src/tests/unit/local/basic_endpoint.cpp +0 -25
  615. data/ext/third_party/asio/asio/src/tests/unit/local/connect_pair.cpp +0 -76
  616. data/ext/third_party/asio/asio/src/tests/unit/local/datagram_protocol.cpp +0 -242
  617. data/ext/third_party/asio/asio/src/tests/unit/local/stream_protocol.cpp +0 -219
  618. data/ext/third_party/asio/asio/src/tests/unit/packaged_task.cpp +0 -25
  619. data/ext/third_party/asio/asio/src/tests/unit/placeholders.cpp +0 -25
  620. data/ext/third_party/asio/asio/src/tests/unit/posix/.gitignore +0 -14
  621. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_descriptor.cpp +0 -25
  622. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_stream_descriptor.cpp +0 -25
  623. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor.cpp +0 -25
  624. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor_base.cpp +0 -25
  625. data/ext/third_party/asio/asio/src/tests/unit/posix/stream_descriptor.cpp +0 -183
  626. data/ext/third_party/asio/asio/src/tests/unit/post.cpp +0 -25
  627. data/ext/third_party/asio/asio/src/tests/unit/read.cpp +0 -4997
  628. data/ext/third_party/asio/asio/src/tests/unit/read_at.cpp +0 -7502
  629. data/ext/third_party/asio/asio/src/tests/unit/read_until.cpp +0 -1658
  630. data/ext/third_party/asio/asio/src/tests/unit/redirect_error.cpp +0 -25
  631. data/ext/third_party/asio/asio/src/tests/unit/serial_port.cpp +0 -173
  632. data/ext/third_party/asio/asio/src/tests/unit/serial_port_base.cpp +0 -99
  633. data/ext/third_party/asio/asio/src/tests/unit/signal_set.cpp +0 -95
  634. data/ext/third_party/asio/asio/src/tests/unit/socket_base.cpp +0 -650
  635. data/ext/third_party/asio/asio/src/tests/unit/ssl/.gitignore +0 -15
  636. data/ext/third_party/asio/asio/src/tests/unit/ssl/context.cpp +0 -25
  637. data/ext/third_party/asio/asio/src/tests/unit/ssl/context_base.cpp +0 -25
  638. data/ext/third_party/asio/asio/src/tests/unit/ssl/error.cpp +0 -25
  639. data/ext/third_party/asio/asio/src/tests/unit/ssl/host_name_verification.cpp +0 -25
  640. data/ext/third_party/asio/asio/src/tests/unit/ssl/rfc2818_verification.cpp +0 -25
  641. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream.cpp +0 -191
  642. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream_base.cpp +0 -25
  643. data/ext/third_party/asio/asio/src/tests/unit/steady_timer.cpp +0 -30
  644. data/ext/third_party/asio/asio/src/tests/unit/strand.cpp +0 -263
  645. data/ext/third_party/asio/asio/src/tests/unit/streambuf.cpp +0 -62
  646. data/ext/third_party/asio/asio/src/tests/unit/system_context.cpp +0 -30
  647. data/ext/third_party/asio/asio/src/tests/unit/system_executor.cpp +0 -30
  648. data/ext/third_party/asio/asio/src/tests/unit/system_timer.cpp +0 -399
  649. data/ext/third_party/asio/asio/src/tests/unit/this_coro.cpp +0 -25
  650. data/ext/third_party/asio/asio/src/tests/unit/thread.cpp +0 -25
  651. data/ext/third_party/asio/asio/src/tests/unit/time_traits.cpp +0 -25
  652. data/ext/third_party/asio/asio/src/tests/unit/ts/.gitignore +0 -17
  653. data/ext/third_party/asio/asio/src/tests/unit/ts/buffer.cpp +0 -30
  654. data/ext/third_party/asio/asio/src/tests/unit/ts/executor.cpp +0 -30
  655. data/ext/third_party/asio/asio/src/tests/unit/ts/internet.cpp +0 -30
  656. data/ext/third_party/asio/asio/src/tests/unit/ts/io_context.cpp +0 -30
  657. data/ext/third_party/asio/asio/src/tests/unit/ts/net.cpp +0 -30
  658. data/ext/third_party/asio/asio/src/tests/unit/ts/netfwd.cpp +0 -33
  659. data/ext/third_party/asio/asio/src/tests/unit/ts/socket.cpp +0 -30
  660. data/ext/third_party/asio/asio/src/tests/unit/ts/timer.cpp +0 -30
  661. data/ext/third_party/asio/asio/src/tests/unit/unit_test.hpp +0 -175
  662. data/ext/third_party/asio/asio/src/tests/unit/use_awaitable.cpp +0 -25
  663. data/ext/third_party/asio/asio/src/tests/unit/use_future.cpp +0 -670
  664. data/ext/third_party/asio/asio/src/tests/unit/uses_executor.cpp +0 -25
  665. data/ext/third_party/asio/asio/src/tests/unit/wait_traits.cpp +0 -25
  666. data/ext/third_party/asio/asio/src/tests/unit/windows/.gitignore +0 -18
  667. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_object_handle.cpp +0 -25
  668. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_overlapped_handle.cpp +0 -25
  669. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_random_access_handle.cpp +0 -25
  670. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_stream_handle.cpp +0 -25
  671. data/ext/third_party/asio/asio/src/tests/unit/windows/object_handle.cpp +0 -130
  672. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_handle.cpp +0 -26
  673. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_ptr.cpp +0 -107
  674. data/ext/third_party/asio/asio/src/tests/unit/windows/random_access_handle.cpp +0 -155
  675. data/ext/third_party/asio/asio/src/tests/unit/windows/stream_handle.cpp +0 -148
  676. data/ext/third_party/asio/asio/src/tests/unit/write.cpp +0 -4904
  677. data/ext/third_party/asio/asio/src/tests/unit/write_at.cpp +0 -7563
  678. data/ext/third_party/asio/asio/src/tools/handlerviz.pl +0 -299
  679. data/ext/third_party/gsl/tests/CMakeLists.txt +0 -267
  680. data/ext/third_party/gsl/tests/CMakeLists.txt.in +0 -14
  681. data/ext/third_party/gsl/tests/algorithm_tests.cpp +0 -227
  682. data/ext/third_party/gsl/tests/assertion_tests.cpp +0 -61
  683. data/ext/third_party/gsl/tests/at_tests.cpp +0 -135
  684. data/ext/third_party/gsl/tests/bounds_tests.cpp +0 -102
  685. data/ext/third_party/gsl/tests/byte_tests.cpp +0 -129
  686. data/ext/third_party/gsl/tests/multi_span_tests.cpp +0 -1866
  687. data/ext/third_party/gsl/tests/no_exception_ensure_tests.cpp +0 -48
  688. data/ext/third_party/gsl/tests/notnull_tests.cpp +0 -535
  689. data/ext/third_party/gsl/tests/owner_tests.cpp +0 -43
  690. data/ext/third_party/gsl/tests/span_compatibility_tests.cpp +0 -1021
  691. data/ext/third_party/gsl/tests/span_ext_tests.cpp +0 -360
  692. data/ext/third_party/gsl/tests/span_tests.cpp +0 -1244
  693. data/ext/third_party/gsl/tests/strict_notnull_tests.cpp +0 -190
  694. data/ext/third_party/gsl/tests/strided_span_tests.cpp +0 -790
  695. data/ext/third_party/gsl/tests/string_span_tests.cpp +0 -1217
  696. data/ext/third_party/gsl/tests/utils_tests.cpp +0 -129
  697. data/ext/third_party/http_parser/contrib/parsertrace.c +0 -157
  698. data/ext/third_party/http_parser/contrib/url_parser.c +0 -47
  699. data/ext/third_party/http_parser/fuzzers/fuzz_parser.c +0 -26
  700. data/ext/third_party/http_parser/fuzzers/fuzz_url.c +0 -14
  701. data/ext/third_party/json/contrib/nlohmann.cpp +0 -48
  702. data/ext/third_party/json/contrib/nlohmann/from_value.hpp +0 -62
  703. data/ext/third_party/json/contrib/nlohmann/json.hpp +0 -18928
  704. data/ext/third_party/json/contrib/nlohmann/to_value.hpp +0 -109
  705. data/ext/third_party/json/doc/Advanced-Use-Cases.md +0 -83
  706. data/ext/third_party/json/doc/Batteries-Included.md +0 -212
  707. data/ext/third_party/json/doc/Binding-Traits.md +0 -319
  708. data/ext/third_party/json/doc/Changelog.md +0 -31
  709. data/ext/third_party/json/doc/Common-Use-Cases.md +0 -148
  710. data/ext/third_party/json/doc/Design-Decisions.md +0 -36
  711. data/ext/third_party/json/doc/Events-Interface.md +0 -140
  712. data/ext/third_party/json/doc/Getting-Started.md +0 -19
  713. data/ext/third_party/json/doc/Instance-Sharing.md +0 -163
  714. data/ext/third_party/json/doc/Interoperability.md +0 -75
  715. data/ext/third_party/json/doc/Overview.md +0 -24
  716. data/ext/third_party/json/doc/Overview.png +0 -0
  717. data/ext/third_party/json/doc/Parser-Interface.md +0 -84
  718. data/ext/third_party/json/doc/README.md +0 -78
  719. data/ext/third_party/json/doc/Scratchpad.md +0 -25
  720. data/ext/third_party/json/doc/Type-Traits.md +0 -364
  721. data/ext/third_party/json/doc/Types.png +0 -0
  722. data/ext/third_party/json/doc/Value-Class.md +0 -525
  723. data/ext/third_party/json/src/example/json/CMakeLists.txt +0 -67
  724. data/ext/third_party/json/src/example/json/cbor_to_jaxn.cpp +0 -18
  725. data/ext/third_party/json/src/example/json/cbor_to_json.cpp +0 -18
  726. data/ext/third_party/json/src/example/json/cbor_to_msgpack.cpp +0 -18
  727. data/ext/third_party/json/src/example/json/cbor_to_pretty_jaxn.cpp +0 -18
  728. data/ext/third_party/json/src/example/json/cbor_to_pretty_json.cpp +0 -18
  729. data/ext/third_party/json/src/example/json/cbor_to_ubjson.cpp +0 -18
  730. data/ext/third_party/json/src/example/json/jaxn_to_cbor.cpp +0 -18
  731. data/ext/third_party/json/src/example/json/jaxn_to_cplusplus.cpp +0 -249
  732. data/ext/third_party/json/src/example/json/jaxn_to_jaxn.cpp +0 -18
  733. data/ext/third_party/json/src/example/json/jaxn_to_msgpack.cpp +0 -18
  734. data/ext/third_party/json/src/example/json/jaxn_to_pretty_jaxn.cpp +0 -18
  735. data/ext/third_party/json/src/example/json/jaxn_to_ubjson.cpp +0 -18
  736. data/ext/third_party/json/src/example/json/json_to_cbor.cpp +0 -18
  737. data/ext/third_party/json/src/example/json/json_to_json.cpp +0 -18
  738. data/ext/third_party/json/src/example/json/json_to_msgpack.cpp +0 -18
  739. data/ext/third_party/json/src/example/json/json_to_pretty_json.cpp +0 -18
  740. data/ext/third_party/json/src/example/json/json_to_ubjson.cpp +0 -18
  741. data/ext/third_party/json/src/example/json/msgpack_to_cbor.cpp +0 -18
  742. data/ext/third_party/json/src/example/json/msgpack_to_jaxn.cpp +0 -18
  743. data/ext/third_party/json/src/example/json/msgpack_to_json.cpp +0 -18
  744. data/ext/third_party/json/src/example/json/msgpack_to_pretty_jaxn.cpp +0 -18
  745. data/ext/third_party/json/src/example/json/msgpack_to_pretty_json.cpp +0 -18
  746. data/ext/third_party/json/src/example/json/msgpack_to_ubjson.cpp +0 -18
  747. data/ext/third_party/json/src/example/json/printf_doubles.cpp +0 -51
  748. data/ext/third_party/json/src/example/json/ubjson_to_cbor.cpp +0 -18
  749. data/ext/third_party/json/src/example/json/ubjson_to_jaxn.cpp +0 -18
  750. data/ext/third_party/json/src/example/json/ubjson_to_json.cpp +0 -18
  751. data/ext/third_party/json/src/example/json/ubjson_to_msgpack.cpp +0 -18
  752. data/ext/third_party/json/src/example/json/ubjson_to_pretty_jaxn.cpp +0 -18
  753. data/ext/third_party/json/src/example/json/ubjson_to_pretty_json.cpp +0 -18
  754. data/ext/third_party/json/src/example/json/validate_event_order.cpp +0 -27
  755. data/ext/third_party/json/src/example/json/validate_integer.cpp +0 -56
  756. data/ext/third_party/json/src/perf/json/bench_mark.hpp +0 -43
  757. data/ext/third_party/json/src/perf/json/benchmark.cpp +0 -34
  758. data/ext/third_party/json/src/perf/json/parse_file.cpp +0 -17
  759. data/ext/third_party/json/src/perf/json/pretty_print_file.cpp +0 -19
  760. data/ext/third_party/json/src/perf/json/print_double.cpp +0 -34
  761. data/ext/third_party/json/src/perf/json/print_file.cpp +0 -19
  762. data/ext/third_party/json/src/perf/json/sizes.cpp +0 -24
  763. data/ext/third_party/json/src/perf/json/syntax_only.cpp +0 -27
  764. data/ext/third_party/json/src/test/json/CMakeLists.txt +0 -97
  765. data/ext/third_party/json/src/test/json/big_list_of_naughty_strings.cpp +0 -43
  766. data/ext/third_party/json/src/test/json/binding_array.cpp +0 -549
  767. data/ext/third_party/json/src/test/json/binding_factory.cpp +0 -265
  768. data/ext/third_party/json/src/test/json/binding_object.cpp +0 -208
  769. data/ext/third_party/json/src/test/json/binding_versions.cpp +0 -95
  770. data/ext/third_party/json/src/test/json/cbor.cpp +0 -149
  771. data/ext/third_party/json/src/test/json/cbor_parts_parser.cpp +0 -36
  772. data/ext/third_party/json/src/test/json/contrib_diff.cpp +0 -43
  773. data/ext/third_party/json/src/test/json/contrib_get.cpp +0 -42
  774. data/ext/third_party/json/src/test/json/contrib_patch_add.cpp +0 -75
  775. data/ext/third_party/json/src/test/json/contrib_patch_copy.cpp +0 -113
  776. data/ext/third_party/json/src/test/json/contrib_patch_move.cpp +0 -97
  777. data/ext/third_party/json/src/test/json/contrib_patch_remove.cpp +0 -85
  778. data/ext/third_party/json/src/test/json/contrib_patch_replace.cpp +0 -79
  779. data/ext/third_party/json/src/test/json/contrib_patch_test.cpp +0 -69
  780. data/ext/third_party/json/src/test/json/contrib_position.cpp +0 -48
  781. data/ext/third_party/json/src/test/json/contrib_reference.cpp +0 -44
  782. data/ext/third_party/json/src/test/json/contrib_schema.cpp +0 -132
  783. data/ext/third_party/json/src/test/json/contrib_traits.cpp +0 -258
  784. data/ext/third_party/json/src/test/json/double.cpp +0 -182
  785. data/ext/third_party/json/src/test/json/enable_implicit_constructor.cpp +0 -54
  786. data/ext/third_party/json/src/test/json/escape.cpp +0 -42
  787. data/ext/third_party/json/src/test/json/events_binary_to.cpp +0 -56
  788. data/ext/third_party/json/src/test/json/events_compare.cpp +0 -433
  789. data/ext/third_party/json/src/test/json/events_debug.cpp +0 -24
  790. data/ext/third_party/json/src/test/json/events_hash.cpp +0 -65
  791. data/ext/third_party/json/src/test/json/events_to_stream.cpp +0 -28
  792. data/ext/third_party/json/src/test/json/events_to_string.cpp +0 -25
  793. data/ext/third_party/json/src/test/json/include_json.cpp +0 -14
  794. data/ext/third_party/json/src/test/json/integer.cpp +0 -118
  795. data/ext/third_party/json/src/test/json/jaxn_ostream.cpp +0 -76
  796. data/ext/third_party/json/src/test/json/jaxn_parse.cpp +0 -239
  797. data/ext/third_party/json/src/test/json/jaxn_parts_parser.cpp +0 -220
  798. data/ext/third_party/json/src/test/json/json_ostream.cpp +0 -102
  799. data/ext/third_party/json/src/test/json/json_parse.cpp +0 -153
  800. data/ext/third_party/json/src/test/json/json_parts_parser.cpp +0 -124
  801. data/ext/third_party/json/src/test/json/json_pointer.cpp +0 -176
  802. data/ext/third_party/json/src/test/json/key_camel_case_to_snake_case.cpp +0 -38
  803. data/ext/third_party/json/src/test/json/key_snake_case_to_camel_case.cpp +0 -33
  804. data/ext/third_party/json/src/test/json/literal.cpp +0 -18
  805. data/ext/third_party/json/src/test/json/main.hpp +0 -20
  806. data/ext/third_party/json/src/test/json/make_events.hpp +0 -362
  807. data/ext/third_party/json/src/test/json/msgpack.cpp +0 -136
  808. data/ext/third_party/json/src/test/json/object_construction.cpp +0 -167
  809. data/ext/third_party/json/src/test/json/opaque_pointer.cpp +0 -192
  810. data/ext/third_party/json/src/test/json/operators.cpp +0 -494
  811. data/ext/third_party/json/src/test/json/optional.cpp +0 -79
  812. data/ext/third_party/json/src/test/json/public_base.cpp +0 -142
  813. data/ext/third_party/json/src/test/json/self_contained.cpp +0 -106
  814. data/ext/third_party/json/src/test/json/sha256.cpp +0 -38
  815. data/ext/third_party/json/src/test/json/string_view.cpp +0 -70
  816. data/ext/third_party/json/src/test/json/temporary_parsing.cpp +0 -339
  817. data/ext/third_party/json/src/test/json/test.hpp +0 -74
  818. data/ext/third_party/json/src/test/json/test_events.hpp +0 -250
  819. data/ext/third_party/json/src/test/json/test_types.hpp +0 -557
  820. data/ext/third_party/json/src/test/json/test_unhex.hpp +0 -42
  821. data/ext/third_party/json/src/test/json/type.cpp +0 -35
  822. data/ext/third_party/json/src/test/json/ubjson.cpp +0 -119
  823. data/ext/third_party/json/src/test/json/uri_fragment.cpp +0 -52
  824. data/ext/third_party/json/src/test/json/validate_event_interfaces.cpp +0 -177
  825. data/ext/third_party/json/src/test/json/validate_utf8.cpp +0 -37
  826. data/ext/third_party/json/src/test/json/value_access.cpp +0 -144
  827. data/ext/third_party/json/src/test/json/value_basics.cpp +0 -241
  828. data/ext/third_party/json/src/test/json/value_create.cpp +0 -372
  829. data/ext/third_party/json/src/test/json/value_ptr.cpp +0 -33
  830. data/ext/third_party/json/src/test/json/value_subscript.cpp +0 -89
  831. data/ext/third_party/json/src/test/json/with_arguments.cpp +0 -98
  832. data/ext/third_party/json/tests/blns.json +0 -496
  833. data/ext/third_party/json/tests/canada.json +0 -9
  834. data/ext/third_party/json/tests/citm_catalog.json +0 -50469
  835. data/ext/third_party/json/tests/draft4/additionalItems.json +0 -82
  836. data/ext/third_party/json/tests/draft4/additionalProperties.json +0 -88
  837. data/ext/third_party/json/tests/draft4/allOf.json +0 -112
  838. data/ext/third_party/json/tests/draft4/anyOf.json +0 -68
  839. data/ext/third_party/json/tests/draft4/default.json +0 -49
  840. data/ext/third_party/json/tests/draft4/definitions.json +0 -32
  841. data/ext/third_party/json/tests/draft4/dependencies.json +0 -113
  842. data/ext/third_party/json/tests/draft4/enum.json +0 -72
  843. data/ext/third_party/json/tests/draft4/items.json +0 -46
  844. data/ext/third_party/json/tests/draft4/maxItems.json +0 -28
  845. data/ext/third_party/json/tests/draft4/maxLength.json +0 -33
  846. data/ext/third_party/json/tests/draft4/maxProperties.json +0 -28
  847. data/ext/third_party/json/tests/draft4/maximum.json +0 -42
  848. data/ext/third_party/json/tests/draft4/minItems.json +0 -28
  849. data/ext/third_party/json/tests/draft4/minLength.json +0 -33
  850. data/ext/third_party/json/tests/draft4/minProperties.json +0 -28
  851. data/ext/third_party/json/tests/draft4/minimum.json +0 -42
  852. data/ext/third_party/json/tests/draft4/multipleOf.json +0 -60
  853. data/ext/third_party/json/tests/draft4/not.json +0 -96
  854. data/ext/third_party/json/tests/draft4/oneOf.json +0 -68
  855. data/ext/third_party/json/tests/draft4/optional/bignum.json +0 -107
  856. data/ext/third_party/json/tests/draft4/optional/format.json +0 -148
  857. data/ext/third_party/json/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  858. data/ext/third_party/json/tests/draft4/pattern.json +0 -34
  859. data/ext/third_party/json/tests/draft4/patternProperties.json +0 -110
  860. data/ext/third_party/json/tests/draft4/properties.json +0 -92
  861. data/ext/third_party/json/tests/draft4/ref.json +0 -179
  862. data/ext/third_party/json/tests/draft4/refRemote.json +0 -74
  863. data/ext/third_party/json/tests/draft4/required.json +0 -44
  864. data/ext/third_party/json/tests/draft4/type.json +0 -345
  865. data/ext/third_party/json/tests/draft4/uniqueItems.json +0 -79
  866. data/ext/third_party/json/tests/taocpp/binary.jaxn +0 -4
  867. data/ext/third_party/json/tests/taocpp/dateTime.json +0 -108
  868. data/ext/third_party/json/tests/taocpp/make_events.cbor +0 -0
  869. data/ext/third_party/json/tests/taocpp/number.json +0 -682
  870. data/ext/third_party/json/tests/taocpp/position.json +0 -8
  871. data/ext/third_party/json/tests/taocpp/schema.json +0 -378
  872. data/ext/third_party/json/tests/twitter.json +0 -15482
  873. data/ext/third_party/spdlog/bench/CMakeLists.txt +0 -25
  874. data/ext/third_party/spdlog/bench/async_bench.cpp +0 -179
  875. data/ext/third_party/spdlog/bench/bench.cpp +0 -238
  876. data/ext/third_party/spdlog/bench/formatter-bench.cpp +0 -80
  877. data/ext/third_party/spdlog/bench/latency.cpp +0 -166
  878. data/ext/third_party/spdlog/bench/utils.h +0 -34
  879. data/ext/third_party/spdlog/example/CMakeLists.txt +0 -23
  880. data/ext/third_party/spdlog/example/example.cpp +0 -282
  881. data/ext/third_party/spdlog/logos/jetbrains-variant-4.svg +0 -43
  882. data/ext/third_party/spdlog/scripts/extract_version.py +0 -17
  883. data/ext/third_party/spdlog/scripts/format.sh +0 -16
  884. data/ext/third_party/spdlog/tests/CMakeLists.txt +0 -70
  885. data/ext/third_party/spdlog/tests/catch.hpp +0 -15372
  886. data/ext/third_party/spdlog/tests/catch.license +0 -23
  887. data/ext/third_party/spdlog/tests/includes.h +0 -26
  888. data/ext/third_party/spdlog/tests/main.cpp +0 -2
  889. data/ext/third_party/spdlog/tests/test_async.cpp +0 -188
  890. data/ext/third_party/spdlog/tests/test_backtrace.cpp +0 -65
  891. data/ext/third_party/spdlog/tests/test_cfg.cpp +0 -93
  892. data/ext/third_party/spdlog/tests/test_create_dir.cpp +0 -80
  893. data/ext/third_party/spdlog/tests/test_daily_logger.cpp +0 -149
  894. data/ext/third_party/spdlog/tests/test_dup_filter.cpp +0 -88
  895. data/ext/third_party/spdlog/tests/test_errors.cpp +0 -118
  896. data/ext/third_party/spdlog/tests/test_eventlog.cpp +0 -71
  897. data/ext/third_party/spdlog/tests/test_file_helper.cpp +0 -102
  898. data/ext/third_party/spdlog/tests/test_file_logging.cpp +0 -98
  899. data/ext/third_party/spdlog/tests/test_fmt_helper.cpp +0 -86
  900. data/ext/third_party/spdlog/tests/test_macros.cpp +0 -60
  901. data/ext/third_party/spdlog/tests/test_misc.cpp +0 -271
  902. data/ext/third_party/spdlog/tests/test_mpmc_q.cpp +0 -106
  903. data/ext/third_party/spdlog/tests/test_pattern_formatter.cpp +0 -443
  904. data/ext/third_party/spdlog/tests/test_registry.cpp +0 -116
  905. data/ext/third_party/spdlog/tests/test_sink.h +0 -79
  906. data/ext/third_party/spdlog/tests/test_stdout_api.cpp +0 -98
  907. data/ext/third_party/spdlog/tests/test_systemd.cpp +0 -15
  908. data/ext/third_party/spdlog/tests/test_time_point.cpp +0 -36
  909. data/ext/third_party/spdlog/tests/utils.cpp +0 -125
  910. data/ext/third_party/spdlog/tests/utils.h +0 -18
  911. data/lib/couchbase/results.rb +0 -307
  912. data/rbi/couchbase.rbi +0 -79
@@ -1,433 +0,0 @@
1
- //
2
- // 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 <algorithm>
12
- #include <cstdlib>
13
- #include <deque>
14
- #include <iostream>
15
- #include <set>
16
- #include <string>
17
- #include <boost/bind/bind.hpp>
18
- #include <boost/shared_ptr.hpp>
19
- #include <boost/enable_shared_from_this.hpp>
20
- #include "asio/buffer.hpp"
21
- #include "asio/io_context.hpp"
22
- #include "asio/ip/tcp.hpp"
23
- #include "asio/ip/udp.hpp"
24
- #include "asio/read_until.hpp"
25
- #include "asio/steady_timer.hpp"
26
- #include "asio/write.hpp"
27
-
28
- using asio::steady_timer;
29
- using asio::ip::tcp;
30
- using asio::ip::udp;
31
-
32
- //----------------------------------------------------------------------
33
-
34
- class subscriber
35
- {
36
- public:
37
- virtual ~subscriber() {}
38
- virtual void deliver(const std::string& msg) = 0;
39
- };
40
-
41
- typedef boost::shared_ptr<subscriber> subscriber_ptr;
42
-
43
- //----------------------------------------------------------------------
44
-
45
- class channel
46
- {
47
- public:
48
- void join(subscriber_ptr subscriber)
49
- {
50
- subscribers_.insert(subscriber);
51
- }
52
-
53
- void leave(subscriber_ptr subscriber)
54
- {
55
- subscribers_.erase(subscriber);
56
- }
57
-
58
- void deliver(const std::string& msg)
59
- {
60
- std::for_each(subscribers_.begin(), subscribers_.end(),
61
- boost::bind(&subscriber::deliver,
62
- boost::placeholders::_1, boost::ref(msg)));
63
- }
64
-
65
- private:
66
- std::set<subscriber_ptr> subscribers_;
67
- };
68
-
69
- //----------------------------------------------------------------------
70
-
71
- //
72
- // This class manages socket timeouts by applying the concept of a deadline.
73
- // Some asynchronous operations are given deadlines by which they must complete.
74
- // Deadlines are enforced by two "actors" that persist for the lifetime of the
75
- // session object, one for input and one for output:
76
- //
77
- // +----------------+ +----------------+
78
- // | | | |
79
- // | check_deadline |<---+ | check_deadline |<---+
80
- // | | | async_wait() | | | async_wait()
81
- // +----------------+ | on input +----------------+ | on output
82
- // | | deadline | | deadline
83
- // +---------+ +---------+
84
- //
85
- // If either deadline actor determines that the corresponding deadline has
86
- // expired, the socket is closed and any outstanding operations are cancelled.
87
- //
88
- // The input actor reads messages from the socket, where messages are delimited
89
- // by the newline character:
90
- //
91
- // +------------+
92
- // | |
93
- // | start_read |<---+
94
- // | | |
95
- // +------------+ |
96
- // | |
97
- // async_- | +-------------+
98
- // read_- | | |
99
- // until() +--->| handle_read |
100
- // | |
101
- // +-------------+
102
- //
103
- // The deadline for receiving a complete message is 30 seconds. If a non-empty
104
- // message is received, it is delivered to all subscribers. If a heartbeat (a
105
- // message that consists of a single newline character) is received, a heartbeat
106
- // is enqueued for the client, provided there are no other messages waiting to
107
- // be sent.
108
- //
109
- // The output actor is responsible for sending messages to the client:
110
- //
111
- // +--------------+
112
- // | |<---------------------+
113
- // | await_output | |
114
- // | |<---+ |
115
- // +--------------+ | |
116
- // | | | async_wait() |
117
- // | +--------+ |
118
- // V |
119
- // +-------------+ +--------------+
120
- // | | async_write() | |
121
- // | start_write |-------------->| handle_write |
122
- // | | | |
123
- // +-------------+ +--------------+
124
- //
125
- // The output actor first waits for an output message to be enqueued. It does
126
- // this by using a steady_timer as an asynchronous condition variable. The
127
- // steady_timer will be signalled whenever the output queue is non-empty.
128
- //
129
- // Once a message is available, it is sent to the client. The deadline for
130
- // sending a complete message is 30 seconds. After the message is successfully
131
- // sent, the output actor again waits for the output queue to become non-empty.
132
- //
133
- class tcp_session
134
- : public subscriber,
135
- public boost::enable_shared_from_this<tcp_session>
136
- {
137
- public:
138
- tcp_session(asio::io_context& io_context, channel& ch)
139
- : channel_(ch),
140
- socket_(io_context),
141
- input_deadline_(io_context),
142
- non_empty_output_queue_(io_context),
143
- output_deadline_(io_context)
144
- {
145
- input_deadline_.expires_at(steady_timer::time_point::max());
146
- output_deadline_.expires_at(steady_timer::time_point::max());
147
-
148
- // The non_empty_output_queue_ steady_timer is set to the maximum time
149
- // point whenever the output queue is empty. This ensures that the output
150
- // actor stays asleep until a message is put into the queue.
151
- non_empty_output_queue_.expires_at(steady_timer::time_point::max());
152
- }
153
-
154
- tcp::socket& socket()
155
- {
156
- return socket_;
157
- }
158
-
159
- // Called by the server object to initiate the four actors.
160
- void start()
161
- {
162
- channel_.join(shared_from_this());
163
-
164
- start_read();
165
-
166
- input_deadline_.async_wait(
167
- boost::bind(&tcp_session::check_deadline,
168
- shared_from_this(), &input_deadline_));
169
-
170
- await_output();
171
-
172
- output_deadline_.async_wait(
173
- boost::bind(&tcp_session::check_deadline,
174
- shared_from_this(), &output_deadline_));
175
- }
176
-
177
- private:
178
- void stop()
179
- {
180
- channel_.leave(shared_from_this());
181
-
182
- asio::error_code ignored_ec;
183
- socket_.close(ignored_ec);
184
- input_deadline_.cancel();
185
- non_empty_output_queue_.cancel();
186
- output_deadline_.cancel();
187
- }
188
-
189
- bool stopped() const
190
- {
191
- return !socket_.is_open();
192
- }
193
-
194
- void deliver(const std::string& msg)
195
- {
196
- output_queue_.push_back(msg + "\n");
197
-
198
- // Signal that the output queue contains messages. Modifying the expiry
199
- // will wake the output actor, if it is waiting on the timer.
200
- non_empty_output_queue_.expires_at(steady_timer::time_point::min());
201
- }
202
-
203
- void start_read()
204
- {
205
- // Set a deadline for the read operation.
206
- input_deadline_.expires_after(asio::chrono::seconds(30));
207
-
208
- // Start an asynchronous operation to read a newline-delimited message.
209
- asio::async_read_until(socket_,
210
- asio::dynamic_buffer(input_buffer_), '\n',
211
- boost::bind(&tcp_session::handle_read, shared_from_this(),
212
- boost::placeholders::_1, boost::placeholders::_2));
213
- }
214
-
215
- void handle_read(const asio::error_code& ec, std::size_t n)
216
- {
217
- if (stopped())
218
- return;
219
-
220
- if (!ec)
221
- {
222
- // Extract the newline-delimited message from the buffer.
223
- std::string msg(input_buffer_.substr(0, n - 1));
224
- input_buffer_.erase(0, n);
225
-
226
- if (!msg.empty())
227
- {
228
- channel_.deliver(msg);
229
- }
230
- else
231
- {
232
- // We received a heartbeat message from the client. If there's nothing
233
- // else being sent or ready to be sent, send a heartbeat right back.
234
- if (output_queue_.empty())
235
- {
236
- output_queue_.push_back("\n");
237
-
238
- // Signal that the output queue contains messages. Modifying the
239
- // expiry will wake the output actor, if it is waiting on the timer.
240
- non_empty_output_queue_.expires_at(steady_timer::time_point::min());
241
- }
242
- }
243
-
244
- start_read();
245
- }
246
- else
247
- {
248
- stop();
249
- }
250
- }
251
-
252
- void await_output()
253
- {
254
- if (stopped())
255
- return;
256
-
257
- if (output_queue_.empty())
258
- {
259
- // There are no messages that are ready to be sent. The actor goes to
260
- // sleep by waiting on the non_empty_output_queue_ timer. When a new
261
- // message is added, the timer will be modified and the actor will wake.
262
- non_empty_output_queue_.expires_at(steady_timer::time_point::max());
263
- non_empty_output_queue_.async_wait(
264
- boost::bind(&tcp_session::await_output, shared_from_this()));
265
- }
266
- else
267
- {
268
- start_write();
269
- }
270
- }
271
-
272
- void start_write()
273
- {
274
- // Set a deadline for the write operation.
275
- output_deadline_.expires_after(asio::chrono::seconds(30));
276
-
277
- // Start an asynchronous operation to send a message.
278
- asio::async_write(socket_,
279
- asio::buffer(output_queue_.front()),
280
- boost::bind(&tcp_session::handle_write,
281
- shared_from_this(), boost::placeholders::_1));
282
- }
283
-
284
- void handle_write(const asio::error_code& ec)
285
- {
286
- if (stopped())
287
- return;
288
-
289
- if (!ec)
290
- {
291
- output_queue_.pop_front();
292
-
293
- await_output();
294
- }
295
- else
296
- {
297
- stop();
298
- }
299
- }
300
-
301
- void check_deadline(steady_timer* deadline)
302
- {
303
- if (stopped())
304
- return;
305
-
306
- // Check whether the deadline has passed. We compare the deadline against
307
- // the current time since a new asynchronous operation may have moved the
308
- // deadline before this actor had a chance to run.
309
- if (deadline->expiry() <= steady_timer::clock_type::now())
310
- {
311
- // The deadline has passed. Stop the session. The other actors will
312
- // terminate as soon as possible.
313
- stop();
314
- }
315
- else
316
- {
317
- // Put the actor back to sleep.
318
- deadline->async_wait(
319
- boost::bind(&tcp_session::check_deadline,
320
- shared_from_this(), deadline));
321
- }
322
- }
323
-
324
- channel& channel_;
325
- tcp::socket socket_;
326
- std::string input_buffer_;
327
- steady_timer input_deadline_;
328
- std::deque<std::string> output_queue_;
329
- steady_timer non_empty_output_queue_;
330
- steady_timer output_deadline_;
331
- };
332
-
333
- typedef boost::shared_ptr<tcp_session> tcp_session_ptr;
334
-
335
- //----------------------------------------------------------------------
336
-
337
- class udp_broadcaster
338
- : public subscriber
339
- {
340
- public:
341
- udp_broadcaster(asio::io_context& io_context,
342
- const udp::endpoint& broadcast_endpoint)
343
- : socket_(io_context)
344
- {
345
- socket_.connect(broadcast_endpoint);
346
- socket_.set_option(udp::socket::broadcast(true));
347
- }
348
-
349
- private:
350
- void deliver(const std::string& msg)
351
- {
352
- asio::error_code ignored_ec;
353
- socket_.send(asio::buffer(msg), 0, ignored_ec);
354
- }
355
-
356
- udp::socket socket_;
357
- };
358
-
359
- //----------------------------------------------------------------------
360
-
361
- class server
362
- {
363
- public:
364
- server(asio::io_context& io_context,
365
- const tcp::endpoint& listen_endpoint,
366
- const udp::endpoint& broadcast_endpoint)
367
- : io_context_(io_context),
368
- acceptor_(io_context, listen_endpoint)
369
- {
370
- subscriber_ptr bc(new udp_broadcaster(io_context_, broadcast_endpoint));
371
- channel_.join(bc);
372
-
373
- start_accept();
374
- }
375
-
376
- void start_accept()
377
- {
378
- tcp_session_ptr new_session(new tcp_session(io_context_, channel_));
379
-
380
- acceptor_.async_accept(new_session->socket(),
381
- boost::bind(&server::handle_accept,
382
- this, new_session, boost::placeholders::_1));
383
- }
384
-
385
- void handle_accept(tcp_session_ptr session,
386
- const asio::error_code& ec)
387
- {
388
- if (!ec)
389
- {
390
- session->start();
391
- }
392
-
393
- start_accept();
394
- }
395
-
396
- private:
397
- asio::io_context& io_context_;
398
- tcp::acceptor acceptor_;
399
- channel channel_;
400
- };
401
-
402
- //----------------------------------------------------------------------
403
-
404
- int main(int argc, char* argv[])
405
- {
406
- try
407
- {
408
- using namespace std; // For atoi.
409
-
410
- if (argc != 4)
411
- {
412
- std::cerr << "Usage: server <listen_port> <bcast_address> <bcast_port>\n";
413
- return 1;
414
- }
415
-
416
- asio::io_context io_context;
417
-
418
- tcp::endpoint listen_endpoint(tcp::v4(), atoi(argv[1]));
419
-
420
- udp::endpoint broadcast_endpoint(
421
- asio::ip::make_address(argv[2]), atoi(argv[3]));
422
-
423
- server s(io_context, listen_endpoint, broadcast_endpoint);
424
-
425
- io_context.run();
426
- }
427
- catch (std::exception& e)
428
- {
429
- std::cerr << "Exception: " << e.what() << "\n";
430
- }
431
-
432
- return 0;
433
- }
@@ -1,10 +0,0 @@
1
- .deps
2
- .dirstamp
3
- *.o
4
- *.obj
5
- *.exe
6
- *timer
7
- *.ilk
8
- *.manifest
9
- *.pdb
10
- *.tds
@@ -1,106 +0,0 @@
1
- //
2
- // time_t_timer.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.hpp>
12
- #include <ctime>
13
- #include <iostream>
14
-
15
- // A custom implementation of the Clock concept from the standard C++ library.
16
- struct time_t_clock
17
- {
18
- // The duration type.
19
- typedef asio::chrono::steady_clock::duration duration;
20
-
21
- // The duration's underlying arithmetic representation.
22
- typedef duration::rep rep;
23
-
24
- // The ratio representing the duration's tick period.
25
- typedef duration::period period;
26
-
27
- // An absolute time point represented using the clock.
28
- typedef asio::chrono::time_point<time_t_clock> time_point;
29
-
30
- // The clock is not monotonically increasing.
31
- static const bool is_steady = false;
32
-
33
- // Get the current time.
34
- static time_point now()
35
- {
36
- return time_point() + asio::chrono::seconds(std::time(0));
37
- }
38
- };
39
-
40
- // The asio::basic_waitable_timer template accepts an optional WaitTraits
41
- // template parameter. The underlying time_t clock has one-second granularity,
42
- // so these traits may be customised to reduce the latency between the clock
43
- // ticking over and a wait operation's completion. When the timeout is near
44
- // (less than one second away) we poll the clock more frequently to detect the
45
- // time change closer to when it occurs. The user can select the appropriate
46
- // trade off between accuracy and the increased CPU cost of polling. In extreme
47
- // cases, a zero duration may be returned to make the timers as accurate as
48
- // possible, albeit with 100% CPU usage.
49
- struct time_t_wait_traits
50
- {
51
- // Determine how long until the clock should be next polled to determine
52
- // whether the duration has elapsed.
53
- static time_t_clock::duration to_wait_duration(
54
- const time_t_clock::duration& d)
55
- {
56
- if (d > asio::chrono::seconds(1))
57
- return d - asio::chrono::seconds(1);
58
- else if (d > asio::chrono::seconds(0))
59
- return asio::chrono::milliseconds(10);
60
- else
61
- return asio::chrono::seconds(0);
62
- }
63
-
64
- // Determine how long until the clock should be next polled to determine
65
- // whether the absoluate time has been reached.
66
- static time_t_clock::duration to_wait_duration(
67
- const time_t_clock::time_point& t)
68
- {
69
- return to_wait_duration(t - time_t_clock::now());
70
- }
71
- };
72
-
73
- typedef asio::basic_waitable_timer<
74
- time_t_clock, time_t_wait_traits> time_t_timer;
75
-
76
- void handle_timeout(const asio::error_code&)
77
- {
78
- std::cout << "handle_timeout\n";
79
- }
80
-
81
- int main()
82
- {
83
- try
84
- {
85
- asio::io_context io_context;
86
-
87
- time_t_timer timer(io_context);
88
-
89
- timer.expires_after(asio::chrono::seconds(5));
90
- std::cout << "Starting synchronous wait\n";
91
- timer.wait();
92
- std::cout << "Finished synchronous wait\n";
93
-
94
- timer.expires_after(asio::chrono::seconds(5));
95
- std::cout << "Starting asynchronous wait\n";
96
- timer.async_wait(&handle_timeout);
97
- io_context.run();
98
- std::cout << "Finished asynchronous wait\n";
99
- }
100
- catch (std::exception& e)
101
- {
102
- std::cout << "Exception: " << e.what() << "\n";
103
- }
104
-
105
- return 0;
106
- }