couchbase 4.2.8 → 4.2.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (370) hide show
  1. package/CMakeLists.txt +1 -1
  2. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +139 -56
  3. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
  4. package/deps/couchbase-cxx-client/CMakeLists.txt +401 -424
  5. package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +7 -3
  6. package/deps/couchbase-cxx-client/cmake/OpenSSL.cmake +1 -0
  7. package/deps/couchbase-cxx-client/core/agent_config.hxx +1 -1
  8. package/deps/couchbase-cxx-client/core/agent_group.cxx +0 -1
  9. package/deps/couchbase-cxx-client/core/agent_group.hxx +9 -0
  10. package/deps/couchbase-cxx-client/core/agent_group_config.hxx +1 -1
  11. package/deps/couchbase-cxx-client/core/bucket.cxx +74 -10
  12. package/deps/couchbase-cxx-client/core/bucket.hxx +4 -2
  13. package/deps/couchbase-cxx-client/core/cluster.cxx +1491 -108
  14. package/deps/couchbase-cxx-client/core/cluster.hxx +183 -473
  15. package/deps/couchbase-cxx-client/core/cluster_agent_config.hxx +1 -1
  16. package/deps/couchbase-cxx-client/core/cluster_options.cxx +12 -2
  17. package/deps/couchbase-cxx-client/core/cluster_options.hxx +9 -8
  18. package/deps/couchbase-cxx-client/core/config_profiles.cxx +2 -2
  19. package/deps/couchbase-cxx-client/core/config_profiles.hxx +1 -1
  20. package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +1 -2
  21. package/deps/couchbase-cxx-client/core/core_sdk_shim.hxx +3 -2
  22. package/deps/couchbase-cxx-client/core/diagnostics.hxx +0 -1
  23. package/deps/couchbase-cxx-client/core/dispatcher.cxx +2 -2
  24. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +38 -76
  25. package/deps/couchbase-cxx-client/core/impl/analytics.hxx +40 -0
  26. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +820 -0
  27. package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +403 -0
  28. package/deps/couchbase-cxx-client/core/impl/bucket.cxx +102 -0
  29. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +433 -0
  30. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +299 -44
  31. package/deps/couchbase-cxx-client/core/impl/collection.cxx +1384 -0
  32. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +306 -0
  33. package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +3 -1
  34. package/deps/couchbase-cxx-client/core/impl/diagnostics.cxx +294 -0
  35. package/deps/couchbase-cxx-client/core/impl/diagnostics.hxx +39 -0
  36. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +2 -0
  37. package/deps/couchbase-cxx-client/core/{operations/mcbp_noop.cxx → impl/doc_id_query.cxx} +19 -15
  38. package/deps/couchbase-cxx-client/core/impl/key_value_error_category.cxx +4 -2
  39. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.hxx +0 -10
  40. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.hxx +0 -10
  41. package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +24 -17
  42. package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -1
  43. package/deps/couchbase-cxx-client/core/impl/query.cxx +45 -68
  44. package/deps/couchbase-cxx-client/core/impl/query.hxx +34 -0
  45. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +628 -0
  46. package/deps/couchbase-cxx-client/core/impl/scope.cxx +187 -0
  47. package/deps/couchbase-cxx-client/core/impl/search.cxx +81 -57
  48. package/deps/couchbase-cxx-client/core/impl/search.hxx +45 -0
  49. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +712 -0
  50. package/deps/couchbase-cxx-client/core/impl/search_request.cxx +139 -0
  51. package/deps/couchbase-cxx-client/core/impl/search_row_location.cxx +12 -0
  52. package/deps/couchbase-cxx-client/core/impl/search_sort_geo_distance.cxx +87 -0
  53. package/deps/couchbase-cxx-client/core/impl/vector_query.cxx +42 -0
  54. package/deps/couchbase-cxx-client/core/impl/vector_search.cxx +40 -0
  55. package/deps/couchbase-cxx-client/core/impl/with_legacy_durability.hxx +23 -25
  56. package/deps/couchbase-cxx-client/core/io/dns_config.cxx +28 -0
  57. package/deps/couchbase-cxx-client/core/io/dns_config.hxx +6 -25
  58. package/deps/couchbase-cxx-client/core/io/http_session.hxx +6 -3
  59. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +9 -1
  60. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +1 -1
  61. package/deps/couchbase-cxx-client/core/io/mcbp_message.hxx +3 -2
  62. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +75 -53
  63. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +3 -1
  64. package/deps/couchbase-cxx-client/core/logger/logger.cxx +1 -1
  65. package/deps/couchbase-cxx-client/core/logger/logger.hxx +4 -4
  66. package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +1 -1
  67. package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +1 -1
  68. package/deps/couchbase-cxx-client/core/mcbp/queue_callback.hxx +1 -1
  69. package/deps/couchbase-cxx-client/core/meta/features.hxx +38 -0
  70. package/deps/couchbase-cxx-client/core/operations/document_query.cxx +23 -2
  71. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -1
  72. package/deps/couchbase-cxx-client/core/operations/document_search.cxx +37 -1
  73. package/deps/couchbase-cxx-client/core/operations/document_search.hxx +11 -0
  74. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +2 -0
  75. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +2 -0
  76. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +2 -0
  77. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +2 -0
  78. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +2 -0
  79. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +2 -0
  80. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +2 -0
  81. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +2 -0
  82. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +2 -0
  83. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +2 -0
  84. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +1 -1
  85. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -0
  86. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +2 -0
  87. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +2 -0
  88. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +2 -0
  89. package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +3 -1
  90. package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +9 -6
  91. package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +1 -1
  92. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +2 -0
  93. package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +9 -8
  94. package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +1 -1
  95. package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +9 -5
  96. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +2 -0
  97. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +2 -0
  98. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +2 -0
  99. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +2 -0
  100. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +2 -0
  101. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +2 -0
  102. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +2 -0
  103. package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +2 -0
  104. package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +2 -0
  105. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.cxx +1 -1
  106. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +2 -2
  107. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +4 -1
  108. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +4 -1
  109. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +1 -1
  110. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +1 -1
  111. package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +2 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +2 -0
  114. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.cxx +4 -4
  115. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +4 -4
  116. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +19 -1
  117. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +3 -0
  118. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +23 -1
  119. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +3 -0
  120. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +23 -1
  121. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +3 -0
  122. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +23 -1
  123. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +3 -0
  124. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +19 -1
  125. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +3 -0
  126. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +19 -1
  127. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +2 -0
  128. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +39 -22
  129. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +3 -0
  130. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +20 -1
  131. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +3 -0
  132. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +2 -0
  133. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +19 -1
  134. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +3 -0
  135. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -0
  136. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -0
  137. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +2 -0
  138. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -0
  139. package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
  140. package/deps/couchbase-cxx-client/core/operations_fwd.hxx +260 -0
  141. package/deps/couchbase-cxx-client/core/origin.cxx +146 -5
  142. package/deps/couchbase-cxx-client/core/origin.hxx +30 -140
  143. package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.hxx +3 -3
  144. package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +5 -0
  145. package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.hxx +4 -4
  146. package/deps/couchbase-cxx-client/core/protocol/hello_feature.hxx +6 -0
  147. package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +3 -0
  148. package/deps/couchbase-cxx-client/core/protocol/status.cxx +6 -0
  149. package/deps/couchbase-cxx-client/core/protocol/status.hxx +1 -0
  150. package/deps/couchbase-cxx-client/core/query_context.hxx +11 -7
  151. package/deps/couchbase-cxx-client/core/range_scan_orchestrator.cxx +1 -1
  152. package/deps/couchbase-cxx-client/core/topology/collections_manifest.hxx +1 -1
  153. package/deps/couchbase-cxx-client/core/topology/collections_manifest_json.hxx +1 -1
  154. package/deps/couchbase-cxx-client/core/topology/configuration.cxx +23 -0
  155. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +8 -12
  156. package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +3 -3
  157. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +2 -0
  158. package/deps/couchbase-cxx-client/core/topology/error_map.hxx +2 -2
  159. package/deps/couchbase-cxx-client/core/topology/error_map_json.hxx +4 -0
  160. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.cxx +58 -0
  161. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +5 -40
  162. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +30 -0
  163. package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +18 -18
  164. package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +36 -0
  165. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +39 -41
  166. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +2 -2
  167. package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +3 -1
  168. package/deps/couchbase-cxx-client/core/transactions/internal/atr_entry.hxx +2 -0
  169. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +32 -0
  170. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +4 -30
  171. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +41 -0
  172. package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +17 -15
  173. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +1 -1
  174. package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +4 -4
  175. package/deps/couchbase-cxx-client/core/transactions/internal/utils.hxx +5 -13
  176. package/deps/couchbase-cxx-client/core/transactions/result.hxx +0 -26
  177. package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +46 -0
  178. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +16 -14
  179. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +6 -6
  180. package/deps/couchbase-cxx-client/core/transactions/transaction_keyspace.cxx +48 -0
  181. package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +1 -0
  182. package/deps/couchbase-cxx-client/core/transactions/transaction_options.cxx +61 -4
  183. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +9 -8
  184. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +9 -16
  185. package/deps/couchbase-cxx-client/core/transactions/transactions_config.cxx +7 -6
  186. package/deps/couchbase-cxx-client/core/transactions.hxx +6 -5
  187. package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +4 -3
  188. package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +4 -4
  189. package/deps/couchbase-cxx-client/core/vector_query_combination.hxx +23 -0
  190. package/deps/couchbase-cxx-client/couchbase/allow_querying_search_index_options.hxx +44 -0
  191. package/deps/couchbase-cxx-client/couchbase/analytics_index_manager.hxx +463 -0
  192. package/deps/couchbase-cxx-client/couchbase/analyze_document_options.hxx +44 -0
  193. package/deps/couchbase-cxx-client/couchbase/append_options.hxx +0 -24
  194. package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +1 -1
  195. package/deps/couchbase-cxx-client/couchbase/binary_collection.hxx +19 -115
  196. package/deps/couchbase-cxx-client/couchbase/bucket.hxx +42 -30
  197. package/deps/couchbase-cxx-client/couchbase/bucket_manager.hxx +8 -7
  198. package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +0 -1
  199. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +151 -73
  200. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +1 -27
  201. package/deps/couchbase-cxx-client/couchbase/codec/json_transcoder.hxx +1 -1
  202. package/deps/couchbase-cxx-client/couchbase/codec/raw_binary_transcoder.hxx +2 -1
  203. package/deps/couchbase-cxx-client/couchbase/codec/raw_json_transcoder.hxx +78 -0
  204. package/deps/couchbase-cxx-client/couchbase/codec/raw_string_transcoder.hxx +72 -0
  205. package/deps/couchbase-cxx-client/couchbase/collection.hxx +176 -386
  206. package/deps/couchbase-cxx-client/couchbase/collection_manager.hxx +8 -9
  207. package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +21 -24
  208. package/deps/couchbase-cxx-client/couchbase/connect_link_analytics_options.hxx +116 -0
  209. package/deps/couchbase-cxx-client/couchbase/create_bucket_options.hxx +3 -3
  210. package/deps/couchbase-cxx-client/couchbase/create_collection_options.hxx +32 -3
  211. package/deps/couchbase-cxx-client/couchbase/create_dataset_analytics_options.hxx +120 -0
  212. package/deps/couchbase-cxx-client/couchbase/create_dataverse_analytics_options.hxx +85 -0
  213. package/deps/couchbase-cxx-client/couchbase/create_index_analytics_options.hxx +103 -0
  214. package/deps/couchbase-cxx-client/couchbase/create_link_analytics_options.hxx +63 -0
  215. package/deps/couchbase-cxx-client/couchbase/decrement_options.hxx +0 -23
  216. package/deps/couchbase-cxx-client/couchbase/diagnostics_options.hxx +75 -0
  217. package/deps/couchbase-cxx-client/couchbase/diagnostics_result.hxx +124 -0
  218. package/deps/couchbase-cxx-client/couchbase/disallow_querying_search_index_options.hxx +43 -0
  219. package/deps/couchbase-cxx-client/couchbase/disconnect_link_analytics_options.hxx +105 -0
  220. package/deps/couchbase-cxx-client/couchbase/drop_dataset_analytics_options.hxx +103 -0
  221. package/deps/couchbase-cxx-client/couchbase/drop_dataverse_analytics_options.hxx +84 -0
  222. package/deps/couchbase-cxx-client/couchbase/drop_index_analytics_options.hxx +103 -0
  223. package/deps/couchbase-cxx-client/couchbase/drop_link_analytics_options.hxx +63 -0
  224. package/deps/couchbase-cxx-client/couchbase/drop_search_index_options.hxx +43 -0
  225. package/deps/couchbase-cxx-client/couchbase/endpoint_diagnostics.hxx +206 -0
  226. package/deps/couchbase-cxx-client/couchbase/endpoint_ping_report.hxx +205 -0
  227. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +22 -1
  228. package/deps/couchbase-cxx-client/couchbase/exists_options.hxx +0 -23
  229. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_error_map_attribute.hxx +6 -0
  230. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +3 -0
  231. package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +37 -0
  232. package/deps/couchbase-cxx-client/couchbase/freeze_plan_search_index_options.hxx +43 -0
  233. package/deps/couchbase-cxx-client/couchbase/get_all_datasets_analytics_options.hxx +66 -0
  234. package/deps/couchbase-cxx-client/couchbase/get_all_indexes_analytics_options.hxx +65 -0
  235. package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +1 -4
  236. package/deps/couchbase-cxx-client/couchbase/get_all_replicas_options.hxx +0 -23
  237. package/deps/couchbase-cxx-client/couchbase/get_all_search_indexes_options.hxx +45 -0
  238. package/deps/couchbase-cxx-client/couchbase/get_and_lock_options.hxx +0 -24
  239. package/deps/couchbase-cxx-client/couchbase/get_and_touch_options.hxx +0 -24
  240. package/deps/couchbase-cxx-client/couchbase/get_any_replica_options.hxx +0 -23
  241. package/deps/couchbase-cxx-client/couchbase/get_indexed_search_index_options.hxx +43 -0
  242. package/deps/couchbase-cxx-client/couchbase/get_links_analytics_options.hxx +121 -0
  243. package/deps/couchbase-cxx-client/couchbase/get_options.hxx +1 -29
  244. package/deps/couchbase-cxx-client/couchbase/get_pending_mutations_analytics_options.hxx +67 -0
  245. package/deps/couchbase-cxx-client/couchbase/get_search_index_options.hxx +44 -0
  246. package/deps/couchbase-cxx-client/couchbase/increment_options.hxx +0 -23
  247. package/deps/couchbase-cxx-client/couchbase/insert_options.hxx +0 -24
  248. package/deps/couchbase-cxx-client/couchbase/key_value_error_map_attribute.hxx +12 -0
  249. package/deps/couchbase-cxx-client/couchbase/key_value_status_code.hxx +1 -0
  250. package/deps/couchbase-cxx-client/couchbase/lookup_in_options.hxx +0 -24
  251. package/deps/couchbase-cxx-client/couchbase/management/analytics_dataset.hxx +48 -0
  252. package/deps/couchbase-cxx-client/couchbase/management/analytics_index.hxx +48 -0
  253. package/deps/couchbase-cxx-client/couchbase/management/analytics_link.hxx +239 -0
  254. package/deps/couchbase-cxx-client/couchbase/management/collection_spec.hxx +1 -1
  255. package/deps/couchbase-cxx-client/couchbase/management/query_index.hxx +3 -3
  256. package/deps/couchbase-cxx-client/couchbase/management/search_index.hxx +40 -0
  257. package/deps/couchbase-cxx-client/couchbase/manager_error_context.hxx +0 -1
  258. package/deps/couchbase-cxx-client/couchbase/mutate_in_options.hxx +0 -24
  259. package/deps/couchbase-cxx-client/couchbase/network_options.hxx +1 -1
  260. package/deps/couchbase-cxx-client/couchbase/pause_ingest_search_index_options.hxx +43 -0
  261. package/deps/couchbase-cxx-client/couchbase/phrase_query.hxx +19 -0
  262. package/deps/couchbase-cxx-client/couchbase/ping_options.hxx +93 -0
  263. package/deps/couchbase-cxx-client/couchbase/ping_result.hxx +118 -0
  264. package/deps/couchbase-cxx-client/couchbase/prepend_options.hxx +0 -24
  265. package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +99 -20
  266. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +0 -21
  267. package/deps/couchbase-cxx-client/couchbase/remove_options.hxx +0 -23
  268. package/deps/couchbase-cxx-client/couchbase/replace_link_analytics_options.hxx +63 -0
  269. package/deps/couchbase-cxx-client/couchbase/replace_options.hxx +0 -24
  270. package/deps/couchbase-cxx-client/couchbase/resume_ingest_search_index_options.hxx +43 -0
  271. package/deps/couchbase-cxx-client/couchbase/scope.hxx +37 -53
  272. package/deps/couchbase-cxx-client/couchbase/scope_search_index_manager.hxx +291 -0
  273. package/deps/couchbase-cxx-client/couchbase/search_facet_result.hxx +1 -7
  274. package/deps/couchbase-cxx-client/couchbase/search_geo_distance_units.hxx +26 -0
  275. package/deps/couchbase-cxx-client/couchbase/search_index_manager.hxx +292 -0
  276. package/deps/couchbase-cxx-client/couchbase/search_request.hxx +120 -0
  277. package/deps/couchbase-cxx-client/couchbase/search_row_location.hxx +10 -0
  278. package/deps/couchbase-cxx-client/couchbase/search_sort_geo_distance.hxx +84 -0
  279. package/deps/couchbase-cxx-client/couchbase/security_options.hxx +1 -1
  280. package/deps/couchbase-cxx-client/couchbase/service_type.hxx +58 -0
  281. package/deps/couchbase-cxx-client/couchbase/touch_options.hxx +0 -24
  282. package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +1 -1
  283. package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +10 -7
  284. package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +10 -10
  285. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +8 -58
  286. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +28 -70
  287. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +7 -2
  288. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +2 -1
  289. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +11 -38
  290. package/deps/couchbase-cxx-client/couchbase/unfreeze_plan_search_index_options.hxx +43 -0
  291. package/deps/couchbase-cxx-client/couchbase/unlock_options.hxx +0 -24
  292. package/deps/couchbase-cxx-client/couchbase/update_collection_options.hxx +32 -3
  293. package/deps/couchbase-cxx-client/couchbase/upsert_options.hxx +0 -24
  294. package/deps/couchbase-cxx-client/couchbase/upsert_search_index_options.hxx +41 -0
  295. package/deps/couchbase-cxx-client/couchbase/vector_query.hxx +99 -0
  296. package/deps/couchbase-cxx-client/couchbase/vector_search.hxx +85 -0
  297. package/deps/couchbase-cxx-client/couchbase/vector_search_options.hxx +76 -0
  298. package/dist/binding.d.ts +16 -9
  299. package/dist/binding.js +4 -1
  300. package/dist/bindingutilities.d.ts +6 -1
  301. package/dist/bindingutilities.js +17 -1
  302. package/dist/cluster.d.ts +12 -1
  303. package/dist/cluster.js +22 -0
  304. package/dist/collection.js +3 -3
  305. package/dist/couchbase.d.ts +1 -0
  306. package/dist/couchbase.js +1 -0
  307. package/dist/errors.d.ts +9 -0
  308. package/dist/errors.js +14 -2
  309. package/dist/searchexecutor.d.ts +2 -2
  310. package/dist/searchexecutor.js +19 -3
  311. package/dist/searchtypes.d.ts +46 -0
  312. package/dist/searchtypes.js +81 -1
  313. package/dist/transactions.d.ts +2 -0
  314. package/dist/transactions.js +2 -3
  315. package/dist/usermanager.js +1 -1
  316. package/dist/vectorsearch.d.ts +99 -0
  317. package/dist/vectorsearch.js +132 -0
  318. package/package.json +7 -7
  319. package/src/binding.cpp +1 -0
  320. package/src/connection.cpp +12 -9
  321. package/src/connection.hpp +3 -3
  322. package/src/connection_autogen.cpp +7 -5
  323. package/src/constants.cpp +14 -0
  324. package/src/instance.cpp +2 -2
  325. package/src/instance.hpp +1 -1
  326. package/src/jstocbpp_autogen.hpp +45 -45
  327. package/src/jstocbpp_basic.hpp +2 -0
  328. package/src/jstocbpp_errors.hpp +1 -0
  329. package/src/jstocbpp_transactions.hpp +6 -22
  330. package/src/mutationtoken.hpp +1 -0
  331. package/tools/gen-bindings-json.py +41 -16
  332. package/deps/couchbase-cxx-client/core/impl/append.cxx +0 -87
  333. package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +0 -157
  334. package/deps/couchbase-cxx-client/core/impl/create_bucket.cxx +0 -158
  335. package/deps/couchbase-cxx-client/core/impl/create_collection.cxx +0 -83
  336. package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +0 -232
  337. package/deps/couchbase-cxx-client/core/impl/create_scope.cxx +0 -69
  338. package/deps/couchbase-cxx-client/core/impl/decrement.cxx +0 -96
  339. package/deps/couchbase-cxx-client/core/impl/drop_bucket.cxx +0 -66
  340. package/deps/couchbase-cxx-client/core/impl/drop_collection.cxx +0 -76
  341. package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +0 -187
  342. package/deps/couchbase-cxx-client/core/impl/drop_scope.cxx +0 -68
  343. package/deps/couchbase-cxx-client/core/impl/exists.cxx +0 -47
  344. package/deps/couchbase-cxx-client/core/impl/flush_bucket.cxx +0 -66
  345. package/deps/couchbase-cxx-client/core/impl/get.cxx +0 -68
  346. package/deps/couchbase-cxx-client/core/impl/get_all_buckets.cxx +0 -178
  347. package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +0 -106
  348. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.cxx +0 -145
  349. package/deps/couchbase-cxx-client/core/impl/get_all_scopes.cxx +0 -94
  350. package/deps/couchbase-cxx-client/core/impl/get_and_lock.cxx +0 -49
  351. package/deps/couchbase-cxx-client/core/impl/get_and_touch.cxx +0 -49
  352. package/deps/couchbase-cxx-client/core/impl/get_any_replica.cxx +0 -134
  353. package/deps/couchbase-cxx-client/core/impl/get_bucket.cxx +0 -168
  354. package/deps/couchbase-cxx-client/core/impl/increment.cxx +0 -96
  355. package/deps/couchbase-cxx-client/core/impl/insert.cxx +0 -90
  356. package/deps/couchbase-cxx-client/core/impl/lookup_in.cxx +0 -69
  357. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.cxx +0 -178
  358. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.cxx +0 -169
  359. package/deps/couchbase-cxx-client/core/impl/mutate_in.cxx +0 -125
  360. package/deps/couchbase-cxx-client/core/impl/prepend.cxx +0 -87
  361. package/deps/couchbase-cxx-client/core/impl/remove.cxx +0 -86
  362. package/deps/couchbase-cxx-client/core/impl/replace.cxx +0 -102
  363. package/deps/couchbase-cxx-client/core/impl/touch.cxx +0 -49
  364. package/deps/couchbase-cxx-client/core/impl/unlock.cxx +0 -47
  365. package/deps/couchbase-cxx-client/core/impl/update_bucket.cxx +0 -133
  366. package/deps/couchbase-cxx-client/core/impl/update_collection.cxx +0 -83
  367. package/deps/couchbase-cxx-client/core/impl/upsert.cxx +0 -100
  368. package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +0 -196
  369. package/deps/couchbase-cxx-client/core/operations/mcbp_noop.hxx +0 -49
  370. /package/deps/couchbase-cxx-client/core/impl/{streaming_json_lexter_error_category.cxx → streaming_json_lexer_error_category.cxx} +0 -0
