couchbase 3.0.0.alpha.5-x86_64-linux → 3.5.0-x86_64-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1510) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +107 -13
  3. data/ext/extconf.rb +0 -47
  4. data/lib/active_support/cache/couchbase_store.rb +339 -0
  5. data/lib/couchbase/3.0/libcouchbase.so +0 -0
  6. data/lib/couchbase/3.1/libcouchbase.so +0 -0
  7. data/lib/couchbase/3.2/libcouchbase.so +0 -0
  8. data/lib/couchbase/3.3/libcouchbase.so +0 -0
  9. data/lib/couchbase/analytics_options.rb +2 -60
  10. data/lib/couchbase/authenticator.rb +40 -1
  11. data/lib/couchbase/binary_collection.rb +66 -27
  12. data/lib/couchbase/binary_collection_options.rb +1 -75
  13. data/lib/couchbase/bucket.rb +47 -42
  14. data/lib/couchbase/cluster.rb +310 -168
  15. data/lib/couchbase/cluster_registry.rb +49 -0
  16. data/lib/couchbase/collection.rb +482 -108
  17. data/lib/couchbase/collection_options.rb +219 -310
  18. data/lib/couchbase/config_profiles.rb +55 -0
  19. data/lib/couchbase/configuration.rb +56 -0
  20. data/lib/couchbase/datastructures/couchbase_list.rb +160 -0
  21. data/lib/couchbase/datastructures/couchbase_map.rb +194 -0
  22. data/lib/couchbase/datastructures/couchbase_queue.rb +134 -0
  23. data/lib/couchbase/datastructures/couchbase_set.rb +128 -0
  24. data/lib/couchbase/datastructures.rb +24 -0
  25. data/lib/couchbase/diagnostics.rb +181 -0
  26. data/lib/couchbase/errors.rb +218 -66
  27. data/lib/couchbase/json_transcoder.rb +12 -5
  28. data/lib/couchbase/key_value_scan.rb +117 -0
  29. data/lib/couchbase/libcouchbase.rb +6 -0
  30. data/lib/couchbase/logger.rb +85 -0
  31. data/lib/couchbase/management/analytics_index_manager.rb +923 -229
  32. data/lib/couchbase/management/bucket_manager.rb +298 -107
  33. data/lib/couchbase/management/collection_manager.rb +329 -61
  34. data/lib/couchbase/management/collection_query_index_manager.rb +222 -0
  35. data/lib/couchbase/management/query_index_manager.rb +462 -142
  36. data/lib/couchbase/management/scope_search_index_manager.rb +198 -0
  37. data/lib/couchbase/management/search_index_manager.rb +90 -30
  38. data/lib/couchbase/management/user_manager.rb +196 -51
  39. data/lib/couchbase/management/view_index_manager.rb +12 -6
  40. data/lib/couchbase/management.rb +29 -0
  41. data/lib/couchbase/mutation_state.rb +14 -1
  42. data/lib/couchbase/options.rb +2837 -0
  43. data/lib/couchbase/protostellar/binary_collection.rb +55 -0
  44. data/lib/couchbase/protostellar/bucket.rb +51 -0
  45. data/lib/couchbase/protostellar/client.rb +99 -0
  46. data/lib/couchbase/protostellar/cluster.rb +163 -0
  47. data/lib/couchbase/protostellar/collection.rb +152 -0
  48. data/lib/couchbase/protostellar/connect_options.rb +63 -0
  49. data/lib/couchbase/protostellar/error_handling.rb +203 -0
  50. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_pb.rb +61 -0
  51. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_services_pb.rb +35 -0
  52. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_pb.rb +57 -0
  53. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_services_pb.rb +36 -0
  54. data/lib/couchbase/protostellar/generated/admin/query/v1/query_pb.rb +61 -0
  55. data/lib/couchbase/protostellar/generated/admin/query/v1/query_services_pb.rb +37 -0
  56. data/lib/couchbase/protostellar/generated/admin/search/v1/search_pb.rb +72 -0
  57. data/lib/couchbase/protostellar/generated/admin/search/v1/search_services_pb.rb +44 -0
  58. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_pb.rb +52 -0
  59. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_services_pb.rb +30 -0
  60. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_pb.rb +70 -0
  61. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_services_pb.rb +36 -0
  62. data/lib/couchbase/protostellar/generated/kv/v1/kv_pb.rb +97 -0
  63. data/lib/couchbase/protostellar/generated/kv/v1/kv_services_pb.rb +46 -0
  64. data/lib/couchbase/protostellar/generated/query/v1/query_pb.rb +57 -0
  65. data/lib/couchbase/protostellar/generated/query/v1/query_services_pb.rb +30 -0
  66. data/lib/couchbase/protostellar/generated/routing/v1/routing_pb.rb +52 -0
  67. data/lib/couchbase/protostellar/generated/routing/v1/routing_services_pb.rb +30 -0
  68. data/lib/couchbase/protostellar/generated/search/v1/search_pb.rb +99 -0
  69. data/lib/couchbase/protostellar/generated/search/v1/search_services_pb.rb +30 -0
  70. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_pb.rb +57 -0
  71. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_services_pb.rb +36 -0
  72. data/lib/couchbase/protostellar/generated/view/v1/view_pb.rb +51 -0
  73. data/lib/couchbase/protostellar/generated/view/v1/view_services_pb.rb +30 -0
  74. data/lib/couchbase/protostellar/generated.rb +9 -0
  75. data/lib/couchbase/protostellar/management/bucket_manager.rb +67 -0
  76. data/lib/couchbase/protostellar/management/collection_manager.rb +94 -0
  77. data/lib/couchbase/protostellar/management/collection_query_index_manager.rb +124 -0
  78. data/lib/couchbase/protostellar/management/query_index_manager.rb +112 -0
  79. data/{Gemfile → lib/couchbase/protostellar/management.rb} +8 -8
  80. data/lib/couchbase/protostellar/request.rb +78 -0
  81. data/lib/couchbase/protostellar/request_behaviour.rb +42 -0
  82. data/lib/couchbase/protostellar/request_generator/admin/bucket.rb +124 -0
  83. data/lib/couchbase/protostellar/request_generator/admin/collection.rb +94 -0
  84. data/lib/couchbase/protostellar/request_generator/admin/query.rb +130 -0
  85. data/lib/couchbase/protostellar/request_generator/admin.rb +24 -0
  86. data/lib/couchbase/protostellar/request_generator/kv.rb +474 -0
  87. data/lib/couchbase/protostellar/request_generator/query.rb +133 -0
  88. data/lib/couchbase/protostellar/request_generator/search.rb +387 -0
  89. data/{bin/setup → lib/couchbase/protostellar/request_generator.rb} +12 -10
  90. data/lib/couchbase/protostellar/response_converter/admin/bucket.rb +55 -0
  91. data/lib/couchbase/protostellar/response_converter/admin/collection.rb +42 -0
  92. data/lib/couchbase/protostellar/response_converter/admin/query.rb +59 -0
  93. data/lib/couchbase/protostellar/response_converter/admin.rb +24 -0
  94. data/lib/couchbase/protostellar/response_converter/kv.rb +151 -0
  95. data/lib/couchbase/protostellar/response_converter/query.rb +84 -0
  96. data/lib/couchbase/protostellar/response_converter/search.rb +136 -0
  97. data/lib/couchbase/protostellar/response_converter.rb +26 -0
  98. data/lib/couchbase/protostellar/retry/action.rb +38 -0
  99. data/lib/couchbase/protostellar/retry/orchestrator.rb +60 -0
  100. data/lib/couchbase/protostellar/retry/reason.rb +67 -0
  101. data/lib/couchbase/protostellar/retry/strategies/best_effort.rb +49 -0
  102. data/lib/couchbase/protostellar/retry/strategies.rb +26 -0
  103. data/lib/couchbase/protostellar/retry.rb +28 -0
  104. data/lib/couchbase/protostellar/scope.rb +57 -0
  105. data/lib/couchbase/protostellar/timeout_defaults.rb +30 -0
  106. data/lib/couchbase/protostellar/timeouts.rb +83 -0
  107. data/lib/couchbase/{common_options.rb → protostellar.rb} +12 -12
  108. data/lib/couchbase/query_options.rb +7 -106
  109. data/lib/couchbase/railtie.rb +45 -0
  110. data/lib/couchbase/raw_binary_transcoder.rb +37 -0
  111. data/lib/couchbase/raw_json_transcoder.rb +38 -0
  112. data/lib/couchbase/raw_string_transcoder.rb +40 -0
  113. data/lib/couchbase/scope.rb +217 -10
  114. data/lib/couchbase/search_options.rb +1306 -1176
  115. data/lib/couchbase/subdoc.rb +33 -30
  116. data/lib/couchbase/transcoder_flags.rb +62 -0
  117. data/lib/couchbase/utils/generic_logger_adapter.rb +38 -0
  118. data/lib/couchbase/utils/stdlib_logger_adapter.rb +65 -0
  119. data/lib/couchbase/utils/time.rb +69 -0
  120. data/{bin/console → lib/couchbase/utils.rb} +7 -7
  121. data/lib/couchbase/version.rb +8 -3
  122. data/lib/couchbase/view_options.rb +5 -95
  123. data/lib/couchbase.rb +11 -1
  124. data/lib/rails/generators/couchbase/config/config_generator.rb +27 -0
  125. metadata +114 -1445
  126. data/.github/workflows/tests-6.0.3.yml +0 -52
  127. data/.github/workflows/tests-dev-preview.yml +0 -55
  128. data/.github/workflows/tests.yml +0 -50
  129. data/.gitignore +0 -20
  130. data/.gitmodules +0 -21
  131. data/.idea/.gitignore +0 -5
  132. data/.idea/dictionaries/gem_terms.xml +0 -18
  133. data/.idea/inspectionProfiles/Project_Default.xml +0 -8
  134. data/.idea/vcs.xml +0 -13
  135. data/.yardopts +0 -1
  136. data/Rakefile +0 -51
  137. data/bin/check-cluster +0 -31
  138. data/bin/fetch-stats +0 -19
  139. data/bin/init-cluster +0 -82
  140. data/bin/jenkins/build-extension +0 -35
  141. data/bin/jenkins/install-dependencies +0 -47
  142. data/bin/jenkins/test-with-cbdyncluster +0 -58
  143. data/couchbase.gemspec +0 -73
  144. data/examples/analytics.rb +0 -221
  145. data/examples/crud.rb +0 -20
  146. data/examples/managing_analytics_indexes.rb +0 -72
  147. data/examples/managing_buckets.rb +0 -47
  148. data/examples/managing_collections.rb +0 -58
  149. data/examples/managing_query_indexes.rb +0 -63
  150. data/examples/managing_search_indexes.rb +0 -62
  151. data/examples/managing_view_indexes.rb +0 -54
  152. data/examples/query.rb +0 -18
  153. data/examples/query_with_consistency.rb +0 -76
  154. data/examples/search.rb +0 -187
  155. data/examples/search_with_consistency.rb +0 -84
  156. data/examples/subdocument.rb +0 -51
  157. data/examples/view.rb +0 -50
  158. data/ext/.clang-format +0 -15
  159. data/ext/.clang-tidy +0 -22
  160. data/ext/.cmake-format.yaml +0 -8
  161. data/ext/.gitignore +0 -2
  162. data/ext/.idea/.name +0 -1
  163. data/ext/.idea/dictionaries/couchbase_terms.xml +0 -14
  164. data/ext/.idea/ext.iml +0 -2
  165. data/ext/.idea/misc.xml +0 -4
  166. data/ext/.idea/modules.xml +0 -8
  167. data/ext/.idea/vcs.xml +0 -12
  168. data/ext/CMakeLists.txt +0 -163
  169. data/ext/LICENSE.txt +0 -202
  170. data/ext/build_version.hxx.in +0 -26
  171. data/ext/couchbase/bucket.hxx +0 -95
  172. data/ext/couchbase/cbcrypto/cbcrypto.cc +0 -888
  173. data/ext/couchbase/cbcrypto/cbcrypto.h +0 -89
  174. data/ext/couchbase/cbsasl/client.cc +0 -48
  175. data/ext/couchbase/cbsasl/client.h +0 -127
  176. data/ext/couchbase/cbsasl/context.cc +0 -33
  177. data/ext/couchbase/cbsasl/context.h +0 -52
  178. data/ext/couchbase/cbsasl/error.h +0 -72
  179. data/ext/couchbase/cbsasl/mechanism.cc +0 -48
  180. data/ext/couchbase/cbsasl/mechanism.h +0 -55
  181. data/ext/couchbase/cbsasl/plain/plain.cc +0 -36
  182. data/ext/couchbase/cbsasl/plain/plain.h +0 -53
  183. data/ext/couchbase/cbsasl/scram-sha/scram-sha.cc +0 -390
  184. data/ext/couchbase/cbsasl/scram-sha/scram-sha.h +0 -185
  185. data/ext/couchbase/cbsasl/scram-sha/stringutils.cc +0 -81
  186. data/ext/couchbase/cbsasl/scram-sha/stringutils.h +0 -48
  187. data/ext/couchbase/cluster.hxx +0 -176
  188. data/ext/couchbase/collections_manifest.hxx +0 -88
  189. data/ext/couchbase/configuration.hxx +0 -256
  190. data/ext/couchbase/configuration_monitor.hxx +0 -93
  191. data/ext/couchbase/couchbase.cxx +0 -5449
  192. data/ext/couchbase/document_id.hxx +0 -38
  193. data/ext/couchbase/error_map.hxx +0 -61
  194. data/ext/couchbase/errors.hxx +0 -691
  195. data/ext/couchbase/io/dns_client.hxx +0 -215
  196. data/ext/couchbase/io/dns_codec.hxx +0 -207
  197. data/ext/couchbase/io/dns_config.hxx +0 -116
  198. data/ext/couchbase/io/dns_message.hxx +0 -555
  199. data/ext/couchbase/io/http_message.hxx +0 -38
  200. data/ext/couchbase/io/http_parser.hxx +0 -174
  201. data/ext/couchbase/io/http_session.hxx +0 -321
  202. data/ext/couchbase/io/http_session_manager.hxx +0 -127
  203. data/ext/couchbase/io/mcbp_message.hxx +0 -58
  204. data/ext/couchbase/io/mcbp_parser.hxx +0 -101
  205. data/ext/couchbase/io/mcbp_session.hxx +0 -931
  206. data/ext/couchbase/mutation_token.hxx +0 -38
  207. data/ext/couchbase/operations/analytics_dataset_create.hxx +0 -117
  208. data/ext/couchbase/operations/analytics_dataset_drop.hxx +0 -103
  209. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +0 -107
  210. data/ext/couchbase/operations/analytics_dataverse_create.hxx +0 -104
  211. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +0 -104
  212. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +0 -91
  213. data/ext/couchbase/operations/analytics_index_create.hxx +0 -128
  214. data/ext/couchbase/operations/analytics_index_drop.hxx +0 -110
  215. data/ext/couchbase/operations/analytics_index_get_all.hxx +0 -106
  216. data/ext/couchbase/operations/analytics_link_connect.hxx +0 -102
  217. data/ext/couchbase/operations/analytics_link_disconnect.hxx +0 -101
  218. data/ext/couchbase/operations/bucket_create.hxx +0 -139
  219. data/ext/couchbase/operations/bucket_drop.hxx +0 -66
  220. data/ext/couchbase/operations/bucket_flush.hxx +0 -66
  221. data/ext/couchbase/operations/bucket_get.hxx +0 -70
  222. data/ext/couchbase/operations/bucket_get_all.hxx +0 -63
  223. data/ext/couchbase/operations/bucket_settings.hxx +0 -111
  224. data/ext/couchbase/operations/bucket_update.hxx +0 -116
  225. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +0 -61
  226. data/ext/couchbase/operations/collection_create.hxx +0 -91
  227. data/ext/couchbase/operations/collection_drop.hxx +0 -83
  228. data/ext/couchbase/operations/command.hxx +0 -163
  229. data/ext/couchbase/operations/design_document.hxx +0 -59
  230. data/ext/couchbase/operations/document_analytics.hxx +0 -292
  231. data/ext/couchbase/operations/document_decrement.hxx +0 -82
  232. data/ext/couchbase/operations/document_exists.hxx +0 -82
  233. data/ext/couchbase/operations/document_get.hxx +0 -64
  234. data/ext/couchbase/operations/document_get_and_lock.hxx +0 -66
  235. data/ext/couchbase/operations/document_get_and_touch.hxx +0 -66
  236. data/ext/couchbase/operations/document_get_projected.hxx +0 -244
  237. data/ext/couchbase/operations/document_increment.hxx +0 -84
  238. data/ext/couchbase/operations/document_insert.hxx +0 -76
  239. data/ext/couchbase/operations/document_lookup_in.hxx +0 -106
  240. data/ext/couchbase/operations/document_mutate_in.hxx +0 -139
  241. data/ext/couchbase/operations/document_query.hxx +0 -335
  242. data/ext/couchbase/operations/document_remove.hxx +0 -69
  243. data/ext/couchbase/operations/document_replace.hxx +0 -78
  244. data/ext/couchbase/operations/document_search.hxx +0 -356
  245. data/ext/couchbase/operations/document_touch.hxx +0 -62
  246. data/ext/couchbase/operations/document_unlock.hxx +0 -62
  247. data/ext/couchbase/operations/document_upsert.hxx +0 -76
  248. data/ext/couchbase/operations/document_view.hxx +0 -228
  249. data/ext/couchbase/operations/query_index_build_deferred.hxx +0 -86
  250. data/ext/couchbase/operations/query_index_create.hxx +0 -135
  251. data/ext/couchbase/operations/query_index_drop.hxx +0 -109
  252. data/ext/couchbase/operations/query_index_get_all.hxx +0 -107
  253. data/ext/couchbase/operations/scope_create.hxx +0 -82
  254. data/ext/couchbase/operations/scope_drop.hxx +0 -80
  255. data/ext/couchbase/operations/scope_get_all.hxx +0 -74
  256. data/ext/couchbase/operations/search_index.hxx +0 -79
  257. data/ext/couchbase/operations/search_index_analyze_document.hxx +0 -92
  258. data/ext/couchbase/operations/search_index_control_ingest.hxx +0 -80
  259. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +0 -80
  260. data/ext/couchbase/operations/search_index_control_query.hxx +0 -80
  261. data/ext/couchbase/operations/search_index_drop.hxx +0 -77
  262. data/ext/couchbase/operations/search_index_get.hxx +0 -80
  263. data/ext/couchbase/operations/search_index_get_all.hxx +0 -82
  264. data/ext/couchbase/operations/search_index_get_documents_count.hxx +0 -81
  265. data/ext/couchbase/operations/search_index_upsert.hxx +0 -106
  266. data/ext/couchbase/operations/view_index_drop.hxx +0 -67
  267. data/ext/couchbase/operations/view_index_get.hxx +0 -90
  268. data/ext/couchbase/operations/view_index_get_all.hxx +0 -125
  269. data/ext/couchbase/operations/view_index_upsert.hxx +0 -87
  270. data/ext/couchbase/operations.hxx +0 -91
  271. data/ext/couchbase/platform/base64.cc +0 -234
  272. data/ext/couchbase/platform/base64.h +0 -47
  273. data/ext/couchbase/platform/random.cc +0 -119
  274. data/ext/couchbase/platform/random.h +0 -39
  275. data/ext/couchbase/platform/string_hex.cc +0 -99
  276. data/ext/couchbase/platform/string_hex.h +0 -50
  277. data/ext/couchbase/platform/uuid.cc +0 -96
  278. data/ext/couchbase/platform/uuid.h +0 -56
  279. data/ext/couchbase/protocol/client_opcode.hxx +0 -264
  280. data/ext/couchbase/protocol/client_request.hxx +0 -160
  281. data/ext/couchbase/protocol/client_response.hxx +0 -218
  282. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +0 -81
  283. data/ext/couchbase/protocol/cmd_decrement.hxx +0 -187
  284. data/ext/couchbase/protocol/cmd_exists.hxx +0 -171
  285. data/ext/couchbase/protocol/cmd_get.hxx +0 -122
  286. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +0 -142
  287. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +0 -142
  288. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +0 -124
  289. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +0 -117
  290. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +0 -99
  291. data/ext/couchbase/protocol/cmd_get_error_map.hxx +0 -126
  292. data/ext/couchbase/protocol/cmd_hello.hxx +0 -156
  293. data/ext/couchbase/protocol/cmd_increment.hxx +0 -187
  294. data/ext/couchbase/protocol/cmd_info.hxx +0 -36
  295. data/ext/couchbase/protocol/cmd_insert.hxx +0 -172
  296. data/ext/couchbase/protocol/cmd_lookup_in.hxx +0 -219
  297. data/ext/couchbase/protocol/cmd_mutate_in.hxx +0 -365
  298. data/ext/couchbase/protocol/cmd_remove.hxx +0 -134
  299. data/ext/couchbase/protocol/cmd_replace.hxx +0 -172
  300. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +0 -106
  301. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +0 -100
  302. data/ext/couchbase/protocol/cmd_sasl_step.hxx +0 -104
  303. data/ext/couchbase/protocol/cmd_select_bucket.hxx +0 -85
  304. data/ext/couchbase/protocol/cmd_touch.hxx +0 -102
  305. data/ext/couchbase/protocol/cmd_unlock.hxx +0 -95
  306. data/ext/couchbase/protocol/cmd_upsert.hxx +0 -172
  307. data/ext/couchbase/protocol/datatype.hxx +0 -48
  308. data/ext/couchbase/protocol/durability_level.hxx +0 -67
  309. data/ext/couchbase/protocol/frame_info_id.hxx +0 -187
  310. data/ext/couchbase/protocol/hello_feature.hxx +0 -255
  311. data/ext/couchbase/protocol/magic.hxx +0 -83
  312. data/ext/couchbase/protocol/server_opcode.hxx +0 -57
  313. data/ext/couchbase/protocol/server_request.hxx +0 -122
  314. data/ext/couchbase/protocol/status.hxx +0 -333
  315. data/ext/couchbase/protocol/unsigned_leb128.h +0 -195
  316. data/ext/couchbase/service_type.hxx +0 -60
  317. data/ext/couchbase/timeout_defaults.hxx +0 -34
  318. data/ext/couchbase/utils/byteswap.hxx +0 -33
  319. data/ext/couchbase/utils/connection_string.hxx +0 -231
  320. data/ext/couchbase/utils/crc32.hxx +0 -48
  321. data/ext/couchbase/utils/url_codec.hxx +0 -225
  322. data/ext/couchbase/version.hxx +0 -24
  323. data/ext/test/main.cxx +0 -58
  324. data/ext/third_party/asio/.appveyor.yml +0 -107
  325. data/ext/third_party/asio/.cirrus.yml +0 -16
  326. data/ext/third_party/asio/.gitignore +0 -3
  327. data/ext/third_party/asio/.travis.yml +0 -323
  328. data/ext/third_party/asio/asio/.gitignore +0 -23
  329. data/ext/third_party/asio/asio/COPYING +0 -4
  330. data/ext/third_party/asio/asio/INSTALL +0 -5
  331. data/ext/third_party/asio/asio/LICENSE_1_0.txt +0 -23
  332. data/ext/third_party/asio/asio/Makefile.am +0 -19
  333. data/ext/third_party/asio/asio/README +0 -4
  334. data/ext/third_party/asio/asio/asio.manifest +0 -4865
  335. data/ext/third_party/asio/asio/autogen.sh +0 -55
  336. data/ext/third_party/asio/asio/boost_asio.manifest +0 -5193
  337. data/ext/third_party/asio/asio/boostify.pl +0 -603
  338. data/ext/third_party/asio/asio/configure.ac +0 -182
  339. data/ext/third_party/asio/asio/include/.gitignore +0 -2
  340. data/ext/third_party/asio/asio/include/Makefile.am +0 -484
  341. data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +0 -131
  342. data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +0 -149
  343. data/ext/third_party/asio/asio/include/asio/async_result.hpp +0 -589
  344. data/ext/third_party/asio/asio/include/asio/awaitable.hpp +0 -123
  345. data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +0 -1210
  346. data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +0 -693
  347. data/ext/third_party/asio/asio/include/asio/basic_io_object.hpp +0 -290
  348. data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +0 -1202
  349. data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +0 -756
  350. data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +0 -907
  351. data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +0 -568
  352. data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +0 -1894
  353. data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +0 -2495
  354. data/ext/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +0 -407
  355. data/ext/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +0 -687
  356. data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +0 -1049
  357. data/ext/third_party/asio/asio/include/asio/basic_streambuf.hpp +0 -452
  358. data/ext/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +0 -36
  359. data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +0 -763
  360. data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +0 -580
  361. data/ext/third_party/asio/asio/include/asio/buffer.hpp +0 -2494
  362. data/ext/third_party/asio/asio/include/asio/buffered_read_stream.hpp +0 -253
  363. data/ext/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +0 -25
  364. data/ext/third_party/asio/asio/include/asio/buffered_stream.hpp +0 -279
  365. data/ext/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +0 -25
  366. data/ext/third_party/asio/asio/include/asio/buffered_write_stream.hpp +0 -245
  367. data/ext/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +0 -25
  368. data/ext/third_party/asio/asio/include/asio/buffers_iterator.hpp +0 -521
  369. data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +0 -100
  370. data/ext/third_party/asio/asio/include/asio/completion_condition.hpp +0 -218
  371. data/ext/third_party/asio/asio/include/asio/compose.hpp +0 -136
  372. data/ext/third_party/asio/asio/include/asio/connect.hpp +0 -1076
  373. data/ext/third_party/asio/asio/include/asio/coroutine.hpp +0 -328
  374. data/ext/third_party/asio/asio/include/asio/deadline_timer.hpp +0 -38
  375. data/ext/third_party/asio/asio/include/asio/defer.hpp +0 -127
  376. data/ext/third_party/asio/asio/include/asio/detached.hpp +0 -62
  377. data/ext/third_party/asio/asio/include/asio/detail/array.hpp +0 -38
  378. data/ext/third_party/asio/asio/include/asio/detail/array_fwd.hpp +0 -34
  379. data/ext/third_party/asio/asio/include/asio/detail/assert.hpp +0 -32
  380. data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +0 -45
  381. data/ext/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +0 -69
  382. data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +0 -816
  383. data/ext/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +0 -66
  384. data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +0 -544
  385. data/ext/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +0 -126
  386. data/ext/third_party/asio/asio/include/asio/detail/call_stack.hpp +0 -125
  387. data/ext/third_party/asio/asio/include/asio/detail/chrono.hpp +0 -66
  388. data/ext/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +0 -190
  389. data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +0 -83
  390. data/ext/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +0 -94
  391. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +0 -112
  392. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +0 -149
  393. data/ext/third_party/asio/asio/include/asio/detail/config.hpp +0 -1499
  394. data/ext/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +0 -414
  395. data/ext/third_party/asio/asio/include/asio/detail/cstddef.hpp +0 -31
  396. data/ext/third_party/asio/asio/include/asio/detail/cstdint.hpp +0 -60
  397. data/ext/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +0 -34
  398. data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +0 -280
  399. data/ext/third_party/asio/asio/include/asio/detail/dependent_type.hpp +0 -36
  400. data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +0 -121
  401. data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +0 -130
  402. data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +0 -130
  403. data/ext/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +0 -218
  404. data/ext/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +0 -266
  405. data/ext/third_party/asio/asio/include/asio/detail/event.hpp +0 -48
  406. data/ext/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +0 -83
  407. data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +0 -104
  408. data/ext/third_party/asio/asio/include/asio/detail/executor_op.hpp +0 -84
  409. data/ext/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +0 -39
  410. data/ext/third_party/asio/asio/include/asio/detail/fenced_block.hpp +0 -80
  411. data/ext/third_party/asio/asio/include/asio/detail/functional.hpp +0 -38
  412. data/ext/third_party/asio/asio/include/asio/detail/future.hpp +0 -33
  413. data/ext/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +0 -91
  414. data/ext/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +0 -68
  415. data/ext/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +0 -65
  416. data/ext/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +0 -99
  417. data/ext/third_party/asio/asio/include/asio/detail/global.hpp +0 -52
  418. data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +0 -242
  419. data/ext/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +0 -45
  420. data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +0 -57
  421. data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +0 -238
  422. data/ext/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +0 -556
  423. data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +0 -113
  424. data/ext/third_party/asio/asio/include/asio/detail/hash_map.hpp +0 -331
  425. data/ext/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +0 -118
  426. data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +0 -474
  427. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +0 -91
  428. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +0 -446
  429. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +0 -89
  430. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +0 -787
  431. data/ext/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +0 -169
  432. data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +0 -358
  433. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +0 -93
  434. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +0 -570
  435. data/ext/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +0 -74
  436. data/ext/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +0 -129
  437. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +0 -59
  438. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +0 -46
  439. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +0 -84
  440. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +0 -46
  441. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +0 -223
  442. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +0 -152
  443. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +0 -300
  444. data/ext/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +0 -158
  445. data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +0 -617
  446. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +0 -100
  447. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +0 -338
  448. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +0 -94
  449. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +0 -197
  450. data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +0 -667
  451. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +0 -3575
  452. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +0 -185
  453. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +0 -179
  454. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +0 -134
  455. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +0 -118
  456. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +0 -177
  457. data/ext/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +0 -60
  458. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +0 -91
  459. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +0 -101
  460. data/ext/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +0 -76
  461. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +0 -525
  462. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +0 -103
  463. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +0 -594
  464. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +0 -192
  465. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +0 -801
  466. data/ext/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +0 -84
  467. data/ext/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +0 -448
  468. data/ext/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +0 -136
  469. data/ext/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +0 -150
  470. data/ext/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +0 -57
  471. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +0 -626
  472. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +0 -92
  473. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +0 -121
  474. data/ext/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +0 -82
  475. data/ext/third_party/asio/asio/include/asio/detail/io_control.hpp +0 -84
  476. data/ext/third_party/asio/asio/include/asio/detail/io_object_executor.hpp +0 -167
  477. data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +0 -193
  478. data/ext/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +0 -312
  479. data/ext/third_party/asio/asio/include/asio/detail/is_executor.hpp +0 -126
  480. data/ext/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +0 -70
  481. data/ext/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +0 -242
  482. data/ext/third_party/asio/asio/include/asio/detail/limits.hpp +0 -26
  483. data/ext/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +0 -59
  484. data/ext/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +0 -62
  485. data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +0 -70
  486. data/ext/third_party/asio/asio/include/asio/detail/mutex.hpp +0 -48
  487. data/ext/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +0 -54
  488. data/ext/third_party/asio/asio/include/asio/detail/noncopyable.hpp +0 -43
  489. data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +0 -100
  490. data/ext/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +0 -47
  491. data/ext/third_party/asio/asio/include/asio/detail/null_global.hpp +0 -59
  492. data/ext/third_party/asio/asio/include/asio/detail/null_mutex.hpp +0 -64
  493. data/ext/third_party/asio/asio/include/asio/detail/null_reactor.hpp +0 -68
  494. data/ext/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +0 -69
  495. data/ext/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +0 -519
  496. data/ext/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +0 -60
  497. data/ext/third_party/asio/asio/include/asio/detail/null_thread.hpp +0 -67
  498. data/ext/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +0 -68
  499. data/ext/third_party/asio/asio/include/asio/detail/object_pool.hpp +0 -171
  500. data/ext/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +0 -214
  501. data/ext/third_party/asio/asio/include/asio/detail/op_queue.hpp +0 -162
  502. data/ext/third_party/asio/asio/include/asio/detail/operation.hpp +0 -38
  503. data/ext/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +0 -89
  504. data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +0 -141
  505. data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +0 -162
  506. data/ext/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +0 -118
  507. data/ext/third_party/asio/asio/include/asio/detail/posix_global.hpp +0 -80
  508. data/ext/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +0 -76
  509. data/ext/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +0 -85
  510. data/ext/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +0 -64
  511. data/ext/third_party/asio/asio/include/asio/detail/posix_thread.hpp +0 -109
  512. data/ext/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +0 -79
  513. data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +0 -185
  514. data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +0 -391
  515. data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +0 -92
  516. data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +0 -238
  517. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +0 -230
  518. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +0 -116
  519. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +0 -137
  520. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +0 -142
  521. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +0 -135
  522. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +0 -136
  523. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +0 -134
  524. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +0 -505
  525. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +0 -518
  526. data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +0 -92
  527. data/ext/third_party/asio/asio/include/asio/detail/reactor.hpp +0 -32
  528. data/ext/third_party/asio/asio/include/asio/detail/reactor_fwd.hpp +0 -40
  529. data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +0 -65
  530. data/ext/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +0 -168
  531. data/ext/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +0 -106
  532. data/ext/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +0 -35
  533. data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +0 -138
  534. data/ext/third_party/asio/asio/include/asio/detail/resolve_op.hpp +0 -45
  535. data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +0 -148
  536. data/ext/third_party/asio/asio/include/asio/detail/resolver_service.hpp +0 -145
  537. data/ext/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +0 -143
  538. data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +0 -224
  539. data/ext/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +0 -78
  540. data/ext/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +0 -40
  541. data/ext/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +0 -101
  542. data/ext/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +0 -87
  543. data/ext/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +0 -46
  544. data/ext/third_party/asio/asio/include/asio/detail/select_reactor.hpp +0 -238
  545. data/ext/third_party/asio/asio/include/asio/detail/service_registry.hpp +0 -164
  546. data/ext/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +0 -44
  547. data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +0 -88
  548. data/ext/third_party/asio/asio/include/asio/detail/signal_init.hpp +0 -47
  549. data/ext/third_party/asio/asio/include/asio/detail/signal_op.hpp +0 -49
  550. data/ext/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +0 -229
  551. data/ext/third_party/asio/asio/include/asio/detail/socket_holder.hpp +0 -98
  552. data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +0 -337
  553. data/ext/third_party/asio/asio/include/asio/detail/socket_option.hpp +0 -316
  554. data/ext/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +0 -91
  555. data/ext/third_party/asio/asio/include/asio/detail/socket_types.hpp +0 -416
  556. data/ext/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +0 -62
  557. data/ext/third_party/asio/asio/include/asio/detail/static_mutex.hpp +0 -52
  558. data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +0 -176
  559. data/ext/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +0 -62
  560. data/ext/third_party/asio/asio/include/asio/detail/std_global.hpp +0 -70
  561. data/ext/third_party/asio/asio/include/asio/detail/std_mutex.hpp +0 -73
  562. data/ext/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +0 -81
  563. data/ext/third_party/asio/asio/include/asio/detail/std_thread.hpp +0 -71
  564. data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +0 -142
  565. data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +0 -142
  566. data/ext/third_party/asio/asio/include/asio/detail/string_view.hpp +0 -47
  567. data/ext/third_party/asio/asio/include/asio/detail/thread.hpp +0 -60
  568. data/ext/third_party/asio/asio/include/asio/detail/thread_context.hpp +0 -42
  569. data/ext/third_party/asio/asio/include/asio/detail/thread_group.hpp +0 -95
  570. data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +0 -125
  571. data/ext/third_party/asio/asio/include/asio/detail/throw_error.hpp +0 -53
  572. data/ext/third_party/asio/asio/include/asio/detail/throw_exception.hpp +0 -51
  573. data/ext/third_party/asio/asio/include/asio/detail/timer_queue.hpp +0 -360
  574. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +0 -68
  575. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +0 -99
  576. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +0 -66
  577. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +0 -35
  578. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +0 -40
  579. data/ext/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +0 -69
  580. data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +0 -89
  581. data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +0 -151
  582. data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +0 -87
  583. data/ext/third_party/asio/asio/include/asio/detail/wait_op.hpp +0 -45
  584. data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +0 -151
  585. data/ext/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +0 -149
  586. data/ext/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +0 -90
  587. data/ext/third_party/asio/asio/include/asio/detail/win_global.hpp +0 -71
  588. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +0 -113
  589. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +0 -335
  590. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +0 -106
  591. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +0 -338
  592. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +0 -123
  593. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +0 -96
  594. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +0 -92
  595. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +0 -159
  596. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +0 -232
  597. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +0 -308
  598. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +0 -130
  599. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +0 -120
  600. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +0 -129
  601. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +0 -121
  602. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +0 -114
  603. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +0 -581
  604. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +0 -600
  605. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +0 -34
  606. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +0 -123
  607. data/ext/third_party/asio/asio/include/asio/detail/win_mutex.hpp +0 -78
  608. data/ext/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +0 -195
  609. data/ext/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +0 -74
  610. data/ext/third_party/asio/asio/include/asio/detail/win_thread.hpp +0 -147
  611. data/ext/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +0 -79
  612. data/ext/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +0 -124
  613. data/ext/third_party/asio/asio/include/asio/detail/wince_thread.hpp +0 -124
  614. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +0 -305
  615. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +0 -65
  616. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +0 -121
  617. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +0 -212
  618. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +0 -94
  619. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +0 -115
  620. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +0 -106
  621. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +0 -250
  622. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +0 -362
  623. data/ext/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +0 -147
  624. data/ext/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +0 -106
  625. data/ext/third_party/asio/asio/include/asio/detail/winsock_init.hpp +0 -128
  626. data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +0 -73
  627. data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +0 -291
  628. data/ext/third_party/asio/asio/include/asio/dispatch.hpp +0 -118
  629. data/ext/third_party/asio/asio/include/asio/error.hpp +0 -356
  630. data/ext/third_party/asio/asio/include/asio/error_code.hpp +0 -202
  631. data/ext/third_party/asio/asio/include/asio/execution_context.hpp +0 -412
  632. data/ext/third_party/asio/asio/include/asio/executor.hpp +0 -341
  633. data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +0 -170
  634. data/ext/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +0 -193
  635. data/ext/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +0 -123
  636. data/ext/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +0 -133
  637. data/ext/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +0 -110
  638. data/ext/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +0 -121
  639. data/ext/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +0 -122
  640. data/ext/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +0 -127
  641. data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +0 -81
  642. data/ext/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +0 -54
  643. data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +0 -85
  644. data/ext/third_party/asio/asio/include/asio/high_resolution_timer.hpp +0 -44
  645. data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +0 -422
  646. data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +0 -491
  647. data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +0 -471
  648. data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +0 -160
  649. data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +0 -533
  650. data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +0 -872
  651. data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +0 -113
  652. data/ext/third_party/asio/asio/include/asio/impl/detached.hpp +0 -130
  653. data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +0 -113
  654. data/ext/third_party/asio/asio/include/asio/impl/error.ipp +0 -128
  655. data/ext/third_party/asio/asio/include/asio/impl/error_code.ipp +0 -206
  656. data/ext/third_party/asio/asio/include/asio/impl/execution_context.hpp +0 -109
  657. data/ext/third_party/asio/asio/include/asio/impl/execution_context.ipp +0 -82
  658. data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +0 -387
  659. data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +0 -38
  660. data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +0 -52
  661. data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +0 -353
  662. data/ext/third_party/asio/asio/include/asio/impl/io_context.ipp +0 -175
  663. data/ext/third_party/asio/asio/include/asio/impl/post.hpp +0 -113
  664. data/ext/third_party/asio/asio/include/asio/impl/read.hpp +0 -1135
  665. data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +0 -699
  666. data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +0 -3150
  667. data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +0 -372
  668. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +0 -59
  669. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +0 -554
  670. data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +0 -490
  671. data/ext/third_party/asio/asio/include/asio/impl/src.cpp +0 -25
  672. data/ext/third_party/asio/asio/include/asio/impl/src.hpp +0 -82
  673. data/ext/third_party/asio/asio/include/asio/impl/system_context.hpp +0 -34
  674. data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +0 -80
  675. data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +0 -85
  676. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +0 -127
  677. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +0 -87
  678. data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +0 -276
  679. data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +0 -887
  680. data/ext/third_party/asio/asio/include/asio/impl/write.hpp +0 -1043
  681. data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +0 -624
  682. data/ext/third_party/asio/asio/include/asio/io_context.hpp +0 -872
  683. data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +0 -374
  684. data/ext/third_party/asio/asio/include/asio/io_service.hpp +0 -33
  685. data/ext/third_party/asio/asio/include/asio/io_service_strand.hpp +0 -20
  686. data/ext/third_party/asio/asio/include/asio/ip/address.hpp +0 -268
  687. data/ext/third_party/asio/asio/include/asio/ip/address_v4.hpp +0 -335
  688. data/ext/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +0 -162
  689. data/ext/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +0 -134
  690. data/ext/third_party/asio/asio/include/asio/ip/address_v6.hpp +0 -341
  691. data/ext/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +0 -183
  692. data/ext/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +0 -129
  693. data/ext/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +0 -53
  694. data/ext/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +0 -264
  695. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +0 -1030
  696. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +0 -113
  697. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +0 -192
  698. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +0 -244
  699. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +0 -311
  700. data/ext/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +0 -141
  701. data/ext/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +0 -199
  702. data/ext/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +0 -566
  703. data/ext/third_party/asio/asio/include/asio/ip/host_name.hpp +0 -42
  704. data/ext/third_party/asio/asio/include/asio/ip/icmp.hpp +0 -115
  705. data/ext/third_party/asio/asio/include/asio/ip/impl/address.hpp +0 -67
  706. data/ext/third_party/asio/asio/include/asio/ip/impl/address.ipp +0 -239
  707. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +0 -67
  708. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +0 -210
  709. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +0 -67
  710. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +0 -350
  711. data/ext/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +0 -43
  712. data/ext/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +0 -54
  713. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +0 -54
  714. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +0 -216
  715. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +0 -53
  716. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +0 -185
  717. data/ext/third_party/asio/asio/include/asio/ip/multicast.hpp +0 -191
  718. data/ext/third_party/asio/asio/include/asio/ip/network_v4.hpp +0 -261
  719. data/ext/third_party/asio/asio/include/asio/ip/network_v6.hpp +0 -235
  720. data/ext/third_party/asio/asio/include/asio/ip/resolver_base.hpp +0 -129
  721. data/ext/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +0 -43
  722. data/ext/third_party/asio/asio/include/asio/ip/tcp.hpp +0 -155
  723. data/ext/third_party/asio/asio/include/asio/ip/udp.hpp +0 -111
  724. data/ext/third_party/asio/asio/include/asio/ip/unicast.hpp +0 -70
  725. data/ext/third_party/asio/asio/include/asio/ip/v6_only.hpp +0 -69
  726. data/ext/third_party/asio/asio/include/asio/is_executor.hpp +0 -46
  727. data/ext/third_party/asio/asio/include/asio/is_read_buffered.hpp +0 -59
  728. data/ext/third_party/asio/asio/include/asio/is_write_buffered.hpp +0 -59
  729. data/ext/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +0 -247
  730. data/ext/third_party/asio/asio/include/asio/local/connect_pair.hpp +0 -101
  731. data/ext/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +0 -80
  732. data/ext/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +0 -139
  733. data/ext/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +0 -136
  734. data/ext/third_party/asio/asio/include/asio/local/stream_protocol.hpp +0 -90
  735. data/ext/third_party/asio/asio/include/asio/packaged_task.hpp +0 -126
  736. data/ext/third_party/asio/asio/include/asio/placeholders.hpp +0 -151
  737. data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +0 -697
  738. data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +0 -470
  739. data/ext/third_party/asio/asio/include/asio/posix/descriptor.hpp +0 -37
  740. data/ext/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +0 -90
  741. data/ext/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +0 -37
  742. data/ext/third_party/asio/asio/include/asio/post.hpp +0 -123
  743. data/ext/third_party/asio/asio/include/asio/read.hpp +0 -1288
  744. data/ext/third_party/asio/asio/include/asio/read_at.hpp +0 -694
  745. data/ext/third_party/asio/asio/include/asio/read_until.hpp +0 -2863
  746. data/ext/third_party/asio/asio/include/asio/redirect_error.hpp +0 -66
  747. data/ext/third_party/asio/asio/include/asio/serial_port.hpp +0 -36
  748. data/ext/third_party/asio/asio/include/asio/serial_port_base.hpp +0 -167
  749. data/ext/third_party/asio/asio/include/asio/signal_set.hpp +0 -28
  750. data/ext/third_party/asio/asio/include/asio/socket_base.hpp +0 -559
  751. data/ext/third_party/asio/asio/include/asio/spawn.hpp +0 -336
  752. data/ext/third_party/asio/asio/include/asio/ssl/context.hpp +0 -761
  753. data/ext/third_party/asio/asio/include/asio/ssl/context_base.hpp +0 -209
  754. data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +0 -114
  755. data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +0 -160
  756. data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +0 -62
  757. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +0 -336
  758. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +0 -165
  759. data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +0 -381
  760. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +0 -101
  761. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +0 -34
  762. data/ext/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +0 -66
  763. data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +0 -67
  764. data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +0 -64
  765. data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +0 -135
  766. data/ext/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +0 -62
  767. data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +0 -67
  768. data/ext/third_party/asio/asio/include/asio/ssl/error.hpp +0 -125
  769. data/ext/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +0 -90
  770. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.hpp +0 -67
  771. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.ipp +0 -1238
  772. data/ext/third_party/asio/asio/include/asio/ssl/impl/error.ipp +0 -102
  773. data/ext/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +0 -73
  774. data/ext/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +0 -164
  775. data/ext/third_party/asio/asio/include/asio/ssl/impl/src.hpp +0 -29
  776. data/ext/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +0 -98
  777. data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +0 -885
  778. data/ext/third_party/asio/asio/include/asio/ssl/stream_base.hpp +0 -52
  779. data/ext/third_party/asio/asio/include/asio/ssl/verify_context.hpp +0 -67
  780. data/ext/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +0 -63
  781. data/ext/third_party/asio/asio/include/asio/ssl.hpp +0 -28
  782. data/ext/third_party/asio/asio/include/asio/steady_timer.hpp +0 -42
  783. data/ext/third_party/asio/asio/include/asio/strand.hpp +0 -314
  784. data/ext/third_party/asio/asio/include/asio/streambuf.hpp +0 -33
  785. data/ext/third_party/asio/asio/include/asio/system_context.hpp +0 -81
  786. data/ext/third_party/asio/asio/include/asio/system_error.hpp +0 -131
  787. data/ext/third_party/asio/asio/include/asio/system_executor.hpp +0 -129
  788. data/ext/third_party/asio/asio/include/asio/system_timer.hpp +0 -42
  789. data/ext/third_party/asio/asio/include/asio/this_coro.hpp +0 -45
  790. data/ext/third_party/asio/asio/include/asio/thread.hpp +0 -92
  791. data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +0 -235
  792. data/ext/third_party/asio/asio/include/asio/time_traits.hpp +0 -86
  793. data/ext/third_party/asio/asio/include/asio/ts/buffer.hpp +0 -24
  794. data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +0 -34
  795. data/ext/third_party/asio/asio/include/asio/ts/internet.hpp +0 -40
  796. data/ext/third_party/asio/asio/include/asio/ts/io_context.hpp +0 -20
  797. data/ext/third_party/asio/asio/include/asio/ts/net.hpp +0 -26
  798. data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +0 -203
  799. data/ext/third_party/asio/asio/include/asio/ts/socket.hpp +0 -27
  800. data/ext/third_party/asio/asio/include/asio/ts/timer.hpp +0 -26
  801. data/ext/third_party/asio/asio/include/asio/unyield.hpp +0 -21
  802. data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +0 -110
  803. data/ext/third_party/asio/asio/include/asio/use_future.hpp +0 -160
  804. data/ext/third_party/asio/asio/include/asio/uses_executor.hpp +0 -71
  805. data/ext/third_party/asio/asio/include/asio/version.hpp +0 -23
  806. data/ext/third_party/asio/asio/include/asio/wait_traits.hpp +0 -56
  807. data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +0 -435
  808. data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +0 -361
  809. data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +0 -490
  810. data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +0 -474
  811. data/ext/third_party/asio/asio/include/asio/windows/object_handle.hpp +0 -38
  812. data/ext/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +0 -39
  813. data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +0 -143
  814. data/ext/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +0 -37
  815. data/ext/third_party/asio/asio/include/asio/windows/stream_handle.hpp +0 -37
  816. data/ext/third_party/asio/asio/include/asio/write.hpp +0 -1246
  817. data/ext/third_party/asio/asio/include/asio/write_at.hpp +0 -702
  818. data/ext/third_party/asio/asio/include/asio/yield.hpp +0 -23
  819. data/ext/third_party/asio/asio/include/asio.hpp +0 -147
  820. data/ext/third_party/asio/asio/release.pl +0 -440
  821. data/ext/third_party/asio/asio/src/.gitignore +0 -11
  822. data/ext/third_party/asio/asio/src/Makefile.am +0 -23
  823. data/ext/third_party/asio/asio/src/Makefile.mgw +0 -204
  824. data/ext/third_party/asio/asio/src/Makefile.msc +0 -497
  825. data/ext/third_party/asio/asio/src/asio.cpp +0 -11
  826. data/ext/third_party/asio/asio/src/asio_ssl.cpp +0 -11
  827. data/ext/third_party/asio/asio/src/doc/.gitignore +0 -5
  828. data/ext/third_party/asio/asio/src/doc/Jamfile.v2 +0 -62
  829. data/ext/third_party/asio/asio/src/doc/asio.png +0 -0
  830. data/ext/third_party/asio/asio/src/doc/asio.qbk +0 -127
  831. data/ext/third_party/asio/asio/src/doc/asioref.sty +0 -90
  832. data/ext/third_party/asio/asio/src/doc/asioref.xsl +0 -94
  833. data/ext/third_party/asio/asio/src/doc/boost_bind_dox.txt +0 -5
  834. data/ext/third_party/asio/asio/src/doc/doxy2qbk.pl +0 -22
  835. data/ext/third_party/asio/asio/src/doc/examples.qbk +0 -564
  836. data/ext/third_party/asio/asio/src/doc/history.qbk +0 -1794
  837. data/ext/third_party/asio/asio/src/doc/index.xml +0 -13
  838. data/ext/third_party/asio/asio/src/doc/makepdf.pl +0 -26
  839. data/ext/third_party/asio/asio/src/doc/net_ts.qbk +0 -479
  840. data/ext/third_party/asio/asio/src/doc/noncopyable_dox.txt +0 -3
  841. data/ext/third_party/asio/asio/src/doc/overview/allocation.qbk +0 -89
  842. data/ext/third_party/asio/asio/src/doc/overview/async.qbk +0 -185
  843. data/ext/third_party/asio/asio/src/doc/overview/async_op1.dot +0 -78
  844. data/ext/third_party/asio/asio/src/doc/overview/async_op1.png +0 -0
  845. data/ext/third_party/asio/asio/src/doc/overview/async_op2.dot +0 -78
  846. data/ext/third_party/asio/asio/src/doc/overview/async_op2.png +0 -0
  847. data/ext/third_party/asio/asio/src/doc/overview/basics.qbk +0 -106
  848. data/ext/third_party/asio/asio/src/doc/overview/bsd_sockets.qbk +0 -270
  849. data/ext/third_party/asio/asio/src/doc/overview/buffers.qbk +0 -163
  850. data/ext/third_party/asio/asio/src/doc/overview/concurrency_hint.qbk +0 -88
  851. data/ext/third_party/asio/asio/src/doc/overview/coroutine.qbk +0 -51
  852. data/ext/third_party/asio/asio/src/doc/overview/coroutines_ts.qbk +0 -97
  853. data/ext/third_party/asio/asio/src/doc/overview/cpp2011.qbk +0 -271
  854. data/ext/third_party/asio/asio/src/doc/overview/handler_tracking.qbk +0 -220
  855. data/ext/third_party/asio/asio/src/doc/overview/implementation.qbk +0 -305
  856. data/ext/third_party/asio/asio/src/doc/overview/iostreams.qbk +0 -72
  857. data/ext/third_party/asio/asio/src/doc/overview/line_based.qbk +0 -118
  858. data/ext/third_party/asio/asio/src/doc/overview/other_protocols.qbk +0 -94
  859. data/ext/third_party/asio/asio/src/doc/overview/posix.qbk +0 -152
  860. data/ext/third_party/asio/asio/src/doc/overview/proactor.dot +0 -100
  861. data/ext/third_party/asio/asio/src/doc/overview/proactor.png +0 -0
  862. data/ext/third_party/asio/asio/src/doc/overview/protocols.qbk +0 -149
  863. data/ext/third_party/asio/asio/src/doc/overview/rationale.qbk +0 -54
  864. data/ext/third_party/asio/asio/src/doc/overview/reactor.qbk +0 -44
  865. data/ext/third_party/asio/asio/src/doc/overview/serial_ports.qbk +0 -45
  866. data/ext/third_party/asio/asio/src/doc/overview/signals.qbk +0 -44
  867. data/ext/third_party/asio/asio/src/doc/overview/spawn.qbk +0 -102
  868. data/ext/third_party/asio/asio/src/doc/overview/ssl.qbk +0 -124
  869. data/ext/third_party/asio/asio/src/doc/overview/strands.qbk +0 -114
  870. data/ext/third_party/asio/asio/src/doc/overview/streams.qbk +0 -62
  871. data/ext/third_party/asio/asio/src/doc/overview/sync_op.dot +0 -67
  872. data/ext/third_party/asio/asio/src/doc/overview/sync_op.png +0 -0
  873. data/ext/third_party/asio/asio/src/doc/overview/threads.qbk +0 -67
  874. data/ext/third_party/asio/asio/src/doc/overview/timers.qbk +0 -52
  875. data/ext/third_party/asio/asio/src/doc/overview/windows.qbk +0 -126
  876. data/ext/third_party/asio/asio/src/doc/overview.qbk +0 -103
  877. data/ext/third_party/asio/asio/src/doc/project-root.jam +0 -1
  878. data/ext/third_party/asio/asio/src/doc/quickref.xml +0 -561
  879. data/ext/third_party/asio/asio/src/doc/reference.dox +0 -264
  880. data/ext/third_party/asio/asio/src/doc/reference.qbk +0 -125973
  881. data/ext/third_party/asio/asio/src/doc/reference.xsl +0 -1831
  882. data/ext/third_party/asio/asio/src/doc/release_checklist.htm +0 -68
  883. data/ext/third_party/asio/asio/src/doc/requirements/AcceptHandler.qbk +0 -72
  884. data/ext/third_party/asio/asio/src/doc/requirements/AcceptableProtocol.qbk +0 -25
  885. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessReadDevice.qbk +0 -56
  886. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessWriteDevice.qbk +0 -57
  887. data/ext/third_party/asio/asio/src/doc/requirements/AsyncReadStream.qbk +0 -50
  888. data/ext/third_party/asio/asio/src/doc/requirements/AsyncWriteStream.qbk +0 -48
  889. data/ext/third_party/asio/asio/src/doc/requirements/BufferedHandshakeHandler.qbk +0 -55
  890. data/ext/third_party/asio/asio/src/doc/requirements/CompletionCondition.qbk +0 -42
  891. data/ext/third_party/asio/asio/src/doc/requirements/CompletionHandler.qbk +0 -63
  892. data/ext/third_party/asio/asio/src/doc/requirements/ConnectCondition.qbk +0 -34
  893. data/ext/third_party/asio/asio/src/doc/requirements/ConnectHandler.qbk +0 -72
  894. data/ext/third_party/asio/asio/src/doc/requirements/ConstBufferSequence.qbk +0 -53
  895. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer.qbk +0 -16
  896. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v1.qbk +0 -93
  897. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v2.qbk +0 -94
  898. data/ext/third_party/asio/asio/src/doc/requirements/Endpoint.qbk +0 -97
  899. data/ext/third_party/asio/asio/src/doc/requirements/EndpointSequence.qbk +0 -30
  900. data/ext/third_party/asio/asio/src/doc/requirements/ExecutionContext.qbk +0 -36
  901. data/ext/third_party/asio/asio/src/doc/requirements/Executor.qbk +0 -141
  902. data/ext/third_party/asio/asio/src/doc/requirements/GettableSerialPortOption.qbk +0 -33
  903. data/ext/third_party/asio/asio/src/doc/requirements/GettableSocketOption.qbk +0 -67
  904. data/ext/third_party/asio/asio/src/doc/requirements/Handler.qbk +0 -64
  905. data/ext/third_party/asio/asio/src/doc/requirements/HandshakeHandler.qbk +0 -72
  906. data/ext/third_party/asio/asio/src/doc/requirements/InternetProtocol.qbk +0 -47
  907. data/ext/third_party/asio/asio/src/doc/requirements/IoControlCommand.qbk +0 -34
  908. data/ext/third_party/asio/asio/src/doc/requirements/IoObjectService.qbk +0 -62
  909. data/ext/third_party/asio/asio/src/doc/requirements/IteratorConnectHandler.qbk +0 -81
  910. data/ext/third_party/asio/asio/src/doc/requirements/LegacyCompletionHandler.qbk +0 -65
  911. data/ext/third_party/asio/asio/src/doc/requirements/MoveAcceptHandler.qbk +0 -61
  912. data/ext/third_party/asio/asio/src/doc/requirements/MutableBufferSequence.qbk +0 -54
  913. data/ext/third_party/asio/asio/src/doc/requirements/ProtoAllocator.qbk +0 -19
  914. data/ext/third_party/asio/asio/src/doc/requirements/Protocol.qbk +0 -56
  915. data/ext/third_party/asio/asio/src/doc/requirements/RangeConnectHandler.qbk +0 -82
  916. data/ext/third_party/asio/asio/src/doc/requirements/ReadHandler.qbk +0 -79
  917. data/ext/third_party/asio/asio/src/doc/requirements/ResolveHandler.qbk +0 -82
  918. data/ext/third_party/asio/asio/src/doc/requirements/Service.qbk +0 -40
  919. data/ext/third_party/asio/asio/src/doc/requirements/SettableSerialPortOption.qbk +0 -33
  920. data/ext/third_party/asio/asio/src/doc/requirements/SettableSocketOption.qbk +0 -54
  921. data/ext/third_party/asio/asio/src/doc/requirements/ShutdownHandler.qbk +0 -72
  922. data/ext/third_party/asio/asio/src/doc/requirements/SignalHandler.qbk +0 -79
  923. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessReadDevice.qbk +0 -49
  924. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessWriteDevice.qbk +0 -49
  925. data/ext/third_party/asio/asio/src/doc/requirements/SyncReadStream.qbk +0 -41
  926. data/ext/third_party/asio/asio/src/doc/requirements/SyncWriteStream.qbk +0 -39
  927. data/ext/third_party/asio/asio/src/doc/requirements/TimeTraits.qbk +0 -72
  928. data/ext/third_party/asio/asio/src/doc/requirements/WaitHandler.qbk +0 -72
  929. data/ext/third_party/asio/asio/src/doc/requirements/WaitTraits.qbk +0 -52
  930. data/ext/third_party/asio/asio/src/doc/requirements/WriteHandler.qbk +0 -79
  931. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_operations.qbk +0 -300
  932. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_socket_operations.qbk +0 -39
  933. data/ext/third_party/asio/asio/src/doc/requirements/read_write_operations.qbk +0 -34
  934. data/ext/third_party/asio/asio/src/doc/requirements/synchronous_socket_operations.qbk +0 -37
  935. data/ext/third_party/asio/asio/src/doc/std_exception_dox.txt +0 -7
  936. data/ext/third_party/asio/asio/src/doc/tutorial.dox +0 -226
  937. data/ext/third_party/asio/asio/src/doc/tutorial.qbk +0 -2387
  938. data/ext/third_party/asio/asio/src/doc/tutorial.xsl +0 -437
  939. data/ext/third_party/asio/asio/src/doc/using.qbk +0 -309
  940. data/ext/third_party/asio/asio/tsify.pl +0 -574
  941. data/ext/third_party/gsl/.clang-format +0 -34
  942. data/ext/third_party/gsl/.github/workflows/main.yml +0 -94
  943. data/ext/third_party/gsl/.gitignore +0 -16
  944. data/ext/third_party/gsl/.travis.yml +0 -551
  945. data/ext/third_party/gsl/CMakeLists.txt +0 -119
  946. data/ext/third_party/gsl/CMakeSettings.json +0 -18
  947. data/ext/third_party/gsl/CONTRIBUTING.md +0 -29
  948. data/ext/third_party/gsl/GSL.natvis +0 -98
  949. data/ext/third_party/gsl/LICENSE +0 -21
  950. data/ext/third_party/gsl/README.md +0 -124
  951. data/ext/third_party/gsl/ThirdPartyNotices.txt +0 -41
  952. data/ext/third_party/gsl/appveyor.yml +0 -128
  953. data/ext/third_party/gsl/include/gsl/gsl +0 -29
  954. data/ext/third_party/gsl/include/gsl/gsl_algorithm +0 -61
  955. data/ext/third_party/gsl/include/gsl/gsl_assert +0 -133
  956. data/ext/third_party/gsl/include/gsl/gsl_byte +0 -209
  957. data/ext/third_party/gsl/include/gsl/gsl_util +0 -171
  958. data/ext/third_party/gsl/include/gsl/multi_span +0 -2273
  959. data/ext/third_party/gsl/include/gsl/pointers +0 -301
  960. data/ext/third_party/gsl/include/gsl/span +0 -764
  961. data/ext/third_party/gsl/include/gsl/span_ext +0 -198
  962. data/ext/third_party/gsl/include/gsl/string_span +0 -716
  963. data/ext/third_party/http_parser/.gitignore +0 -30
  964. data/ext/third_party/http_parser/.mailmap +0 -8
  965. data/ext/third_party/http_parser/.travis.yml +0 -13
  966. data/ext/third_party/http_parser/AUTHORS +0 -68
  967. data/ext/third_party/http_parser/LICENSE-MIT +0 -19
  968. data/ext/third_party/http_parser/Makefile +0 -160
  969. data/ext/third_party/http_parser/README.md +0 -246
  970. data/ext/third_party/http_parser/bench.c +0 -128
  971. data/ext/third_party/http_parser/http_parser.c +0 -2568
  972. data/ext/third_party/http_parser/http_parser.gyp +0 -111
  973. data/ext/third_party/http_parser/http_parser.h +0 -447
  974. data/ext/third_party/http_parser/test.c +0 -4600
  975. data/ext/third_party/json/.appveyor.yml +0 -44
  976. data/ext/third_party/json/.clang-format +0 -84
  977. data/ext/third_party/json/.conan/build.py +0 -80
  978. data/ext/third_party/json/.conan/test_package/CMakeLists.txt +0 -12
  979. data/ext/third_party/json/.conan/test_package/conanfile.py +0 -24
  980. data/ext/third_party/json/.conan/test_package/test_package.cpp +0 -16
  981. data/ext/third_party/json/.gitignore +0 -3
  982. data/ext/third_party/json/.travis.yml +0 -173
  983. data/ext/third_party/json/CMakeLists.txt +0 -44
  984. data/ext/third_party/json/LICENSE +0 -21
  985. data/ext/third_party/json/LICENSE.double-conversion +0 -32
  986. data/ext/third_party/json/LICENSE.itoa +0 -19
  987. data/ext/third_party/json/LICENSE.ryu +0 -201
  988. data/ext/third_party/json/Makefile +0 -77
  989. data/ext/third_party/json/README.md +0 -149
  990. data/ext/third_party/json/conanfile.py +0 -28
  991. data/ext/third_party/json/include/tao/json/basic_value.hpp +0 -941
  992. data/ext/third_party/json/include/tao/json/binary.hpp +0 -103
  993. data/ext/third_party/json/include/tao/json/binary_view.hpp +0 -31
  994. data/ext/third_party/json/include/tao/json/binding/constant.hpp +0 -232
  995. data/ext/third_party/json/include/tao/json/binding/element.hpp +0 -182
  996. data/ext/third_party/json/include/tao/json/binding/factory.hpp +0 -250
  997. data/ext/third_party/json/include/tao/json/binding/for_nothing_value.hpp +0 -17
  998. data/ext/third_party/json/include/tao/json/binding/for_unknown_key.hpp +0 -17
  999. data/ext/third_party/json/include/tao/json/binding/inherit.hpp +0 -14
  1000. data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +0 -103
  1001. data/ext/third_party/json/include/tao/json/binding/internal/inherit.hpp +0 -45
  1002. data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +0 -267
  1003. data/ext/third_party/json/include/tao/json/binding/internal/type_key.hpp +0 -54
  1004. data/ext/third_party/json/include/tao/json/binding/member.hpp +0 -32
  1005. data/ext/third_party/json/include/tao/json/binding/member_kind.hpp +0 -17
  1006. data/ext/third_party/json/include/tao/json/binding/versions.hpp +0 -127
  1007. data/ext/third_party/json/include/tao/json/binding.hpp +0 -71
  1008. data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +0 -34
  1009. data/ext/third_party/json/include/tao/json/cbor/consume_string.hpp +0 -32
  1010. data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +0 -27
  1011. data/ext/third_party/json/include/tao/json/cbor/events/from_input.hpp +0 -43
  1012. data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +0 -37
  1013. data/ext/third_party/json/include/tao/json/cbor/events/to_stream.hpp +0 -161
  1014. data/ext/third_party/json/include/tao/json/cbor/events/to_string.hpp +0 -31
  1015. data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +0 -33
  1016. data/ext/third_party/json/include/tao/json/cbor/from_input.hpp +0 -33
  1017. data/ext/third_party/json/include/tao/json/cbor/from_string.hpp +0 -32
  1018. data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +0 -417
  1019. data/ext/third_party/json/include/tao/json/cbor/internal/major.hpp +0 -28
  1020. data/ext/third_party/json/include/tao/json/cbor/parts_parser.hpp +0 -392
  1021. data/ext/third_party/json/include/tao/json/cbor/to_stream.hpp +0 -27
  1022. data/ext/third_party/json/include/tao/json/cbor/to_string.hpp +0 -28
  1023. data/ext/third_party/json/include/tao/json/cbor.hpp +0 -18
  1024. data/ext/third_party/json/include/tao/json/consume.hpp +0 -43
  1025. data/ext/third_party/json/include/tao/json/consume_file.hpp +0 -33
  1026. data/ext/third_party/json/include/tao/json/consume_string.hpp +0 -31
  1027. data/ext/third_party/json/include/tao/json/contrib/array_traits.hpp +0 -43
  1028. data/ext/third_party/json/include/tao/json/contrib/deque_traits.hpp +0 -41
  1029. data/ext/third_party/json/include/tao/json/contrib/diff.hpp +0 -106
  1030. data/ext/third_party/json/include/tao/json/contrib/get.hpp +0 -152
  1031. data/ext/third_party/json/include/tao/json/contrib/internal/array_traits.hpp +0 -92
  1032. data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +0 -69
  1033. data/ext/third_party/json/include/tao/json/contrib/internal/object_traits.hpp +0 -105
  1034. data/ext/third_party/json/include/tao/json/contrib/internal/type_traits.hpp +0 -36
  1035. data/ext/third_party/json/include/tao/json/contrib/list_traits.hpp +0 -41
  1036. data/ext/third_party/json/include/tao/json/contrib/map_traits.hpp +0 -43
  1037. data/ext/third_party/json/include/tao/json/contrib/multimap_traits.hpp +0 -43
  1038. data/ext/third_party/json/include/tao/json/contrib/multiset_traits.hpp +0 -41
  1039. data/ext/third_party/json/include/tao/json/contrib/pair_traits.hpp +0 -21
  1040. data/ext/third_party/json/include/tao/json/contrib/patch.hpp +0 -105
  1041. data/ext/third_party/json/include/tao/json/contrib/pointer_traits.hpp +0 -59
  1042. data/ext/third_party/json/include/tao/json/contrib/position.hpp +0 -166
  1043. data/ext/third_party/json/include/tao/json/contrib/reference.hpp +0 -115
  1044. data/ext/third_party/json/include/tao/json/contrib/schema.hpp +0 -1851
  1045. data/ext/third_party/json/include/tao/json/contrib/set_traits.hpp +0 -41
  1046. data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +0 -90
  1047. data/ext/third_party/json/include/tao/json/contrib/traits.hpp +0 -121
  1048. data/ext/third_party/json/include/tao/json/contrib/tuple_traits.hpp +0 -51
  1049. data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +0 -89
  1050. data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +0 -43
  1051. data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +0 -41
  1052. data/ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp +0 -45
  1053. data/ext/third_party/json/include/tao/json/contrib/vector_traits.hpp +0 -51
  1054. data/ext/third_party/json/include/tao/json/events/apply.hpp +0 -20
  1055. data/ext/third_party/json/include/tao/json/events/binary_to_base64.hpp +0 -26
  1056. data/ext/third_party/json/include/tao/json/events/binary_to_base64url.hpp +0 -28
  1057. data/ext/third_party/json/include/tao/json/events/binary_to_exception.hpp +0 -27
  1058. data/ext/third_party/json/include/tao/json/events/binary_to_hex.hpp +0 -26
  1059. data/ext/third_party/json/include/tao/json/events/compare.hpp +0 -265
  1060. data/ext/third_party/json/include/tao/json/events/debug.hpp +0 -145
  1061. data/ext/third_party/json/include/tao/json/events/discard.hpp +0 -43
  1062. data/ext/third_party/json/include/tao/json/events/from_file.hpp +0 -28
  1063. data/ext/third_party/json/include/tao/json/events/from_input.hpp +0 -45
  1064. data/ext/third_party/json/include/tao/json/events/from_stream.hpp +0 -33
  1065. data/ext/third_party/json/include/tao/json/events/from_string.hpp +0 -38
  1066. data/ext/third_party/json/include/tao/json/events/from_value.hpp +0 -202
  1067. data/ext/third_party/json/include/tao/json/events/hash.hpp +0 -174
  1068. data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +0 -50
  1069. data/ext/third_party/json/include/tao/json/events/invalid_string_to_exception.hpp +0 -49
  1070. data/ext/third_party/json/include/tao/json/events/invalid_string_to_hex.hpp +0 -48
  1071. data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +0 -62
  1072. data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +0 -57
  1073. data/ext/third_party/json/include/tao/json/events/limit_nesting_depth.hpp +0 -82
  1074. data/ext/third_party/json/include/tao/json/events/limit_value_count.hpp +0 -46
  1075. data/ext/third_party/json/include/tao/json/events/non_finite_to_exception.hpp +0 -31
  1076. data/ext/third_party/json/include/tao/json/events/non_finite_to_null.hpp +0 -32
  1077. data/ext/third_party/json/include/tao/json/events/non_finite_to_string.hpp +0 -40
  1078. data/ext/third_party/json/include/tao/json/events/prefer_signed.hpp +0 -32
  1079. data/ext/third_party/json/include/tao/json/events/prefer_unsigned.hpp +0 -32
  1080. data/ext/third_party/json/include/tao/json/events/produce.hpp +0 -22
  1081. data/ext/third_party/json/include/tao/json/events/ref.hpp +0 -111
  1082. data/ext/third_party/json/include/tao/json/events/statistics.hpp +0 -112
  1083. data/ext/third_party/json/include/tao/json/events/tee.hpp +0 -386
  1084. data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +0 -172
  1085. data/ext/third_party/json/include/tao/json/events/to_stream.hpp +0 -142
  1086. data/ext/third_party/json/include/tao/json/events/to_string.hpp +0 -33
  1087. data/ext/third_party/json/include/tao/json/events/to_value.hpp +0 -137
  1088. data/ext/third_party/json/include/tao/json/events/transformer.hpp +0 -70
  1089. data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +0 -411
  1090. data/ext/third_party/json/include/tao/json/events/validate_keys.hpp +0 -51
  1091. data/ext/third_party/json/include/tao/json/events/virtual_base.hpp +0 -192
  1092. data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +0 -170
  1093. data/ext/third_party/json/include/tao/json/events.hpp +0 -47
  1094. data/ext/third_party/json/include/tao/json/external/double.hpp +0 -1313
  1095. data/ext/third_party/json/include/tao/json/external/itoa.hpp +0 -149
  1096. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/analyze_cycles.hpp +0 -127
  1097. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/counted.hpp +0 -23
  1098. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/generic.hpp +0 -31
  1099. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/grammar_info.hpp +0 -32
  1100. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_guard.hpp +0 -51
  1101. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_rules.hpp +0 -25
  1102. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_info.hpp +0 -29
  1103. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_type.hpp +0 -21
  1104. data/ext/third_party/json/include/tao/json/external/pegtl/analyze.hpp +0 -21
  1105. data/ext/third_party/json/include/tao/json/external/pegtl/apply_mode.hpp +0 -19
  1106. data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +0 -51
  1107. data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +0 -67
  1108. data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +0 -212
  1109. data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +0 -38
  1110. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +0 -53
  1111. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +0 -62
  1112. data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +0 -36
  1113. data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +0 -50
  1114. data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +0 -61
  1115. data/ext/third_party/json/include/tao/json/external/pegtl/config.hpp +0 -11
  1116. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/abnf.hpp +0 -35
  1117. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +0 -67
  1118. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/counter.hpp +0 -54
  1119. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +0 -253
  1120. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +0 -68
  1121. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +0 -200
  1122. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +0 -200
  1123. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +0 -105
  1124. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +0 -55
  1125. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +0 -446
  1126. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json.hpp +0 -88
  1127. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json_pointer.hpp +0 -33
  1128. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +0 -561
  1129. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +0 -104
  1130. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +0 -225
  1131. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +0 -86
  1132. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +0 -62
  1133. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +0 -44
  1134. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/to_string.hpp +0 -38
  1135. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/tracer.hpp +0 -158
  1136. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +0 -199
  1137. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +0 -106
  1138. data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +0 -33
  1139. data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +0 -35
  1140. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +0 -37
  1141. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +0 -39
  1142. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +0 -39
  1143. data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +0 -35
  1144. data/ext/third_party/json/include/tao/json/external/pegtl/eol.hpp +0 -37
  1145. data/ext/third_party/json/include/tao/json/external/pegtl/eol_pair.hpp +0 -18
  1146. data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +0 -44
  1147. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +0 -44
  1148. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +0 -107
  1149. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alnum.hpp +0 -18
  1150. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alpha.hpp +0 -18
  1151. data/ext/third_party/json/include/tao/json/external/pegtl/internal/always_false.hpp +0 -21
  1152. data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +0 -58
  1153. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +0 -53
  1154. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +0 -50
  1155. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0_single.hpp +0 -34
  1156. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +0 -34
  1157. data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +0 -53
  1158. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +0 -31
  1159. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +0 -31
  1160. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +0 -45
  1161. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +0 -29
  1162. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +0 -36
  1163. data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +0 -44
  1164. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +0 -32
  1165. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +0 -32
  1166. data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +0 -32
  1167. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +0 -49
  1168. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstring_reader.hpp +0 -40
  1169. data/ext/third_party/json/include/tao/json/external/pegtl/internal/demangle.hpp +0 -140
  1170. data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +0 -44
  1171. data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +0 -33
  1172. data/ext/third_party/json/include/tao/json/external/pegtl/internal/dusel_mode.hpp +0 -23
  1173. data/ext/third_party/json/include/tao/json/external/pegtl/internal/duseltronik.hpp +0 -187
  1174. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +0 -44
  1175. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian.hpp +0 -62
  1176. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian_gcc.hpp +0 -206
  1177. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian_win.hpp +0 -106
  1178. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +0 -31
  1179. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +0 -31
  1180. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +0 -32
  1181. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +0 -83
  1182. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +0 -219
  1183. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_opener.hpp +0 -72
  1184. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +0 -114
  1185. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +0 -25
  1186. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +0 -25
  1187. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +0 -56
  1188. data/ext/third_party/json/include/tao/json/external/pegtl/internal/identifier.hpp +0 -22
  1189. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +0 -53
  1190. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +0 -48
  1191. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +0 -19
  1192. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +0 -51
  1193. data/ext/third_party/json/include/tao/json/external/pegtl/internal/input_pair.hpp +0 -29
  1194. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +0 -40
  1195. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +0 -72
  1196. data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +0 -52
  1197. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +0 -37
  1198. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +0 -32
  1199. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list.hpp +0 -19
  1200. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_must.hpp +0 -20
  1201. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +0 -20
  1202. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +0 -22
  1203. data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +0 -82
  1204. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +0 -25
  1205. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +0 -23
  1206. data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +0 -72
  1207. data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +0 -53
  1208. data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +0 -44
  1209. data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +0 -57
  1210. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad.hpp +0 -19
  1211. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad_opt.hpp +0 -20
  1212. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +0 -32
  1213. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_mask_uint.hpp +0 -54
  1214. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_mask_uint8.hpp +0 -34
  1215. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_uint.hpp +0 -45
  1216. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_uint8.hpp +0 -33
  1217. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf16.hpp +0 -54
  1218. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf32.hpp +0 -43
  1219. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +0 -90
  1220. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pegtl_string.hpp +0 -90
  1221. data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +0 -53
  1222. data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +0 -53
  1223. data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +0 -51
  1224. data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +0 -93
  1225. data/ext/third_party/json/include/tao/json/external/pegtl/internal/read_uint.hpp +0 -77
  1226. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +0 -69
  1227. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +0 -66
  1228. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min.hpp +0 -20
  1229. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +0 -79
  1230. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +0 -46
  1231. data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +0 -42
  1232. data/ext/third_party/json/include/tao/json/external/pegtl/internal/result_on_found.hpp +0 -19
  1233. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +0 -61
  1234. data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +0 -73
  1235. data/ext/third_party/json/include/tao/json/external/pegtl/internal/skip_control.hpp +0 -25
  1236. data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +0 -60
  1237. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +0 -47
  1238. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star_must.hpp +0 -19
  1239. data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +0 -49
  1240. data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +0 -58
  1241. data/ext/third_party/json/include/tao/json/external/pegtl/internal/trivial.hpp +0 -32
  1242. data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +0 -64
  1243. data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +0 -84
  1244. data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +0 -33
  1245. data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +0 -73
  1246. data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +0 -381
  1247. data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +0 -79
  1248. data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +0 -87
  1249. data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +0 -20
  1250. data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +0 -53
  1251. data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +0 -69
  1252. data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +0 -75
  1253. data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +0 -74
  1254. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply.hpp +0 -16
  1255. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply0.hpp +0 -16
  1256. data/ext/third_party/json/include/tao/json/external/pegtl/rewind_mode.hpp +0 -20
  1257. data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +0 -67
  1258. data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +0 -66
  1259. data/ext/third_party/json/include/tao/json/external/pegtl/tracking_mode.hpp +0 -19
  1260. data/ext/third_party/json/include/tao/json/external/pegtl/uint16.hpp +0 -62
  1261. data/ext/third_party/json/include/tao/json/external/pegtl/uint32.hpp +0 -62
  1262. data/ext/third_party/json/include/tao/json/external/pegtl/uint64.hpp +0 -63
  1263. data/ext/third_party/json/include/tao/json/external/pegtl/uint8.hpp +0 -36
  1264. data/ext/third_party/json/include/tao/json/external/pegtl/utf16.hpp +0 -49
  1265. data/ext/third_party/json/include/tao/json/external/pegtl/utf32.hpp +0 -49
  1266. data/ext/third_party/json/include/tao/json/external/pegtl/utf8.hpp +0 -28
  1267. data/ext/third_party/json/include/tao/json/external/pegtl/version.hpp +0 -13
  1268. data/ext/third_party/json/include/tao/json/external/pegtl.hpp +0 -53
  1269. data/ext/third_party/json/include/tao/json/external/ryu.hpp +0 -1216
  1270. data/ext/third_party/json/include/tao/json/forward.hpp +0 -44
  1271. data/ext/third_party/json/include/tao/json/from_file.hpp +0 -32
  1272. data/ext/third_party/json/include/tao/json/from_input.hpp +0 -32
  1273. data/ext/third_party/json/include/tao/json/from_stream.hpp +0 -45
  1274. data/ext/third_party/json/include/tao/json/from_string.hpp +0 -41
  1275. data/ext/third_party/json/include/tao/json/internal/action.hpp +0 -268
  1276. data/ext/third_party/json/include/tao/json/internal/base64.hpp +0 -55
  1277. data/ext/third_party/json/include/tao/json/internal/base64url.hpp +0 -53
  1278. data/ext/third_party/json/include/tao/json/internal/endian.hpp +0 -60
  1279. data/ext/third_party/json/include/tao/json/internal/endian_gcc.hpp +0 -198
  1280. data/ext/third_party/json/include/tao/json/internal/endian_win.hpp +0 -103
  1281. data/ext/third_party/json/include/tao/json/internal/errors.hpp +0 -85
  1282. data/ext/third_party/json/include/tao/json/internal/escape.hpp +0 -77
  1283. data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -59
  1284. data/ext/third_party/json/include/tao/json/internal/grammar.hpp +0 -229
  1285. data/ext/third_party/json/include/tao/json/internal/hexdump.hpp +0 -31
  1286. data/ext/third_party/json/include/tao/json/internal/identity.hpp +0 -22
  1287. data/ext/third_party/json/include/tao/json/internal/number_state.hpp +0 -80
  1288. data/ext/third_party/json/include/tao/json/internal/number_traits.hpp +0 -267
  1289. data/ext/third_party/json/include/tao/json/internal/pair.hpp +0 -42
  1290. data/ext/third_party/json/include/tao/json/internal/parse_util.hpp +0 -112
  1291. data/ext/third_party/json/include/tao/json/internal/sha256.hpp +0 -218
  1292. data/ext/third_party/json/include/tao/json/internal/single.hpp +0 -40
  1293. data/ext/third_party/json/include/tao/json/internal/string_t.hpp +0 -35
  1294. data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +0 -113
  1295. data/ext/third_party/json/include/tao/json/internal/unescape_action.hpp +0 -24
  1296. data/ext/third_party/json/include/tao/json/internal/uri_fragment.hpp +0 -182
  1297. data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +0 -34
  1298. data/ext/third_party/json/include/tao/json/jaxn/consume_string.hpp +0 -32
  1299. data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +0 -28
  1300. data/ext/third_party/json/include/tao/json/jaxn/events/from_input.hpp +0 -45
  1301. data/ext/third_party/json/include/tao/json/jaxn/events/from_stream.hpp +0 -33
  1302. data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +0 -39
  1303. data/ext/third_party/json/include/tao/json/jaxn/events/to_pretty_stream.hpp +0 -69
  1304. data/ext/third_party/json/include/tao/json/jaxn/events/to_stream.hpp +0 -67
  1305. data/ext/third_party/json/include/tao/json/jaxn/events/to_string.hpp +0 -33
  1306. data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +0 -33
  1307. data/ext/third_party/json/include/tao/json/jaxn/from_input.hpp +0 -33
  1308. data/ext/third_party/json/include/tao/json/jaxn/from_stream.hpp +0 -48
  1309. data/ext/third_party/json/include/tao/json/jaxn/from_string.hpp +0 -42
  1310. data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +0 -355
  1311. data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +0 -114
  1312. data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +0 -108
  1313. data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +0 -375
  1314. data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +0 -256
  1315. data/ext/third_party/json/include/tao/json/jaxn/internal/unescape_action.hpp +0 -28
  1316. data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +0 -27
  1317. data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +0 -263
  1318. data/ext/third_party/json/include/tao/json/jaxn/to_stream.hpp +0 -36
  1319. data/ext/third_party/json/include/tao/json/jaxn/to_string.hpp +0 -33
  1320. data/ext/third_party/json/include/tao/json/jaxn.hpp +0 -19
  1321. data/ext/third_party/json/include/tao/json/message_extension.hpp +0 -49
  1322. data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +0 -34
  1323. data/ext/third_party/json/include/tao/json/msgpack/consume_string.hpp +0 -32
  1324. data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +0 -27
  1325. data/ext/third_party/json/include/tao/json/msgpack/events/from_input.hpp +0 -43
  1326. data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +0 -37
  1327. data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +0 -214
  1328. data/ext/third_party/json/include/tao/json/msgpack/events/to_string.hpp +0 -31
  1329. data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +0 -33
  1330. data/ext/third_party/json/include/tao/json/msgpack/from_input.hpp +0 -33
  1331. data/ext/third_party/json/include/tao/json/msgpack/from_string.hpp +0 -32
  1332. data/ext/third_party/json/include/tao/json/msgpack/internal/format.hpp +0 -57
  1333. data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +0 -249
  1334. data/ext/third_party/json/include/tao/json/msgpack/parts_parser.hpp +0 -311
  1335. data/ext/third_party/json/include/tao/json/msgpack/to_stream.hpp +0 -27
  1336. data/ext/third_party/json/include/tao/json/msgpack/to_string.hpp +0 -28
  1337. data/ext/third_party/json/include/tao/json/msgpack.hpp +0 -18
  1338. data/ext/third_party/json/include/tao/json/operators.hpp +0 -494
  1339. data/ext/third_party/json/include/tao/json/parts_parser.hpp +0 -306
  1340. data/ext/third_party/json/include/tao/json/pointer.hpp +0 -432
  1341. data/ext/third_party/json/include/tao/json/produce.hpp +0 -61
  1342. data/ext/third_party/json/include/tao/json/self_contained.hpp +0 -143
  1343. data/ext/third_party/json/include/tao/json/span.hpp +0 -568
  1344. data/ext/third_party/json/include/tao/json/stream.hpp +0 -38
  1345. data/ext/third_party/json/include/tao/json/to_stream.hpp +0 -42
  1346. data/ext/third_party/json/include/tao/json/to_string.hpp +0 -23
  1347. data/ext/third_party/json/include/tao/json/traits.hpp +0 -971
  1348. data/ext/third_party/json/include/tao/json/type.hpp +0 -112
  1349. data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +0 -34
  1350. data/ext/third_party/json/include/tao/json/ubjson/consume_string.hpp +0 -32
  1351. data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +0 -27
  1352. data/ext/third_party/json/include/tao/json/ubjson/events/from_input.hpp +0 -43
  1353. data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +0 -37
  1354. data/ext/third_party/json/include/tao/json/ubjson/events/to_stream.hpp +0 -174
  1355. data/ext/third_party/json/include/tao/json/ubjson/events/to_string.hpp +0 -31
  1356. data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +0 -33
  1357. data/ext/third_party/json/include/tao/json/ubjson/from_input.hpp +0 -33
  1358. data/ext/third_party/json/include/tao/json/ubjson/from_string.hpp +0 -32
  1359. data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +0 -413
  1360. data/ext/third_party/json/include/tao/json/ubjson/internal/marker.hpp +0 -46
  1361. data/ext/third_party/json/include/tao/json/ubjson/parts_parser.hpp +0 -393
  1362. data/ext/third_party/json/include/tao/json/ubjson/to_stream.hpp +0 -28
  1363. data/ext/third_party/json/include/tao/json/ubjson/to_string.hpp +0 -29
  1364. data/ext/third_party/json/include/tao/json/ubjson.hpp +0 -18
  1365. data/ext/third_party/json/include/tao/json/utf8.hpp +0 -57
  1366. data/ext/third_party/json/include/tao/json/value.hpp +0 -12
  1367. data/ext/third_party/json/include/tao/json.hpp +0 -45
  1368. data/ext/third_party/snappy/.appveyor.yml +0 -36
  1369. data/ext/third_party/snappy/.gitignore +0 -8
  1370. data/ext/third_party/snappy/.travis.yml +0 -98
  1371. data/ext/third_party/snappy/AUTHORS +0 -1
  1372. data/ext/third_party/snappy/CMakeLists.txt +0 -345
  1373. data/ext/third_party/snappy/CONTRIBUTING.md +0 -26
  1374. data/ext/third_party/snappy/COPYING +0 -54
  1375. data/ext/third_party/snappy/NEWS +0 -188
  1376. data/ext/third_party/snappy/README.md +0 -148
  1377. data/ext/third_party/snappy/cmake/SnappyConfig.cmake.in +0 -33
  1378. data/ext/third_party/snappy/cmake/config.h.in +0 -59
  1379. data/ext/third_party/snappy/docs/README.md +0 -72
  1380. data/ext/third_party/snappy/format_description.txt +0 -110
  1381. data/ext/third_party/snappy/framing_format.txt +0 -135
  1382. data/ext/third_party/snappy/snappy-c.cc +0 -90
  1383. data/ext/third_party/snappy/snappy-c.h +0 -138
  1384. data/ext/third_party/snappy/snappy-internal.h +0 -315
  1385. data/ext/third_party/snappy/snappy-sinksource.cc +0 -121
  1386. data/ext/third_party/snappy/snappy-sinksource.h +0 -182
  1387. data/ext/third_party/snappy/snappy-stubs-internal.cc +0 -42
  1388. data/ext/third_party/snappy/snappy-stubs-internal.h +0 -493
  1389. data/ext/third_party/snappy/snappy-stubs-public.h.in +0 -63
  1390. data/ext/third_party/snappy/snappy-test.cc +0 -613
  1391. data/ext/third_party/snappy/snappy-test.h +0 -526
  1392. data/ext/third_party/snappy/snappy.cc +0 -1770
  1393. data/ext/third_party/snappy/snappy.h +0 -209
  1394. data/ext/third_party/snappy/snappy_compress_fuzzer.cc +0 -60
  1395. data/ext/third_party/snappy/snappy_uncompress_fuzzer.cc +0 -58
  1396. data/ext/third_party/snappy/snappy_unittest.cc +0 -1512
  1397. data/ext/third_party/spdlog/.clang-format +0 -108
  1398. data/ext/third_party/spdlog/.clang-tidy +0 -54
  1399. data/ext/third_party/spdlog/.gitattributes +0 -1
  1400. data/ext/third_party/spdlog/.gitignore +0 -83
  1401. data/ext/third_party/spdlog/.travis.yml +0 -112
  1402. data/ext/third_party/spdlog/CMakeLists.txt +0 -324
  1403. data/ext/third_party/spdlog/INSTALL +0 -24
  1404. data/ext/third_party/spdlog/LICENSE +0 -26
  1405. data/ext/third_party/spdlog/README.md +0 -423
  1406. data/ext/third_party/spdlog/appveyor.yml +0 -51
  1407. data/ext/third_party/spdlog/cmake/ide.cmake +0 -18
  1408. data/ext/third_party/spdlog/cmake/pch.h.in +0 -258
  1409. data/ext/third_party/spdlog/cmake/spdlog.pc.in +0 -13
  1410. data/ext/third_party/spdlog/cmake/spdlogCPack.cmake +0 -46
  1411. data/ext/third_party/spdlog/cmake/spdlogConfig.cmake.in +0 -15
  1412. data/ext/third_party/spdlog/cmake/utils.cmake +0 -61
  1413. data/ext/third_party/spdlog/cmake/version.rc.in +0 -42
  1414. data/ext/third_party/spdlog/include/spdlog/async.h +0 -93
  1415. data/ext/third_party/spdlog/include/spdlog/async_logger-inl.h +0 -92
  1416. data/ext/third_party/spdlog/include/spdlog/async_logger.h +0 -68
  1417. data/ext/third_party/spdlog/include/spdlog/cfg/argv.h +0 -45
  1418. data/ext/third_party/spdlog/include/spdlog/cfg/env.h +0 -36
  1419. data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +0 -103
  1420. data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +0 -28
  1421. data/ext/third_party/spdlog/include/spdlog/cfg/log_levels.h +0 -47
  1422. data/ext/third_party/spdlog/include/spdlog/common-inl.h +0 -76
  1423. data/ext/third_party/spdlog/include/spdlog/common.h +0 -246
  1424. data/ext/third_party/spdlog/include/spdlog/details/backtracer-inl.h +0 -69
  1425. data/ext/third_party/spdlog/include/spdlog/details/backtracer.h +0 -45
  1426. data/ext/third_party/spdlog/include/spdlog/details/circular_q.h +0 -141
  1427. data/ext/third_party/spdlog/include/spdlog/details/console_globals.h +0 -32
  1428. data/ext/third_party/spdlog/include/spdlog/details/file_helper-inl.h +0 -132
  1429. data/ext/third_party/spdlog/include/spdlog/details/file_helper.h +0 -59
  1430. data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +0 -108
  1431. data/ext/third_party/spdlog/include/spdlog/details/log_msg-inl.h +0 -37
  1432. data/ext/third_party/spdlog/include/spdlog/details/log_msg.h +0 -36
  1433. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -58
  1434. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer.h +0 -33
  1435. data/ext/third_party/spdlog/include/spdlog/details/mpmc_blocking_q.h +0 -120
  1436. data/ext/third_party/spdlog/include/spdlog/details/null_mutex.h +0 -49
  1437. data/ext/third_party/spdlog/include/spdlog/details/os-inl.h +0 -554
  1438. data/ext/third_party/spdlog/include/spdlog/details/os.h +0 -111
  1439. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -49
  1440. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker.h +0 -40
  1441. data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +0 -299
  1442. data/ext/third_party/spdlog/include/spdlog/details/registry.h +0 -112
  1443. data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +0 -24
  1444. data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +0 -175
  1445. data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +0 -145
  1446. data/ext/third_party/spdlog/include/spdlog/details/thread_pool-inl.h +0 -124
  1447. data/ext/third_party/spdlog/include/spdlog/details/thread_pool.h +0 -120
  1448. data/ext/third_party/spdlog/include/spdlog/details/windows_include.h +0 -11
  1449. data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -216
  1450. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/LICENSE.rst +0 -27
  1451. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -1119
  1452. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +0 -568
  1453. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +0 -595
  1454. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +0 -1789
  1455. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1403
  1456. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +0 -3648
  1457. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +0 -78
  1458. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -143
  1459. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +0 -2
  1460. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +0 -721
  1461. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -387
  1462. data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +0 -25
  1463. data/ext/third_party/spdlog/include/spdlog/fmt/ostr.h +0 -20
  1464. data/ext/third_party/spdlog/include/spdlog/formatter.h +0 -18
  1465. data/ext/third_party/spdlog/include/spdlog/fwd.h +0 -14
  1466. data/ext/third_party/spdlog/include/spdlog/logger-inl.h +0 -253
  1467. data/ext/third_party/spdlog/include/spdlog/logger.h +0 -392
  1468. data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +0 -1358
  1469. data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +0 -126
  1470. data/ext/third_party/spdlog/include/spdlog/sinks/android_sink.h +0 -119
  1471. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -143
  1472. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink.h +0 -118
  1473. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -63
  1474. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink.h +0 -52
  1475. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -43
  1476. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -58
  1477. data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +0 -204
  1478. data/ext/third_party/spdlog/include/spdlog/sinks/dist_sink.h +0 -97
  1479. data/ext/third_party/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -90
  1480. data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +0 -49
  1481. data/ext/third_party/spdlog/include/spdlog/sinks/null_sink.h +0 -44
  1482. data/ext/third_party/spdlog/include/spdlog/sinks/ostream_sink.h +0 -50
  1483. data/ext/third_party/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -72
  1484. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +0 -131
  1485. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -78
  1486. data/ext/third_party/spdlog/include/spdlog/sinks/sink-inl.h +0 -25
  1487. data/ext/third_party/spdlog/include/spdlog/sinks/sink.h +0 -35
  1488. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -38
  1489. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -45
  1490. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -94
  1491. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -80
  1492. data/ext/third_party/spdlog/include/spdlog/sinks/syslog_sink.h +0 -109
  1493. data/ext/third_party/spdlog/include/spdlog/sinks/systemd_sink.h +0 -103
  1494. data/ext/third_party/spdlog/include/spdlog/sinks/tcp_sink.h +0 -81
  1495. data/ext/third_party/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -266
  1496. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +0 -180
  1497. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -94
  1498. data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +0 -115
  1499. data/ext/third_party/spdlog/include/spdlog/spdlog.h +0 -340
  1500. data/ext/third_party/spdlog/include/spdlog/tweakme.h +0 -116
  1501. data/ext/third_party/spdlog/include/spdlog/version.h +0 -10
  1502. data/ext/third_party/spdlog/src/async.cpp +0 -13
  1503. data/ext/third_party/spdlog/src/cfg.cpp +0 -8
  1504. data/ext/third_party/spdlog/src/color_sinks.cpp +0 -51
  1505. data/ext/third_party/spdlog/src/file_sinks.cpp +0 -20
  1506. data/ext/third_party/spdlog/src/fmt.cpp +0 -189
  1507. data/ext/third_party/spdlog/src/spdlog.cpp +0 -26
  1508. data/ext/third_party/spdlog/src/stdout_sinks.cpp +0 -29
  1509. data/lib/couchbase/libcouchbase.so +0 -0
  1510. data/rbi/couchbase.rbi +0 -79
