couchbase 4.2.8-dev.1 → 4.2.9

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 (317) 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 +397 -424
  5. package/deps/couchbase-cxx-client/core/agent_config.hxx +1 -1
  6. package/deps/couchbase-cxx-client/core/agent_group.cxx +0 -1
  7. package/deps/couchbase-cxx-client/core/agent_group.hxx +9 -0
  8. package/deps/couchbase-cxx-client/core/agent_group_config.hxx +1 -1
  9. package/deps/couchbase-cxx-client/core/bucket.cxx +22 -8
  10. package/deps/couchbase-cxx-client/core/bucket.hxx +3 -1
  11. package/deps/couchbase-cxx-client/core/cluster.cxx +1453 -108
  12. package/deps/couchbase-cxx-client/core/cluster.hxx +183 -473
  13. package/deps/couchbase-cxx-client/core/cluster_agent_config.hxx +1 -1
  14. package/deps/couchbase-cxx-client/core/cluster_options.cxx +12 -2
  15. package/deps/couchbase-cxx-client/core/cluster_options.hxx +9 -8
  16. package/deps/couchbase-cxx-client/core/config_profiles.cxx +2 -2
  17. package/deps/couchbase-cxx-client/core/config_profiles.hxx +1 -1
  18. package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +1 -2
  19. package/deps/couchbase-cxx-client/core/core_sdk_shim.hxx +3 -2
  20. package/deps/couchbase-cxx-client/core/diagnostics.hxx +0 -1
  21. package/deps/couchbase-cxx-client/core/dispatcher.cxx +2 -2
  22. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +38 -76
  23. package/deps/couchbase-cxx-client/core/impl/analytics.hxx +40 -0
  24. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +820 -0
  25. package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +403 -0
  26. package/deps/couchbase-cxx-client/core/impl/bucket.cxx +78 -0
  27. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +433 -0
  28. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +226 -44
  29. package/deps/couchbase-cxx-client/core/impl/collection.cxx +1384 -0
  30. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +306 -0
  31. package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +3 -1
  32. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +2 -0
  33. package/deps/couchbase-cxx-client/core/{operations/mcbp_noop.cxx → impl/doc_id_query.cxx} +19 -15
  34. package/deps/couchbase-cxx-client/core/impl/key_value_error_category.cxx +4 -2
  35. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.hxx +0 -10
  36. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.hxx +0 -10
  37. package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +24 -17
  38. package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -1
  39. package/deps/couchbase-cxx-client/core/impl/query.cxx +45 -68
  40. package/deps/couchbase-cxx-client/core/impl/query.hxx +34 -0
  41. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +628 -0
  42. package/deps/couchbase-cxx-client/core/impl/scope.cxx +172 -0
  43. package/deps/couchbase-cxx-client/core/impl/search.cxx +12 -61
  44. package/deps/couchbase-cxx-client/core/impl/search.hxx +37 -0
  45. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +469 -0
  46. package/deps/couchbase-cxx-client/core/impl/search_row_location.cxx +12 -0
  47. package/deps/couchbase-cxx-client/core/impl/search_sort_geo_distance.cxx +87 -0
  48. package/deps/couchbase-cxx-client/core/impl/with_legacy_durability.hxx +23 -25
  49. package/deps/couchbase-cxx-client/core/io/dns_config.cxx +28 -0
  50. package/deps/couchbase-cxx-client/core/io/dns_config.hxx +6 -25
  51. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +9 -1
  52. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +1 -1
  53. package/deps/couchbase-cxx-client/core/io/mcbp_message.hxx +3 -2
  54. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +51 -21
  55. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +2 -1
  56. package/deps/couchbase-cxx-client/core/logger/logger.hxx +4 -4
  57. package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +1 -1
  58. package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +1 -1
  59. package/deps/couchbase-cxx-client/core/mcbp/queue_callback.hxx +1 -1
  60. package/deps/couchbase-cxx-client/core/meta/features.hxx +28 -0
  61. package/deps/couchbase-cxx-client/core/operations/document_query.cxx +17 -1
  62. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -1
  63. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +2 -0
  64. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +2 -0
  65. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +2 -0
  66. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +2 -0
  67. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +2 -0
  68. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +2 -0
  69. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +2 -0
  70. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +2 -0
  71. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +2 -0
  72. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +2 -0
  73. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +1 -1
  74. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -0
  75. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +2 -0
  76. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +2 -0
  77. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +2 -0
  78. package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +3 -1
  79. package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +2 -0
  80. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +2 -0
  81. package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +2 -0
  82. package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +6 -5
  83. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +2 -0
  84. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +2 -0
  85. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +2 -0
  86. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +2 -0
  87. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +2 -0
  88. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +2 -0
  89. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +2 -0
  90. package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +2 -0
  91. package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +2 -0
  92. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.cxx +1 -1
  93. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +2 -2
  94. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +4 -1
  95. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +4 -1
  96. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +1 -1
  97. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +1 -1
  98. package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -0
  99. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +2 -0
  100. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +2 -0
  101. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.cxx +4 -4
  102. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +4 -4
  103. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +2 -0
  104. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +2 -0
  105. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +2 -0
  106. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +2 -0
  107. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +2 -0
  108. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +2 -0
  109. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +1 -1
  110. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +2 -0
  111. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +2 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +2 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -0
  114. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -0
  115. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +2 -0
  116. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -0
  117. package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
  118. package/deps/couchbase-cxx-client/core/operations_fwd.hxx +260 -0
  119. package/deps/couchbase-cxx-client/core/origin.cxx +146 -5
  120. package/deps/couchbase-cxx-client/core/origin.hxx +30 -140
  121. package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.hxx +3 -3
  122. package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +5 -0
  123. package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.hxx +4 -4
  124. package/deps/couchbase-cxx-client/core/protocol/hello_feature.hxx +6 -0
  125. package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +3 -0
  126. package/deps/couchbase-cxx-client/core/protocol/status.cxx +6 -0
  127. package/deps/couchbase-cxx-client/core/protocol/status.hxx +1 -0
  128. package/deps/couchbase-cxx-client/core/query_context.hxx +11 -7
  129. package/deps/couchbase-cxx-client/core/range_scan_orchestrator.cxx +1 -1
  130. package/deps/couchbase-cxx-client/core/topology/configuration.cxx +23 -0
  131. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +8 -12
  132. package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +3 -3
  133. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +2 -0
  134. package/deps/couchbase-cxx-client/core/topology/error_map.hxx +2 -2
  135. package/deps/couchbase-cxx-client/core/topology/error_map_json.hxx +4 -0
  136. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.cxx +58 -0
  137. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +5 -40
  138. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +30 -0
  139. package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +18 -18
  140. package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +36 -0
  141. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +39 -41
  142. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +2 -2
  143. package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +3 -1
  144. package/deps/couchbase-cxx-client/core/transactions/internal/atr_entry.hxx +2 -0
  145. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +32 -0
  146. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +4 -30
  147. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +41 -0
  148. package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +17 -15
  149. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +1 -1
  150. package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +4 -4
  151. package/deps/couchbase-cxx-client/core/transactions/internal/utils.hxx +1 -13
  152. package/deps/couchbase-cxx-client/core/transactions/result.hxx +0 -26
  153. package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +46 -0
  154. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +16 -14
  155. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +6 -6
  156. package/deps/couchbase-cxx-client/core/transactions/transaction_keyspace.cxx +48 -0
  157. package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +1 -0
  158. package/deps/couchbase-cxx-client/core/transactions/transaction_options.cxx +61 -4
  159. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +9 -8
  160. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +9 -16
  161. package/deps/couchbase-cxx-client/core/transactions/transactions_config.cxx +7 -6
  162. package/deps/couchbase-cxx-client/core/transactions.hxx +6 -5
  163. package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +4 -3
  164. package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +4 -4
  165. package/deps/couchbase-cxx-client/couchbase/allow_querying_search_index_options.hxx +44 -0
  166. package/deps/couchbase-cxx-client/couchbase/analytics_index_manager.hxx +463 -0
  167. package/deps/couchbase-cxx-client/couchbase/analyze_document_options.hxx +44 -0
  168. package/deps/couchbase-cxx-client/couchbase/append_options.hxx +0 -24
  169. package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +1 -1
  170. package/deps/couchbase-cxx-client/couchbase/binary_collection.hxx +19 -115
  171. package/deps/couchbase-cxx-client/couchbase/bucket.hxx +13 -30
  172. package/deps/couchbase-cxx-client/couchbase/bucket_manager.hxx +8 -7
  173. package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +0 -1
  174. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +41 -73
  175. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +1 -27
  176. package/deps/couchbase-cxx-client/couchbase/collection.hxx +176 -386
  177. package/deps/couchbase-cxx-client/couchbase/collection_manager.hxx +8 -9
  178. package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +21 -24
  179. package/deps/couchbase-cxx-client/couchbase/connect_link_analytics_options.hxx +116 -0
  180. package/deps/couchbase-cxx-client/couchbase/create_bucket_options.hxx +3 -3
  181. package/deps/couchbase-cxx-client/couchbase/create_collection_options.hxx +3 -2
  182. package/deps/couchbase-cxx-client/couchbase/create_dataset_analytics_options.hxx +120 -0
  183. package/deps/couchbase-cxx-client/couchbase/create_dataverse_analytics_options.hxx +85 -0
  184. package/deps/couchbase-cxx-client/couchbase/create_index_analytics_options.hxx +103 -0
  185. package/deps/couchbase-cxx-client/couchbase/create_link_analytics_options.hxx +63 -0
  186. package/deps/couchbase-cxx-client/couchbase/decrement_options.hxx +0 -23
  187. package/deps/couchbase-cxx-client/couchbase/disallow_querying_search_index_options.hxx +43 -0
  188. package/deps/couchbase-cxx-client/couchbase/disconnect_link_analytics_options.hxx +105 -0
  189. package/deps/couchbase-cxx-client/couchbase/drop_dataset_analytics_options.hxx +103 -0
  190. package/deps/couchbase-cxx-client/couchbase/drop_dataverse_analytics_options.hxx +84 -0
  191. package/deps/couchbase-cxx-client/couchbase/drop_index_analytics_options.hxx +103 -0
  192. package/deps/couchbase-cxx-client/couchbase/drop_link_analytics_options.hxx +63 -0
  193. package/deps/couchbase-cxx-client/couchbase/drop_search_index_options.hxx +43 -0
  194. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +22 -1
  195. package/deps/couchbase-cxx-client/couchbase/exists_options.hxx +0 -23
  196. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_error_map_attribute.hxx +6 -0
  197. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +3 -0
  198. package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +37 -0
  199. package/deps/couchbase-cxx-client/couchbase/freeze_plan_search_index_options.hxx +43 -0
  200. package/deps/couchbase-cxx-client/couchbase/get_all_datasets_analytics_options.hxx +66 -0
  201. package/deps/couchbase-cxx-client/couchbase/get_all_indexes_analytics_options.hxx +65 -0
  202. package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +1 -4
  203. package/deps/couchbase-cxx-client/couchbase/get_all_replicas_options.hxx +0 -23
  204. package/deps/couchbase-cxx-client/couchbase/get_all_search_indexes_options.hxx +45 -0
  205. package/deps/couchbase-cxx-client/couchbase/get_and_lock_options.hxx +0 -24
  206. package/deps/couchbase-cxx-client/couchbase/get_and_touch_options.hxx +0 -24
  207. package/deps/couchbase-cxx-client/couchbase/get_any_replica_options.hxx +0 -23
  208. package/deps/couchbase-cxx-client/couchbase/get_indexed_search_index_options.hxx +43 -0
  209. package/deps/couchbase-cxx-client/couchbase/get_links_analytics_options.hxx +121 -0
  210. package/deps/couchbase-cxx-client/couchbase/get_options.hxx +0 -23
  211. package/deps/couchbase-cxx-client/couchbase/get_pending_mutations_analytics_options.hxx +67 -0
  212. package/deps/couchbase-cxx-client/couchbase/get_search_index_options.hxx +44 -0
  213. package/deps/couchbase-cxx-client/couchbase/increment_options.hxx +0 -23
  214. package/deps/couchbase-cxx-client/couchbase/insert_options.hxx +0 -24
  215. package/deps/couchbase-cxx-client/couchbase/key_value_error_map_attribute.hxx +12 -0
  216. package/deps/couchbase-cxx-client/couchbase/key_value_status_code.hxx +1 -0
  217. package/deps/couchbase-cxx-client/couchbase/lookup_in_options.hxx +0 -24
  218. package/deps/couchbase-cxx-client/couchbase/management/analytics_dataset.hxx +48 -0
  219. package/deps/couchbase-cxx-client/couchbase/management/analytics_index.hxx +48 -0
  220. package/deps/couchbase-cxx-client/couchbase/management/analytics_link.hxx +239 -0
  221. package/deps/couchbase-cxx-client/couchbase/management/query_index.hxx +3 -3
  222. package/deps/couchbase-cxx-client/couchbase/management/search_index.hxx +40 -0
  223. package/deps/couchbase-cxx-client/couchbase/manager_error_context.hxx +0 -1
  224. package/deps/couchbase-cxx-client/couchbase/mutate_in_options.hxx +0 -24
  225. package/deps/couchbase-cxx-client/couchbase/network_options.hxx +1 -1
  226. package/deps/couchbase-cxx-client/couchbase/pause_ingest_search_index_options.hxx +43 -0
  227. package/deps/couchbase-cxx-client/couchbase/phrase_query.hxx +19 -0
  228. package/deps/couchbase-cxx-client/couchbase/prepend_options.hxx +0 -24
  229. package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +99 -20
  230. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +0 -21
  231. package/deps/couchbase-cxx-client/couchbase/remove_options.hxx +0 -23
  232. package/deps/couchbase-cxx-client/couchbase/replace_link_analytics_options.hxx +63 -0
  233. package/deps/couchbase-cxx-client/couchbase/replace_options.hxx +0 -24
  234. package/deps/couchbase-cxx-client/couchbase/resume_ingest_search_index_options.hxx +43 -0
  235. package/deps/couchbase-cxx-client/couchbase/scope.hxx +13 -45
  236. package/deps/couchbase-cxx-client/couchbase/search_facet_result.hxx +1 -7
  237. package/deps/couchbase-cxx-client/couchbase/search_geo_distance_units.hxx +26 -0
  238. package/deps/couchbase-cxx-client/couchbase/search_index_manager.hxx +292 -0
  239. package/deps/couchbase-cxx-client/couchbase/search_row_location.hxx +10 -0
  240. package/deps/couchbase-cxx-client/couchbase/search_sort_geo_distance.hxx +84 -0
  241. package/deps/couchbase-cxx-client/couchbase/security_options.hxx +1 -1
  242. package/deps/couchbase-cxx-client/couchbase/touch_options.hxx +0 -24
  243. package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +1 -1
  244. package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +10 -7
  245. package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +10 -10
  246. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +8 -58
  247. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +28 -70
  248. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +7 -2
  249. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +2 -1
  250. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +11 -38
  251. package/deps/couchbase-cxx-client/couchbase/unfreeze_plan_search_index_options.hxx +43 -0
  252. package/deps/couchbase-cxx-client/couchbase/unlock_options.hxx +0 -24
  253. package/deps/couchbase-cxx-client/couchbase/upsert_options.hxx +0 -24
  254. package/deps/couchbase-cxx-client/couchbase/upsert_search_index_options.hxx +41 -0
  255. package/dist/binding.d.ts +7 -9
  256. package/dist/bindingutilities.js +2 -0
  257. package/dist/collection.js +3 -3
  258. package/dist/errors.d.ts +9 -0
  259. package/dist/errors.js +14 -2
  260. package/dist/transactions.d.ts +2 -0
  261. package/dist/transactions.js +2 -3
  262. package/dist/usermanager.js +1 -1
  263. package/package.json +7 -7
  264. package/src/binding.cpp +1 -0
  265. package/src/connection.cpp +12 -9
  266. package/src/connection.hpp +3 -3
  267. package/src/connection_autogen.cpp +7 -5
  268. package/src/constants.cpp +3 -0
  269. package/src/instance.cpp +2 -2
  270. package/src/instance.hpp +1 -1
  271. package/src/jstocbpp_autogen.hpp +21 -38
  272. package/src/jstocbpp_basic.hpp +2 -0
  273. package/src/jstocbpp_errors.hpp +1 -0
  274. package/src/jstocbpp_transactions.hpp +6 -22
  275. package/src/mutationtoken.hpp +1 -0
  276. package/tools/gen-bindings-json.py +39 -16
  277. package/deps/couchbase-cxx-cache/spdlog/66ab2619a0014319471759c03e2de1af6bda14de/spdlog/example/CMakeLists.txt +0 -23
  278. package/deps/couchbase-cxx-cache/spdlog/66ab2619a0014319471759c03e2de1af6bda14de/spdlog/example/example.cpp +0 -398
  279. package/deps/couchbase-cxx-client/core/impl/append.cxx +0 -87
  280. package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +0 -157
  281. package/deps/couchbase-cxx-client/core/impl/create_bucket.cxx +0 -158
  282. package/deps/couchbase-cxx-client/core/impl/create_collection.cxx +0 -83
  283. package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +0 -232
  284. package/deps/couchbase-cxx-client/core/impl/create_scope.cxx +0 -69
  285. package/deps/couchbase-cxx-client/core/impl/decrement.cxx +0 -96
  286. package/deps/couchbase-cxx-client/core/impl/drop_bucket.cxx +0 -66
  287. package/deps/couchbase-cxx-client/core/impl/drop_collection.cxx +0 -76
  288. package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +0 -187
  289. package/deps/couchbase-cxx-client/core/impl/drop_scope.cxx +0 -68
  290. package/deps/couchbase-cxx-client/core/impl/exists.cxx +0 -47
  291. package/deps/couchbase-cxx-client/core/impl/flush_bucket.cxx +0 -66
  292. package/deps/couchbase-cxx-client/core/impl/get.cxx +0 -68
  293. package/deps/couchbase-cxx-client/core/impl/get_all_buckets.cxx +0 -178
  294. package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +0 -106
  295. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.cxx +0 -145
  296. package/deps/couchbase-cxx-client/core/impl/get_all_scopes.cxx +0 -94
  297. package/deps/couchbase-cxx-client/core/impl/get_and_lock.cxx +0 -49
  298. package/deps/couchbase-cxx-client/core/impl/get_and_touch.cxx +0 -49
  299. package/deps/couchbase-cxx-client/core/impl/get_any_replica.cxx +0 -134
  300. package/deps/couchbase-cxx-client/core/impl/get_bucket.cxx +0 -168
  301. package/deps/couchbase-cxx-client/core/impl/increment.cxx +0 -96
  302. package/deps/couchbase-cxx-client/core/impl/insert.cxx +0 -90
  303. package/deps/couchbase-cxx-client/core/impl/lookup_in.cxx +0 -69
  304. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.cxx +0 -178
  305. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.cxx +0 -169
  306. package/deps/couchbase-cxx-client/core/impl/mutate_in.cxx +0 -125
  307. package/deps/couchbase-cxx-client/core/impl/prepend.cxx +0 -87
  308. package/deps/couchbase-cxx-client/core/impl/remove.cxx +0 -86
  309. package/deps/couchbase-cxx-client/core/impl/replace.cxx +0 -102
  310. package/deps/couchbase-cxx-client/core/impl/touch.cxx +0 -49
  311. package/deps/couchbase-cxx-client/core/impl/unlock.cxx +0 -47
  312. package/deps/couchbase-cxx-client/core/impl/update_bucket.cxx +0 -133
  313. package/deps/couchbase-cxx-client/core/impl/update_collection.cxx +0 -83
  314. package/deps/couchbase-cxx-client/core/impl/upsert.cxx +0 -100
  315. package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +0 -196
  316. package/deps/couchbase-cxx-client/core/operations/mcbp_noop.hxx +0 -49
  317. /package/deps/couchbase-cxx-client/core/impl/{streaming_json_lexter_error_category.cxx → streaming_json_lexer_error_category.cxx} +0 -0
