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
@@ -0,0 +1,41 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2020 Couchbase, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ #pragma once
19
+
20
+ #include <chrono>
21
+
22
+ namespace couchbase::timeout_defaults
23
+ {
24
+ constexpr std::chrono::milliseconds bootstrap_timeout{ 10'000 };
25
+
26
+ constexpr std::chrono::milliseconds connect_timeout{ 10'000 };
27
+ constexpr std::chrono::milliseconds key_value_timeout{ 2'500 };
28
+ constexpr std::chrono::milliseconds key_value_durable_timeout{ 10'000 };
29
+ constexpr std::chrono::milliseconds view_timeout{ 75'000 };
30
+ constexpr std::chrono::milliseconds query_timeout{ 75'000 };
31
+ constexpr std::chrono::milliseconds analytics_timeout{ 75'000 };
32
+ constexpr std::chrono::milliseconds search_timeout{ 75'000 };
33
+ constexpr std::chrono::milliseconds management_timeout{ 75'000 };
34
+
35
+ constexpr std::chrono::milliseconds dns_srv_timeout{ 500 };
36
+ constexpr std::chrono::milliseconds tcp_keep_alive_interval{ 60'000 };
37
+ constexpr std::chrono::milliseconds config_poll_interval{ 2'500 };
38
+ constexpr std::chrono::milliseconds config_poll_floor{ 50'000 };
39
+ constexpr std::chrono::milliseconds config_idle_redial_timeout{ 5 * 60'000 };
40
+ constexpr std::chrono::milliseconds idle_http_connection_timeout{ 4'500 };
41
+ } // namespace couchbase::timeout_defaults
@@ -22,7 +22,6 @@ namespace couchbase::utils
22
22
  static inline std::uint64_t
23
23
  byte_swap_64(std::uint64_t val)
24
24
  {
25
- ;
26
25
  std::uint64_t ret = 0U;
27
26
  for (std::size_t i = 0; i < sizeof(std::uint64_t); ++i) {
28
27
  ret <<= 8U;
@@ -31,4 +30,4 @@ byte_swap_64(std::uint64_t val)
31
30
  }
32
31
  return ret;
33
32
  }
34
- } // namespace couchbase::utils
33
+ } // namespace couchbase::utils
@@ -0,0 +1,370 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2020 Couchbase, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ #pragma once
19
+
20
+ #include <string>
21
+
22
+ #include <tao/json/external/pegtl.hpp>
23
+ #include <tao/json/external/pegtl/contrib/uri.hpp>
24
+
25
+ #include <cluster_options.hxx>
26
+
27
+ namespace couchbase::utils
28
+ {
29
+
30
+ struct connection_string {
31
+ enum class bootstrap_mode {
32
+ unspecified,
33
+ gcccp,
34
+ http,
35
+ };
36
+
37
+ enum class address_type {
38
+ ipv4,
39
+ ipv6,
40
+ dns,
41
+ };
42
+
43
+ struct node {
44
+ std::string address;
45
+ std::uint16_t port;
46
+ address_type type;
47
+ bootstrap_mode mode{ bootstrap_mode::unspecified };
48
+ };
49
+
50
+ std::string scheme{};
51
+ bool tls{ false };
52
+ std::map<std::string, std::string> params{};
53
+ cluster_options options{};
54
+
55
+ std::vector<node> bootstrap_nodes{};
56
+
57
+ std::optional<std::string> default_bucket_name{};
58
+ bootstrap_mode default_mode{ bootstrap_mode::unspecified };
59
+ std::uint16_t default_port{ 0 };
60
+
61
+ std::optional<std::string> error{};
62
+ };
63
+
64
+ namespace priv
65
+ {
66
+ using namespace tao::json::pegtl;
67
+
68
+ struct bucket_name : seq<uri::segment_nz> {
69
+ };
70
+ using param_key = star<sor<abnf::ALPHA, abnf::DIGIT, one<'_'>>>;
71
+ using param_value = star<sor<minus<uri::pchar, one<'=', '&', '?'>>, one<'/'>>>;
72
+ struct param : seq<param_key, one<'='>, param_value> {
73
+ };
74
+
75
+ using sub_delims = minus<uri::sub_delims, one<',', '='>>; // host and mode separators
76
+ struct reg_name : star<sor<uri::unreserved, uri::pct_encoded, sub_delims>> {
77
+ };
78
+ struct host : sor<uri::IP_literal, uri::IPv4address, reg_name> {
79
+ };
80
+
81
+ struct mode : sor<istring<'c', 'c', 'c', 'p'>, istring<'g', 'c', 'c', 'c', 'p'>, istring<'h', 't', 't', 'p'>, istring<'m', 'c', 'd'>> {
82
+ };
83
+ using node = seq<host, opt<uri::colon, uri::port>, opt<one<'='>, mode>>;
84
+
85
+ using opt_bucket_name = opt_must<one<'/'>, bucket_name>;
86
+ using opt_params = opt_must<one<'?'>, list_must<param, one<'&'>>>;
87
+ using opt_nodes = seq<list_must<node, one<',', ';'>>, opt_bucket_name>;
88
+
89
+ using grammar = must<seq<uri::scheme, one<':'>, uri::dslash, opt_nodes, opt_params, eof>>;
90
+
91
+ template<typename Rule>
92
+ struct action {
93
+ };
94
+
95
+ template<>
96
+ struct action<uri::scheme> {
97
+ template<typename ActionInput>
98
+ static void apply(const ActionInput& in, connection_string& cs, connection_string::node& /* cur_node */)
99
+ {
100
+ cs.scheme = in.string();
101
+ if (cs.scheme == "couchbase") {
102
+ cs.default_port = 11210;
103
+ cs.default_mode = connection_string::bootstrap_mode::gcccp;
104
+ cs.tls = false;
105
+ } else if (cs.scheme == "couchbases") {
106
+ cs.default_port = 11207;
107
+ cs.default_mode = connection_string::bootstrap_mode::gcccp;
108
+ cs.tls = true;
109
+ } else if (cs.scheme == "http") {
110
+ cs.default_port = 8091;
111
+ cs.default_mode = connection_string::bootstrap_mode::http;
112
+ cs.tls = false;
113
+ } else if (cs.scheme == "https") {
114
+ cs.default_port = 18091;
115
+ cs.default_mode = connection_string::bootstrap_mode::http;
116
+ cs.tls = true;
117
+ }
118
+ }
119
+ };
120
+
121
+ template<>
122
+ struct action<param> {
123
+ template<typename ActionInput>
124
+ static void apply(const ActionInput& in, connection_string& cs, connection_string::node& /* cur_node */)
125
+ {
126
+ const auto& pair = in.string();
127
+ auto eq = pair.find('=');
128
+ std::string key = pair.substr(0, eq);
129
+ cs.params[key] = (eq == std::string::npos) ? "" : pair.substr(eq + 1);
130
+ }
131
+ };
132
+
133
+ template<>
134
+ struct action<reg_name> {
135
+ template<typename ActionInput>
136
+ static void apply(const ActionInput& in, connection_string& /* cs */, connection_string::node& cur_node)
137
+ {
138
+ cur_node.type = connection_string::address_type::dns;
139
+ cur_node.address = in.string_view();
140
+ }
141
+ };
142
+
143
+ template<>
144
+ struct action<uri::IPv4address> {
145
+ template<typename ActionInput>
146
+ static void apply(const ActionInput& in, connection_string& /* cs */, connection_string::node& cur_node)
147
+ {
148
+ cur_node.type = connection_string::address_type::ipv4;
149
+ cur_node.address = in.string_view();
150
+ }
151
+ };
152
+
153
+ template<>
154
+ struct action<uri::IPv6address> {
155
+ template<typename ActionInput>
156
+ static void apply(const ActionInput& in, connection_string& /* cs */, connection_string::node& cur_node)
157
+ {
158
+ cur_node.type = connection_string::address_type::ipv6;
159
+ cur_node.address = in.string_view();
160
+ }
161
+ };
162
+
163
+ template<>
164
+ struct action<node> {
165
+ template<typename ActionInput>
166
+ static void apply(const ActionInput& /* in */, connection_string& cs, connection_string::node& cur_node)
167
+ {
168
+ cs.bootstrap_nodes.push_back(cur_node);
169
+ cur_node = {};
170
+ }
171
+ };
172
+
173
+ template<>
174
+ struct action<uri::port> {
175
+ template<typename ActionInput>
176
+ static void apply(const ActionInput& in, connection_string& /* cs */, connection_string::node& cur_node)
177
+ {
178
+ cur_node.port = static_cast<std::uint16_t>(std::stoul(in.string()));
179
+ }
180
+ };
181
+
182
+ template<>
183
+ struct action<mode> {
184
+ template<typename ActionInput>
185
+ static void apply(const ActionInput& in, connection_string& /* cs */, connection_string::node& cur_node)
186
+ {
187
+ std::string mode = in.string();
188
+ std::transform(mode.begin(), mode.end(), mode.begin(), [](unsigned char c) { return std::tolower(c); });
189
+ if (mode == "mcd" || mode == "gcccp" || mode == "cccp") {
190
+ cur_node.mode = connection_string::bootstrap_mode::gcccp;
191
+ } else if (mode == "http") {
192
+ cur_node.mode = connection_string::bootstrap_mode::http;
193
+ }
194
+ }
195
+ };
196
+
197
+ template<>
198
+ struct action<bucket_name> {
199
+ template<typename ActionInput>
200
+ static void apply(const ActionInput& in, connection_string& cs, connection_string::node& /* cur_node */)
201
+ {
202
+ cs.default_bucket_name = in.string();
203
+ }
204
+ };
205
+ } // namespace priv
206
+
207
+ static void
208
+ extract_options(connection_string& connstr)
209
+ {
210
+ connstr.options.enable_tls = connstr.tls;
211
+ if (connstr.bootstrap_nodes.size() != 1 || connstr.bootstrap_nodes[0].type != connection_string::address_type::dns) {
212
+ connstr.options.enable_dns_srv = false;
213
+ }
214
+ for (const auto& param : connstr.params) {
215
+ try {
216
+ if (param.first == "kv_connect_timeout") {
217
+ /**
218
+ * Number of seconds the client should wait while attempting to connect to a node’s KV service via a socket. Initial
219
+ * connection, reconnecting, node added, etc.
220
+ */
221
+ connstr.options.connect_timeout = std::chrono::milliseconds(std::stoull(param.second));
222
+ } else if (param.first == "kv_timeout") {
223
+ /**
224
+ * Number of milliseconds to wait before timing out a KV operation by the client.
225
+ */
226
+ connstr.options.key_value_timeout = std::chrono::milliseconds(std::stoull(param.second));
227
+ } else if (param.first == "kv_durable_timeout") {
228
+ /**
229
+ * Number of milliseconds to wait before timing out a KV operation that is either using synchronous durability or
230
+ * observe-based durability.
231
+ */
232
+ connstr.options.key_value_durable_timeout = std::chrono::milliseconds(std::stoull(param.second));
233
+ } else if (param.first == "view_timeout") {
234
+ /**
235
+ * Number of seconds to wait before timing out a View request by the client..
236
+ */
237
+ connstr.options.view_timeout = std::chrono::milliseconds(std::stoull(param.second));
238
+ } else if (param.first == "query_timeout") {
239
+ /**
240
+ * Number of seconds to wait before timing out a Query or N1QL request by the client.
241
+ */
242
+ connstr.options.query_timeout = std::chrono::milliseconds(std::stoull(param.second));
243
+ } else if (param.first == "analytics_timeout") {
244
+ /**
245
+ * Number of seconds to wait before timing out an Analytics request by the client.
246
+ */
247
+ connstr.options.analytics_timeout = std::chrono::milliseconds(std::stoull(param.second));
248
+ } else if (param.first == "search_timeout") {
249
+ /**
250
+ * Number of seconds to wait before timing out a Search request by the client.
251
+ */
252
+ connstr.options.search_timeout = std::chrono::milliseconds(std::stoull(param.second));
253
+ } else if (param.first == "management_timeout") {
254
+ /**
255
+ * Number of seconds to wait before timing out a Management API request by the client.
256
+ */
257
+ connstr.options.management_timeout = std::chrono::milliseconds(std::stoull(param.second));
258
+ } else if (param.first == "trust_certificate") {
259
+ connstr.options.trust_certificate = param.second;
260
+ } else if (param.first == "enable_mutation_tokens") {
261
+ /**
262
+ * Request mutation tokens at connection negotiation time. Turning this off will save 16 bytes per operation response.
263
+ */
264
+ if (param.second == "true" || param.second == "yes" || param.second == "on") {
265
+ connstr.options.enable_mutation_tokens = true;
266
+ } else if (param.second == "false" || param.second == "no" || param.second == "off") {
267
+ connstr.options.enable_mutation_tokens = false;
268
+ }
269
+ } else if (param.first == "enable_tcp_keep_alive") {
270
+ /**
271
+ * Gets or sets a value indicating whether enable TCP keep-alive.
272
+ */
273
+ if (param.second == "true" || param.second == "yes" || param.second == "on") {
274
+ connstr.options.enable_tcp_keep_alive = true;
275
+ } else if (param.second == "false" || param.second == "no" || param.second == "off") {
276
+ connstr.options.enable_tcp_keep_alive = false;
277
+ }
278
+ } else if (param.first == "tcp_keep_alive_interval") {
279
+ /**
280
+ * Specifies the timeout, in milliseconds, with no activity until the first keep-alive packet is sent. This applies to all
281
+ * services, but is advisory: if the underlying platform does not support this on all connections, it will be applied only
282
+ * on those it can be.
283
+ */
284
+ connstr.options.tcp_keep_alive_interval = std::chrono::milliseconds(std::stoull(param.second));
285
+ } else if (param.first == "force_ipv4") {
286
+ /**
287
+ * Sets the SDK configuration to do IPv4 Name Resolution
288
+ */
289
+ if (param.second == "true" || param.second == "yes" || param.second == "on") {
290
+ connstr.options.force_ipv4 = true;
291
+ } else if (param.second == "false" || param.second == "no" || param.second == "off") {
292
+ connstr.options.force_ipv4 = false;
293
+ }
294
+ } else if (param.first == "config_poll_interval") {
295
+ connstr.options.config_poll_interval = std::chrono::milliseconds(std::stoull(param.second));
296
+ } else if (param.first == "config_poll_floor") {
297
+ connstr.options.config_poll_floor = std::chrono::milliseconds(std::stoull(param.second));
298
+ } else if (param.first == "max_http_connections") {
299
+ /**
300
+ * The maximum number of HTTP connections allowed on a per-host and per-port basis. 0 indicates an unlimited number of
301
+ * connections are permitted.
302
+ */
303
+ connstr.options.max_http_connections = std::stoul(param.second);
304
+ } else if (param.first == "idle_http_connection_timeout") {
305
+ /**
306
+ * The period of time an HTTP connection can be idle before it is forcefully disconnected.
307
+ */
308
+ connstr.options.idle_http_connection_timeout = std::chrono::milliseconds(std::stoull(param.second));
309
+ } else if (param.first == "enable_dns_srv") {
310
+ if (connstr.bootstrap_nodes.size() == 1) {
311
+ if (param.second == "true" || param.second == "yes" || param.second == "on") {
312
+ connstr.options.enable_dns_srv = true;
313
+ } else if (param.second == "false" || param.second == "no" || param.second == "off") {
314
+ connstr.options.enable_dns_srv = false;
315
+ }
316
+ } else {
317
+ spdlog::warn(
318
+ R"(parameter "{}" require single entry in bootstrap nodes list of the connection string, ignoring (value "{}"))",
319
+ param.first,
320
+ param.second);
321
+ }
322
+ } else if (param.first == "network") {
323
+ connstr.options.network = param.second; /* current known values are "auto", "default" and "external" */
324
+ } else {
325
+ spdlog::warn(R"(unknown parameter "{}" in connection string (value "{}"))", param.first, param.second);
326
+ }
327
+ } catch (std::invalid_argument& ex1) {
328
+ spdlog::warn(R"(unable to parse "{}" parameter in connection string (value "{}" cannot be converted): {})",
329
+ param.first,
330
+ param.second,
331
+ ex1.what());
332
+ } catch (std::out_of_range& ex2) {
333
+ spdlog::warn(R"(unable to parse "{}" parameter in connection string (value "{}" is out of range): {})",
334
+ param.first,
335
+ param.second,
336
+ ex2.what());
337
+ }
338
+ }
339
+ }
340
+
341
+ static connection_string
342
+ parse_connection_string(const std::string& input)
343
+ {
344
+ connection_string res;
345
+
346
+ if (input.empty()) {
347
+ res.error = "failed to parse connection string: empty input";
348
+ return res;
349
+ }
350
+
351
+ auto in = tao::json::pegtl::memory_input(input, __FUNCTION__);
352
+ try {
353
+ connection_string::node node{};
354
+ tao::json::pegtl::parse<priv::grammar, priv::action>(in, res, node);
355
+ } catch (tao::json::pegtl::parse_error& e) {
356
+ for (const auto& position : e.positions) {
357
+ if (position.source == __FUNCTION__) {
358
+ res.error = fmt::format(
359
+ "failed to parse connection string (column: {}, trailer: \"{}\")", position.byte_in_line, input.substr(position.byte));
360
+ break;
361
+ }
362
+ }
363
+ if (!res.error) {
364
+ res.error = e.what();
365
+ }
366
+ }
367
+ extract_options(res);
368
+ return res;
369
+ }
370
+ } // namespace couchbase::utils
@@ -0,0 +1,225 @@
1
+ #pragma once
2
+
3
+ namespace couchbase::utils::string_codec
4
+ {
5
+ template<typename Ti, typename To>
6
+ bool
7
+ url_decode(Ti first, Ti last, To out, size_t& nout)
8
+ {
9
+ for (; first != last && *first != '\0'; ++first) {
10
+ if (*first == '%') {
11
+ char nextbuf[3] = { 0 };
12
+ size_t jj = 0;
13
+ first++;
14
+ nextbuf[0] = *first;
15
+ for (; first != last && jj < 2; ++jj) {
16
+ nextbuf[jj] = *first;
17
+ if (jj != 1) {
18
+ first++;
19
+ }
20
+ }
21
+ if (jj != 2) {
22
+ return false;
23
+ }
24
+
25
+ unsigned octet = 0;
26
+ if (sscanf(nextbuf, "%2X", &octet) != 1) {
27
+ return false;
28
+ }
29
+
30
+ *out = static_cast<char>(octet);
31
+ } else {
32
+ *out = *first;
33
+ }
34
+
35
+ out++;
36
+ nout++;
37
+ }
38
+ return true;
39
+ }
40
+
41
+ inline bool
42
+ url_decode(const char* input, char* output)
43
+ {
44
+ const char* endp = input + strlen(input);
45
+ size_t nout = 0;
46
+ if (url_decode(input, endp, output, nout)) {
47
+ output[nout] = '\0';
48
+ return true;
49
+ }
50
+ return false;
51
+ }
52
+
53
+ inline bool
54
+ url_decode(char* in_out)
55
+ {
56
+ return url_decode(in_out, in_out);
57
+ }
58
+
59
+ inline bool
60
+ url_decode(std::string& s)
61
+ {
62
+ size_t n = 0;
63
+ if (url_decode(s.begin(), s.end(), s.begin(), n)) {
64
+ s.resize(n);
65
+ return true;
66
+ }
67
+ return false;
68
+ }
69
+
70
+ namespace priv
71
+ {
72
+ inline bool
73
+ is_legal_uri_char(char c)
74
+ {
75
+ auto uc = static_cast<unsigned char>(c);
76
+ if ((isalpha(uc) != 0) || (isdigit(uc) != 0)) {
77
+ return true;
78
+ }
79
+ switch (uc) {
80
+ case '-':
81
+ case '_':
82
+ case '.':
83
+ case '~':
84
+ case '!':
85
+ case '*':
86
+ case '\'':
87
+ case '(':
88
+ case ')':
89
+ case ';':
90
+ case ':':
91
+ case '@':
92
+ case '&':
93
+ case '=':
94
+ case '+':
95
+ case '$':
96
+ case ',':
97
+ case '/':
98
+ case '?':
99
+ case '#':
100
+ case '[':
101
+ case ']':
102
+ return true;
103
+ default:
104
+ break;
105
+ }
106
+ return false;
107
+ }
108
+
109
+ template<typename T>
110
+ inline bool
111
+ is_already_escape(T first, T last)
112
+ {
113
+ first++; // ignore '%'
114
+ size_t jj;
115
+ for (jj = 0; first != last && jj < 2; ++jj, ++first) {
116
+ if (!isxdigit(*first)) {
117
+ return false;
118
+ }
119
+ }
120
+ return jj == 2;
121
+ }
122
+ } // namespace priv
123
+
124
+ template<typename Ti, typename To>
125
+ bool
126
+ url_encode(Ti first, Ti last, To& o, bool check_encoded = true)
127
+ {
128
+ // If re-encoding detection is enabled, this flag indicates not to
129
+ // re-encode
130
+ bool skip_encoding = false;
131
+
132
+ for (; first != last; ++first) {
133
+ if (!skip_encoding && check_encoded) {
134
+ if (*first == '%') {
135
+ skip_encoding = priv::is_already_escape(first, last);
136
+ } else if (*first == '+') {
137
+ skip_encoding = true;
138
+ }
139
+ }
140
+ if (skip_encoding || priv::is_legal_uri_char(*first)) {
141
+ if (skip_encoding && *first != '%' && !priv::is_legal_uri_char(*first)) {
142
+ return false;
143
+ }
144
+
145
+ o.insert(o.end(), first, first + 1);
146
+ } else {
147
+ unsigned int c = static_cast<unsigned char>(*first);
148
+ size_t numbytes = 0;
149
+
150
+ if ((c & 0x80) == 0) { /* ASCII character */
151
+ numbytes = 1;
152
+ } else if ((c & 0xE0) == 0xC0) { /* 110x xxxx */
153
+ numbytes = 2;
154
+ } else if ((c & 0xF0) == 0xE0) { /* 1110 xxxx */
155
+ numbytes = 3;
156
+ } else if ((c & 0xF8) == 0xF0) { /* 1111 0xxx */
157
+ numbytes = 4;
158
+ } else {
159
+ return false;
160
+ }
161
+
162
+ do {
163
+ char buf[4];
164
+ sprintf(buf, "%%%02X", static_cast<unsigned char>(*first));
165
+ o.insert(o.end(), &buf[0], &buf[0] + 3);
166
+ } while (--numbytes && ++first != last);
167
+ }
168
+ }
169
+ return true;
170
+ }
171
+
172
+ template<typename Tin, typename Tout>
173
+ bool
174
+ url_encode(const Tin& in, Tout& out)
175
+ {
176
+ return url_encode(in.begin(), in.end(), out);
177
+ }
178
+
179
+ /* See: https://url.spec.whatwg.org/#urlencoded-serializing: */
180
+ /*
181
+ * 0x2A
182
+ * 0x2D
183
+ * 0x2E
184
+ * 0x30 to 0x39
185
+ * 0x41 to 0x5A
186
+ * 0x5F
187
+ * 0x61 to 0x7A
188
+ * Append a code point whose value is byte to output.
189
+ * Otherwise
190
+ * Append byte, percent encoded, to output.
191
+ */
192
+ template<typename Ti, typename To>
193
+ void
194
+ form_encode(Ti first, Ti last, To& out)
195
+ {
196
+ for (; first != last; ++first) {
197
+ auto c = static_cast<unsigned char>(*first);
198
+ if (isalnum(c)) {
199
+ out.insert(out.end(), first, first + 1);
200
+ continue;
201
+ }
202
+ if (c == ' ') {
203
+ char tmp = '+';
204
+ out.insert(out.end(), &tmp, &tmp + 1);
205
+ } else if ((c == 0x2A || c == 0x2D || c == 0x2E) || (c >= 0x30 && c <= 0x39) || (c >= 0x41 && c <= 0x5A) || (c == 0x5F) ||
206
+ (c >= 0x60 && c <= 0x7A)) {
207
+ out.insert(out.end(), static_cast<char>(c));
208
+ } else {
209
+ char buf[3] = { 0 };
210
+ out.insert(out.end(), '%');
211
+ sprintf(buf, "%02X", c);
212
+ out.insert(out.end(), &buf[0], &buf[0] + 2);
213
+ }
214
+ }
215
+ }
216
+
217
+ std::string
218
+ form_encode(const std::string& src)
219
+ {
220
+ std::string dst;
221
+ form_encode(src.begin(), src.end(), dst);
222
+ return dst;
223
+ }
224
+
225
+ } // namespace couchbase::utils::string_codec