@@ -0,0 +1,2837 @@
1
+ # Copyright 2020-2021 Couchbase, Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "couchbase/utils/time"
16
+ require "couchbase/config_profiles"
17
+ require "couchbase/json_transcoder"
18
+
19
+ module Couchbase
20
+ # Definition of the Option classes for data APIs
21
+ module Options # rubocop:disable Metrics/ModuleLength
22
+ # Base class for most of the options
23
+ class Base
24
+ attr_accessor :timeout # @return [Integer, #in_milliseconds, nil]
25
+ attr_accessor :retry_strategy # @return [Proc, nil]
26
+ attr_accessor :client_context # @return [Hash, nil]
27
+ attr_accessor :parent_span # @return [Span, nil]
28
+
29
+ # @param [Integer, #in_milliseconds, nil] timeout the time in milliseconds allowed for the operation to complete
30
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
31
+ # @param [Hash, nil] client_context the client context data, if set
32
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
33
+ #
34
+ # @yieldparam [Base]
35
+ def initialize(timeout: nil,
36
+ retry_strategy: nil,
37
+ client_context: nil,
38
+ parent_span: nil)
39
+ @timeout = timeout
40
+ @retry_strategy = retry_strategy
41
+ @client_context = client_context
42
+ @parent_span = parent_span
43
+ yield self if block_given?
44
+ end
45
+
46
+ # @api private
47
+ def to_backend
48
+ {
49
+ timeout: Utils::Time.extract_duration(@timeout),
50
+ }
51
+ end
52
+ end
53
+
54
+ # Options for {Collection#get}
55
+ class Get < Base
56
+ attr_accessor :with_expiry # @return [Boolean]
57
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String, Integer)]
58
+
59
+ # Creates an instance of options for {Collection#get}
60
+ #
61
+ # @param [Array<String>] projections a list of paths that should be loaded if present.
62
+ # @param [Boolean] with_expiry if +true+ the expiration will be also fetched with {Collection#get}
63
+ # @param [JsonTranscoder, #decode(String, Integer)] transcoder used for decoding
64
+ #
65
+ # @param [Integer, #in_milliseconds, nil] timeout the time in milliseconds allowed for the operation to complete
66
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
67
+ # @param [Hash, nil] client_context the client context data, if set
68
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
69
+ #
70
+ # @yieldparam [Get] self
71
+ def initialize(projections: [],
72
+ with_expiry: false,
73
+ transcoder: JsonTranscoder.new,
74
+ timeout: nil,
75
+ retry_strategy: nil,
76
+ client_context: nil,
77
+ parent_span: nil)
78
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
79
+ @projections = projections
80
+ @with_expiry = with_expiry
81
+ @transcoder = transcoder
82
+ @preserve_array_indexes = false
83
+ yield self if block_given?
84
+ end
85
+
86
+ # Allows to specify a custom list paths to fetch from the document instead of the whole.
87
+ #
88
+ # Note that a maximum of 16 individual paths can be projected at a time due to a server limitation. If you need
89
+ # more than that, think about fetching less-generic paths or the full document straight away.
90
+ #
91
+ # @param [String, Array<String>] paths a path that should be loaded if present.
92
+ def project(*paths)
93
+ @projections ||= []
94
+ @projections |= paths.flatten # union with current projections
95
+ end
96
+
97
+ # @api private
98
+ # @return [Boolean] whether to use sparse arrays (default +false+)
99
+ attr_accessor :preserve_array_indexes
100
+
101
+ # @api private
102
+ # @return [Array<String>] list of paths to project
103
+ attr_accessor :projections
104
+
105
+ # @api private
106
+ # @return [Boolean]
107
+ def need_projected_get?
108
+ @with_expiry || !@projections&.empty?
109
+ end
110
+
111
+ # @api private
112
+ def to_backend
113
+ options = {
114
+ timeout: Utils::Time.extract_duration(@timeout),
115
+ }
116
+ options.update(with_expiry: true) if @with_expiry
117
+ unless @projections&.empty?
118
+ options.update({
119
+ projections: @projections,
120
+ preserve_array_indexes: @preserve_array_indexes,
121
+ })
122
+ end
123
+ options
124
+ end
125
+
126
+ # @api private
127
+ DEFAULT = Get.new.freeze
128
+ end
129
+
130
+ # Options for {Collection#get_multi}
131
+ class GetMulti < Base
132
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String, Integer)]
133
+
134
+ # Creates an instance of options for {Collection#get_multi}
135
+ #
136
+ # @param [JsonTranscoder, #decode(String, Integer)] transcoder used for decoding
137
+ #
138
+ # @param [Integer, #in_milliseconds, nil] timeout the time in milliseconds allowed for the operation to complete
139
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
140
+ # @param [Hash, nil] client_context the client context data, if set
141
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
142
+ #
143
+ # @yieldparam [GetMulti] self
144
+ def initialize(transcoder: JsonTranscoder.new,
145
+ timeout: nil,
146
+ retry_strategy: nil,
147
+ client_context: nil,
148
+ parent_span: nil)
149
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
150
+ @transcoder = transcoder
151
+ yield self if block_given?
152
+ end
153
+
154
+ # @api private
155
+ def to_backend
156
+ {
157
+ timeout: Utils::Time.extract_duration(@timeout),
158
+ }
159
+ end
160
+
161
+ # @api private
162
+ DEFAULT = GetMulti.new.freeze
163
+ end
164
+
165
+ # Options for {Collection#get_and_lock}
166
+ class GetAndLock < Base
167
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String, Integer)]
168
+
169
+ # Creates an instance of options for {Collection#get_and_lock}
170
+ #
171
+ # @param [JsonTranscoder, #decode(String, Integer)] transcoder used for decoding
172
+ #
173
+ # @param [Integer, #in_milliseconds, nil] timeout
174
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
175
+ # @param [Hash, nil] client_context the client context data, if set
176
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
177
+ #
178
+ # @yieldparam [GetAndLock] self
179
+ def initialize(transcoder: JsonTranscoder.new,
180
+ timeout: nil,
181
+ retry_strategy: nil,
182
+ client_context: nil,
183
+ parent_span: nil)
184
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
185
+ @transcoder = transcoder
186
+ yield self if block_given?
187
+ end
188
+
189
+ # @api private
190
+ def to_backend
191
+ {
192
+ timeout: Utils::Time.extract_duration(@timeout),
193
+ }
194
+ end
195
+
196
+ # @api private
197
+ DEFAULT = GetAndLock.new.freeze
198
+ end
199
+
200
+ # Options for {Collection#get_and_touch}
201
+ class GetAndTouch < Base
202
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String, Integer)]
203
+
204
+ # Creates an instance of options for {Collection#get_and_touch}
205
+ #
206
+ # @param [JsonTranscoder, #decode(String, Integer)] transcoder used for decoding
207
+ #
208
+ # @param [Integer, #in_milliseconds, nil] timeout
209
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
210
+ # @param [Hash, nil] client_context the client context data, if set
211
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
212
+ #
213
+ # @yieldparam [GetAndTouch] self
214
+ def initialize(transcoder: JsonTranscoder.new,
215
+ timeout: nil,
216
+ retry_strategy: nil,
217
+ client_context: nil,
218
+ parent_span: nil)
219
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
220
+ @transcoder = transcoder
221
+ yield self if block_given?
222
+ end
223
+
224
+ # @api private
225
+ def to_backend
226
+ {
227
+ timeout: Utils::Time.extract_duration(@timeout),
228
+ }
229
+ end
230
+
231
+ # @api private
232
+ DEFAULT = GetAndTouch.new.freeze
233
+ end
234
+
235
+ # Options for {Collection#get_all_replicas}
236
+ class GetAllReplicas < Base
237
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String, Integer)]
238
+
239
+ # Creates an instance of options for {Collection#get_all_replicas}
240
+ #
241
+ # @param [JsonTranscoder, #decode(String, Integer)] transcoder used for decoding
242
+ #
243
+ # @param [Integer, #in_milliseconds, nil] timeout
244
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
245
+ # @param [Hash, nil] client_context the client context data, if set
246
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
247
+ #
248
+ # @yieldparam [GetAllReplicas] self
249
+ def initialize(transcoder: JsonTranscoder.new,
250
+ timeout: nil,
251
+ retry_strategy: nil,
252
+ client_context: nil,
253
+ parent_span: nil)
254
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
255
+ @transcoder = transcoder
256
+ yield self if block_given?
257
+ end
258
+
259
+ # @api private
260
+ def to_backend
261
+ {
262
+ timeout: Utils::Time.extract_duration(@timeout),
263
+ }
264
+ end
265
+
266
+ # @api private
267
+ DEFAULT = GetAllReplicas.new.freeze
268
+ end
269
+
270
+ # Options for {Collection#get_any_replica}
271
+ class GetAnyReplica < Base
272
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String, Integer)]
273
+
274
+ # Creates an instance of options for {Collection#get_any_replica}
275
+ #
276
+ # @param [JsonTranscoder, #decode(String, Integer)] transcoder used for decoding
277
+ #
278
+ # @param [Integer, #in_milliseconds, nil] timeout
279
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
280
+ # @param [Hash, nil] client_context the client context data, if set
281
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
282
+ #
283
+ # @yieldparam [GetAnyReplica] self
284
+ def initialize(transcoder: JsonTranscoder.new,
285
+ timeout: nil,
286
+ retry_strategy: nil,
287
+ client_context: nil,
288
+ parent_span: nil)
289
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
290
+ @transcoder = transcoder
291
+ yield self if block_given?
292
+ end
293
+
294
+ # @api private
295
+ def to_backend
296
+ {
297
+ timeout: Utils::Time.extract_duration(@timeout),
298
+ }
299
+ end
300
+
301
+ # @api private
302
+ DEFAULT = GetAnyReplica.new.freeze
303
+ end
304
+
305
+ # Options for {Collection#exists}
306
+ class Exists < Base
307
+ # Creates an instance of options for {Collection#exists}
308
+ #
309
+ # @param [Integer, #in_milliseconds, nil] timeout
310
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
311
+ # @param [Hash, nil] client_context the client context data, if set
312
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
313
+ #
314
+ # @yieldparam [Exists self
315
+ def initialize(timeout: nil,
316
+ retry_strategy: nil,
317
+ client_context: nil,
318
+ parent_span: nil)
319
+ super
320
+ yield self if block_given?
321
+ end
322
+
323
+ # @api private
324
+ def to_backend
325
+ {
326
+ timeout: Utils::Time.extract_duration(@timeout),
327
+ }
328
+ end
329
+
330
+ # @api private
331
+ DEFAULT = Exists.new.freeze
332
+ end
333
+
334
+ # Options for {Collection#touch}
335
+ class Touch < Base
336
+ # Creates an instance of options for {Collection#touch}
337
+ #
338
+ # @param [Integer, #in_milliseconds, nil] timeout
339
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
340
+ # @param [Hash, nil] client_context the client context data, if set
341
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
342
+ #
343
+ # @yieldparam [TouchOptions] self
344
+ def initialize(timeout: nil,
345
+ retry_strategy: nil,
346
+ client_context: nil,
347
+ parent_span: nil)
348
+ super
349
+ yield self if block_given?
350
+ end
351
+
352
+ # @api private
353
+ def to_backend
354
+ {
355
+ timeout: Utils::Time.extract_duration(@timeout),
356
+ }
357
+ end
358
+
359
+ # @api private
360
+ DEFAULT = Touch.new.freeze
361
+ end
362
+
363
+ # Options for {Collection#unlock}
364
+ class Unlock < Base
365
+ # Creates an instance of options for {Collection#unlock}
366
+ #
367
+ # @param [Integer, #in_milliseconds, nil] timeout
368
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
369
+ # @param [Hash, nil] client_context the client context data, if set
370
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
371
+ #
372
+ # @yieldparam [Unlock] self
373
+ def initialize(timeout: nil,
374
+ retry_strategy: nil,
375
+ client_context: nil,
376
+ parent_span: nil)
377
+ super
378
+ yield self if block_given?
379
+ end
380
+
381
+ # @api private
382
+ def to_backend
383
+ {
384
+ timeout: Utils::Time.extract_duration(@timeout),
385
+ }
386
+ end
387
+
388
+ # @api private
389
+ DEFAULT = Unlock.new.freeze
390
+ end
391
+
392
+ # Options for {Collection#remove}
393
+ class Remove < Base
394
+ attr_accessor :cas # @return [Integer, nil]
395
+ attr_accessor :durability_level # @return [Symbol]
396
+
397
+ # Creates an instance of options for {Collection#remove}
398
+ #
399
+ # @param [Integer, nil] cas CAS value for optimistic locking
400
+ # @param [Symbol] durability_level level of durability
401
+ # +:none+::
402
+ # no enhanced durability required for the mutation
403
+ # +:majority+::
404
+ # the mutation must be replicated to a majority of the Data Service nodes
405
+ # (that is, held in the memory allocated to the bucket)
406
+ # +:majority_and_persist_to_active+::
407
+ # The mutation must be replicated to a majority of the Data Service nodes.
408
+ # Additionally, it must be persisted (that is, written and synchronised to disk) on the
409
+ # node hosting the active partition (vBucket) for the data.
410
+ # +:persist_to_majority+::
411
+ # The mutation must be persisted to a majority of the Data Service nodes.
412
+ # Accordingly, it will be written to disk on those nodes.
413
+ # @param [Symbol] replicate_to number of nodes to replicate
414
+ # +:none+:: do not apply any replication requirements.
415
+ # +:one+:: wait for replication to at least one node.
416
+ # +:two+:: wait for replication to at least two nodes.
417
+ # +:three+:: wait for replication to at least three nodes.
418
+ # @param [Symbol] persist_to number of nodes to persist
419
+ # +:none+:: do not apply any persistence requirements.
420
+ # +:active+:: wait for persistence to active node
421
+ # +:one+:: wait for persistence to at least one node.
422
+ # +:two+:: wait for persistence to at least two nodes.
423
+ # +:three+:: wait for persistence to at least three nodes.
424
+ # +:four+:: wait for persistence to four nodes (active and replicas).
425
+ #
426
+ # @param [Integer, #in_milliseconds, nil] timeout
427
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
428
+ # @param [Hash, nil] client_context the client context data, if set
429
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
430
+ #
431
+ # @yieldparam [Remove]
432
+ def initialize(cas: nil,
433
+ durability_level: :none,
434
+ replicate_to: :none,
435
+ persist_to: :none,
436
+ timeout: nil,
437
+ retry_strategy: nil,
438
+ client_context: nil,
439
+ parent_span: nil)
440
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
441
+ @cas = cas
442
+ if durability_level != :none && (replicate_to != :none || persist_to != :none)
443
+ raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
444
+ end
445
+
446
+ @persist_to = persist_to
447
+ @replicate_to = replicate_to
448
+ @durability_level = durability_level
449
+ yield self if block_given?
450
+ end
451
+
452
+ # @api private
453
+ def to_backend
454
+ {
455
+ timeout: Utils::Time.extract_duration(@timeout),
456
+ durability_level: @durability_level,
457
+ persist_to: @persist_to,
458
+ replicate_to: @replicate_to,
459
+ cas: @cas,
460
+ }
461
+ end
462
+
463
+ # @api private
464
+ DEFAULT = Remove.new.freeze
465
+ end
466
+
467
+ # Options for {Collection#remove_multi}
468
+ class RemoveMulti < Base
469
+ attr_accessor :durability_level # @return [Symbol]
470
+
471
+ # Creates an instance of options for {Collection#remove}
472
+ #
473
+ # @param [Symbol] durability_level level of durability
474
+ # +:none+::
475
+ # no enhanced durability required for the mutation
476
+ # +:majority+::
477
+ # the mutation must be replicated to a majority of the Data Service nodes
478
+ # (that is, held in the memory allocated to the bucket)
479
+ # +:majority_and_persist_to_active+::
480
+ # The mutation must be replicated to a majority of the Data Service nodes.
481
+ # Additionally, it must be persisted (that is, written and synchronised to disk) on the
482
+ # node hosting the active partition (vBucket) for the data.
483
+ # +:persist_to_majority+::
484
+ # The mutation must be persisted to a majority of the Data Service nodes.
485
+ # Accordingly, it will be written to disk on those nodes.
486
+ # @param [Symbol] replicate_to number of nodes to replicate
487
+ # +:none+:: do not apply any replication requirements.
488
+ # +:one+:: wait for replication to at least one node.
489
+ # +:two+:: wait for replication to at least two nodes.
490
+ # +:three+:: wait for replication to at least three nodes.
491
+ # @param [Symbol] persist_to number of nodes to persist
492
+ # +:none+:: do not apply any persistence requirements.
493
+ # +:active+:: wait for persistence to active node
494
+ # +:one+:: wait for persistence to at least one node.
495
+ # +:two+:: wait for persistence to at least two nodes.
496
+ # +:three+:: wait for persistence to at least three nodes.
497
+ # +:four+:: wait for persistence to four nodes (active and replicas).
498
+ #
499
+ # @param [Integer, #in_milliseconds, nil] timeout
500
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
501
+ # @param [Hash, nil] client_context the client context data, if set
502
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
503
+ #
504
+ # @yieldparam [Remove]
505
+ def initialize(durability_level: :none,
506
+ replicate_to: :none,
507
+ persist_to: :none,
508
+ timeout: nil,
509
+ retry_strategy: nil,
510
+ client_context: nil,
511
+ parent_span: nil)
512
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
513
+ if durability_level != :none && (replicate_to != :none || persist_to != :none)
514
+ raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
515
+ end
516
+
517
+ @persist_to = persist_to
518
+ @replicate_to = replicate_to
519
+ @durability_level = durability_level
520
+ yield self if block_given?
521
+ end
522
+
523
+ # @api private
524
+ def to_backend
525
+ {
526
+ timeout: Utils::Time.extract_duration(@timeout),
527
+ durability_level: @durability_level,
528
+ persist_to: @persist_to,
529
+ replicate_to: @replicate_to,
530
+ }
531
+ end
532
+
533
+ # @api private
534
+ DEFAULT = RemoveMulti.new.freeze
535
+ end
536
+
537
+ # Options for {Collection#insert}
538
+ class Insert < Base
539
+ attr_accessor :expiry # @return [Integer, #in_seconds, nil]
540
+ attr_accessor :transcoder # @return [JsonTranscoder, #encode(Object)]
541
+ attr_accessor :durability_level # @return [Symbol]
542
+
543
+ # Creates an instance of options for {Collection#insert}
544
+ #
545
+ # @param [Integer, #in_seconds, Time, nil] expiry expiration time to associate with the document
546
+ # @param [JsonTranscoder, #encode(Object)] transcoder used for encoding
547
+ # @param [Symbol] durability_level level of durability
548
+ # +:none+::
549
+ # no enhanced durability required for the mutation
550
+ # +:majority+::
551
+ # the mutation must be replicated to a majority of the Data Service nodes
552
+ # (that is, held in the memory allocated to the bucket)
553
+ # +:majority_and_persist_to_active+::
554
+ # The mutation must be replicated to a majority of the Data Service nodes.
555
+ # Additionally, it must be persisted (that is, written and synchronised to disk) on the
556
+ # node hosting the active partition (vBucket) for the data.
557
+ # +:persist_to_majority+::
558
+ # The mutation must be persisted to a majority of the Data Service nodes.
559
+ # Accordingly, it will be written to disk on those nodes.
560
+ # @param [Symbol] replicate_to number of nodes to replicate
561
+ # +:none+:: do not apply any replication requirements.
562
+ # +:one+:: wait for replication to at least one node.
563
+ # +:two+:: wait for replication to at least two nodes.
564
+ # +:three+:: wait for replication to at least three nodes.
565
+ # @param [Symbol] persist_to number of nodes to persist
566
+ # +:none+:: do not apply any persistence requirements.
567
+ # +:active+:: wait for persistence to active node
568
+ # +:one+:: wait for persistence to at least one node.
569
+ # +:two+:: wait for persistence to at least two nodes.
570
+ # +:three+:: wait for persistence to at least three nodes.
571
+ # +:four+:: wait for persistence to four nodes (active and replicas).
572
+ #
573
+ # @param [Integer, #in_milliseconds, nil] timeout
574
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
575
+ # @param [Hash, nil] client_context the client context data, if set
576
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
577
+ #
578
+ # @yieldparam [Insert]
579
+ def initialize(expiry: nil,
580
+ transcoder: JsonTranscoder.new,
581
+ durability_level: :none,
582
+ replicate_to: :none,
583
+ persist_to: :none,
584
+ timeout: nil,
585
+ retry_strategy: nil,
586
+ client_context: nil,
587
+ parent_span: nil)
588
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
589
+ @expiry = expiry
590
+ @transcoder = transcoder
591
+ if durability_level != :none && (replicate_to != :none || persist_to != :none)
592
+ raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
593
+ end
594
+
595
+ @persist_to = persist_to
596
+ @replicate_to = replicate_to
597
+ @durability_level = durability_level
598
+ yield self if block_given?
599
+ end
600
+
601
+ # @api private
602
+ def to_backend
603
+ {
604
+ timeout: Utils::Time.extract_duration(@timeout),
605
+ expiry: Utils::Time.extract_expiry_time(@expiry),
606
+ durability_level: @durability_level,
607
+ persist_to: @persist_to,
608
+ replicate_to: @replicate_to,
609
+ }
610
+ end
611
+
612
+ # @api private
613
+ DEFAULT = Insert.new.freeze
614
+ end
615
+
616
+ # Options for {Collection#upsert}
617
+ class Upsert < Base
618
+ attr_accessor :expiry # @return [Integer, #in_seconds, nil]
619
+ attr_accessor :transcoder # @return [JsonTranscoder, #encode(Object)]
620
+ attr_accessor :durability_level # @return [Symbol]
621
+ attr_accessor :preserve_expiry # @return [Boolean]
622
+
623
+ # Creates an instance of options for {Collection#upsert}
624
+ #
625
+ # @param [Integer, #in_seconds, Time, nil] expiry expiration time to associate with the document
626
+ # @param [Boolean] preserve_expiry if true and the document exists, the server will preserve current expiration
627
+ # for the document, otherwise will use {expiry} from the operation.
628
+ # @param [JsonTranscoder, #encode(Object)] transcoder used for encoding
629
+ # @param [Symbol] durability_level level of durability
630
+ # +:none+::
631
+ # no enhanced durability required for the mutation
632
+ # +:majority+::
633
+ # the mutation must be replicated to a majority of the Data Service nodes
634
+ # (that is, held in the memory allocated to the bucket)
635
+ # +:majority_and_persist_to_active+::
636
+ # The mutation must be replicated to a majority of the Data Service nodes.
637
+ # Additionally, it must be persisted (that is, written and synchronised to disk) on the
638
+ # node hosting the active partition (vBucket) for the data.
639
+ # +:persist_to_majority+::
640
+ # The mutation must be persisted to a majority of the Data Service nodes.
641
+ # Accordingly, it will be written to disk on those nodes.
642
+ # @param [Symbol] replicate_to number of nodes to replicate
643
+ # +:none+:: do not apply any replication requirements.
644
+ # +:one+:: wait for replication to at least one node.
645
+ # +:two+:: wait for replication to at least two nodes.
646
+ # +:three+:: wait for replication to at least three nodes.
647
+ # @param [Symbol] persist_to number of nodes to persist
648
+ # +:none+:: do not apply any persistence requirements.
649
+ # +:active+:: wait for persistence to active node
650
+ # +:one+:: wait for persistence to at least one node.
651
+ # +:two+:: wait for persistence to at least two nodes.
652
+ # +:three+:: wait for persistence to at least three nodes.
653
+ # +:four+:: wait for persistence to four nodes (active and replicas).
654
+ #
655
+ # @param [Integer, #in_milliseconds, nil] timeout
656
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
657
+ # @param [Hash, nil] client_context the client context data, if set
658
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
659
+ #
660
+ # @yieldparam [Upsert]
661
+ def initialize(expiry: nil,
662
+ preserve_expiry: false,
663
+ transcoder: JsonTranscoder.new,
664
+ durability_level: :none,
665
+ replicate_to: :none,
666
+ persist_to: :none,
667
+ timeout: nil,
668
+ retry_strategy: nil,
669
+ client_context: nil,
670
+ parent_span: nil)
671
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
672
+ @expiry = expiry
673
+ @preserve_expiry = preserve_expiry
674
+ @transcoder = transcoder
675
+ if durability_level != :none && (replicate_to != :none || persist_to != :none)
676
+ raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
677
+ end
678
+
679
+ @persist_to = persist_to
680
+ @replicate_to = replicate_to
681
+ @durability_level = durability_level
682
+ yield self if block_given?
683
+ end
684
+
685
+ def to_backend
686
+ {
687
+ timeout: Utils::Time.extract_duration(@timeout),
688
+ expiry: Utils::Time.extract_expiry_time(@expiry),
689
+ preserve_expiry: @preserve_expiry,
690
+ durability_level: @durability_level,
691
+ persist_to: @persist_to,
692
+ replicate_to: @replicate_to,
693
+ }
694
+ end
695
+
696
+ # @api private
697
+ DEFAULT = Upsert.new.freeze
698
+ end
699
+
700
+ # Options for {Collection#upsert_multi}
701
+ class UpsertMulti < Base
702
+ attr_accessor :expiry # @return [Integer, #in_seconds, nil]
703
+ attr_accessor :transcoder # @return [JsonTranscoder, #encode(Object)]
704
+ attr_accessor :durability_level # @return [Symbol]
705
+ attr_accessor :preserve_expiry # @return [Boolean]
706
+
707
+ # Creates an instance of options for {Collection#upsert}
708
+ #
709
+ # @param [Integer, #in_seconds, Time, nil] expiry expiration time to associate with the document
710
+ # @param [Boolean] preserve_expiry if true and the document exists, the server will preserve current expiration
711
+ # for the document, otherwise will use {expiry} from the operation.
712
+ # @param [JsonTranscoder, #encode(Object)] transcoder used for encoding
713
+ # @param [Symbol] durability_level level of durability
714
+ # +:none+::
715
+ # no enhanced durability required for the mutation
716
+ # +:majority+::
717
+ # the mutation must be replicated to a majority of the Data Service nodes
718
+ # (that is, held in the memory allocated to the bucket)
719
+ # +:majority_and_persist_to_active+::
720
+ # The mutation must be replicated to a majority of the Data Service nodes.
721
+ # Additionally, it must be persisted (that is, written and synchronised to disk) on the
722
+ # node hosting the active partition (vBucket) for the data.
723
+ # +:persist_to_majority+::
724
+ # The mutation must be persisted to a majority of the Data Service nodes.
725
+ # Accordingly, it will be written to disk on those nodes.
726
+ # @param [Symbol] replicate_to number of nodes to replicate
727
+ # +:none+:: do not apply any replication requirements.
728
+ # +:one+:: wait for replication to at least one node.
729
+ # +:two+:: wait for replication to at least two nodes.
730
+ # +:three+:: wait for replication to at least three nodes.
731
+ # @param [Symbol] persist_to number of nodes to persist
732
+ # +:none+:: do not apply any persistence requirements.
733
+ # +:active+:: wait for persistence to active node
734
+ # +:one+:: wait for persistence to at least one node.
735
+ # +:two+:: wait for persistence to at least two nodes.
736
+ # +:three+:: wait for persistence to at least three nodes.
737
+ # +:four+:: wait for persistence to four nodes (active and replicas).
738
+ #
739
+ # @param [Integer, #in_milliseconds, nil] timeout
740
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
741
+ # @param [Hash, nil] client_context the client context data, if set
742
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
743
+ #
744
+ # @yieldparam [Upsert]
745
+ def initialize(expiry: nil,
746
+ preserve_expiry: false,
747
+ transcoder: JsonTranscoder.new,
748
+ durability_level: :none,
749
+ replicate_to: :none,
750
+ persist_to: :none,
751
+ timeout: nil,
752
+ retry_strategy: nil,
753
+ client_context: nil,
754
+ parent_span: nil)
755
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
756
+ @expiry = expiry
757
+ @preserve_expiry = preserve_expiry
758
+ @transcoder = transcoder
759
+ if durability_level != :none && (replicate_to != :none || persist_to != :none)
760
+ raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
761
+ end
762
+
763
+ @persist_to = persist_to
764
+ @replicate_to = replicate_to
765
+ @durability_level = durability_level
766
+ yield self if block_given?
767
+ end
768
+
769
+ def to_backend
770
+ {
771
+ timeout: Utils::Time.extract_duration(@timeout),
772
+ expiry: Utils::Time.extract_expiry_time(@expiry),
773
+ preserve_expiry: @preserve_expiry,
774
+ durability_level: @durability_level,
775
+ persist_to: @persist_to,
776
+ replicate_to: @replicate_to,
777
+ }
778
+ end
779
+
780
+ # @api private
781
+ DEFAULT = UpsertMulti.new.freeze
782
+ end
783
+
784
+ # Options for {Collection#replace}
785
+ class Replace < Base
786
+ attr_accessor :expiry # @return [Integer, #in_seconds, nil]
787
+ attr_accessor :transcoder # @return [JsonTranscoder, #encode(Object)]
788
+ attr_accessor :cas # @return [Integer, nil]
789
+ attr_accessor :durability_level # @return [Symbol]
790
+ attr_accessor :preserve_expiry # @return [Boolean]
791
+
792
+ # Creates an instance of options for {Collection#replace}
793
+ #
794
+ # @param [Integer, #in_seconds, nil] expiry expiration time to associate with the document
795
+ # @param [Boolean] preserve_expiry if true and the document exists, the server will preserve current expiration
796
+ # for the document, otherwise will use {expiry} from the operation.
797
+ # @param [JsonTranscoder, #encode(Object)] transcoder used for encoding
798
+ # @param [Integer, nil] cas a CAS value that will be taken into account on the server side for optimistic concurrency
799
+ # @param [Symbol] durability_level level of durability
800
+ # +:none+::
801
+ # no enhanced durability required for the mutation
802
+ # +:majority+::
803
+ # the mutation must be replicated to a majority of the Data Service nodes
804
+ # (that is, held in the memory allocated to the bucket)
805
+ # +:majority_and_persist_to_active+::
806
+ # The mutation must be replicated to a majority of the Data Service nodes.
807
+ # Additionally, it must be persisted (that is, written and synchronised to disk) on the
808
+ # node hosting the active partition (vBucket) for the data.
809
+ # +:persist_to_majority+::
810
+ # The mutation must be persisted to a majority of the Data Service nodes.
811
+ # Accordingly, it will be written to disk on those nodes.
812
+ # @param [Symbol] replicate_to number of nodes to replicate
813
+ # +:none+:: do not apply any replication requirements.
814
+ # +:one+:: wait for replication to at least one node.
815
+ # +:two+:: wait for replication to at least two nodes.
816
+ # +:three+:: wait for replication to at least three nodes.
817
+ # @param [Symbol] persist_to number of nodes to persist
818
+ # +:none+:: do not apply any persistence requirements.
819
+ # +:active+:: wait for persistence to active node
820
+ # +:one+:: wait for persistence to at least one node.
821
+ # +:two+:: wait for persistence to at least two nodes.
822
+ # +:three+:: wait for persistence to at least three nodes.
823
+ # +:four+:: wait for persistence to four nodes (active and replicas).
824
+ #
825
+ # @param [Integer, #in_milliseconds, nil] timeout
826
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
827
+ # @param [Hash, nil] client_context the client context data, if set
828
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
829
+ #
830
+ # @yieldparam [Replace]
831
+ def initialize(expiry: nil,
832
+ preserve_expiry: false,
833
+ transcoder: JsonTranscoder.new,
834
+ cas: nil,
835
+ durability_level: :none,
836
+ replicate_to: :none,
837
+ persist_to: :none,
838
+ timeout: nil,
839
+ retry_strategy: nil,
840
+ client_context: nil,
841
+ parent_span: nil)
842
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
843
+ @expiry = expiry
844
+ @preserve_expiry = preserve_expiry
845
+ @transcoder = transcoder
846
+ @cas = cas
847
+ if durability_level != :none && (replicate_to != :none || persist_to != :none)
848
+ raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
849
+ end
850
+
851
+ @persist_to = persist_to
852
+ @replicate_to = replicate_to
853
+ @durability_level = durability_level
854
+ yield self if block_given?
855
+ end
856
+
857
+ def to_backend
858
+ {
859
+ timeout: Utils::Time.extract_duration(@timeout),
860
+ expiry: Utils::Time.extract_expiry_time(@expiry),
861
+ preserve_expiry: @preserve_expiry,
862
+ durability_level: @durability_level,
863
+ persist_to: @persist_to,
864
+ replicate_to: @replicate_to,
865
+ cas: @cas,
866
+ }
867
+ end
868
+
869
+ # @api private
870
+ DEFAULT = Replace.new.freeze
871
+ end
872
+
873
+ # Options for {Collection#mutate_in}
874
+ class MutateIn < Base
875
+ attr_accessor :expiry # @return [Integer, #in_seconds, nil]
876
+ attr_accessor :store_semantics # @return [Symbol]
877
+ attr_accessor :cas # @return [Integer, nil]
878
+ attr_accessor :durability_level # @return [Symbol]
879
+ attr_accessor :transcoder # @return [JsonTranscoder, #encode(Object)]
880
+ attr_accessor :preserve_expiry # @return [Boolean]
881
+
882
+ # Creates an instance of options for {Collection#mutate_in}
883
+ #
884
+ # @param [Integer, #in_seconds, Time, nil] expiry expiration time to associate with the document
885
+ # @param [Boolean] preserve_expiry if true and the document exists, the server will preserve current expiration
886
+ # for the document, otherwise will use {expiry} from the operation.
887
+ # @param [Symbol] store_semantics describes how the outer document store semantics on subdoc should act
888
+ # +:replace+:: replace the document, fail if it does not exist. This is the default
889
+ # +:upsert+:: replace the document or create if it does not exist
890
+ # +:insert+:: create the document, fail if it exists
891
+ # @param [Integer, nil] cas a CAS value that will be taken into account on the server side for optimistic concurrency
892
+ # @param [Boolean] access_deleted for internal use only: allows access to deleted documents that are in "tombstone" form
893
+ # @param [Boolean] create_as_deleted for internal use only: allows creating documents in "tombstone" form
894
+ # @param [Symbol] durability_level level of durability
895
+ # +:none+::
896
+ # no enhanced durability required for the mutation
897
+ # +:majority+::
898
+ # the mutation must be replicated to a majority of the Data Service nodes
899
+ # (that is, held in the memory allocated to the bucket)
900
+ # +:majority_and_persist_to_active+::
901
+ # The mutation must be replicated to a majority of the Data Service nodes.
902
+ # Additionally, it must be persisted (that is, written and synchronised to disk) on the
903
+ # node hosting the active partition (vBucket) for the data.
904
+ # +:persist_to_majority+::
905
+ # The mutation must be persisted to a majority of the Data Service nodes.
906
+ # Accordingly, it will be written to disk on those nodes.
907
+ # @param [Symbol] replicate_to number of nodes to replicate
908
+ # +:none+:: do not apply any replication requirements.
909
+ # +:one+:: wait for replication to at least one node.
910
+ # +:two+:: wait for replication to at least two nodes.
911
+ # +:three+:: wait for replication to at least three nodes.
912
+ # @param [Symbol] persist_to number of nodes to persist
913
+ # +:none+:: do not apply any persistence requirements.
914
+ # +:active+:: wait for persistence to active node
915
+ # +:one+:: wait for persistence to at least one node.
916
+ # +:two+:: wait for persistence to at least two nodes.
917
+ # +:three+:: wait for persistence to at least three nodes.
918
+ # +:four+:: wait for persistence to four nodes (active and replicas).
919
+ # @param [JsonTranscoder, #encode(Object)] transcoder used for encoding
920
+ #
921
+ # @param [Integer, #in_milliseconds, nil] timeout
922
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
923
+ # @param [Hash, nil] client_context the client context data, if set
924
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
925
+ #
926
+ # @yieldparam [MutateIn]
927
+ def initialize(expiry: nil,
928
+ preserve_expiry: false,
929
+ store_semantics: :replace,
930
+ cas: nil,
931
+ access_deleted: false,
932
+ create_as_deleted: false,
933
+ durability_level: :none,
934
+ replicate_to: :none,
935
+ persist_to: :none,
936
+ transcoder: JsonTranscoder.new,
937
+ timeout: nil,
938
+ retry_strategy: nil,
939
+ client_context: nil,
940
+ parent_span: nil)
941
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
942
+ @expiry = expiry
943
+ @preserve_expiry = preserve_expiry
944
+ @store_semantics = store_semantics
945
+ @cas = cas
946
+ @access_deleted = access_deleted
947
+ @create_as_deleted = create_as_deleted
948
+ if durability_level != :none && (replicate_to != :none || persist_to != :none)
949
+ raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
950
+ end
951
+
952
+ @persist_to = persist_to
953
+ @replicate_to = replicate_to
954
+ @durability_level = durability_level
955
+ @transcoder = transcoder
956
+ yield self if block_given?
957
+ end
958
+
959
+ # @api private
960
+ def to_backend
961
+ {
962
+ timeout: Utils::Time.extract_duration(@timeout),
963
+ expiry: Utils::Time.extract_expiry_time(@expiry),
964
+ preserve_expiry: @preserve_expiry,
965
+ durability_level: @durability_level,
966
+ persist_to: @persist_to,
967
+ replicate_to: @replicate_to,
968
+ cas: @cas,
969
+ store_semantics: @store_semantics,
970
+ access_deleted: @access_deleted,
971
+ create_as_deleted: @create_as_deleted,
972
+ }
973
+ end
974
+
975
+ # @api private
976
+ # @return [Boolean]
977
+ attr_accessor :access_deleted
978
+
979
+ # @api private
980
+ # @return [Boolean]
981
+ attr_accessor :create_as_deleted
982
+
983
+ # @api private
984
+ DEFAULT = MutateIn.new.freeze
985
+ end
986
+
987
+ # Options for {Collection#lookup_in}
988
+ class LookupIn < Base
989
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String)]
990
+
991
+ # Creates an instance of options for {Collection#lookup_in}
992
+ #
993
+ # @param [Boolean] access_deleted for internal use only: allows access to deleted documents that are in "tombstone" form
994
+ # @param [JsonTranscoder, #decode(String)] transcoder used for encoding
995
+ #
996
+ # @param [Integer, #in_milliseconds, nil] timeout
997
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
998
+ # @param [Hash, nil] client_context the client context data, if set
999
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
1000
+ #
1001
+ # @yieldparam [LookupIn] self
1002
+ def initialize(access_deleted: false,
1003
+ transcoder: JsonTranscoder.new,
1004
+ timeout: nil,
1005
+ retry_strategy: nil,
1006
+ client_context: nil,
1007
+ parent_span: nil)
1008
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
1009
+ @access_deleted = access_deleted
1010
+ @transcoder = transcoder
1011
+ yield self if block_given?
1012
+ end
1013
+
1014
+ # @api private
1015
+ def to_backend
1016
+ {
1017
+ timeout: Utils::Time.extract_duration(@timeout),
1018
+ access_deleted: @access_deleted,
1019
+ }
1020
+ end
1021
+
1022
+ # @api private
1023
+ # @return [Boolean]
1024
+ attr_accessor :access_deleted
1025
+
1026
+ # @api private
1027
+ DEFAULT = LookupIn.new.freeze
1028
+ end
1029
+
1030
+ # Options for {Collection#lookup_in_any_replica}
1031
+ class LookupInAnyReplica < Base
1032
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String)]
1033
+
1034
+ # Creates an instance of options for {Collection#lookup_in_any_replica}
1035
+ #
1036
+ # @param [JsonTranscoder, #decode(String)] transcoder used for encoding
1037
+ #
1038
+ # @param [Integer, #in_milliseconds, nil] timeout
1039
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
1040
+ # @param [Hash, nil] client_context the client context data, if set
1041
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
1042
+ #
1043
+ # @yieldparam [LookupIn] self
1044
+ def initialize(transcoder: JsonTranscoder.new,
1045
+ timeout: nil,
1046
+ retry_strategy: nil,
1047
+ client_context: nil,
1048
+ parent_span: nil)
1049
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
1050
+ @transcoder = transcoder
1051
+ yield self if block_given?
1052
+ end
1053
+
1054
+ # @api private
1055
+ def to_backend
1056
+ {
1057
+ timeout: Utils::Time.extract_duration(@timeout),
1058
+ }
1059
+ end
1060
+
1061
+ # @api private
1062
+ # @return [Boolean]
1063
+ attr_accessor :access_deleted
1064
+
1065
+ # @api private
1066
+ DEFAULT = LookupInAnyReplica.new.freeze
1067
+ end
1068
+
1069
+ # Options for {Collection#lookup_in_all_replicas}
1070
+ class LookupInAllReplicas < Base
1071
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String)]
1072
+
1073
+ # Creates an instance of options for {Collection#lookup_in_all_replicas}
1074
+ #
1075
+ # @param [JsonTranscoder, #decode(String)] transcoder used for encoding
1076
+ #
1077
+ # @param [Integer, #in_milliseconds, nil] timeout
1078
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
1079
+ # @param [Hash, nil] client_context the client context data, if set
1080
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
1081
+ #
1082
+ # @yieldparam [LookupInAllReplicas] self
1083
+ def initialize(transcoder: JsonTranscoder.new,
1084
+ timeout: nil,
1085
+ retry_strategy: nil,
1086
+ client_context: nil,
1087
+ parent_span: nil)
1088
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
1089
+ @transcoder = transcoder
1090
+ yield self if block_given?
1091
+ end
1092
+
1093
+ # @api private
1094
+ def to_backend
1095
+ {
1096
+ timeout: Utils::Time.extract_duration(@timeout),
1097
+ }
1098
+ end
1099
+
1100
+ # @api private
1101
+ DEFAULT = LookupInAllReplicas.new.freeze
1102
+ end
1103
+
1104
+ # Options for {Collection#scan}
1105
+ class Scan < Base
1106
+ attr_accessor :ids_only # @return [Boolean]
1107
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String)]
1108
+ attr_accessor :mutation_state # @return [MutationState, nil]
1109
+ attr_accessor :batch_byte_limit # @return [Integer, nil]
1110
+ attr_accessor :batch_item_limit # @return [Integer, nil]
1111
+ attr_accessor :concurrency # @return [Integer, nil]
1112
+
1113
+ # Creates an instance of options for {Collection#scan}
1114
+ #
1115
+ # @param [Boolean] ids_only if set to true, the content of the documents is not included in the results
1116
+ # @param [JsonTranscoder, #decode(String)] transcoder used for decoding
1117
+ # @param [MutationState, nil] mutation_state sets the mutation tokens this scan should be consistent with
1118
+ # @param [Integer, nil] batch_byte_limit allows to limit the maximum amount of bytes that are sent from the server
1119
+ # to the client on each partition batch, defaults to 15,000
1120
+ # @param [Integer, nil] batch_item_limit allows to limit the maximum amount of items that are sent from the server
1121
+ # to the client on each partition batch, defaults to 50
1122
+ # @param [Integer, nil] concurrency specifies the maximum number of partitions that can be scanned concurrently,
1123
+ # defaults to 1
1124
+ #
1125
+ # @param [Integer, #in_milliseconds, nil] timeout
1126
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
1127
+ # @param [Hash, nil] client_context the client context data, if set
1128
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
1129
+ #
1130
+ # @yieldparam [LookupIn] self
1131
+ def initialize(ids_only: false,
1132
+ transcoder: JsonTranscoder.new,
1133
+ mutation_state: nil,
1134
+ batch_byte_limit: nil,
1135
+ batch_item_limit: nil,
1136
+ concurrency: nil,
1137
+ timeout: nil,
1138
+ retry_strategy: nil,
1139
+ client_context: nil,
1140
+ parent_span: nil)
1141
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
1142
+ @ids_only = ids_only
1143
+ @transcoder = transcoder
1144
+ @mutation_state = mutation_state
1145
+ @batch_byte_limit = batch_byte_limit
1146
+ @batch_item_limit = batch_item_limit
1147
+ @concurrency = concurrency
1148
+ yield self if block_given?
1149
+ end
1150
+
1151
+ # Sets the mutation tokens this query should be consistent with
1152
+ #
1153
+ # @note overrides consistency level set by {#scan_consistency=}
1154
+ #
1155
+ # @param [MutationState] mutation_state the mutation state containing the mutation tokens
1156
+ def consistent_with(mutation_state)
1157
+ @mutation_state = mutation_state
1158
+ end
1159
+
1160
+ # @api private
1161
+ def to_backend
1162
+ {
1163
+ timeout: Utils::Time.extract_duration(@timeout),
1164
+ ids_only: @ids_only,
1165
+ mutation_state: @mutation_state.to_a,
1166
+ batch_byte_limit: @batch_byte_limit,
1167
+ batch_item_limit: @batch_item_limit,
1168
+ concurrency: @concurrency,
1169
+ }
1170
+ end
1171
+
1172
+ DEFAULT = Scan.new.freeze
1173
+ end
1174
+
1175
+ # Options for {BinaryCollection#append}
1176
+ class Append < Base
1177
+ attr_accessor :cas # @return [Integer]
1178
+ attr_accessor :durability_level # @return [Symbol]
1179
+ attr_accessor :replicate_to # @return [Symbol]
1180
+ attr_accessor :persist_to # @return [Symbol]
1181
+
1182
+ # Creates an instance of options for {BinaryCollection#append}
1183
+ #
1184
+ # @param [Integer] cas The default CAS used (0 means no CAS in this context)
1185
+ # @param [Symbol] durability_level level of durability
1186
+ # +:none+::
1187
+ # no enhanced durability required for the mutation
1188
+ # +:majority+::
1189
+ # the mutation must be replicated to a majority of the Data Service nodes
1190
+ # (that is, held in the memory allocated to the bucket)
1191
+ # +:majority_and_persist_to_active+::
1192
+ # The mutation must be replicated to a majority of the Data Service nodes.
1193
+ # Additionally, it must be persisted (that is, written and synchronised to disk) on the
1194
+ # node hosting the active partition (vBucket) for the data.
1195
+ # +:persist_to_majority+::
1196
+ # The mutation must be persisted to a majority of the Data Service nodes.
1197
+ # Accordingly, it will be written to disk on those nodes.
1198
+ # @param [Symbol] replicate_to number of nodes to replicate
1199
+ # +:none+:: do not apply any replication requirements.
1200
+ # +:one+:: wait for replication to at least one node.
1201
+ # +:two+:: wait for replication to at least two nodes.
1202
+ # +:three+:: wait for replication to at least three nodes.
1203
+ # @param [Symbol] persist_to number of nodes to persist
1204
+ # +:none+:: do not apply any persistence requirements.
1205
+ # +:active+:: wait for persistence to active node
1206
+ # +:one+:: wait for persistence to at least one node.
1207
+ # +:two+:: wait for persistence to at least two nodes.
1208
+ # +:three+:: wait for persistence to at least three nodes.
1209
+ # +:four+:: wait for persistence to four nodes (active and replicas).
1210
+ #
1211
+ # @param [Integer, #in_milliseconds, nil] timeout
1212
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
1213
+ # @param [Hash, nil] client_context the client context data, if set
1214
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
1215
+ #
1216
+ # @yieldparam [Append] self
1217
+ def initialize(cas: nil,
1218
+ durability_level: :none,
1219
+ replicate_to: :none,
1220
+ persist_to: :none,
1221
+ timeout: nil,
1222
+ retry_strategy: nil,
1223
+ client_context: nil,
1224
+ parent_span: nil)
1225
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
1226
+ @cas = cas
1227
+
1228
+ if durability_level != :none && (replicate_to != :none || persist_to != :none)
1229
+ raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
1230
+ end
1231
+
1232
+ @durability_level = durability_level
1233
+ @replicate_to = replicate_to
1234
+ @persist_to = persist_to
1235
+ yield self if block_given?
1236
+ end
1237
+
1238
+ # @api private
1239
+ def to_backend
1240
+ {
1241
+ timeout: Utils::Time.extract_duration(@timeout),
1242
+ cas: @cas,
1243
+ durability_level: @durability_level,
1244
+ persist_to: @persist_to,
1245
+ replicate_to: @replicate_to,
1246
+ }
1247
+ end
1248
+
1249
+ # @api private
1250
+ DEFAULT = Append.new.freeze
1251
+ end
1252
+
1253
+ # Options for {BinaryCollection#prepend}
1254
+ class Prepend < Base
1255
+ attr_accessor :cas # @return [Integer]
1256
+ attr_accessor :durability_level # @return [Symbol]
1257
+ attr_accessor :replicate_to # @return [Symbol]
1258
+ attr_accessor :persist_to # @return [Symbol]
1259
+
1260
+ # Creates an instance of options for {BinaryCollection#prepend}
1261
+ #
1262
+ # @param [Integer] cas The default CAS used (0 means no CAS in this context)
1263
+ # @param [Symbol] durability_level level of durability
1264
+ # +:none+::
1265
+ # no enhanced durability required for the mutation
1266
+ # +:majority+::
1267
+ # the mutation must be replicated to a majority of the Data Service nodes
1268
+ # (that is, held in the memory allocated to the bucket)
1269
+ # +:majority_and_persist_to_active+::
1270
+ # The mutation must be replicated to a majority of the Data Service nodes.
1271
+ # Additionally, it must be persisted (that is, written and synchronised to disk) on the
1272
+ # node hosting the active partition (vBucket) for the data.
1273
+ # +:persist_to_majority+::
1274
+ # The mutation must be persisted to a majority of the Data Service nodes.
1275
+ # Accordingly, it will be written to disk on those nodes.
1276
+ # @param [Symbol] replicate_to number of nodes to replicate
1277
+ # +:none+:: do not apply any replication requirements.
1278
+ # +:one+:: wait for replication to at least one node.
1279
+ # +:two+:: wait for replication to at least two nodes.
1280
+ # +:three+:: wait for replication to at least three nodes.
1281
+ # @param [Symbol] persist_to number of nodes to persist
1282
+ # +:none+:: do not apply any persistence requirements.
1283
+ # +:active+:: wait for persistence to active node
1284
+ # +:one+:: wait for persistence to at least one node.
1285
+ # +:two+:: wait for persistence to at least two nodes.
1286
+ # +:three+:: wait for persistence to at least three nodes.
1287
+ # +:four+:: wait for persistence to four nodes (active and replicas).
1288
+ #
1289
+ # @param [Integer, #in_milliseconds, nil] timeout
1290
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
1291
+ # @param [Hash, nil] client_context the client context data, if set
1292
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
1293
+ #
1294
+ # @yieldparam [Prepend] self
1295
+ def initialize(cas: nil,
1296
+ durability_level: :none,
1297
+ replicate_to: :none,
1298
+ persist_to: :none,
1299
+ timeout: nil,
1300
+ retry_strategy: nil,
1301
+ client_context: nil,
1302
+ parent_span: nil)
1303
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
1304
+ @cas = cas
1305
+
1306
+ if durability_level != :none && (replicate_to != :none || persist_to != :none)
1307
+ raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
1308
+ end
1309
+
1310
+ @durability_level = durability_level
1311
+ @replicate_to = replicate_to
1312
+ @persist_to = persist_to
1313
+ yield self if block_given?
1314
+ end
1315
+
1316
+ # @api private
1317
+ def to_backend
1318
+ {
1319
+ timeout: Utils::Time.extract_duration(@timeout),
1320
+ cas: @cas,
1321
+ durability_level: @durability_level,
1322
+ persist_to: @persist_to,
1323
+ replicate_to: @replicate_to,
1324
+ }
1325
+ end
1326
+
1327
+ # @api private
1328
+ DEFAULT = Prepend.new.freeze
1329
+ end
1330
+
1331
+ # Options for {BinaryCollection#increment}
1332
+ class Increment < Base
1333
+ attr_reader :delta # @return [Integer]
1334
+ attr_accessor :initial # @return [Integer]
1335
+ attr_accessor :expiry # @return [Integer, #in_seconds]
1336
+ attr_accessor :durability_level # @return [Symbol]
1337
+
1338
+ # Creates an instance of options for {BinaryCollection#increment}
1339
+ #
1340
+ # @param [Integer] delta the delta for the operation
1341
+ # @param [Integer] initial if present, holds the initial value
1342
+ # @param [Integer, #in_seconds, Time, nil] expiry if set, holds the expiration for the operation
1343
+ # @param [Symbol] durability_level level of durability
1344
+ # +:none+::
1345
+ # no enhanced durability required for the mutation
1346
+ # +:majority+::
1347
+ # the mutation must be replicated to a majority of the Data Service nodes
1348
+ # (that is, held in the memory allocated to the bucket)
1349
+ # +:majority_and_persist_to_active+::
1350
+ # The mutation must be replicated to a majority of the Data Service nodes.
1351
+ # Additionally, it must be persisted (that is, written and synchronised to disk) on the
1352
+ # node hosting the active partition (vBucket) for the data.
1353
+ # +:persist_to_majority+::
1354
+ # The mutation must be persisted to a majority of the Data Service nodes.
1355
+ # Accordingly, it will be written to disk on those nodes.
1356
+ # @param [Symbol] replicate_to number of nodes to replicate
1357
+ # +:none+:: do not apply any replication requirements.
1358
+ # +:one+:: wait for replication to at least one node.
1359
+ # +:two+:: wait for replication to at least two nodes.
1360
+ # +:three+:: wait for replication to at least three nodes.
1361
+ # @param [Symbol] persist_to number of nodes to persist
1362
+ # +:none+:: do not apply any persistence requirements.
1363
+ # +:active+:: wait for persistence to active node
1364
+ # +:one+:: wait for persistence to at least one node.
1365
+ # +:two+:: wait for persistence to at least two nodes.
1366
+ # +:three+:: wait for persistence to at least three nodes.
1367
+ # +:four+:: wait for persistence to four nodes (active and replicas).
1368
+ #
1369
+ # @param [Integer, #in_milliseconds, nil] timeout
1370
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
1371
+ # @param [Hash, nil] client_context the client context data, if set
1372
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
1373
+ #
1374
+ # @yieldparam [Increment] self
1375
+ def initialize(delta: 1,
1376
+ initial: nil,
1377
+ expiry: nil,
1378
+ durability_level: :none,
1379
+ replicate_to: :none,
1380
+ persist_to: :none,
1381
+ timeout: nil,
1382
+ retry_strategy: nil,
1383
+ client_context: nil,
1384
+ parent_span: nil)
1385
+ raise ArgumentError, "the delta cannot be less than 0" if delta.negative?
1386
+
1387
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
1388
+ @delta = delta
1389
+ @initial = initial
1390
+ @expiry = expiry
1391
+ if durability_level != :none && (replicate_to != :none || persist_to != :none)
1392
+ raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
1393
+ end
1394
+
1395
+ @persist_to = persist_to
1396
+ @replicate_to = replicate_to
1397
+ @durability_level = durability_level
1398
+ yield self if block_given?
1399
+ end
1400
+
1401
+ # @param [Integer] value delta for the operation
1402
+ def delta=(value)
1403
+ raise ArgumentError, "the delta cannot be less than 0" if delta.negative?
1404
+
1405
+ @delta = value
1406
+ end
1407
+
1408
+ # @api private
1409
+ def to_backend
1410
+ {
1411
+ timeout: Utils::Time.extract_duration(@timeout),
1412
+ delta: @delta,
1413
+ initial_value: @initial,
1414
+ expiry: Utils::Time.extract_expiry_time(@expiry),
1415
+ durability_level: @durability_level,
1416
+ persist_to: @persist_to,
1417
+ replicate_to: @replicate_to,
1418
+ }
1419
+ end
1420
+
1421
+ # @api private
1422
+ DEFAULT = Increment.new.freeze
1423
+ end
1424
+
1425
+ # Options for {BinaryCollection#decrement}
1426
+ class Decrement < Base
1427
+ attr_reader :delta # @return [Integer]
1428
+ attr_accessor :initial # @return [Integer]
1429
+ attr_accessor :expiry # @return [Integer, #in_seconds]
1430
+ attr_accessor :durability_level # @return [Symbol]
1431
+
1432
+ # Creates an instance of options for {BinaryCollection#decrement}
1433
+ #
1434
+ # @param [Integer] delta the delta for the operation
1435
+ # @param [Integer] initial if present, holds the initial value
1436
+ # @param [Integer, #in_seconds, Time, nil] expiry if set, holds the expiration for the operation
1437
+ # @param [Symbol] durability_level level of durability
1438
+ # +:none+::
1439
+ # no enhanced durability required for the mutation
1440
+ # +:majority+::
1441
+ # the mutation must be replicated to a majority of the Data Service nodes
1442
+ # (that is, held in the memory allocated to the bucket)
1443
+ # +:majority_and_persist_to_active+::
1444
+ # The mutation must be replicated to a majority of the Data Service nodes.
1445
+ # Additionally, it must be persisted (that is, written and synchronised to disk) on the
1446
+ # node hosting the active partition (vBucket) for the data.
1447
+ # +:persist_to_majority+::
1448
+ # The mutation must be persisted to a majority of the Data Service nodes.
1449
+ # Accordingly, it will be written to disk on those nodes.
1450
+ # @param [Symbol] replicate_to number of nodes to replicate
1451
+ # +:none+:: do not apply any replication requirements.
1452
+ # +:one+:: wait for replication to at least one node.
1453
+ # +:two+:: wait for replication to at least two nodes.
1454
+ # +:three+:: wait for replication to at least three nodes.
1455
+ # @param [Symbol] persist_to number of nodes to persist
1456
+ # +:none+:: do not apply any persistence requirements.
1457
+ # +:active+:: wait for persistence to active node
1458
+ # +:one+:: wait for persistence to at least one node.
1459
+ # +:two+:: wait for persistence to at least two nodes.
1460
+ # +:three+:: wait for persistence to at least three nodes.
1461
+ # +:four+:: wait for persistence to four nodes (active and replicas).
1462
+ #
1463
+ # @param [Integer, #in_milliseconds, nil] timeout
1464
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
1465
+ # @param [Hash, nil] client_context the client context data, if set
1466
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
1467
+ #
1468
+ # @yieldparam [Decrement] self
1469
+ def initialize(delta: 1,
1470
+ initial: nil,
1471
+ expiry: nil,
1472
+ durability_level: :none,
1473
+ replicate_to: :none,
1474
+ persist_to: :none,
1475
+ timeout: nil,
1476
+ retry_strategy: nil,
1477
+ client_context: nil,
1478
+ parent_span: nil)
1479
+ raise ArgumentError, "the delta cannot be less than 0" if delta.negative?
1480
+
1481
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
1482
+ @delta = delta
1483
+ @initial = initial
1484
+ @expiry = expiry
1485
+ if durability_level != :none && (replicate_to != :none || persist_to != :none)
1486
+ raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
1487
+ end
1488
+
1489
+ @persist_to = persist_to
1490
+ @replicate_to = replicate_to
1491
+ @durability_level = durability_level
1492
+ yield self if block_given?
1493
+ end
1494
+
1495
+ # @param [Integer] value delta for the operation
1496
+ def delta=(value)
1497
+ raise ArgumentError, "the delta cannot be less than 0" if delta.negative?
1498
+
1499
+ @delta = value
1500
+ end
1501
+
1502
+ # @api private
1503
+ def to_backend
1504
+ {
1505
+ timeout: Utils::Time.extract_duration(@timeout),
1506
+ delta: @delta,
1507
+ initial_value: @initial,
1508
+ expiry: Utils::Time.extract_expiry_time(@expiry),
1509
+ durability_level: @durability_level,
1510
+ persist_to: @persist_to,
1511
+ replicate_to: @replicate_to,
1512
+ }
1513
+ end
1514
+
1515
+ # @api private
1516
+ DEFAULT = Decrement.new.freeze
1517
+ end
1518
+
1519
+ # Options for {Datastructures::CouchbaseList#initialize}
1520
+ class CouchbaseList
1521
+ attr_accessor :get_options # @return [Get]
1522
+ attr_accessor :remove_options # @return [Remove]
1523
+ attr_accessor :lookup_in_options # @return [LookupIn]
1524
+ attr_accessor :mutate_in_options # @return [MutateIn]
1525
+
1526
+ # Creates an instance of options for {CouchbaseList#initialize}
1527
+ #
1528
+ # @param [Get] get_options
1529
+ # @param [Remove] remove_options
1530
+ # @param [LookupIn] lookup_in_options
1531
+ # @param [MutateIn] mutate_in_options
1532
+ #
1533
+ # @yieldparam [CouchbaseList]
1534
+ def initialize(get_options: Get.new,
1535
+ remove_options: Remove.new,
1536
+ lookup_in_options: LookupIn.new,
1537
+ mutate_in_options: MutateIn.new(store_semantics: :upsert))
1538
+ @get_options = get_options
1539
+ @remove_options = remove_options
1540
+ @lookup_in_options = lookup_in_options
1541
+ @mutate_in_options = mutate_in_options
1542
+ yield self if block_given?
1543
+ end
1544
+ end
1545
+
1546
+ # Options for {Datastructures::CouchbaseMap#initialize}
1547
+ class CouchbaseMap
1548
+ attr_accessor :get_options # @return [Get]
1549
+ attr_accessor :remove_options # @return [Remove]
1550
+ attr_accessor :lookup_in_options # @return [LookupIn]
1551
+ attr_accessor :mutate_in_options # @return [MutateIn]
1552
+
1553
+ # Creates an instance of options for {CouchbaseMap#initialize}
1554
+ #
1555
+ # @param [Get] get_options
1556
+ # @param [Remove] remove_options
1557
+ # @param [LookupIn] lookup_in_options
1558
+ # @param [MutateIn] mutate_in_options
1559
+ #
1560
+ # @yieldparam [CouchbaseMap]
1561
+ def initialize(get_options: Get.new,
1562
+ remove_options: Remove.new,
1563
+ lookup_in_options: LookupIn.new,
1564
+ mutate_in_options: MutateIn.new(store_semantics: :upsert))
1565
+ @get_options = get_options
1566
+ @remove_options = remove_options
1567
+ @lookup_in_options = lookup_in_options
1568
+ @mutate_in_options = mutate_in_options
1569
+ yield self if block_given?
1570
+ end
1571
+ end
1572
+
1573
+ # Options for {Datastructures::CouchbaseQueue#initialize}
1574
+ class CouchbaseQueue
1575
+ attr_accessor :get_options # @return [Get]
1576
+ attr_accessor :remove_options # @return [Remove]
1577
+ attr_accessor :lookup_in_options # @return [LookupIn]
1578
+ attr_accessor :mutate_in_options # @return [MutateIn]
1579
+
1580
+ # Creates an instance of options for {CouchbaseQueue#initialize}
1581
+ #
1582
+ # @param [Get] get_options
1583
+ # @param [Remove] remove_options
1584
+ # @param [LookupIn] lookup_in_options
1585
+ # @param [MutateIn] mutate_in_options
1586
+ #
1587
+ # @yieldparam [CouchbaseQueue]
1588
+ def initialize(get_options: Get.new,
1589
+ remove_options: Remove.new,
1590
+ lookup_in_options: LookupIn.new,
1591
+ mutate_in_options: MutateIn.new(store_semantics: :upsert))
1592
+ @get_options = get_options
1593
+ @remove_options = remove_options
1594
+ @lookup_in_options = lookup_in_options
1595
+ @mutate_in_options = mutate_in_options
1596
+ yield self if block_given?
1597
+ end
1598
+ end
1599
+
1600
+ # Options for {Datastructures::CouchbaseSet#initialize}
1601
+ class CouchbaseSet
1602
+ attr_accessor :get_options # @return [Get]
1603
+ attr_accessor :remove_options # @return [Remove]
1604
+ attr_accessor :lookup_in_options # @return [LookupIn]
1605
+ attr_accessor :mutate_in_options # @return [MutateIn]
1606
+
1607
+ # Creates an instance of options for {CouchbaseSet#initialize}
1608
+ #
1609
+ # @param [Get] get_options
1610
+ # @param [Remove] remove_options
1611
+ # @param [LookupIn] lookup_in_options
1612
+ # @param [MutateIn] mutate_in_options
1613
+ #
1614
+ # @yieldparam [CouchbaseSet]
1615
+ def initialize(get_options: Get.new,
1616
+ remove_options: Remove.new,
1617
+ lookup_in_options: LookupIn.new,
1618
+ mutate_in_options: MutateIn.new(store_semantics: :upsert))
1619
+ @get_options = get_options
1620
+ @remove_options = remove_options
1621
+ @lookup_in_options = lookup_in_options
1622
+ @mutate_in_options = mutate_in_options
1623
+ yield self if block_given?
1624
+ end
1625
+ end
1626
+
1627
+ # Options for {Couchbase::Cluster.connect}
1628
+ #
1629
+ # @example Pass authenticator object to Options
1630
+ # Cluster.connect("couchbase://localhost",
1631
+ # Options::Cluster(authenticator: PasswordAuthenticator.new("Administrator", "password")))
1632
+ #
1633
+ # @example Shorter version, more useful for interactive sessions
1634
+ # Cluster.connect("couchbase://localhost", "Administrator", "password")
1635
+ #
1636
+ # @example Authentication with TLS client certificate (note +couchbases://+ schema)
1637
+ # Cluster.connect("couchbases://localhost?trust_certificate=/tmp/ca.pem",
1638
+ # Options::Cluster(authenticator: CertificateAuthenticator.new("/tmp/certificate.pem", "/tmp/private.key")))
1639
+ #
1640
+ # @see https://docs.couchbase.com/server/current/manage/manage-security/configure-client-certificates.html
1641
+ #
1642
+ # @see .Cluster
1643
+ #
1644
+ class Cluster
1645
+ attr_accessor :authenticator # @return [PasswordAuthenticator, CertificateAuthenticator]
1646
+
1647
+ attr_accessor :enable_metrics # @return [Boolean]
1648
+ attr_accessor :metrics_emit_interval # @return [nil, Integer, #in_milliseconds]
1649
+ attr_accessor :enable_tracing # @return [Boolean]
1650
+ attr_accessor :orphaned_emit_interval # @return [nil, Integer, #in_milliseconds]
1651
+ attr_accessor :orphaned_sample_size # @return [nil, Integer]
1652
+ attr_accessor :threshold_emit_interval # @return [nil, Integer, #in_milliseconds]
1653
+ attr_accessor :threshold_sample_size # @return [nil, Integer]
1654
+ attr_accessor :key_value_threshold # @return [nil, Integer, #in_milliseconds]
1655
+ attr_accessor :query_threshold # @return [nil, Integer, #in_milliseconds]
1656
+ attr_accessor :view_threshold # @return [nil, Integer, #in_milliseconds]
1657
+ attr_accessor :search_threshold # @return [nil, Integer, #in_milliseconds]
1658
+ attr_accessor :analytics_threshold # @return [nil, Integer, #in_milliseconds]
1659
+ attr_accessor :management_threshold # @return [nil, Integer, #in_milliseconds]
1660
+
1661
+ attr_accessor :bootstrap_timeout # @return [nil, Integer, #in_milliseconds]
1662
+ attr_accessor :resolve_timeout # @return [nil, Integer, #in_milliseconds]
1663
+ attr_accessor :connect_timeout # @return [nil, Integer, #in_milliseconds]
1664
+ attr_accessor :key_value_timeout # @return [nil, Integer, #in_milliseconds]
1665
+ attr_accessor :view_timeout # @return [nil, Integer, #in_milliseconds]
1666
+ attr_accessor :query_timeout # @return [nil, Integer, #in_milliseconds]
1667
+ attr_accessor :analytics_timeout # @return [nil, Integer, #in_milliseconds]
1668
+ attr_accessor :search_timeout # @return [nil, Integer, #in_milliseconds]
1669
+ attr_accessor :management_timeout # @return [nil, Integer, #in_milliseconds]
1670
+ attr_accessor :dns_srv_timeout # @return [nil, Integer, #in_milliseconds]
1671
+ attr_accessor :tcp_keep_alive_interval # @return [nil, Integer, #in_milliseconds]
1672
+ attr_accessor :config_poll_interval # @return [nil, Integer, #in_milliseconds]
1673
+ attr_accessor :config_poll_floor # @return [nil, Integer, #in_milliseconds]
1674
+ attr_accessor :config_idle_redial_timeout # @return [nil, Integer, #in_milliseconds]
1675
+ attr_accessor :idle_http_connection_timeout # @return [nil, Integer, #in_milliseconds]
1676
+
1677
+ # Creates an instance of options for {Couchbase::Cluster.connect}
1678
+ #
1679
+ # @param [PasswordAuthenticator, CertificateAuthenticator] authenticator
1680
+ # @param [nil, Integer, #in_milliseconds] key_value_timeout default timeout for Key/Value operations, e.g. {Collection#get}
1681
+ # @param [nil, Integer, #in_milliseconds] view_timeout default timeout for View query
1682
+ # @param [nil, Integer, #in_milliseconds] query_timeout default timeout for N1QL query
1683
+ # @param [nil, Integer, #in_milliseconds] analytics_timeout default timeout for Analytics query
1684
+ # @param [nil, Integer, #in_milliseconds] search_timeout default timeout for Search query
1685
+ # @param [nil, Integer, #in_milliseconds] management_timeout default timeout for management operations
1686
+ #
1687
+ # @see .Cluster
1688
+ #
1689
+ # @yieldparam [Cluster] self
1690
+ def initialize(authenticator: nil,
1691
+ enable_metrics: nil,
1692
+ metrics_emit_interval: nil,
1693
+ enable_tracing: nil,
1694
+ orphaned_emit_interval: nil,
1695
+ orphaned_sample_size: nil,
1696
+ threshold_emit_interval: nil,
1697
+ threshold_sample_size: nil,
1698
+ key_value_threshold: nil,
1699
+ query_threshold: nil,
1700
+ view_threshold: nil,
1701
+ search_threshold: nil,
1702
+ analytics_threshold: nil,
1703
+ management_threshold: nil,
1704
+ bootstrap_timeout: nil,
1705
+ resolve_timeout: nil,
1706
+ connect_timeout: nil,
1707
+ key_value_timeout: nil,
1708
+ view_timeout: nil,
1709
+ query_timeout: nil,
1710
+ analytics_timeout: nil,
1711
+ search_timeout: nil,
1712
+ management_timeout: nil,
1713
+ dns_srv_timeout: nil,
1714
+ tcp_keep_alive_interval: nil,
1715
+ config_poll_interval: nil,
1716
+ config_poll_floor: nil,
1717
+ config_idle_redial_timeout: nil,
1718
+ idle_http_connection_timeout: nil)
1719
+ @authenticator = authenticator
1720
+ @enable_metrics = enable_metrics
1721
+ @metrics_emit_interval = metrics_emit_interval
1722
+ @enable_tracing = enable_tracing
1723
+ @orphaned_emit_interval = orphaned_emit_interval
1724
+ @orphaned_sample_size = orphaned_sample_size
1725
+ @threshold_emit_interval = threshold_emit_interval
1726
+ @threshold_sample_size = threshold_sample_size
1727
+ @key_value_threshold = key_value_threshold
1728
+ @query_threshold = query_threshold
1729
+ @view_threshold = view_threshold
1730
+ @search_threshold = search_threshold
1731
+ @analytics_threshold = analytics_threshold
1732
+ @management_threshold = management_threshold
1733
+ @bootstrap_timeout = bootstrap_timeout
1734
+ @resolve_timeout = resolve_timeout
1735
+ @connect_timeout = connect_timeout
1736
+ @key_value_timeout = key_value_timeout
1737
+ @view_timeout = view_timeout
1738
+ @query_timeout = query_timeout
1739
+ @analytics_timeout = analytics_timeout
1740
+ @search_timeout = search_timeout
1741
+ @management_timeout = management_timeout
1742
+ @dns_srv_timeout = dns_srv_timeout
1743
+ @tcp_keep_alive_interval = tcp_keep_alive_interval
1744
+ @config_poll_interval = config_poll_interval
1745
+ @config_poll_floor = config_poll_floor
1746
+ @config_idle_redial_timeout = config_idle_redial_timeout
1747
+ @idle_http_connection_timeout = idle_http_connection_timeout
1748
+ yield self if block_given?
1749
+ end
1750
+
1751
+ # @param [String] username
1752
+ # @param [String] password
1753
+ def authenticate(username, password)
1754
+ @authenticator = PasswordAuthenticator.new(username, password)
1755
+ end
1756
+
1757
+ # @param [String] profile_name The name of the configuration profile to apply (e.g. "wan_development")
1758
+ def apply_profile(profile_name)
1759
+ ConfigProfiles::KNOWN_PROFILES.apply(profile_name, self)
1760
+ end
1761
+
1762
+ # @api private
1763
+ def to_backend
1764
+ {
1765
+ enable_metrics: @enable_metrics,
1766
+ metrics_emit_interval: Utils::Time.extract_duration(@metrics_emit_interval),
1767
+ enable_tracing: @enable_tracing,
1768
+ orphaned_emit_interval: Utils::Time.extract_duration(@orphaned_emit_interval),
1769
+ orphaned_sample_size: @orphaned_sample_size,
1770
+ threshold_emit_interval: Utils::Time.extract_duration(@threshold_emit_interval),
1771
+ threshold_sample_size: @threshold_sample_size,
1772
+ key_value_threshold: Utils::Time.extract_duration(@key_value_threshold),
1773
+ query_threshold: Utils::Time.extract_duration(@query_threshold),
1774
+ view_threshold: Utils::Time.extract_duration(@view_threshold),
1775
+ search_threshold: Utils::Time.extract_duration(@search_threshold),
1776
+ analytics_threshold: Utils::Time.extract_duration(@analytics_threshold),
1777
+ management_threshold: Utils::Time.extract_duration(@management_threshold),
1778
+ bootstrap_timeout: Utils::Time.extract_duration(@bootstrap_timeout),
1779
+ resolve_timeout: Utils::Time.extract_duration(@resolve_timeout),
1780
+ connect_timeout: Utils::Time.extract_duration(@connect_timeout),
1781
+ key_value_timeout: Utils::Time.extract_duration(@key_value_timeout),
1782
+ view_timeout: Utils::Time.extract_duration(@view_timeout),
1783
+ query_timeout: Utils::Time.extract_duration(@query_timeout),
1784
+ analytics_timeout: Utils::Time.extract_duration(@analytics_timeout),
1785
+ search_timeout: Utils::Time.extract_duration(@search_timeout),
1786
+ management_timeout: Utils::Time.extract_duration(@management_timeout),
1787
+ dns_srv_timeout: Utils::Time.extract_duration(@dns_srv_timeout),
1788
+ tcp_keep_alive_interval: Utils::Time.extract_duration(@tcp_keep_alive_interval),
1789
+ config_poll_interval: Utils::Time.extract_duration(@config_poll_interval),
1790
+ config_poll_floor: Utils::Time.extract_duration(@config_poll_floor),
1791
+ config_idle_redial_timeout: Utils::Time.extract_duration(@config_idle_redial_timeout),
1792
+ idle_http_connection_timeout: Utils::Time.extract_duration(@idle_http_connection_timeout),
1793
+ }
1794
+ end
1795
+ end
1796
+
1797
+ # Options for {Couchbase::Cluster#diagnostics}
1798
+ class Diagnostics
1799
+ attr_accessor :report_id # @return [String]
1800
+
1801
+ # Creates an instance of options for {Couchbase::Cluster#diagnostics}
1802
+ #
1803
+ # @param [String] report_id Holds custom report ID.
1804
+ #
1805
+ # @yieldparam [Diagnostics] self
1806
+ def initialize(report_id: nil)
1807
+ @report_id = report_id
1808
+ yield self if block_given?
1809
+ end
1810
+
1811
+ # @api private
1812
+ DEFAULT = Diagnostics.new.freeze
1813
+ end
1814
+
1815
+ # Options for {Couchbase::Bucket#ping}
1816
+ class Ping
1817
+ attr_accessor :report_id # @return [String]
1818
+ attr_accessor :service_types # @return [Array<Symbol>]
1819
+ attr_accessor :timeout # @return [Integer, #in_milliseconds]
1820
+
1821
+ # Creates an instance of options for {Couchbase::Bucket#ping}
1822
+ #
1823
+ # @param [String] report_id Holds custom report id.
1824
+ # @@param [Array<Symbol>] service_types The service types to limit this diagnostics request
1825
+ # @param [Integer, #in_milliseconds] timeout
1826
+ #
1827
+ # @yieldparam [Ping] self
1828
+ def initialize(report_id: nil,
1829
+ service_types: [:kv, :query, :analytics, :search, :views, :management],
1830
+ timeout: nil)
1831
+ @report_id = report_id
1832
+ @service_types = service_types
1833
+ @timeout = timeout
1834
+ yield self if block_given?
1835
+ end
1836
+
1837
+ # @api private
1838
+ def to_backend
1839
+ {
1840
+ timeout: Utils::Time.extract_duration(@timeout),
1841
+ service_types: @service_types,
1842
+ report_id: @report_id,
1843
+ }
1844
+ end
1845
+
1846
+ # @api private
1847
+ DEFAULT = Ping.new.freeze
1848
+ end
1849
+
1850
+ # Options for {Couchbase::Cluster#analytics_query}
1851
+ class Analytics < Base
1852
+ attr_accessor :client_context_id # @return [String]
1853
+ attr_accessor :scan_consistency # @return [Symbol]
1854
+ attr_accessor :readonly # @return [Boolean]
1855
+ attr_accessor :priority # @return [Boolean]
1856
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String)]
1857
+ attr_accessor :scope_qualifier # @return [String]
1858
+
1859
+ # Creates new instance of options for {Couchbase::Cluster#analytics_query}
1860
+ #
1861
+ # @param [String] client_context_id provides a custom client context ID for this query
1862
+ # @param [Symbol] scan_consistency specifies level of consistency for the query
1863
+ # +:not_bounded+::
1864
+ # The index will return whatever state it has to the analytics query engine at the time of query.
1865
+ #
1866
+ # This is the default (for single-statement requests). No timestamp vector is used in the index scan.
1867
+ # This is also the fastest mode, because we avoid the cost of obtaining the vector, and we also avoid
1868
+ # any wait for the index
1869
+ # +:request_plus+::
1870
+ # The index will wait until all mutations have been processed at the time of request before being processed
1871
+ # in the analytics query engine.
1872
+ #
1873
+ # This implements strong consistency per request. Before processing the request, a current vector is obtained.
1874
+ # The vector is used as a lower bound for the statements in the request.
1875
+ # @param [Boolean] readonly allows explicitly marking a query as being readonly and not mutating any documents on
1876
+ # the server side.
1877
+ # @param [Boolean] priority allows to give certain requests higher priority than others
1878
+ # @param [JsonTranscoder] transcoder to decode rows
1879
+ # @param [Array<#to_json>, nil] positional_parameters parameters to be used as substitution for numbered macros
1880
+ # like +$1+, +$2+ in query string
1881
+ # @param [Hash<String => #to_json>, nil] named_parameters parameters to be used as substitution for named macros
1882
+ # like +$name+ in query string
1883
+ # @param [String, nil] scope_qualifier Associate scope qualifier (also known as +query_context+) with the query.
1884
+ # The qualifier must be in form +{bucket_name}.{scope_name}+ or +default:{bucket_name}.{scope_name}+.
1885
+ #
1886
+ # @param [Integer, #in_milliseconds, nil] timeout
1887
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
1888
+ # @param [Hash, nil] client_context the client context data, if set
1889
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
1890
+ #
1891
+ # @note Either +positional_parameters+ or +named_parameters+ may be specified.
1892
+ #
1893
+ # @yieldparam [Analytics] self
1894
+ def initialize(client_context_id: nil,
1895
+ scan_consistency: nil,
1896
+ readonly: false,
1897
+ priority: nil,
1898
+ transcoder: JsonTranscoder.new,
1899
+ positional_parameters: nil,
1900
+ named_parameters: nil,
1901
+ scope_qualifier: nil,
1902
+ timeout: nil,
1903
+ retry_strategy: nil,
1904
+ client_context: nil,
1905
+ parent_span: nil)
1906
+ raise ArgumentError, "Cannot pass positional and named parameters at the same time" if positional_parameters && named_parameters
1907
+
1908
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
1909
+ @client_context_id = client_context_id
1910
+ @scan_consistency = scan_consistency
1911
+ @readonly = readonly
1912
+ @priority = priority
1913
+ @transcoder = transcoder
1914
+ @positional_parameters = positional_parameters
1915
+ @named_parameters = named_parameters
1916
+ @scope_qualifier = scope_qualifier
1917
+ @raw_parameters = {}
1918
+ yield self if block_given?
1919
+ end
1920
+
1921
+ # Sets positional parameters for the query
1922
+ #
1923
+ # @param [Array] positional the list of parameters that have to be substituted in the statement
1924
+ def positional_parameters(positional)
1925
+ @positional_parameters = positional
1926
+ @named_parameters = nil
1927
+ end
1928
+
1929
+ # Sets named parameters for the query
1930
+ #
1931
+ # @param [Hash] named the key/value map of the parameters to substitute in the statement
1932
+ def named_parameters(named)
1933
+ @named_parameters = named
1934
+ @positional_parameters = nil
1935
+ end
1936
+
1937
+ # Allows providing custom JSON key/value pairs for advanced usage
1938
+ #
1939
+ # @param [String] key the parameter name (key of the JSON property)
1940
+ # @param [Object] value the parameter value (value of the JSON property)
1941
+ def raw(key, value)
1942
+ @raw_parameters[key] = JSON.generate(value)
1943
+ end
1944
+
1945
+ # @api private
1946
+ def to_backend(scope_name: nil, bucket_name: nil)
1947
+ {
1948
+ timeout: Utils::Time.extract_duration(@timeout),
1949
+ client_context_id: @client_context_id,
1950
+ scan_consistency: @scan_consistency,
1951
+ readonly: @readonly,
1952
+ priority: @priority,
1953
+ positional_parameters: export_positional_parameters,
1954
+ named_parameters: export_named_parameters,
1955
+ raw_parameters: @raw_parameters,
1956
+ scope_qualifier: @scope_qualifier,
1957
+ scope_name: scope_name,
1958
+ bucket_name: bucket_name,
1959
+ }
1960
+ end
1961
+
1962
+ # @api private
1963
+ DEFAULT = Analytics.new.freeze
1964
+
1965
+ private
1966
+
1967
+ # @api private
1968
+ # @return [Array<String>, nil]
1969
+ def export_positional_parameters
1970
+ @positional_parameters&.map { |p| JSON.dump(p) }
1971
+ end
1972
+
1973
+ # @api private
1974
+ # @return [Hash<String => String>, nil]
1975
+ def export_named_parameters
1976
+ @named_parameters&.each_with_object({}) { |(n, v), o| o[n.to_s] = JSON.dump(v) }
1977
+ end
1978
+
1979
+ # @api private
1980
+ # @return [Hash<String => #to_json>]
1981
+ attr_reader :raw_parameters
1982
+ end
1983
+
1984
+ # Options for {Couchbase::Cluster#query}
1985
+ class Query < Base
1986
+ attr_accessor :adhoc # @return [Boolean]
1987
+ attr_accessor :client_context_id # @return [String]
1988
+ attr_accessor :max_parallelism # @return [Integer]
1989
+ attr_accessor :readonly # @return [Boolean]
1990
+ attr_accessor :scan_wait # @return [Integer, #in_milliseconds]
1991
+ attr_accessor :scan_cap # @return [Integer]
1992
+ attr_accessor :pipeline_batch # @return [Integer]
1993
+ attr_accessor :pipeline_cap # @return [Integer]
1994
+ attr_accessor :metrics # @return [Boolean]
1995
+ attr_accessor :profile # @return [Symbol]
1996
+ attr_accessor :flex_index # @return [Boolean]
1997
+ attr_accessor :preserve_expiry # @return [Boolean]
1998
+ attr_accessor :use_replica # @return [Boolean, nil]
1999
+ attr_accessor :scope_qualifier # @return [String]
2000
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String)]
2001
+
2002
+ # Creates new instance of options for {Couchbase::Cluster#query}
2003
+ #
2004
+ # @param [Boolean] adhoc allows turning this request into a prepared statement query
2005
+ # @param [String, nil] client_context_id provides a custom client context ID for this query
2006
+ # @param [Integer, nil] max_parallelism allows overriding the default maximum parallelism for the query execution
2007
+ # on the server side.
2008
+ # @param [Boolean, nil] readonly allows explicitly marking a query as being readonly and not mutating any
2009
+ # documents on the server side.
2010
+ # @param [Integer, #in_milliseconds, nil] scan_wait The maximum duration (in milliseconds) the query engine
2011
+ # is willing to wait before failing. Allows customizing how long (in milliseconds) the query engine is willing
2012
+ # to wait until the index catches up to whatever scan consistency is asked for in this query. Note that if
2013
+ # +:not_bounded+ consistency level is used, this method doesn't do anything at all. If no value is provided to
2014
+ # this method, the server default is used.
2015
+ # @param [Integer, nil] scan_cap customize the maximum buffered channel size between the indexer and the query
2016
+ # service
2017
+ # @param [Integer, nil] pipeline_cap customize the number of items execution operators can batch for fetch
2018
+ # from the Key Value layer on the server.
2019
+ # @param [Integer, nil] pipeline_batch customize the maximum number of items each execution operator can buffer
2020
+ # between various operators on the server.
2021
+ # @param [Boolean, nil] metrics enables per-request metrics in the trailing section of the query
2022
+ # @param [Symbol] profile customize server profile level for this query
2023
+ # +:off+::
2024
+ # No profiling information is added to the query response
2025
+ # +:phases+::
2026
+ # The query response includes a profile section with stats and details about various phases of the query plan
2027
+ # and execution. Three phase times will be included in the +system:active_requests+ and
2028
+ # +system:completed_requests+ monitoring keyspaces.
2029
+ # +:timings+::
2030
+ # Besides the phase times, the profile section of the query response document will include a full query plan
2031
+ # with timing and information about the number of processed documents at each phase. This information will be
2032
+ # included in the system:active_requests and system:completed_requests keyspaces.
2033
+ # @param [Symbol, nil] scan_consistency Sets the mutation tokens this query should be consistent with. Overrides
2034
+ # +mutation_state+.
2035
+ # +:not_bounded+::
2036
+ # The indexer will return whatever state it has to the query engine at the time of query. This is the default
2037
+ # (for single-statement requests).
2038
+ # +:request_plus+::
2039
+ # The indexer will wait until all mutations have been processed at the time of request before returning to
2040
+ # the query engine.
2041
+ # @param [Boolean, nil] flex_index Tells the query engine to use a flex index (utilizing the search service)
2042
+ # @param [Boolean, nil] preserve_expiry Tells the query engine to preserve expiration values set on any documents
2043
+ # modified by this query.
2044
+ # @param [Boolean, nil] use_replica Specifies that the query engine should use replica nodes for KV fetches if
2045
+ # the active node is down. If not provided, the server default will be used
2046
+ # @param [String, nil] scope_qualifier Associate scope qualifier (also known as +query_context+) with the query.
2047
+ # The qualifier must be in form +{bucket_name}.{scope_name}+ or +default:{bucket_name}.{scope_name}+.
2048
+ # @param [JsonTranscoder] transcoder to decode rows
2049
+ # @param [Array<#to_json>, nil] positional_parameters parameters to be used as substitution for numbered macros
2050
+ # like +$1+, +$2+ in query string
2051
+ # @param [Hash<String => #to_json>, nil] named_parameters parameters to be used as substitution for named macros
2052
+ # like +$name+ in query string.
2053
+ #
2054
+ # @param [MutationState, nil] mutation_state Sets the mutation tokens this query should be consistent with.
2055
+ # Overrides +scan_consistency+.
2056
+ #
2057
+ # @param [Integer, #in_milliseconds, nil] timeout
2058
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
2059
+ # @param [Hash, nil] client_context the client context data, if set
2060
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
2061
+ #
2062
+ # @note Either +positional_parameters+ or +named_parameters+ may be specified.
2063
+ #
2064
+ # @yieldparam [Query] self
2065
+ def initialize(adhoc: true,
2066
+ client_context_id: nil,
2067
+ max_parallelism: nil,
2068
+ readonly: false,
2069
+ scan_wait: nil,
2070
+ scan_cap: nil,
2071
+ pipeline_cap: nil,
2072
+ pipeline_batch: nil,
2073
+ metrics: nil,
2074
+ profile: :off,
2075
+ flex_index: nil,
2076
+ preserve_expiry: nil,
2077
+ use_replica: nil,
2078
+ scope_qualifier: nil,
2079
+ scan_consistency: :not_bounded,
2080
+ mutation_state: nil,
2081
+ transcoder: JsonTranscoder.new,
2082
+ positional_parameters: nil,
2083
+ named_parameters: nil,
2084
+ timeout: nil,
2085
+ retry_strategy: nil,
2086
+ client_context: nil,
2087
+ parent_span: nil)
2088
+ raise ArgumentError, "Cannot pass positional and named parameters at the same time" if positional_parameters && named_parameters
2089
+
2090
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
2091
+ @adhoc = adhoc
2092
+ @client_context_id = client_context_id
2093
+ @max_parallelism = max_parallelism
2094
+ @readonly = readonly
2095
+ @scan_wait = scan_wait
2096
+ @scan_cap = scan_cap
2097
+ @pipeline_cap = pipeline_cap
2098
+ @pipeline_batch = pipeline_batch
2099
+ @metrics = metrics
2100
+ @profile = profile
2101
+ @flex_index = flex_index
2102
+ @preserve_expiry = preserve_expiry
2103
+ @use_replica = use_replica
2104
+ @scope_qualifier = scope_qualifier
2105
+ @scan_consistency = scan_consistency
2106
+ @mutation_state = mutation_state
2107
+ @transcoder = transcoder
2108
+ @positional_parameters = positional_parameters
2109
+ @named_parameters = named_parameters
2110
+ @raw_parameters = {}
2111
+ yield self if block_given?
2112
+ end
2113
+
2114
+ # Allows providing custom JSON key/value pairs for advanced usage
2115
+ #
2116
+ # @param [String] key the parameter name (key of the JSON property)
2117
+ # @param [Object] value the parameter value (value of the JSON property)
2118
+ def raw(key, value)
2119
+ @raw_parameters[key] = JSON.generate(value)
2120
+ end
2121
+
2122
+ # Customizes the consistency guarantees for this query
2123
+ #
2124
+ # @note overrides consistency level set by {#consistent_with}
2125
+ #
2126
+ # [+:not_bounded+] The indexer will return whatever state it has to the query engine at the time of query. This is the default (for
2127
+ # single-statement requests).
2128
+ #
2129
+ # [+:request_plus+] The indexer will wait until all mutations have been processed at the time of request before returning to the query
2130
+ # engine.
2131
+ #
2132
+ # @param [:not_bounded, :request_plus] level the index scan consistency to be used for this query
2133
+ def scan_consistency=(level)
2134
+ @mutation_state = nil if @mutation_state
2135
+ @scan_consistency = level
2136
+ end
2137
+
2138
+ # Sets the mutation tokens this query should be consistent with
2139
+ #
2140
+ # @note overrides consistency level set by {#scan_consistency=}
2141
+ #
2142
+ # @param [MutationState] mutation_state the mutation state containing the mutation tokens
2143
+ def consistent_with(mutation_state)
2144
+ @scan_consistency = nil if @scan_consistency
2145
+ @mutation_state = mutation_state
2146
+ end
2147
+
2148
+ # Sets positional parameters for the query
2149
+ #
2150
+ # @param [Array] positional the list of parameters that have to be substituted in the statement
2151
+ def positional_parameters(positional)
2152
+ @positional_parameters = positional
2153
+ @named_parameters = nil
2154
+ end
2155
+
2156
+ # @api private
2157
+ # @return [Array<String>, nil]
2158
+ def export_positional_parameters
2159
+ @positional_parameters&.map { |p| JSON.dump(p) }
2160
+ end
2161
+
2162
+ # Sets named parameters for the query
2163
+ #
2164
+ # @param [Hash] named the key/value map of the parameters to substitute in the statement
2165
+ def named_parameters(named)
2166
+ @named_parameters = named
2167
+ @positional_parameters = nil
2168
+ end
2169
+
2170
+ # @api private
2171
+ # @return [Hash<String => String>, nil]
2172
+ def export_named_parameters
2173
+ @named_parameters&.each_with_object({}) { |(n, v), o| o[n.to_s] = JSON.dump(v) }
2174
+ end
2175
+
2176
+ # @api private
2177
+ # @return [MutationState]
2178
+ attr_reader :mutation_state
2179
+
2180
+ # @api private
2181
+ # @return [Hash<String => #to_json>]
2182
+ attr_reader :raw_parameters
2183
+
2184
+ # @api private
2185
+ def to_backend(scope_name: nil, bucket_name: nil)
2186
+ if scope_name && bucket_name
2187
+ default_query_context = format("default:`%<bucket>s`.`%<scope>s`", bucket: bucket_name, scope: scope_name)
2188
+ end
2189
+ {
2190
+ timeout: Utils::Time.extract_duration(@timeout),
2191
+ adhoc: @adhoc,
2192
+ client_context_id: @client_context_id,
2193
+ max_parallelism: @max_parallelism,
2194
+ readonly: @readonly,
2195
+ flex_index: @flex_index,
2196
+ preserve_expiry: @preserve_expiry,
2197
+ use_replica: @use_replica,
2198
+ scan_wait: Utils::Time.extract_duration(@scan_wait),
2199
+ scan_cap: @scan_cap,
2200
+ pipeline_batch: @pipeline_batch,
2201
+ pipeline_cap: @pipeline_cap,
2202
+ metrics: @metrics,
2203
+ profile: @profile,
2204
+ positional_parameters: export_positional_parameters,
2205
+ named_parameters: export_named_parameters,
2206
+ raw_parameters: @raw_parameters,
2207
+ scan_consistency: @scan_consistency,
2208
+ mutation_state: @mutation_state&.to_a,
2209
+ query_context: @scope_qualifier || default_query_context,
2210
+ }
2211
+ end
2212
+
2213
+ # @api private
2214
+ DEFAULT = Query.new.freeze
2215
+ end
2216
+
2217
+ # Options for {Couchbase::Cluster#search_query} and {Couchbase::Cluster#search}
2218
+ class Search < Base
2219
+ attr_accessor :limit # @return [Integer]
2220
+ attr_accessor :skip # @return [Integer]
2221
+ attr_accessor :explain # @return [Boolean]
2222
+ attr_accessor :highlight_style # @return [Symbol]
2223
+ attr_accessor :highlight_fields # @return [Array<String>]
2224
+ attr_accessor :fields # @return [Array<String>]
2225
+ attr_accessor :disable_scoring # @return [Boolean]
2226
+ attr_accessor :include_locations # @return [Boolean]
2227
+ attr_accessor :collections # @return [Array<String>, nil]
2228
+ attr_accessor :sort # @return [Array<String, Cluster::SearchSort>]
2229
+ attr_accessor :facets # @return [Hash<String => Cluster::SearchFacet>]
2230
+ attr_accessor :transcoder # @return [JsonTranscoder, #decode(String)]
2231
+
2232
+ # @param [Integer] limit limits the number of matches returned from the complete result set.
2233
+ # @param [Integer] skip indicates how many matches are skipped on the result set before starting to return the
2234
+ # matches
2235
+ # @param [Boolean] explain triggers inclusion of additional search result score explanations.
2236
+ # @param [:html, :ansi, nil] highlight_style the style of highlighting in the result excerpts (if not specified,
2237
+ # the server default will be used)
2238
+ # @param [Array<String>] highlight_fields list of the fields to highlight
2239
+ # @param [Array<String>] fields list of field values which should be retrieved for result documents, provided they
2240
+ # were stored while indexing
2241
+ # @param [MutationState] mutation_state the mutation tokens this query should be consistent with
2242
+ # @param [Boolean] disable_scoring If set to true, the server will not perform any scoring on the hits
2243
+ # @param [Boolean] include_locations UNCOMMITTED: If set to true, will include the vector of search_location in rows
2244
+ # @param [Array<String>, nil] collections list of collections by which to filter the results
2245
+ # @param [Array<String, Cluster::SearchSort>] sort Ordering rules to apply to the results. The list might contain
2246
+ # either strings or special objects, that derive from {Cluster::SearchSort}. In case of String, the value
2247
+ # represents the name of the field with optional +-+ in front of the name, which will turn on descending mode
2248
+ # for this field. One field is special is +"_score"+ which will sort results by their score. When nothing
2249
+ # specified, the Server will order results by their score descending, which is equivalent of +"-_score"+.
2250
+ # @param [Hash<String => Cluster::SearchFacet>] facets facets allow to aggregate information collected on a
2251
+ # particular result set
2252
+ # @param [JsonTranscoder, #decode(String)] transcoder to use for the results
2253
+ #
2254
+ # @param [Integer, #in_milliseconds, nil] timeout
2255
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
2256
+ # @param [Hash, nil] client_context the client context data, if set
2257
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
2258
+ #
2259
+ # @yieldparam [Search] self
2260
+ def initialize(limit: nil,
2261
+ skip: nil,
2262
+ explain: false,
2263
+ highlight_style: nil,
2264
+ highlight_fields: nil,
2265
+ fields: nil,
2266
+ mutation_state: nil,
2267
+ disable_scoring: false,
2268
+ include_locations: false,
2269
+ collections: nil,
2270
+ sort: nil,
2271
+ facets: nil,
2272
+ transcoder: JsonTranscoder.new,
2273
+ timeout: nil,
2274
+ retry_strategy: nil,
2275
+ client_context: nil,
2276
+ parent_span: nil)
2277
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
2278
+ @limit = limit
2279
+ @skip = skip
2280
+ @explain = explain
2281
+ @highlight_style = highlight_style
2282
+ @highlight_fields = highlight_fields
2283
+ @fields = fields
2284
+ @disable_scoring = disable_scoring
2285
+ @include_locations = include_locations
2286
+ @collections = collections
2287
+ @sort = sort
2288
+ @facets = facets
2289
+ @transcoder = transcoder
2290
+ @scan_consistency = :not_bounded
2291
+ @mutation_state = mutation_state
2292
+ yield self if block_given?
2293
+ end
2294
+
2295
+ # Sets the mutation tokens this query should be consistent with
2296
+ #
2297
+ # @note overrides consistency level set by {#scan_consistency=}
2298
+ #
2299
+ # @param [MutationState] mutation_state the mutation state containing the mutation tokens
2300
+ #
2301
+ # @return [void]
2302
+ def consistent_with(mutation_state)
2303
+ @scan_consistency = nil if @scan_consistency
2304
+ @mutation_state = mutation_state
2305
+ end
2306
+
2307
+ # Customizes the consistency guarantees for this query
2308
+ #
2309
+ # @note overrides consistency level set by {#consistent_with}
2310
+ #
2311
+ # @param [:not_bounded] level the scan consistency to be used for this query
2312
+ # +:not_bounded+:: The engine will return whatever state it has at the time of query
2313
+ #
2314
+ # @return [void]
2315
+ def scan_consistency=(level)
2316
+ @mutation_state = nil if @mutation_state
2317
+ @scan_consistency = level
2318
+ end
2319
+
2320
+ # @api private
2321
+ # @return [MutationState]
2322
+ attr_reader :mutation_state
2323
+
2324
+ # @api private
2325
+ # @return [Symbol]
2326
+ attr_reader :scan_consistency
2327
+
2328
+ # @api private
2329
+ def to_backend(show_request: nil)
2330
+ {
2331
+ timeout: Utils::Time.extract_duration(@timeout),
2332
+ limit: @limit,
2333
+ skip: @skip,
2334
+ explain: @explain,
2335
+ disable_scoring: @disable_scoring,
2336
+ include_locations: @include_locations,
2337
+ collections: @collections,
2338
+ highlight_style: @highlight_style,
2339
+ highlight_fields: @highlight_fields,
2340
+ fields: @fields,
2341
+ sort: @sort&.map { |v| JSON.generate(v) },
2342
+ facets: @facets&.map { |(k, v)| [k, JSON.generate(v)] },
2343
+ scan_consistency: @scan_consistency,
2344
+ mutation_state: @mutation_state&.to_a,
2345
+ show_request: show_request,
2346
+ }
2347
+ end
2348
+
2349
+ # @api private
2350
+ DEFAULT = Search.new.freeze
2351
+ end
2352
+
2353
+ class VectorSearch
2354
+ # @return [:and, :or, nil]
2355
+ attr_accessor :vector_query_combination
2356
+
2357
+ # @param [:and, :or, nil] vector_query_combination
2358
+ #
2359
+ # @yieldparam [VectorSearchOptions] self
2360
+ def initialize(vector_query_combination: nil)
2361
+ @vector_query_combination = vector_query_combination
2362
+
2363
+ yield self if block_given?
2364
+ end
2365
+
2366
+ def to_backend
2367
+ {
2368
+ vector_query_combination: @vector_query_combination,
2369
+ }
2370
+ end
2371
+
2372
+ DEFAULT = VectorSearch.new.freeze
2373
+ end
2374
+
2375
+ # Options for {Couchbase::Cluster#view_query}
2376
+ class View < Base
2377
+ attr_accessor :scan_consistency # @return [Symbol]
2378
+ attr_accessor :namespace # @return [Symbol]
2379
+ attr_accessor :skip # @return [Integer]
2380
+ attr_accessor :limit # @return [Integer]
2381
+ attr_accessor :start_key # @return [#to_json, nil]
2382
+ attr_accessor :end_key # @return [#to_json, nil]
2383
+ attr_accessor :start_key_doc_id # @return [String, nil]
2384
+ attr_accessor :end_key_doc_id # @return [String, nil]
2385
+ attr_accessor :inclusive_end # @return [Boolean, nil]
2386
+ attr_accessor :group # @return [Boolean, nil]
2387
+ attr_accessor :group_level # @return [Integer, nil]
2388
+ attr_accessor :key # @return [#to_json, nil]
2389
+ attr_accessor :keys # @return [Array<#to_json>, nil]
2390
+ attr_accessor :order # @return [Symbol, nil]
2391
+ attr_accessor :reduce # @return [Boolean, nil]
2392
+ attr_accessor :on_error # @return [Symbol, nil]
2393
+ attr_accessor :debug # @return [Boolean, nil]
2394
+
2395
+ # @param [:not_bounded, :request_plus, :update_after] scan_consistency Specifies the level of consistency for the query
2396
+ # @param [:production, :development] namespace
2397
+ # @param [Integer, nil] skip Specifies the number of results to skip from the start of the result set
2398
+ # @param [Integer, nil] limit Specifies the maximum number of results to return
2399
+ # @param [#to_json, nil] start_key Specifies the key, to which the engine has to skip before result generation
2400
+ # @param [#to_json, nil] end_key Specifies the key, at which the result generation has to be stopped
2401
+ # @param [String, nil] start_key_doc_id Specifies the document id in case {#start_key} gives multiple results within the index
2402
+ # @param [String, nil] end_key_doc_id Specifies the document id in case {#end_key} gives multiple results within the index
2403
+ # @param [Boolean, nil] inclusive_end Specifies whether the {#end_key}/#{#end_key_doc_id} values should be inclusive
2404
+ # @param [Boolean, nil] group Specifies whether to enable grouping of the results
2405
+ # @param [Integer, nil] group_level Specifies the depth within the key to group the results
2406
+ # @param [#to_json, nil] key Specifies the key to fetch from the index
2407
+ # @param [Array<#to_json>, nil] keys Specifies set of the keys to fetch from the index
2408
+ # @param [:ascending, :descending, nil] order Specifies the order of the results that should be returned
2409
+ # @param [Boolean, nil] reduce Specifies whether to enable the reduction function associated with this particular
2410
+ # view index
2411
+ # @param [:stop, :continue, nil] on_error Specifies the behaviour of the view engine should an error occur during
2412
+ # the gathering of view index results which would result in only partial results being available
2413
+ # @param [Boolean, nil] debug allows to return debug information as part of the view response
2414
+ #
2415
+ # @param [Integer, #in_milliseconds, nil] timeout
2416
+ # @param [Proc, nil] retry_strategy the custom retry strategy, if set
2417
+ # @param [Hash, nil] client_context the client context data, if set
2418
+ # @param [Span, nil] parent_span if set holds the parent span, that should be used for this request
2419
+ #
2420
+ # @yieldparam [View] self
2421
+ def initialize(scan_consistency: :not_bounded,
2422
+ namespace: :production,
2423
+ skip: nil,
2424
+ limit: nil,
2425
+ start_key: nil,
2426
+ end_key: nil,
2427
+ start_key_doc_id: nil,
2428
+ end_key_doc_id: nil,
2429
+ inclusive_end: nil,
2430
+ group: nil,
2431
+ group_level: nil,
2432
+ key: nil,
2433
+ keys: nil,
2434
+ order: nil,
2435
+ reduce: nil,
2436
+ on_error: nil,
2437
+ debug: false,
2438
+ timeout: nil,
2439
+ retry_strategy: nil,
2440
+ client_context: nil,
2441
+ parent_span: nil)
2442
+ super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
2443
+
2444
+ @scan_consistency = scan_consistency
2445
+ @namespace = namespace
2446
+ @skip = skip
2447
+ @limit = limit
2448
+ @start_key = start_key
2449
+ @end_key = end_key
2450
+ @start_key_doc_id = start_key_doc_id
2451
+ @end_key_doc_id = end_key_doc_id
2452
+ @inclusive_end = inclusive_end
2453
+ @group = group
2454
+ @group_level = group_level
2455
+ @key = key
2456
+ @keys = keys
2457
+ @order = order
2458
+ @reduce = reduce
2459
+ @on_error = on_error
2460
+ @debug = debug
2461
+ yield self if block_given?
2462
+ end
2463
+
2464
+ # Allows providing custom JSON key/value pairs for advanced usage
2465
+ #
2466
+ # @param [String] key the parameter name (key of the JSON property)
2467
+ # @param [Object] value the parameter value (value of the JSON property)
2468
+ def raw(key, value)
2469
+ @raw_parameters[key] = JSON.generate(value)
2470
+ end
2471
+
2472
+ # @api private
2473
+ def to_backend
2474
+ {
2475
+ timeout: Utils::Time.extract_duration(@timeout),
2476
+ scan_consistency: @scan_consistency,
2477
+ skip: @skip,
2478
+ limit: @limit,
2479
+ start_key: (JSON.generate(@start_key) unless @start_key.nil?),
2480
+ end_key: (JSON.generate(@end_key) unless @end_key.nil?),
2481
+ start_key_doc_id: @start_key_doc_id,
2482
+ end_key_doc_id: @end_key_doc_id,
2483
+ inclusive_end: @inclusive_end,
2484
+ group: @group,
2485
+ group_level: @group_level,
2486
+ key: (JSON.generate(@key) unless @key.nil?),
2487
+ keys: @keys&.map { |key| JSON.generate(key) },
2488
+ order: @order,
2489
+ reduce: @reduce,
2490
+ on_error: @on_error,
2491
+ debug: @debug,
2492
+ }
2493
+ end
2494
+
2495
+ # @api private
2496
+ DEFAULT = View.new.freeze
2497
+ end
2498
+
2499
+ # @api private
2500
+ # TODO: deprecate in 3.1
2501
+ CommonOptions = ::Couchbase::Options::Base
2502
+
2503
+ # rubocop:disable Naming/MethodName constructor shortcuts
2504
+ module_function
2505
+
2506
+ # Construct {Get} options for {Collection#get}
2507
+ #
2508
+ # @example Get partial document using projections
2509
+ # res = collection.get("customer123", Options::Get(projections: ["name", "addresses.billing"]))
2510
+ # res.content
2511
+ #
2512
+ # # {"addresses"=>
2513
+ # # {"billing"=>
2514
+ # # {"country"=>"United Kingdom",
2515
+ # # "line1"=>"123 Any Street",
2516
+ # # "line2"=>"Anytown"}},
2517
+ # # "name"=>"Douglas Reynholm"}
2518
+ #
2519
+ # @return [Get]
2520
+ def Get(**args)
2521
+ Get.new(**args)
2522
+ end
2523
+
2524
+ # Construct {GetMulti} options for {Collection#get_multi}
2525
+ #
2526
+ # @example Fetch "foo" and "bar" in a batch
2527
+ # res = collection.get(["foo", "bar"], Options::GetMulti(timeout: 3_000))
2528
+ # res[0].content #=> content of "foo"
2529
+ # res[1].content #=> content of "bar"
2530
+ #
2531
+ # @return [GetMulti]
2532
+ def GetMulti(**args)
2533
+ GetMulti.new(**args)
2534
+ end
2535
+
2536
+ # Construct {GetAndLock} options for {Collection#get_and_lock}
2537
+ #
2538
+ # @example Retrieve document and lock for 10 seconds
2539
+ # collection.get_and_lock("customer123", 10, Options::GetAndLock(timeout: 3_000))
2540
+ #
2541
+ # @return [GetAndLock]
2542
+ def GetAndLock(**args)
2543
+ GetAndLock.new(**args)
2544
+ end
2545
+
2546
+ # Construct {GetAndTouch} options for {Collection#get_and_touch}
2547
+ #
2548
+ # @example Retrieve document and prolong its expiration for 10 seconds
2549
+ # collection.get_and_touch("customer123", 10, Options::GetAndTouch(timeout: 3_000))
2550
+ #
2551
+ # @return [GetAndTouch]
2552
+ def GetAndTouch(**args)
2553
+ GetAndTouch.new(**args)
2554
+ end
2555
+
2556
+ # Construct {GetAllReplicas} options for {Collection#get_any_replica}
2557
+ #
2558
+ # @return [GetAllReplicas]
2559
+ def GetAllReplicas(**args)
2560
+ GetAllReplicas.new(**args)
2561
+ end
2562
+
2563
+ # Construct {GetAnyReplica} options for {Collection#get_all_replicas}
2564
+ #
2565
+ # @return [GetAnyReplica]
2566
+ def GetAnyReplica(**args)
2567
+ GetAnyReplica.new(**args)
2568
+ end
2569
+
2570
+ # Construct {Exists} options for {Collection#exists}
2571
+ #
2572
+ # @example Check if the document exists without fetching its contents
2573
+ # res = collection.exists("customer123", Options::Exists(timeout: 3_000))
2574
+ # res.exists? #=> true
2575
+ #
2576
+ # @return [Exists]
2577
+ def Exists(**args)
2578
+ Exists.new(**args)
2579
+ end
2580
+
2581
+ # Construct {Touch} options for {Collection#touch}
2582
+ #
2583
+ # @example Reset expiration timer for document to 30 seconds (and use custom operation timeout)
2584
+ # res = collection.touch("customer123", 30, Options::Touch(timeout: 3_000))
2585
+ #
2586
+ # @return [Touch]
2587
+ def Touch(**args)
2588
+ Touch.new(**args)
2589
+ end
2590
+
2591
+ # Construct {Unlock} options for {Collection#touch}
2592
+ #
2593
+ # @example Lock (pessimistically) and unlock document
2594
+ # res = collection.get_and_lock("customer123", 10, Options::Unlock(timeout: 3_000))
2595
+ # collection.unlock("customer123", res.cas)
2596
+ #
2597
+ # @return [Unlock]
2598
+ def Unlock(**args)
2599
+ Unlock.new(**args)
2600
+ end
2601
+
2602
+ # Construct {Remove} options for {Collection#remove}
2603
+ #
2604
+ # @example Remove the document in collection, but apply optimistic lock
2605
+ # res = collection.upsert("mydoc", {"foo" => 42})
2606
+ # res.cas #=> 7751414725654
2607
+ #
2608
+ # begin
2609
+ # res = collection.remove("customer123", Options::Remove(cas: 3735928559))
2610
+ # rescue Error::CasMismatch
2611
+ # puts "Failed to remove the document, it might be changed by other application"
2612
+ # end
2613
+ #
2614
+ # @return [Remove]
2615
+ def Remove(**args)
2616
+ Remove.new(**args)
2617
+ end
2618
+
2619
+ # Construct {RemoveMulti} options for {Collection#remove_multi}
2620
+ #
2621
+ # @example Remove two documents in collection. For "mydoc" apply optimistic lock
2622
+ # res = collection.upsert("mydoc", {"foo" => 42})
2623
+ # res.cas #=> 7751414725654
2624
+ #
2625
+ # res = collection.remove_multi(["foo", ["mydoc", res.cas]], Options::RemoveMulti(timeout: 3_000))
2626
+ # if res[1].error.is_a?(Error::CasMismatch)
2627
+ # puts "Failed to remove the document, it might be changed by other application"
2628
+ # end
2629
+ #
2630
+ # @return [RemoveMulti]
2631
+ def RemoveMulti(**args)
2632
+ RemoveMulti.new(**args)
2633
+ end
2634
+
2635
+ # Construct {Insert} options for {Collection#insert}
2636
+ #
2637
+ # @example Insert new document in collection
2638
+ # res = collection.insert("mydoc", {"foo" => 42}, Options::Insert(expiry: 20))
2639
+ # res.cas #=> 242287264414742
2640
+ #
2641
+ # @return [Insert]
2642
+ def Insert(**args)
2643
+ Insert.new(**args)
2644
+ end
2645
+
2646
+ # Construct {Upsert} options for {Collection#upsert}
2647
+ #
2648
+ # @example Upsert new document in collection
2649
+ # res = collection.upsert("mydoc", {"foo" => 42}, Options::Upsert(expiry: 20))
2650
+ # res.cas #=> 242287264414742
2651
+ #
2652
+ # @return [Upsert]
2653
+ def Upsert(**args)
2654
+ Upsert.new(**args)
2655
+ end
2656
+
2657
+ # Construct {UpsertMulti} options for {Collection#upsert_multi}
2658
+ #
2659
+ # @example Upsert two documents with IDs "foo" and "bar" into a collection with expiration 20 seconds.
2660
+ # res = collection.upsert_multi([
2661
+ # "foo", {"foo" => 42},
2662
+ # "bar", {"bar" => "some value"}
2663
+ # ], Options::UpsertMulti(expiry: 20))
2664
+ # res[0].cas #=> 7751414725654
2665
+ # res[1].cas #=> 7751418925851
2666
+ #
2667
+ # @return [UpsertMulti]
2668
+ def UpsertMulti(**args)
2669
+ UpsertMulti.new(**args)
2670
+ end
2671
+
2672
+ # Construct {Replace} options for {Collection#replace}
2673
+ #
2674
+ # @example Replace new document in collection with optimistic locking
2675
+ # res = collection.get("mydoc")
2676
+ # res = collection.replace("mydoc", {"foo" => 42}, Options::Replace(cas: res.cas))
2677
+ # res.cas #=> 242287264414742
2678
+ #
2679
+ # @return [Replace]
2680
+ def Replace(**args)
2681
+ Replace.new(**args)
2682
+ end
2683
+
2684
+ # Construct {MutateIn} options for {Collection#mutate_in}
2685
+ #
2686
+ # @example Append number into subarray of the document
2687
+ # mutation_specs = [
2688
+ # MutateInSpec::array_append("purchases.complete", [42])
2689
+ # ]
2690
+ # collection.mutate_in("customer123", mutation_specs, Options::MutateIn(expiry: 10))
2691
+ #
2692
+ # @return [MutateIn]
2693
+ def MutateIn(**args)
2694
+ MutateIn.new(**args)
2695
+ end
2696
+
2697
+ # Construct {LookupIn} options for {Collection#lookup_in}
2698
+ #
2699
+ # @example Get list of IDs of completed purchases
2700
+ # lookup_specs = [
2701
+ # LookupInSpec::get("purchases.complete")
2702
+ # ]
2703
+ # collection.lookup_in("customer123", lookup_specs, Options::LookupIn(timeout: 3_000))
2704
+ #
2705
+ # @return [LookupIn]
2706
+ def LookupIn(**args)
2707
+ LookupIn.new(**args)
2708
+ end
2709
+
2710
+ # Construct {Append} options for {BinaryCollection#append}
2711
+ #
2712
+ # @example Append "bar" to the content of the existing document
2713
+ # collection.upsert("mydoc", "foo")
2714
+ # collection.binary.append("mydoc", "bar", Options::Append(timeout: 3_000))
2715
+ # collection.get("mydoc", Options::Get(transcoder: nil)).content #=> "foobar"
2716
+ #
2717
+ # @return [Append]
2718
+ def Append(**args)
2719
+ Append.new(**args)
2720
+ end
2721
+
2722
+ # Construct {Prepend} options for {BinaryCollection#prepend}
2723
+ #
2724
+ # @example Prepend "bar" to the content of the existing document
2725
+ # collection.upsert("mydoc", "foo")
2726
+ # collection.binary.prepend("mydoc", "bar", Options::Prepend(timeout: 3_000))
2727
+ # collection.get("mydoc", Options::Get(transcoder: nil)).content #=> "barfoo"
2728
+ #
2729
+ # @return [Prepend]
2730
+ def Prepend(**args)
2731
+ Prepend.new(**args)
2732
+ end
2733
+
2734
+ # Construct {Diagnostics} options for {Cluster#diagnostics}
2735
+ #
2736
+ # @return [Diagnostics]
2737
+ def Diagnostics(**args)
2738
+ Diagnostics.new(**args)
2739
+ end
2740
+
2741
+ # Construct {Ping} options for {Bucket#ping}
2742
+ #
2743
+ # @return [Ping]
2744
+ def Ping(**args)
2745
+ Ping.new(**args)
2746
+ end
2747
+
2748
+ # Construct {Cluster} options for {Cluster.connect}
2749
+ #
2750
+ # It forwards all its arguments to {Cluster#initialize}
2751
+ #
2752
+ # @return [Cluster]
2753
+ def Cluster(**args)
2754
+ Cluster.new(**args)
2755
+ end
2756
+
2757
+ # Construct {Increment} options for {BinaryCollection#increment}
2758
+ #
2759
+ # @example Increment value by 10, and initialize to 0 if it does not exist
2760
+ # res = collection.binary.increment("raw_counter", Options::Increment(delta: 10, initial: 0))
2761
+ # res.content #=> 0
2762
+ # res = collection.binary.increment("raw_counter", Options::Increment(delta: 10, initial: 0))
2763
+ # res.content #=> 10
2764
+ #
2765
+ # @return [Increment]
2766
+ def Increment(**args)
2767
+ Increment.new(**args)
2768
+ end
2769
+
2770
+ # Construct {Decrement} options for {BinaryCollection#decrement}
2771
+ #
2772
+ # @example Decrement value by 2, and initialize to 100 if it does not exist
2773
+ # res = collection.binary.decrement("raw_counter", Options::Decrement(delta: 2, initial: 100))
2774
+ # res.value #=> 100
2775
+ # res = collection.binary.decrement("raw_counter", Options::Decrement(delta: 2, initial: 100))
2776
+ # res.value #=> 98
2777
+ #
2778
+ # @return [Decrement]
2779
+ def Decrement(**args)
2780
+ Decrement.new(**args)
2781
+ end
2782
+
2783
+ # Construct {Analytics} options for {Cluster#analytics_query}
2784
+ #
2785
+ # @example Select name of the given user
2786
+ # cluster.analytics_query("SELECT u.name AS uname FROM GleambookUsers u WHERE u.id = $user_id ",
2787
+ # Options::Analytics(named_parameters: {user_id: 2}))
2788
+ #
2789
+ # @return [Analytics]
2790
+ def Analytics(**args)
2791
+ Analytics.new(**args)
2792
+ end
2793
+
2794
+ # Construct {Query} options for {Cluster#query}
2795
+ #
2796
+ # @example Select first ten hotels from travel sample dataset
2797
+ # cluster.query("SELECT * FROM `travel-sample` WHERE type = $type LIMIT 10",
2798
+ # Options::Query(named_parameters: {type: "hotel"}, metrics: true))
2799
+ #
2800
+ # @return [Query]
2801
+ def Query(**args)
2802
+ Query.new(**args)
2803
+ end
2804
+
2805
+ # Construct {Search} options for {Cluster#search_query}
2806
+ #
2807
+ # @example Return first 10 results of "hop beer" query and request highlighting
2808
+ # cluster.search_query("beer_index", Cluster::SearchQuery.match_phrase("hop beer"),
2809
+ # Options::Search(
2810
+ # limit: 10,
2811
+ # fields: %w[name],
2812
+ # highlight_style: :html,
2813
+ # highlight_fields: %w[name description]
2814
+ # ))
2815
+ #
2816
+ # @return [Search]
2817
+ def Search(**args)
2818
+ Search.new(**args)
2819
+ end
2820
+
2821
+ # Construct {View} options for {Bucket#view_query}
2822
+ #
2823
+ # @example Make sure the view engine catch up with all mutations and return keys starting from +["random_brewery:"]+
2824
+ # bucket.view_query("beer", "brewery_beers",
2825
+ # Options::View(
2826
+ # start_key: ["random_brewery:"],
2827
+ # scan_consistency: :request_plus
2828
+ # ))
2829
+ #
2830
+ # @return [View]
2831
+ def View(**args)
2832
+ View.new(**args)
2833
+ end
2834
+
2835
+ # rubocop:enable Naming/MethodName
2836
+ end
2837
+ end