@@ -19,7 +19,12 @@
19
19
  #include <couchbase/transactions/transaction_query_options.hxx>
20
20
  #include <couchbase/transactions/transaction_query_result.hxx>
21
21
 
22
- namespace couchbase::transactions
22
+ namespace couchbase
23
+ {
24
+ class collection;
25
+ class scope;
26
+
27
+ namespace transactions
23
28
  {
24
29
  /**
25
30
  * The attempt_context is used for all synchronous transaction operations
@@ -108,10 +113,7 @@ class attempt_context
108
113
  * @return The result of the operation, with is an @ref transaction_op_error_context and a @ref transaction_query_result.
109
114
  */
110
115
  std::pair<transaction_op_error_context, transaction_query_result> query(const std::string& statement,
111
- const transaction_query_options& options = {})
112
- {
113
- return do_public_query(statement, options, {});
114
- }
116
+ const transaction_query_options& options = {});
115
117
 
116
118
  /**
117
119
  * Perform a scoped query.
@@ -123,10 +125,7 @@ class attempt_context
123
125
  */
124
126
  std::pair<transaction_op_error_context, transaction_query_result> query(const scope& scope,
125
127
  const std::string& statement,
126
- const transaction_query_options& opts = {})
127
- {
128
- return do_public_query(statement, opts, fmt::format("{}.{}", scope.bucket_name(), scope.name()));
129
- }
128
+ const transaction_query_options& opts = {});
130
129
 
