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
@@ -1,398 +0,0 @@
1
- //
2
- // Copyright(c) 2015 Gabi Melman.
3
- // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4
-
5
- // spdlog usage example
6
-
7
- #include <cstdio>
8
- #include <chrono>
9
-
10
- void load_levels_example();
11
- void stdout_logger_example();
12
- void basic_example();
13
- void rotating_example();
14
- void daily_example();
15
- void callback_example();
16
- void async_example();
17
- void binary_example();
18
- void vector_example();
19
- void stopwatch_example();
20
- void trace_example();
21
- void multi_sink_example();
22
- void user_defined_example();
23
- void err_handler_example();
24
- void syslog_example();
25
- void udp_example();
26
- void custom_flags_example();
27
- void file_events_example();
28
- void replace_default_logger_example();
29
-
30
- #include "spdlog/spdlog.h"
31
- #include "spdlog/cfg/env.h" // support for loading levels from the environment variable
32
- #include "spdlog/fmt/ostr.h" // support for user defined types
33
-
34
-
35
- int main(int, char *[])
36
- {
37
- // Log levels can be loaded from argv/env using "SPDLOG_LEVEL"
38
- load_levels_example();
39
-
40
- spdlog::info("Welcome to spdlog version {}.{}.{} !", SPDLOG_VER_MAJOR, SPDLOG_VER_MINOR, SPDLOG_VER_PATCH);
41
-
42
- spdlog::warn("Easy padding in numbers like {:08d}", 12);
43
- spdlog::critical("Support for int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}", 42);
44
- spdlog::info("Support for floats {:03.2f}", 1.23456);
45
- spdlog::info("Positional args are {1} {0}..", "too", "supported");
46
- spdlog::info("{:>8} aligned, {:<8} aligned", "right", "left");
47
-
48
- // Runtime log levels
49
- spdlog::set_level(spdlog::level::info); // Set global log level to info
50
- spdlog::debug("This message should not be displayed!");
51
- spdlog::set_level(spdlog::level::trace); // Set specific logger's log level
52
- spdlog::debug("This message should be displayed..");
53
-
54
- // Customize msg format for all loggers
55
- spdlog::set_pattern("[%H:%M:%S %z] [%^%L%$] [thread %t] %v");
56
- spdlog::info("This an info message with custom format");
57
- spdlog::set_pattern("%+"); // back to default format
58
- spdlog::set_level(spdlog::level::info);
59
-
60
- // Backtrace support
61
- // Loggers can store in a ring buffer all messages (including debug/trace) for later inspection.
62
- // When needed, call dump_backtrace() to see what happened:
63
- spdlog::enable_backtrace(10); // create ring buffer with capacity of 10 messages
64
- for (int i = 0; i < 100; i++)
65
- {
66
- spdlog::debug("Backtrace message {}", i); // not logged..
67
- }
68
- // e.g. if some error happened:
69
- spdlog::dump_backtrace(); // log them now!
70
-
71
- try
72
- {
73
- stdout_logger_example();
74
- basic_example();
75
- rotating_example();
76
- daily_example();
77
- callback_example();
78
- async_example();
79
- binary_example();
80
- vector_example();
81
- multi_sink_example();
82
- user_defined_example();
83
- err_handler_example();
84
- trace_example();
85
- stopwatch_example();
86
- udp_example();
87
- custom_flags_example();
88
- file_events_example();
89
- replace_default_logger_example();
90
-
91
- // Flush all *registered* loggers using a worker thread every 3 seconds.
92
- // note: registered loggers *must* be thread safe for this to work correctly!
93
- spdlog::flush_every(std::chrono::seconds(3));
94
-
95
- // Apply some function on all registered loggers
96
- spdlog::apply_all([&](std::shared_ptr<spdlog::logger> l) { l->info("End of example."); });
97
-
98
- // Release all spdlog resources, and drop all loggers in the registry.
99
- // This is optional (only mandatory if using windows + async log).
100
- spdlog::shutdown();
101
- }
102
-
103
- // Exceptions will only be thrown upon failed logger or sink construction (not during logging).
104
- catch (const spdlog::spdlog_ex &ex)
105
- {
106
- std::printf("Log initialization failed: %s\n", ex.what());
107
- return 1;
108
- }
109
- }
110
-
111
- #include "spdlog/sinks/stdout_color_sinks.h"
112
- // or #include "spdlog/sinks/stdout_sinks.h" if no colors needed.
113
- void stdout_logger_example()
114
- {
115
- // Create color multi threaded logger.
116
- auto console = spdlog::stdout_color_mt("console");
117
- // or for stderr:
118
- // auto console = spdlog::stderr_color_mt("error-logger");
119
- }
120
-
121
- #include "spdlog/sinks/basic_file_sink.h"
122
- void basic_example()
123
- {
124
- // Create basic file logger (not rotated).
125
- auto my_logger = spdlog::basic_logger_mt("file_logger", "logs/basic-log.txt", true);
126
- }
127
-
128
- #include "spdlog/sinks/rotating_file_sink.h"
129
- void rotating_example()
130
- {
131
- // Create a file rotating logger with 5mb size max and 3 rotated files.
132
- auto rotating_logger = spdlog::rotating_logger_mt("some_logger_name", "logs/rotating.txt", 1048576 * 5, 3);
133
- }
134
-
135
- #include "spdlog/sinks/daily_file_sink.h"
136
- void daily_example()
137
- {
138
- // Create a daily logger - a new file is created every day on 2:30am.
139
- auto daily_logger = spdlog::daily_logger_mt("daily_logger", "logs/daily.txt", 2, 30);
140
- }
141
-
142
- #include "spdlog/sinks/callback_sink.h"
143
- void callback_example()
144
- {
145
- // Create the logger
146
- auto logger = spdlog::callback_logger_mt("custom_callback_logger", [](const spdlog::details::log_msg & /*msg*/) {
147
- // do what you need to do with msg
148
- });
149
- }
150
-
151
- #include "spdlog/cfg/env.h"
152
- void load_levels_example()
153
- {
154
- // Set the log level to "info" and mylogger to "trace":
155
- // SPDLOG_LEVEL=info,mylogger=trace && ./example
156
- spdlog::cfg::load_env_levels();
157
- // or from command line:
158
- // ./example SPDLOG_LEVEL=info,mylogger=trace
159
- // #include "spdlog/cfg/argv.h" // for loading levels from argv
160
- // spdlog::cfg::load_argv_levels(args, argv);
161
- }
162
-
163
- #include "spdlog/async.h"
164
- void async_example()
165
- {
166
- // Default thread pool settings can be modified *before* creating the async logger:
167
- // spdlog::init_thread_pool(32768, 1); // queue with max 32k items 1 backing thread.
168
- auto async_file = spdlog::basic_logger_mt<spdlog::async_factory>("async_file_logger", "logs/async_log.txt");
169
- // alternatively:
170
- // auto async_file = spdlog::create_async<spdlog::sinks::basic_file_sink_mt>("async_file_logger", "logs/async_log.txt");
171
-
172
- for (int i = 1; i < 101; ++i)
173
- {
174
- async_file->info("Async message #{}", i);
175
- }
176
- }
177
-
178
- // Log binary data as hex.
179
- // Many types of std::container<char> types can be used.
180
- // Iterator ranges are supported too.
181
- // Format flags:
182
- // {:X} - print in uppercase.
183
- // {:s} - don't separate each byte with space.
184
- // {:p} - don't print the position on each line start.
185
- // {:n} - don't split the output to lines.
186
-
187
- #if !defined SPDLOG_USE_STD_FORMAT || defined(_MSC_VER)
188
- #include "spdlog/fmt/bin_to_hex.h"
189
- void binary_example()
190
- {
191
- std::vector<char> buf(80);
192
- for (int i = 0; i < 80; i++)
193
- {
194
- buf.push_back(static_cast<char>(i & 0xff));
195
- }
196
- spdlog::info("Binary example: {}", spdlog::to_hex(buf));
197
- spdlog::info("Another binary example:{:n}", spdlog::to_hex(std::begin(buf), std::begin(buf) + 10));
198
- // more examples:
199
- // logger->info("uppercase: {:X}", spdlog::to_hex(buf));
200
- // logger->info("uppercase, no delimiters: {:Xs}", spdlog::to_hex(buf));
201
- // logger->info("uppercase, no delimiters, no position info: {:Xsp}", spdlog::to_hex(buf));
202
- // logger->info("hexdump style: {:a}", spdlog::to_hex(buf));
203
- // logger->info("hexdump style, 20 chars per line {:a}", spdlog::to_hex(buf, 20));
204
- }
205
- #else
206
- void binary_example() {
207
- // not supported with std::format yet
208
- }
209
- #endif
210
-
211
- // Log a vector of numbers
212
- #ifndef SPDLOG_USE_STD_FORMAT
213
- # include "spdlog/fmt/ranges.h"
214
- void vector_example()
215
- {
216
- std::vector<int> vec = {1, 2, 3};
217
- spdlog::info("Vector example: {}", vec);
218
- }
219
-
220
- #else
221
- void vector_example() {}
222
- #endif
223
-
224
- // ! DSPDLOG_USE_STD_FORMAT
225
-
226
- // Compile time log levels.
227
- // define SPDLOG_ACTIVE_LEVEL to required level (e.g. SPDLOG_LEVEL_TRACE)
228
- void trace_example()
229
- {
230
- // trace from default logger
231
- SPDLOG_TRACE("Some trace message.. {} ,{}", 1, 3.23);
232
- // debug from default logger
233
- SPDLOG_DEBUG("Some debug message.. {} ,{}", 1, 3.23);
234
-
235
- // trace from logger object
236
- auto logger = spdlog::get("file_logger");
237
- SPDLOG_LOGGER_TRACE(logger, "another trace message");
238
- }
239
-
240
- // stopwatch example
241
- #include "spdlog/stopwatch.h"
242
- #include <thread>
243
- void stopwatch_example()
244
- {
245
- spdlog::stopwatch sw;
246
- std::this_thread::sleep_for(std::chrono::milliseconds(123));
247
- spdlog::info("Stopwatch: {} seconds", sw);
248
- }
249
-
250
- #include "spdlog/sinks/udp_sink.h"
251
- void udp_example()
252
- {
253
- spdlog::sinks::udp_sink_config cfg("127.0.0.1", 11091);
254
- auto my_logger = spdlog::udp_logger_mt("udplog", cfg);
255
- my_logger->set_level(spdlog::level::debug);
256
- my_logger->info("hello world");
257
- }
258
-
259
- // A logger with multiple sinks (stdout and file) - each with a different format and log level.
260
- void multi_sink_example()
261
- {
262
- auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
263
- console_sink->set_level(spdlog::level::warn);
264
- console_sink->set_pattern("[multi_sink_example] [%^%l%$] %v");
265
-
266
- auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("logs/multisink.txt", true);
267
- file_sink->set_level(spdlog::level::trace);
268
-
269
- spdlog::logger logger("multi_sink", {console_sink, file_sink});
270
- logger.set_level(spdlog::level::debug);
271
- logger.warn("this should appear in both console and file");
272
- logger.info("this message should not appear in the console, only in the file");
273
- }
274
-
275
- // User defined types logging
276
- struct my_type
277
- {
278
- int i = 0;
279
- explicit my_type(int i)
280
- : i(i){};
281
- };
282
-
283
- #ifndef SPDLOG_USE_STD_FORMAT // when using fmtlib
284
- template<>
285
- struct fmt::formatter<my_type> : fmt::formatter<std::string>
286
- {
287
- auto format(my_type my, format_context &ctx) -> decltype(ctx.out())
288
- {
289
- return fmt::format_to(ctx.out(), "[my_type i={}]", my.i);
290
- }
291
- };
292
-
293
- #else // when using std::format
294
- template<>
295
- struct std::formatter<my_type> : std::formatter<std::string>
296
- {
297
- auto format(my_type my, format_context &ctx) const -> decltype(ctx.out())
298
- {
299
- return format_to(ctx.out(), "[my_type i={}]", my.i);
300
- }
301
- };
302
- #endif
303
-
304
- void user_defined_example()
305
- {
306
- spdlog::info("user defined type: {}", my_type(14));
307
- }
308
-
309
- // Custom error handler. Will be triggered on log failure.
310
- void err_handler_example()
311
- {
312
- // can be set globally or per logger(logger->set_error_handler(..))
313
- spdlog::set_error_handler([](const std::string &msg) { printf("*** Custom log error handler: %s ***\n", msg.c_str()); });
314
- }
315
-
316
- // syslog example (linux/osx/freebsd)
317
- #ifndef _WIN32
318
- # include "spdlog/sinks/syslog_sink.h"
319
- void syslog_example()
320
- {
321
- std::string ident = "spdlog-example";
322
- auto syslog_logger = spdlog::syslog_logger_mt("syslog", ident, LOG_PID);
323
- syslog_logger->warn("This is warning that will end up in syslog.");
324
- }
325
- #endif
326
-
327
- // Android example.
328
- #if defined(__ANDROID__)
329
- # include "spdlog/sinks/android_sink.h"
330
- void android_example()
331
- {
332
- std::string tag = "spdlog-android";
333
- auto android_logger = spdlog::android_logger_mt("android", tag);
334
- android_logger->critical("Use \"adb shell logcat\" to view this message.");
335
- }
336
- #endif
337
-
338
- // Log patterns can contain custom flags.
339
- // this will add custom flag '%*' which will be bound to a <my_formatter_flag> instance
340
- #include "spdlog/pattern_formatter.h"
341
- class my_formatter_flag : public spdlog::custom_flag_formatter
342
- {
343
- public:
344
- void format(const spdlog::details::log_msg &, const std::tm &, spdlog::memory_buf_t &dest) override
345
- {
346
- std::string some_txt = "custom-flag";
347
- dest.append(some_txt.data(), some_txt.data() + some_txt.size());
348
- }
349
-
350
- std::unique_ptr<custom_flag_formatter> clone() const override
351
- {
352
- return spdlog::details::make_unique<my_formatter_flag>();
353
- }
354
- };
355
-
356
- void custom_flags_example()
357
- {
358
-
359
- using spdlog::details::make_unique; // for pre c++14
360
- auto formatter = make_unique<spdlog::pattern_formatter>();
361
- formatter->add_flag<my_formatter_flag>('*').set_pattern("[%n] [%*] [%^%l%$] %v");
362
- // set the new formatter using spdlog::set_formatter(formatter) or logger->set_formatter(formatter)
363
- // spdlog::set_formatter(std::move(formatter));
364
- }
365
-
366
- void file_events_example()
367
- {
368
- // pass the spdlog::file_event_handlers to file sinks for open/close log file notifications
369
- spdlog::file_event_handlers handlers;
370
- handlers.before_open = [](spdlog::filename_t filename) { spdlog::info("Before opening {}", filename); };
371
- handlers.after_open = [](spdlog::filename_t filename, std::FILE *fstream) {
372
- spdlog::info("After opening {}", filename);
373
- fputs("After opening\n", fstream);
374
- };
375
- handlers.before_close = [](spdlog::filename_t filename, std::FILE *fstream) {
376
- spdlog::info("Before closing {}", filename);
377
- fputs("Before closing\n", fstream);
378
- };
379
- handlers.after_close = [](spdlog::filename_t filename) { spdlog::info("After closing {}", filename); };
380
- auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("logs/events-sample.txt", true, handlers);
381
- spdlog::logger my_logger("some_logger", file_sink);
382
- my_logger.info("Some log line");
383
- }
384
-
385
- void replace_default_logger_example()
386
- {
387
- // store the old logger so we don't break other examples.
388
- auto old_logger = spdlog::default_logger();
389
-
390
- auto new_logger = spdlog::basic_logger_mt("new_default_logger", "logs/new-default-log.txt", true);
391
- spdlog::set_default_logger(new_logger);
392
- spdlog::set_level(spdlog::level::info);
393
- spdlog::debug("This message should not be displayed!");
394
- spdlog::set_level(spdlog::level::trace);
395
- spdlog::debug("This message should be displayed..");
396
-
397
- spdlog::set_default_logger(old_logger);
398
- }
@@ -1,87 +0,0 @@
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
- #include "core/error_context/key_value.hxx"
20
- #include "core/impl/observe_poll.hxx"
21
- #include "core/impl/observe_seqno.hxx"
22
- #include "core/operations/document_append.hxx"
23
-
24
- #include <couchbase/append_options.hxx>
25
-
26
- namespace couchbase::core::impl
27
- {
28
- void
29
- initiate_append_operation(std::shared_ptr<couchbase::core::cluster> core,
30
- std::string bucket_name,
31
- std::string scope_name,
32
- std::string collection_name,
33
- std::string document_key,
34
- std::vector<std::byte> data,
35
- append_options::built options,
36
- append_handler&& handler)
37
- {
38
- auto id = document_id{
39
- std::move(bucket_name),
40
- std::move(scope_name),
41
- std::move(collection_name),
42
- std::move(document_key),
43
- };
44
- if (options.persist_to == persist_to::none && options.replicate_to == replicate_to::none) {
45
- return core->execute(
46
- operations::append_request{
47
- std::move(id),
48
- std::move(data),
49
- {},
50
- {},
51
- options.durability_level,
52
- options.timeout,
53
- { options.retry_strategy },
54
- },
55
- [handler = std::move(handler)](operations::append_response&& resp) mutable {
56
- if (resp.ctx.ec()) {
57
- return handler(std::move(resp.ctx), mutation_result{});
58
- }
59
- return handler(std::move(resp.ctx), mutation_result{ resp.cas, std::move(resp.token) });
60
- });
61
- }
62
-
63
- operations::append_request request{
64
- id, std::move(data), {}, {}, durability_level::none, options.timeout, { options.retry_strategy },
65
- };
66
- return core->execute(
67
- std::move(request), [core, id = std::move(id), options, handler = std::move(handler)](operations::append_response&& resp) mutable {
68
- if (resp.ctx.ec()) {
69
- return handler(std::move(resp.ctx), mutation_result{ resp.cas, std::move(resp.token) });
70
- }
71
-
72
- initiate_observe_poll(core,
73
- std::move(id),
74
- resp.token,
75
- options.timeout,
76
- options.persist_to,
77
- options.replicate_to,
78
- [resp = std::move(resp), handler = std::move(handler)](std::error_code ec) mutable {
79
- if (ec) {
80
- resp.ctx.override_ec(ec);
81
- return handler(std::move(resp.ctx), mutation_result{});
82
- }
83
- return handler(std::move(resp.ctx), mutation_result{ resp.cas, std::move(resp.token) });
84
- });
85
- });
86
- }
87
- } // namespace couchbase::core::impl
@@ -1,157 +0,0 @@
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 <couchbase/error_codes.hxx>
19
- #include <couchbase/query_index_manager.hxx>
20
-
21
- #include "core/cluster.hxx"
22
- #include "core/operations/management/query_index_build.hxx"
23
- #include "core/operations/management/query_index_build_deferred.hxx"
24
-
25
- namespace couchbase
26
- {
27
- template<typename Response>
28
- static manager_error_context
29
- build_context(Response& resp)
30
- {
31
- return manager_error_context(internal_manager_error_context{ resp.ctx.ec,
32
- resp.ctx.last_dispatched_to,
33
- resp.ctx.last_dispatched_from,
34
- resp.ctx.retry_attempts,
35
- std::move(resp.ctx.retry_reasons),
36
- std::move(resp.ctx.client_context_id),
37
- resp.ctx.http_status,
38
- std::move(resp.ctx.http_body),
39
- std::move(resp.ctx.path) });
40
- }
41
-
42
- static core::operations::management::query_index_build_request
43
- build_build_index_request(std::string bucket_name,
44
- core::operations::management::query_index_get_all_deferred_response list_resp,
45
- const build_query_index_options::built& options)
46
- {
47
- core::operations::management::query_index_build_request request{
48
- std::move(bucket_name), {}, {}, {}, std::move(list_resp.index_names), {}, options.timeout
49
- };
50
- return request;
51
- }
52
-
53
- static core::operations::management::query_index_get_all_deferred_request
54
- build_get_all_request(std::string bucket_name, const build_query_index_options::built& options)
55
- {
56
- core::operations::management::query_index_get_all_deferred_request request{ std::move(bucket_name), {}, {}, {}, {}, options.timeout };
57
- return request;
58
- }
59
-
60
- static core::operations::management::query_index_build_request
61
- build_build_index_request(std::string bucket_name,
62
- std::string scope_name,
63
- std::string collection_name,
64
- core::operations::management::query_index_get_all_deferred_response list_resp,
65
- const build_query_index_options::built& options)
66
- {
67
- core::operations::management::query_index_build_request request{ "",
68
- "",
69
- std::move(collection_name),
70
- core::query_context{ std::move(bucket_name), std::move(scope_name) },
71
- std::move(list_resp.index_names),
72
- {},
73
- options.timeout };
74
- return request;
75
- }
76
-
77
- static core::operations::management::query_index_get_all_deferred_request
78
- build_get_all_request(std::string bucket_name,
79
- std::string scope_name,
80
- std::string collection_name,
81
- const build_query_index_options::built& options)
82
- {
83
- core::operations::management::query_index_get_all_deferred_request request{
84
- "", "", std::move(collection_name), core::query_context{ std::move(bucket_name), std::move(scope_name) }, {}, options.timeout
85
- };
86
- return request;
87
- }
88
-
89
- void
90
- query_index_manager::build_deferred_indexes(std::string bucket_name,
91
- const couchbase::build_query_index_options& options,
92
- couchbase::build_deferred_query_indexes_handler&& handler) const
93
- {
94
-
95
- auto get_all_request = build_get_all_request(bucket_name, options.build());
96
- core_->execute(std::move(get_all_request),
97
- [handler = std::move(handler), this, bucket_name, options](
98
- core::operations::management::query_index_get_all_deferred_response resp1) mutable {
99
- auto list_resp = std::move(resp1);
100
- if (list_resp.ctx.ec) {
101
- return handler(build_context(list_resp));
102
- }
103
- if (list_resp.index_names.empty()) {
104
- return handler(build_context(list_resp));
105
- }
106
- auto build_request = build_build_index_request(std::move(bucket_name), list_resp, options.build());
107
- core_->execute(
108
- std::move(build_request),
109
- [handler = std::move(handler)](core::operations::management::query_index_build_response resp2) mutable {
110
- auto build_resp = std::move(resp2);
111
- return handler(build_context(build_resp));
112
- });
113
- });
114
- }
115
-
116
- auto
117
- query_index_manager::build_deferred_indexes(std::string bucket_name, const couchbase::build_query_index_options& options) const
118
- -> std::future<manager_error_context>
119
- {
120
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
121
- build_deferred_indexes(std::move(bucket_name), options, [barrier](auto ctx) mutable { barrier->set_value(std::move(ctx)); });
122
- return barrier->get_future();
123
- }
124
-
125
- void
126
- collection_query_index_manager::build_deferred_indexes(const build_query_index_options& options,
127
- build_deferred_query_indexes_handler&& handler) const
128
- {
129
- auto get_all_request = build_get_all_request(bucket_name_, scope_name_, collection_name_, options.build());
130
- core_->execute(
131
- std::move(get_all_request),
132
- [handler = std::move(handler), this, options](core::operations::management::query_index_get_all_deferred_response resp1) mutable {
133
- auto list_resp = std::move(resp1);
134
- if (list_resp.ctx.ec) {
135
- return handler(build_context(list_resp));
136
- }
137
- if (list_resp.index_names.empty()) {
138
- return handler(build_context(list_resp));
139
- }
140
- auto build_request = build_build_index_request(bucket_name_, scope_name_, collection_name_, list_resp, options.build());
141
- core_->execute(std::move(build_request),
142
- [handler = std::move(handler)](core::operations::management::query_index_build_response resp2) mutable {
143
- auto build_resp = std::move(resp2);
144
- return handler(build_context(build_resp));
145
- });
146
- });
147
- }
148
-
149
- auto
150
- collection_query_index_manager::build_deferred_indexes(const couchbase::build_query_index_options& options) const
151
- -> std::future<manager_error_context>
152
- {
153
- auto barrier = std::make_shared<std::promise<manager_error_context>>();
154
- build_deferred_indexes(options, [barrier](auto ctx) mutable { barrier->set_value(std::move(ctx)); });
155
- return barrier->get_future();
156
- }
157
- } // namespace couchbase