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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +2844 -0
  43. data/lib/couchbase/protostellar/binary_collection.rb +55 -0
  44. data/lib/couchbase/protostellar/bucket.rb +55 -0
  45. data/lib/couchbase/protostellar/client.rb +99 -0
  46. data/lib/couchbase/protostellar/cluster.rb +171 -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 +35 -31
  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,2844 @@
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
+ # Construct {Scan} options for {Collection#scan}
2836
+ #
2837
+ # @return [Scan]
2838
+ def Scan(**args)
2839
+ Scan.new(**args)
2840
+ end
2841
+
2842
+ # rubocop:enable Naming/MethodName
2843
+ end
2844
+ end