131
130
  virtual ~attempt_context() = default;
132
131
 
@@ -143,4 +142,5 @@ class attempt_context
143
142
  const transaction_query_options& options,
144
143
  std::optional<std::string> query_context) = 0;
145
144
  };
146
- } // namespace couchbase::transactions
145
+ } // namespace transactions
146
+ } // namespace couchbase
@@ -15,12 +15,7 @@
15
15
  */
16
16
  #pragma once
17
17
 
18
- #include "couchbase/collection.hxx"
19
- #include "couchbase/scope.hxx"
20
-
21
- #include <fmt/format.h>
22
18
  #include <string>
23
- #include <utility>
24
19
 
25
20
  namespace couchbase::transactions
26
21
  {
@@ -28,44 +23,15 @@ namespace couchbase::transactions
28
23
  * @brief Offline, serializable representation of a bucket, scope, and collection
29
24
  */
30
25
  struct transaction_keyspace {
26
+ transaction_keyspace(std::string bucket_name, std::string scope_name, std::string collection_name);
31
27
 
32
- std::string bucket;
33
- std::string scope{ couchbase::scope::default_name };
34
- std::string collection{ couchbase::collection::default_name };
28
+ explicit transaction_keyspace(const std::string& bucket_name);
35
29
 
36
- transaction_keyspace(const transaction_keyspace&) = default;
37
- transaction_keyspace(transaction_keyspace&&) = default;
38
- transaction_keyspace& operator=(const transaction_keyspace& keyspace)
39
- {
40
- if (this != &keyspace) {
41
- bucket = keyspace.bucket;
42
- scope = keyspace.scope;
43
- collection = keyspace.collection;
44
- }
45
- return *this;
46
- }
47
- bool operator==(const transaction_keyspace& keyspace)
30
+ bool operator==(const transaction_keyspace& keyspace) const
48
31
  {
49
32
  return bucket == keyspace.bucket && scope == keyspace.scope && collection == keyspace.collection;
50
33
  }
51
34
 
52
- transaction_keyspace(std::string bucket_name, std::string scope_name, std::string collection_name)
53
- : bucket(std::move(bucket_name))
54
- , scope(std::move(scope_name))
55
- , collection(std::move(collection_name))
56
- {
57
- if (scope.empty()) {
58
- scope = couchbase::scope::default_name;
59
- }
60
- if (collection.empty()) {
61
- collection = couchbase::collection::default_name;
62
- }
63
- }
64
-
65
- explicit transaction_keyspace(const std::string& bucket_name)
66
- : transaction_keyspace{ bucket_name, couchbase::scope::default_name, couchbase::collection::default_name }
67
- {
68
- }
69
35
  /**
70
36
  * Check if a keyspace is valid.
71
37
  *
@@ -74,10 +40,7 @@ struct transaction_keyspace {
74
40
  *
75
41
  * @return true if valid.
76
42
  */
77
- bool valid()
78
- {
79
- return !bucket.empty() && !scope.empty() && !collection.empty();
80
- }
43
+ bool valid();
81
44
 
82
45
  /** @private */
83
46
  template<typename OStream>
@@ -90,22 +53,9 @@ struct transaction_keyspace {
90
53
  os << "}";
91
54
  return os;
92
55
  }
56
+
57
+ std::string bucket;
58
+ std::string scope;
59
+ std::string collection;
93
60
  };
94
61
  } // namespace couchbase::transactions