@@ -0,0 +1,628 @@
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
+ #include "core/cluster.hxx"
19
+
20
+ #include "core/operations/management/query_index_build_deferred.hxx"
21
+ #include "core/operations/management/query_index_create.hxx"
22
+ #include "core/operations/management/query_index_drop.hxx"
23
+ #include "core/operations/management/query_index_get_all.hxx"
24
+ #include "internal_manager_error_context.hxx"
25
+
26
+ #include "core/logger/logger.hxx"
27
+
28
+ #include <couchbase/collection_query_index_manager.hxx>
29
+ #include <couchbase/query_index_manager.hxx>
30
+
31
+ #include <asio/steady_timer.hpp>
32
+
33
+ #include <utility>
34
+
35
+ namespace couchbase
36
+ {
37
+ namespace
38
+ {
39
+ template<typename Response>
40
+ manager_error_context
41
+ build_context(Response& resp)
42
+ {
43
+ return manager_error_context{ internal_manager_error_context{ resp.ctx.ec,
44
+ resp.ctx.last_dispatched_to,
45
+ resp.ctx.last_dispatched_from,
46
+ resp.ctx.retry_attempts,
47
+ std::move(resp.ctx.retry_reasons),
48
+ std::move(resp.ctx.client_context_id),
49
+ resp.ctx.http_status,
50
+ std::move(resp.ctx.http_body),
51
+ std::move(resp.ctx.path) } };
52
+ }
53
+
54
+ class watch_context : public std::enable_shared_from_this<watch_context>
55
+ {
56
+
57
+ public:
58
+ watch_context(couchbase::core::cluster core,
59
+ std::string bucket_name,
60
+ std::vector<std::string> index_names,
61
+ couchbase::watch_query_indexes_options::built options,
62
+ std::string scope_name,
63
+ std::string collection_name,
64
+ watch_query_indexes_handler&& handler)
65
+ : core_(std::move(core))
66
+ , bucket_name_(std::move(bucket_name))
67
+ , index_names_(std::move(index_names))
68
+ , options_(std::move(options))
69
+ , scope_name_(std::move(scope_name))
70
+ , collection_name_(std::move(collection_name))
71
+ , handler_(std::move(handler))
72
+ {
73
+ }
74
+
75
+ watch_context(watch_context&& other) noexcept
76
+ : core_(std::move(other.core_))
77
+ , bucket_name_(std::move(other.bucket_name_))
78
+ , index_names_(std::move(other.index_names_))
79
+ , options_(std::move(other.options_))
80
+ , scope_name_(std::move(other.scope_name_))
81
+ , collection_name_(std::move(other.collection_name_))
82
+ , handler_(std::move(other.handler_))
83
+ , timer_(std::move(other.timer_))
84
+ , start_time_(other.start_time_)
85
+ , timeout_(other.timeout_)
86
+ , attempts_(other.attempts_.load())
87
+ {
88
+ }
89
+
90
+ void execute()
91
+ {
92
+ return core_.execute(
93
+ core::operations::management::query_index_get_all_request{
94
+ bucket_name_,
95
+ scope_name_,
96
+ collection_name_,
97
+ {},
98
+ {},
99
+ remaining(),
100
+ },
101
+ [ctx = shared_from_this()](auto resp) {
102
+ if (ctx->check(resp)) {
103
+ ctx->finish(resp);
104
+ } else if (ctx->remaining().count() <= 0) {
105
+ ctx->finish(resp, couchbase::errc::common::ambiguous_timeout);
106
+ } else {
107
+ ctx->poll();
108
+ }
109
+ });
110
+ }
111
+
112
+ private:
113
+ template<typename Response>
114
+ void finish(Response& resp, std::optional<std::error_code> ec = {})
115
+ {
116
+ watch_query_indexes_handler handler{};
117
+ std::swap(handler, handler_);
118
+ if (handler) {
119
+ handler({ manager_error_context(internal_manager_error_context{ ec.value_or(resp.ctx.ec),
120
+ resp.ctx.last_dispatched_to,
121
+ resp.ctx.last_dispatched_from,
122
+ resp.ctx.retry_attempts,
123
+ std::move(resp.ctx.retry_reasons),
124
+ std::move(resp.ctx.client_context_id),
125
+ resp.ctx.http_status,
126
+ std::move(resp.ctx.http_body),
127
+ std::move(resp.ctx.path) }) });
128
+ timer_.cancel();
129
+ }
130
+ }
131
+
132
+ std::chrono::milliseconds remaining() const
133
+ {
134
+ return timeout_ - std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - start_time_);
135
+ }
136
+
137
+ bool check(const couchbase::core::operations::management::query_index_get_all_response& resp)
138
+ {
139
+ if (resp.ctx.ec == couchbase::errc::common::ambiguous_timeout) {
140
+ return false;
141
+ }
142
+ bool complete = true;
143
+
144
+ for (const auto& name : index_names_) {
145
+ const auto it = std::find_if(resp.indexes.begin(), resp.indexes.end(), [&](const couchbase::management::query_index& index) {
146
+ return index.name == name;
147
+ });
148
+ if (it == resp.indexes.end()) {
149
+ finish(resp, couchbase::errc::common::index_not_found);
150
+ return true;
151
+ }
152
+ complete &= (it != resp.indexes.end() && it->state == "online");
153
+ }
154
+ if (options_.watch_primary) {
155
+ const auto it = std::find_if(
156
+ resp.indexes.begin(), resp.indexes.end(), [&](const couchbase::management::query_index& index) { return index.is_primary; });
157
+ complete &= it != resp.indexes.end() && it->state == "online";
158
+ }
159
+ return complete;
160
+ }
161
+
162
+ void poll()
163
+ {
164
+ timer_.expires_after(options_.polling_interval);
165
+ timer_.async_wait([ctx = shared_from_this()](asio::error_code) { ctx->execute(); });
166
+ }
167
+
168
+ couchbase::core::cluster core_;
169
+ std::string bucket_name_;
170
+ std::vector<std::string> index_names_;
171
+ couchbase::watch_query_indexes_options::built options_;
172
+ std::string scope_name_;
173
+ std::string collection_name_;
174
+ watch_query_indexes_handler handler_;
175
+ asio::steady_timer timer_{ core_.io_context() };
176
+ std::chrono::steady_clock::time_point start_time_{ std::chrono::steady_clock::now() };
177
+ std::chrono::milliseconds timeout_{ options_.timeout.value_or(core_.origin().second.options().query_timeout) };
178
+ std::atomic<size_t> attempts_{ 0 };
179
+ };
180
+
181
+ } // namespace
182
+
183
+ class query_index_manager_impl : public std::enable_shared_from_this<query_index_manager_impl>
184
+ {
185
+ public:
186
+ explicit query_index_manager_impl(core::cluster core)
187
+ : core_{ std::move(core) }
188
+ {
189
+ }
190
+
191
+ void get_all_indexes(const std::string& bucket_name,
192
+ const std::string& scope_name,
193
+ const std::string& collection_name,
194
+ const get_all_query_indexes_options::built& options,
195
+ get_all_query_indexes_handler&& handler) const
196
+ {
197
+ return core_.execute(
198
+ core::operations::management::query_index_get_all_request{
199
+ bucket_name,
200
+ scope_name,
201
+ collection_name,
202
+ {},
203
+ {},
204
+ options.timeout,
205
+ },
206
+ [handler = std::move(handler)](core::operations::management::query_index_get_all_response resp) {
207
+ if (resp.ctx.ec) {
208
+ return handler(build_context(resp), {});
209
+ }
210
+ handler(build_context(resp), resp.indexes);
211
+ });
212
+ }
213
+
214
+ void create_index(const std::string& bucket_name,
215
+ const std::string& scope_name,
216
+ const std::string& collection_name,
217
+ std::string index_name,
218
+ std::vector<std::string> fields,
219
+ const create_query_index_options::built& options,
220
+ create_query_index_handler&& handler) const
221
+ {
222
+ return core_.execute(
223
+ core::operations::management::query_index_create_request{
224
+ bucket_name,
225
+ scope_name,
226
+ collection_name,
227
+ std::move(index_name),
228
+ std::move(fields),
229
+ {},
230
+ false /* is_primary */,
231
+ options.ignore_if_exists,
232
+ options.condition,
233
+ options.deferred,
234
+ options.num_replicas,
235
+ {},
236
+ options.timeout,
237
+ },
238
+ [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
239
+ }
240
+
241
+ void create_primary_index(const std::string& bucket_name,
242
+ const std::string& scope_name,
243
+ const std::string& collection_name,
244
+ const create_primary_query_index_options::built& options,
245
+ create_primary_query_index_handler&& handler) const
246
+ {
247
+ return core_.execute(
248
+ core::operations::management::query_index_create_request{
249
+ bucket_name,
250
+ scope_name,
251
+ collection_name,
252
+ options.index_name.value_or(""),
253
+ {},
254
+ {},
255
+ true /* is_primary */,
256
+ options.ignore_if_exists,
257
+ {},
258
+ options.deferred,
259
+ options.num_replicas,
260
+ {},
261
+ options.timeout,
262
+ },
263
+ [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
264
+ }
265
+
266
+ void drop_index(const std::string& bucket_name,
267
+ const std::string& scope_name,
268
+ const std::string& collection_name,
269
+ std::string index_name,
270
+ const drop_query_index_options::built& options,
271
+ drop_query_index_handler&& handler) const
272
+ {
273
+ return core_.execute(
274
+ core::operations::management::query_index_drop_request{
275
+ bucket_name,
276
+ scope_name,
277
+ collection_name,
278
+ std::move(index_name),
279
+ {},
280
+ false /* is_primary */,
281
+ options.ignore_if_not_exists,
282
+ {},
283
+ options.timeout,
284
+ },
285
+ [handler = std::move(handler)](auto resp) { handler(build_context(resp)); });
286
+ }
287
+
288
+ void drop_primary_index(const std::string& bucket_name,
289
+ const std::string& scope_name,
290
+ const std::string& collection_name,
291
+ const drop_primary_query_index_options::built& options,
292
+ drop_primary_query_index_handler&& handler) const
293
+ {
294
+ return core_.execute(
295
+ core::operations::management::query_index_drop_request{
296
+ bucket_name,
297
+ scope_name,
298
+ collection_name,
299
+ options.index_name.value_or(""),
300
+ {},
301
+ true,
302
+ options.ignore_if_not_exists,
303
+ {},
304
+ options.timeout,
305
+ },
306
+ [handler = std::move(handler)](core::operations::management::query_index_drop_response resp) { handler(build_context(resp)); });
307
+ }
308
+
309
+ void build_deferred_indexes(const std::string& bucket_name,
310
+ const std::string& scope_name,
311
+ const std::string& collection_name,
312
+ const build_query_index_options::built& options,
313
+ build_deferred_query_indexes_handler&& handler) const
314
+ {
315
+ auto timeout = options.timeout;
316
+ return core_.execute(
317
+ core::operations::management::query_index_get_all_deferred_request{ bucket_name, scope_name, collection_name, {}, {}, timeout },
318
+ [self = shared_from_this(),
319
+ bucket = bucket_name,
320
+ scope = scope_name,
321
+ collection = collection_name,
322
+ timeout,
323
+ handler = std::move(handler)](auto list_resp) mutable {
324
+ if (list_resp.ctx.ec) {
325
+ return handler(build_context(list_resp));
326
+ }
327
+ if (list_resp.index_names.empty()) {
328
+ return handler(build_context(list_resp));
329
+ }
330
+ self->core_.execute(
331
+ core::operations::management::query_index_build_request{
332
+ std::move(bucket), scope, collection, {}, std::move(list_resp.index_names), {}, timeout },
333
+ [handler = std::move(handler)](auto build_resp) { return handler(build_context(build_resp)); });
334
+ });
335
+ }
336
+
337
+ void watch_indexes(const std::string& bucket_name,
338
+ const std::string& scope_name,
339
+ const std::string& collection_name,
340
+ std::vector<std::string> index_names,
341
+ watch_query_indexes_options::built options,
342
+ watch_query_indexes_handler&& handler) const
343
+ {
344
+ auto ctx = std::make_shared<watch_context>(
345
+ core_, bucket_name, std::move(index_names), std::move(options), scope_name, collection_name, std::move(handler));
346
+ return ctx->execute();
347
+ }
348
+
349
+ private:
350
+ core::cluster core_;
351
+ };
352
+
353
+ query_index_manager::query_index_manager(core::cluster core)
354
+ : impl_(std::make_shared<query_index_manager_impl>(std::move(core)))
355
+ {
356
+ }
357
+
358
+ void
359
+ query_index_manager::get_all_indexes(std::string bucket_name,
360
+ const get_all_query_indexes_options& options,
361
+ get_all_query_indexes_handler&& handler) const
362
+ {
363
+ return impl_->get_all_indexes(bucket_name, {}, {}, options.build(), std::move(handler));
364
+ }
365
+
366
+ auto
367
+ query_index_manager::get_all_indexes(std::string bucket_name, const get_all_query_indexes_options& options) const
368
+ -> std::future<std::pair<manager_error_context, std::vector<management::query_index>>>
369
+ {
370
+ auto barrier = std::make_shared<std::promise<std::pair<manager_error_context, std::vector<management::query_index>>>>();
371
+ auto future = barrier->get_future();
372
+ get_all_indexes(std::move(bucket_name), options, [barrier](auto ctx, auto resp) mutable {
373
+ barrier->set_value({ std::move(ctx), resp });
374
+ });
375
+ return future;
376
+ }
377
+
378
+ void
379
+ query_index_manager::create_index(std::string bucket_name,
380
+ std::string index_name,
381
+ std::vector<std::string> fields,
382
+ const create_query_index_options& options,
383
+ create_query_index_handler&& handler) const
384
+ {
385
+ return impl_->create_index(bucket_name, {}, {}, std::move(index_name), std::move(fields), options.build(), std::move(handler));
386
+ }
387
+
388
+ auto
389
+ query_index_manager::create_index(std::string bucket_name,
390
+ std::string index_name,
391
+ std::vector<std::string> fields,
392
+ const create_query_index_options& options) const -> std::future<manager_error_context>
393
+ {
394
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
395
+ auto future = barrier->get_future();
396
+ create_index(std::move(bucket_name), std::move(index_name), std::move(fields), options, [barrier](auto ctx) {
397
+ barrier->set_value(std::move(ctx));
398
+ });
399
+ return future;
400
+ }
401
+
402
+ void
403
+ query_index_manager::create_primary_index(std::string bucket_name,
404
+ const create_primary_query_index_options& options,
405
+ create_query_index_handler&& handler) const
406
+ {
407
+ return impl_->create_primary_index(bucket_name, {}, {}, options.build(), std::move(handler));
408
+ }
409
+
410
+ auto
411
+ query_index_manager::create_primary_index(std::string bucket_name, const create_primary_query_index_options& options) const
412
+ -> std::future<manager_error_context>
413
+ {
414
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
415
+ auto future = barrier->get_future();
416
+ create_primary_index(std::move(bucket_name), options, [barrier](auto ctx) { barrier->set_value(std::move(ctx)); });
417
+ return future;
418
+ }
419
+
420
+ void
421
+ query_index_manager::drop_primary_index(std::string bucket_name,
422
+ const drop_primary_query_index_options& options,
423
+ drop_query_index_handler&& handler) const
424
+ {
425
+ return impl_->drop_primary_index(bucket_name, {}, {}, options.build(), std::move(handler));
426
+ }
427
+
428
+ auto
429
+ query_index_manager::drop_primary_index(std::string bucket_name, const drop_primary_query_index_options& options) const
430
+ -> std::future<manager_error_context>
431
+ {
432
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
433
+ auto future = barrier->get_future();
434
+ drop_primary_index(std::move(bucket_name), options, [barrier](auto ctx) { barrier->set_value(std::move(ctx)); });
435
+ return future;
436
+ }
437
+
438
+ void
439
+ query_index_manager::drop_index(std::string bucket_name,
440
+ std::string index_name,
441
+ const drop_query_index_options& options,
442
+ drop_query_index_handler&& handler) const
443
+ {
444
+ return impl_->drop_index(bucket_name, {}, {}, std::move(index_name), options.build(), std::move(handler));
445
+ }
446
+
447
+ auto
448
+ query_index_manager::drop_index(std::string bucket_name, std::string index_name, const drop_query_index_options& options) const
449
+ -> std::future<manager_error_context>
450
+ {
451
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
452
+ auto future = barrier->get_future();
453
+ drop_index(std::move(bucket_name), std::move(index_name), options, [barrier](auto ctx) { barrier->set_value(std::move(ctx)); });
454
+ return future;
455
+ }
456
+
457
+ void
458
+ query_index_manager::build_deferred_indexes(std::string bucket_name,
459
+ const build_query_index_options& options,
460
+ build_deferred_query_indexes_handler&& handler) const
461
+ {
462
+ return impl_->build_deferred_indexes(bucket_name, {}, {}, options.build(), std::move(handler));
463
+ }
464
+
465
+ auto
466
+ query_index_manager::build_deferred_indexes(std::string bucket_name, const build_query_index_options& options) const
467
+ -> std::future<manager_error_context>
468
+ {
469
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
470
+ auto future = barrier->get_future();
471
+ build_deferred_indexes(std::move(bucket_name), options, [barrier](auto ctx) { barrier->set_value(std::move(ctx)); });
472
+ return future;
473
+ }
474
+
475
+ void
476
+ query_index_manager::watch_indexes(std::string bucket_name,
477
+ std::vector<std::string> index_names,
478
+ const watch_query_indexes_options& options,
479
+ watch_query_indexes_handler&& handler) const
480
+ {
481
+ return impl_->watch_indexes(bucket_name, {}, {}, std::move(index_names), options.build(), std::move(handler));
482
+ }
483
+
484
+ auto
485
+ query_index_manager::watch_indexes(std::string bucket_name,
486
+ std::vector<std::string> index_names,
487
+ const watch_query_indexes_options& options) const -> std::future<manager_error_context>
488
+ {
489
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
490
+ auto future = barrier->get_future();
491
+ watch_indexes(std::move(bucket_name), std::move(index_names), options, [barrier](auto ctx) { barrier->set_value(std::move(ctx)); });
492
+ return future;
493
+ }
494
+
495
+ collection_query_index_manager::collection_query_index_manager(core::cluster core,
496
+ std::string bucket_name,
497
+ std::string scope_name,
498
+ std::string collection_name)
499
+ : impl_(std::make_shared<query_index_manager_impl>(std::move(core)))
500
+ , bucket_name_(std::move(bucket_name))
501
+ , scope_name_(std::move(scope_name))
502
+ , collection_name_(std::move(collection_name))
503
+ {
504
+ }
505
+
506
+ void
507
+ collection_query_index_manager::get_all_indexes(const get_all_query_indexes_options& options, get_all_query_indexes_handler&& handler) const
508
+ {
509
+ return impl_->get_all_indexes(bucket_name_, scope_name_, collection_name_, options.build(), std::move(handler));
510
+ }
511
+
512
+ auto
513
+ collection_query_index_manager::get_all_indexes(const get_all_query_indexes_options& options) const
514
+ -> std::future<std::pair<manager_error_context, std::vector<management::query_index>>>
515
+ {
516
+ auto barrier = std::make_shared<std::promise<std::pair<manager_error_context, std::vector<management::query_index>>>>();
517
+ auto future = barrier->get_future();
518
+ get_all_indexes(options, [barrier](auto ctx, auto resp) mutable { barrier->set_value({ std::move(ctx), resp }); });
519
+ return future;
520
+ }
521
+
522
+ void
523
+ collection_query_index_manager::create_index(std::string index_name,
524
+ std::vector<std::string> fields,
525
+ const create_query_index_options& options,
526
+ create_query_index_handler&& handler) const
527
+ {
528
+ return impl_->create_index(
529
+ bucket_name_, scope_name_, collection_name_, std::move(index_name), std::move(fields), options.build(), std::move(handler));
530
+ }
531
+
532
+ auto
533
+ collection_query_index_manager::create_index(std::string index_name,
534
+ std::vector<std::string> fields,
535
+ const create_query_index_options& options) const -> std::future<manager_error_context>
536
+ {
537
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
538
+ auto future = barrier->get_future();
539
+ create_index(std::move(index_name), std::move(fields), options, [barrier](auto ctx) { barrier->set_value(std::move(ctx)); });
540
+ return future;
541
+ }
542
+
543
+ void
544
+ collection_query_index_manager::create_primary_index(const create_primary_query_index_options& options,
545
+ create_query_index_handler&& handler) const
546
+ {
547
+ return impl_->create_primary_index(bucket_name_, scope_name_, collection_name_, options.build(), std::move(handler));
548
+ }
549
+
550
+ auto
551
+ collection_query_index_manager::create_primary_index(const create_primary_query_index_options& options) const
552
+ -> std::future<manager_error_context>
553
+ {
554
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
555
+ auto future = barrier->get_future();
556
+ create_primary_index(options, [barrier](auto ctx) { barrier->set_value(std::move(ctx)); });
557
+ return future;
558
+ }
559
+
560
+ void
561
+ collection_query_index_manager::drop_primary_index(const drop_primary_query_index_options& options,
562
+ drop_query_index_handler&& handler) const
563
+ {
564
+ return impl_->drop_primary_index(bucket_name_, scope_name_, collection_name_, options.build(), std::move(handler));
565
+ }
566
+
567
+ auto
568
+ collection_query_index_manager::drop_primary_index(const drop_primary_query_index_options& options) const
569
+ -> std::future<manager_error_context>
570
+ {
571
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
572
+ auto future = barrier->get_future();
573
+ drop_primary_index(options, [barrier](auto ctx) { barrier->set_value(std::move(ctx)); });
574
+ return future;
575
+ }
576
+
577
+ void
578
+ collection_query_index_manager::drop_index(std::string index_name,
579
+ const drop_query_index_options& options,
580
+ drop_query_index_handler&& handler) const
581
+ {
582
+ return impl_->drop_index(bucket_name_, scope_name_, collection_name_, std::move(index_name), options.build(), std::move(handler));
583
+ }
584
+
585
+ auto
586
+ collection_query_index_manager::drop_index(std::string index_name, const drop_query_index_options& options) const
587
+ -> std::future<manager_error_context>
588
+ {
589
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
590
+ auto future = barrier->get_future();
591
+ drop_index(std::move(index_name), options, [barrier](auto ctx) { barrier->set_value(std::move(ctx)); });
592
+ return future;
593
+ }
594
+
595
+ void
596
+ collection_query_index_manager::build_deferred_indexes(const build_query_index_options& options,
597
+ build_deferred_query_indexes_handler&& handler) const
598
+ {
599
+ return impl_->build_deferred_indexes(bucket_name_, scope_name_, collection_name_, options.build(), std::move(handler));
600
+ }
601
+
602
+ auto
603
+ collection_query_index_manager::build_deferred_indexes(const build_query_index_options& options) const -> std::future<manager_error_context>
604
+ {
605
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
606
+ auto future = barrier->get_future();
607
+ build_deferred_indexes(options, [barrier](auto ctx) { barrier->set_value(std::move(ctx)); });
608
+ return future;
609
+ }
610
+
611
+ void
612
+ collection_query_index_manager::watch_indexes(std::vector<std::string> index_names,
613
+ const watch_query_indexes_options& options,
614
+ watch_query_indexes_handler&& handler) const
615
+ {
616
+ return impl_->watch_indexes(bucket_name_, scope_name_, collection_name_, std::move(index_names), options.build(), std::move(handler));
617
+ }
618
+
619
+ auto
620
+ collection_query_index_manager::watch_indexes(std::vector<std::string> index_names, const watch_query_indexes_options& options) const
621
+ -> std::future<manager_error_context>
622
+ {
623
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
624
+ auto future = barrier->get_future();
625
+ watch_indexes(std::move(index_names), options, [barrier](auto ctx) { barrier->set_value(std::move(ctx)); });
626
+ return future;
627
+ }
628
+ } // namespace couchbase