couchbase 4.2.8-dev.1 → 4.2.9

Sign up to get free protection for your applications and to get access to all the features.
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