95
-
96
- /** @private */
97
- template<>
98
- struct fmt::formatter<couchbase::transactions::transaction_keyspace> {
99
- public:
100
- template<typename ParseContext>
101
- constexpr auto parse(ParseContext& ctx)
102
- {
103
- return ctx.begin();
104
- }
105
-
106
- template<typename FormatContext>
107
- auto format(const couchbase::transactions::transaction_keyspace& k, FormatContext& ctx) const
108
- {
109
- return format_to(ctx.out(), "transaction_keyspace:{{ bucket: {}, scope: {}, collection: {} }}", k.bucket, k.scope, k.collection);
110
- }
111
- };
@@ -16,13 +16,18 @@
16
16
 
17
17
  #pragma once
18
18
 
19
+ #include <couchbase/durability_level.hxx>
19
20
  #include <couchbase/query_scan_consistency.hxx>
20
21
  #include <couchbase/transactions/transactions_config.hxx>
21
22
 
22
23
  #include <chrono>
23
24
  #include <optional>
24
25
 
25
- namespace couchbase::transactions
26
+ namespace couchbase
27
+ {
28
+ class collection;
29
+
30
+ namespace transactions
26
31
  {
27
32
  /**
28
33
  * The transaction_options can be passed in to override some elements of the global @ref transactions_config.
@@ -40,11 +45,8 @@ class transaction_options
40
45
  * @param level Durability level for this transaction.
41
46
  * @return reference to this object, convenient for chaining operations.
42
47
  */
43
- transaction_options& durability_level(durability_level level)
44
- {
45
- durability_ = level;
46
- return *this;
47
- }
48
+ transaction_options& durability_level(durability_level level);
49
+
48
50
  /**
49
51
  * Get the durability if it has been set.
50
52
  *
@@ -52,10 +54,8 @@ class transaction_options
52
54
  *
53
55
  * @return durability if set.
54
56
  */
55
- std::optional<couchbase::durability_level> durability_level()
56
- {
57
- return durability_;
58
- }
57
+ [[nodiscard]] std::optional<couchbase::durability_level> durability_level() const;
58
+
59
59
  /**
60
60
  * Set the @ref query_scan_consistency for this transaction.
61
61
  *
@@ -64,11 +64,8 @@ class transaction_options
64
64
  * @param scan_consistency The desired @ref query_scan_consistency for this transaction.
65
65
  * @return reference to this object, convenient for chaining operations.
66
66
  */
67
- transaction_options& scan_consistency(query_scan_consistency scan_consistency)
68
- {
69
- scan_consistency_ = scan_consistency;
70
- return *this;
71
- }
67
+ transaction_options& scan_consistency(query_scan_consistency scan_consistency);
68
+
72
69
  /**
73
70
  * Get the scan_consistency if it has been set.
74
71
  *
@@ -76,55 +73,28 @@ class transaction_options
76
73
  *
77
74
  * @return The scan_consistency, if set.
78
75
  */
79
- std::optional<query_scan_consistency> scan_consistency()
80
- {
81
- return scan_consistency_;
82
- }
83
- /**
84
- * Set the timeout for key-value operations for this transaction.
85
- *
86
- * @param kv_timeout Desired key-value timeout.
87
- * @return reference to this object, convenient for chaining operations.
88
- */
89
- transaction_options& kv_timeout(std::chrono::milliseconds kv_timeout)
90
- {
91
- kv_timeout_ = kv_timeout;
92
- return *this;
93
- }
94
-
95
- /**
96
- * Get the key-value timeout if it has been set.
97
- *
98
- * @return The key-value timeout, if set.
99
- */
100
- std::optional<std::chrono::milliseconds> kv_timeout()
101
- {
102
- return kv_timeout_;
103
- }
76
+ [[nodiscard]] std::optional<query_scan_consistency> scan_consistency() const;
104
77
 
105
78
  /**
106
- * Set the expiration time for this transaction.
79
+ * Set the timeout for this transaction.
107
80
  *
108
- * @tparam T expiration time type, e.g. @ref std::chrono::milliseconds, or similar
109
- * @param expiration_time Desired expiration time.
81
+ * @tparam T timeout type, e.g. @ref std::chrono::milliseconds, or similar
82
+ * @param timeout Desired timeout
110
83
  * @return reference to this object, convenient for chaining operations.
111
84
  */
112
85
  template<typename T>
113
- transaction_options& expiration_time(T expiration_time)
86
+ transaction_options& timeout(T timeout)
114
87
  {
115
- expiration_time_ = std::chrono::duration_cast<std::chrono::nanoseconds>(expiration_time);
88
+ timeout_ = std::chrono::duration_cast<std::chrono::nanoseconds>(timeout);
116
89
  return *this;
117
90
  }
118
91
 
119
92
  /**
120
- * Get the expiration time, if set.
93
+ * Get the timeout, if set.
121
94
  *
122
- * @return the expiration time, if set.
95
+ * @return the timeout, if set.
123
96
  */
124
- std::optional<std::chrono::nanoseconds> expiration_time()
125
- {
126
- return expiration_time_;
127
- }
97
+ std::optional<std::chrono::nanoseconds> timeout();
128
98
 
129
99
  /**
130
100
  * Set the metadata collection to use for this transaction
@@ -136,11 +106,8 @@ class transaction_options
136
106
  * @param coll The desired collection to use.
137
107
  * @return reference to this object, convenient for chaining operations.
138
108
  */
139
- transaction_options& metadata_collection(const couchbase::collection& coll)
140
- {
141
- metadata_collection_.emplace(coll.bucket_name(), coll.scope_name(), coll.name());
142
- return *this;
143
- }
109
+ transaction_options& metadata_collection(const couchbase::collection& coll);
110
+
144
111
  /**
145
112
  * Set metadata collection to use for this transaction
146
113
  *
@@ -157,30 +124,21 @@ class transaction_options
157
124
  *
158
125
  * @return the metadata collection, as a @ref transaction_keyspace, if set.
159
126
  */
160
- std::optional<transaction_keyspace> metadata_collection()
161
- {
162
- return metadata_collection_;
163
- }
127
+ [[nodiscard]] std::optional<transaction_keyspace> metadata_collection() const;
164
128
 
165
129
  /** @private */
166
130
  transaction_options& test_factories(std::shared_ptr<core::transactions::attempt_context_testing_hooks> hooks,
167
- std::shared_ptr<core::transactions::cleanup_testing_hooks> cleanup_hooks)
168
- {
169
- attempt_context_hooks_ = hooks;
170
- cleanup_hooks_ = cleanup_hooks;
171
- return *this;
172
- }
131
+ std::shared_ptr<core::transactions::cleanup_testing_hooks> cleanup_hooks);
173
132
  /** @private */
174
133
  [[nodiscard]] transactions_config::built apply(const transactions_config::built& conf) const;
175
134
 
176
135
  private:
177
136
  std::optional<couchbase::durability_level> durability_;
178
137
  std::optional<couchbase::query_scan_consistency> scan_consistency_;
179
- std::optional<std::chrono::milliseconds> kv_timeout_;
180
- std::optional<std::chrono::nanoseconds> expiration_time_;
138
+ std::optional<std::chrono::nanoseconds> timeout_;
181
139
  std::optional<transaction_keyspace> metadata_collection_;
182
140
  std::shared_ptr<core::transactions::attempt_context_testing_hooks> attempt_context_hooks_;
183
141
  std::shared_ptr<core::transactions::cleanup_testing_hooks> cleanup_hooks_;
184
142
  };
185
-
186
- } // namespace couchbase::transactions
143
+ } // namespace transactions
144
+ } // namespace couchbase
@@ -15,8 +15,6 @@
15
15
  */
16
16
  #pragma once
17
17
 
18
- // TODO: remove this when moving the wrap_request call
19
- #include "core/operations/document_query.hxx"
20
18
  #include <couchbase/query_options.hxx>
21
19
 
22
20
  // NOTE: when query is in public api, we will hold a query_options struct instead, and
@@ -57,6 +55,7 @@ class transaction_query_options
57
55
  opts_.raw(key, value);
58
56
  return *this;
59
57
  }
58
+
60
59
  /**
61
60
  * Set ad_hoc.
62
61
  *
@@ -71,6 +70,7 @@ class transaction_query_options
71
70
  opts_.adhoc(value);
72
71
  return *this;
73
72
  }
73
+
74
74
  /**
75
75
  * Set the query_scan_consistency for this query.
76
76
  *
@@ -98,6 +98,7 @@ class transaction_query_options
98
98
  opts_.profile(mode);
99
99
  return *this;
100
100
  }
101
+
101
102
  /**
102
103
  * Set a client id for this query.
103
104
  *
@@ -139,6 +140,7 @@ class transaction_query_options
139
140
  opts_.readonly(readonly);
140
141
  return *this;
141
142
  }
143
+
142
144
  /**
143
145
  * Set the scan cap for this query.
144
146
  *
@@ -152,6 +154,7 @@ class transaction_query_options
152
154
  opts_.scan_cap(cap);
153
155
  return *this;
154
156
  }
157
+
155
158
  /**
156
159
  * Set pipeline_batch size for this query.
157
160
  *
@@ -195,6 +198,7 @@ class transaction_query_options
195
198
  opts_.positional_parameters(parameters...);
196
199
  return *this;
197
200
  }
201
+
198
202
  /**
199
203
  * Set named parameters for this query.
200
204
  *
@@ -210,6 +214,7 @@ class transaction_query_options
210
214
  opts_.named_parameters(parameters...);
211
215
  return *this;
212
216
  }
217
+
213
218
  /**
214
219
  * Set metrics for this query.
215
220
  *
@@ -15,10 +15,11 @@
15
15
  */
16
16
  #pragma once
17
17
 
18
+ #include <couchbase/transactions/transaction_keyspace.hxx>
19
+
18
20
  #include <chrono>
19
21
  #include <list>
20
22
 
21
- #include <couchbase/transactions/transaction_keyspace.hxx>
22
23
  namespace couchbase::transactions
23
24
  {
24
25
  /**
@@ -1,3 +1,4 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
1
2
  /*
2
3
  * Copyright 2021-Present Couchbase, Inc.
3
4
  *
@@ -15,6 +16,7 @@
15
16
  */
16
17
  #pragma once
17
18
 
19
+ #include <couchbase/durability_level.hxx>
18
20
  #include <couchbase/transactions/transaction_keyspace.hxx>
19
21
  #include <couchbase/transactions/transactions_cleanup_config.hxx>
20
22
  #include <couchbase/transactions/transactions_query_config.hxx>
@@ -77,55 +79,28 @@ class transactions_config
77
79
  }
78
80
 
79
81
  /**
80
- * @brief Set kv_timeout
81
- *
82
- * @see kv_timeout()
83
- * @param duration An std::chrono::duration representing the desired default kv operation timeout.
84
- * @return reference to this, so calls can be chained.
85
- */
86
- template<typename T>
87
- transactions_config& kv_timeout(T duration)
88
- {
89
- kv_timeout_ = std::chrono::duration_cast<std::chrono::milliseconds>(duration);
90
- return *this;
91
- }
92
-
93
- /**
94
- * @brief Get kv_timeout
95
- *
96
- * This is the default kv operation timeout used throughout the transactions. Note all the operations
97
- * have an options class which allows you to override this value for a particular operation, if desired.
98
- *
99
- * @return The default kv operation timeout.
100
- */
101
- [[nodiscard]] std::optional<std::chrono::milliseconds> kv_timeout() const
102
- {
103
- return kv_timeout_;
104
- }
105
-
106
- /**
107
- * @brief Get expiration time for transactions
82
+ * @brief Get the timeout for transactions
108
83
  *
109
84
  * Transactions can conflict (or other operations on those documents), and may retry.
110
85
  * This is the maximum time a transaction can take, including any retries. The transaction will throw
111
86
  * an @ref transaction_expired and rollback when this occurs.
112
87
  *
113
- * @return expiration time for transactions.
88
+ * @return timeout for transactions.
114
89
  */
115
- [[nodiscard]] std::chrono::nanoseconds expiration_time() const
90
+ [[nodiscard]] std::chrono::nanoseconds timeout() const
116
91
  {
117
- return expiration_time_;
92
+ return timeout_;
118
93
  }
119
94
  /**
120
- * @brief Set the expiration time for transactions.
95
+ * @brief Set the timeout for transactions.
121
96
  *
122
97
  * @param duration desired expiration for transactions.
123
98
  * @return reference to this, so calls can be chained.
124
99
  */
125
100
  template<typename T>
126
- transactions_config& expiration_time(T duration)
101
+ transactions_config& timeout(T duration)
127
102
  {
128
- expiration_time_ = std::chrono::duration_cast<std::chrono::nanoseconds>(duration);
103
+ timeout_ = std::chrono::duration_cast<std::chrono::nanoseconds>(duration);
129
104
  return *this;
130
105
  }
131
106
 
@@ -234,8 +209,7 @@ class transactions_config
234
209
  /** @private */
235
210
  struct built {
236
211
  couchbase::durability_level level;
237
- std::chrono::nanoseconds expiration_time;
238
- std::optional<std::chrono::milliseconds> kv_timeout;
212
+ std::chrono::nanoseconds timeout;
239
213
  std::shared_ptr<core::transactions::attempt_context_testing_hooks> attempt_context_hooks;
240
214
  std::shared_ptr<core::transactions::cleanup_testing_hooks> cleanup_hooks;
241
215
  std::optional<couchbase::transactions::transaction_keyspace> metadata_collection;
@@ -248,8 +222,7 @@ class transactions_config
248
222
 
249
223
  private:
250
224
  couchbase::durability_level level_{ couchbase::durability_level::majority };
251
- std::chrono::nanoseconds expiration_time_{ std::chrono::seconds(15) };
252
- std::optional<std::chrono::milliseconds> kv_timeout_;
225
+ std::chrono::nanoseconds timeout_{ std::chrono::seconds(15) };
253
226
  std::shared_ptr<core::transactions::attempt_context_testing_hooks> attempt_context_hooks_;
254
227
  std::shared_ptr<core::transactions::cleanup_testing_hooks> cleanup_hooks_;
255
228
  std::optional<couchbase::transactions::transaction_keyspace> metadata_collection_;
@@ -0,0 +1,43 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2020-Present Couchbase, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ #pragma once
19
+
20
+ #include <couchbase/common_options.hxx>
21
+
22
+ #include <functional>
23
+ #include <memory>
24
+ #include <optional>
25
+ #include <string>
26
+
27
+ namespace couchbase
28
+ {
29
+ struct unfreeze_plan_search_index_options : public common_options<unfreeze_plan_search_index_options> {
30
+ public:
31
+ struct built : public common_options<unfreeze_plan_search_index_options>::built {
32
+ };
33
+
34
+ [[nodiscard]] auto build() const -> built
35
+ {
36
+ return { build_common_options() };
37
+ }
38
+
39
+ private:
40
+ };
41
+
42
+ using unfreeze_plan_search_index_handler = std::function<void(couchbase::manager_error_context)>;
43
+ } // namespace couchbase
@@ -70,28 +70,4 @@ struct unlock_options : public common_options<unlock_options> {
70
70
  * @uncommitted
71
71
  */
72
72
  using unlock_handler = std::function<void(couchbase::key_value_error_context)>;
73
-
74
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
75
- namespace core
76
- {
77
- class cluster;
78
- namespace impl
79
- {
80
-
81
- /**
82
- * @since 1.0.0
83
- * @internal
84
- */
85
- void
86
- initiate_unlock_operation(std::shared_ptr<couchbase::core::cluster> core,
87
- std::string bucket_name,
88
- std::string scope_name,
89
- std::string collection_name,
90
- std::string document_key,
91
- couchbase::cas cas,
92
- couchbase::unlock_options::built options,
93
- couchbase::unlock_handler&& handler);
94
- #endif
95
- } // namespace impl
96
- } // namespace core
97
73
  } // namespace couchbase
@@ -17,26 +17,55 @@
17
17
 
18
18
  #pragma once
19
19
 
20
- #include <functional>
20
+ #include <couchbase/common_options.hxx>
21
+ #include <couchbase/manager_error_context.hxx>
22
+
23
+ #include <cstdint>
21
24
  #include <memory>
22
25
  #include <optional>
23
- #include <string>
24
26
 
25
27
  namespace couchbase
26
28
  {
27
29
  struct update_collection_options : public common_options<update_collection_options> {
28
30
  public:
31
+ /**
32
+ * Immutable value object representing consistent options.
33
+ *
34
+ * @since 1.0.0
35
+ * @internal
36
+ */
29
37
  struct built : public common_options<update_collection_options>::built {
30
38
  };
31
39
 
40
+ /**
41
+ * Validates the options and returns them as an immutable value.
42
+ *
43
+ * @return consistent options as an immutable value
44
+ *
45
+ * @exception std::system_error with code errc::common::invalid_argument if the options are not valid
46
+ *
47
+ * @since 1.0.0
48
+ * @internal
49
+ */
32
50
  [[nodiscard]] auto build() const -> built
33
51
  {
34
52
  return { build_common_options() };
35
53
  }
36
54
  };
37
55
 
56
+ /**
57
+ * The settings that should be updated for the collection
58
+ */
38
59
  struct update_collection_settings {
39
- std::optional<std::uint32_t> max_expiry{};
60
+ /**
61
+ * The maximum expiry, in seconds, for documents in this collection. Values greater than or equal to -1 are valid.
62
+ * Value of 0 sets max_expiry to the bucket-level setting and value of -1 to set it as no-expiry.
63
+ */
64
+ std::optional<std::int32_t> max_expiry{};
65
+
66
+ /**
67
+ * Whether history retention should be enabled.
68
+ */
40
69
  std::optional<bool> history{};
41
70
  };
42
71
 
@@ -131,28 +131,4 @@ struct upsert_options : public common_durability_options<upsert_options> {
131
131
  * @uncommitted
132
132
  */
133
133
  using upsert_handler = std::function<void(couchbase::key_value_error_context, mutation_result)>;
134
-
135
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
136
- namespace core
137
- {
138
- class cluster;
139
- namespace impl
140
- {
141
-
142
- /**
143
- * @since 1.0.0
144
- * @internal
145
- */
146
- void
147
- initiate_upsert_operation(std::shared_ptr<couchbase::core::cluster> core,
148
- std::string bucket_name,
149
- std::string scope_name,
150
- std::string collection_name,
151
- std::string document_key,
152
- couchbase::codec::encoded_value encoded,
153
- couchbase::upsert_options::built options,
154
- couchbase::upsert_handler&& handler);
155
- #endif
156
- } // namespace impl
157
- } // namespace core
158
134
  } // namespace couchbase