couchbase 4.2.8-dev.1 → 4.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/CMakeLists.txt +1 -1
  2. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +139 -56
  3. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
  4. package/deps/couchbase-cxx-client/CMakeLists.txt +397 -424
  5. package/deps/couchbase-cxx-client/core/agent_config.hxx +1 -1
  6. package/deps/couchbase-cxx-client/core/agent_group.cxx +0 -1
  7. package/deps/couchbase-cxx-client/core/agent_group.hxx +9 -0
  8. package/deps/couchbase-cxx-client/core/agent_group_config.hxx +1 -1
  9. package/deps/couchbase-cxx-client/core/bucket.cxx +22 -8
  10. package/deps/couchbase-cxx-client/core/bucket.hxx +3 -1
  11. package/deps/couchbase-cxx-client/core/cluster.cxx +1453 -108
  12. package/deps/couchbase-cxx-client/core/cluster.hxx +183 -473
  13. package/deps/couchbase-cxx-client/core/cluster_agent_config.hxx +1 -1
  14. package/deps/couchbase-cxx-client/core/cluster_options.cxx +12 -2
  15. package/deps/couchbase-cxx-client/core/cluster_options.hxx +9 -8
  16. package/deps/couchbase-cxx-client/core/config_profiles.cxx +2 -2
  17. package/deps/couchbase-cxx-client/core/config_profiles.hxx +1 -1
  18. package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +1 -2
  19. package/deps/couchbase-cxx-client/core/core_sdk_shim.hxx +3 -2
  20. package/deps/couchbase-cxx-client/core/diagnostics.hxx +0 -1
  21. package/deps/couchbase-cxx-client/core/dispatcher.cxx +2 -2
  22. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +38 -76
  23. package/deps/couchbase-cxx-client/core/impl/analytics.hxx +40 -0
  24. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +820 -0
  25. package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +403 -0
  26. package/deps/couchbase-cxx-client/core/impl/bucket.cxx +78 -0
  27. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +433 -0
  28. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +226 -44
  29. package/deps/couchbase-cxx-client/core/impl/collection.cxx +1384 -0
  30. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +306 -0
  31. package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +3 -1
  32. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +2 -0
  33. package/deps/couchbase-cxx-client/core/{operations/mcbp_noop.cxx → impl/doc_id_query.cxx} +19 -15
  34. package/deps/couchbase-cxx-client/core/impl/key_value_error_category.cxx +4 -2
  35. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.hxx +0 -10
  36. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.hxx +0 -10
  37. package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +24 -17
  38. package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -1
  39. package/deps/couchbase-cxx-client/core/impl/query.cxx +45 -68
  40. package/deps/couchbase-cxx-client/core/impl/query.hxx +34 -0
  41. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +628 -0
  42. package/deps/couchbase-cxx-client/core/impl/scope.cxx +172 -0
  43. package/deps/couchbase-cxx-client/core/impl/search.cxx +12 -61
  44. package/deps/couchbase-cxx-client/core/impl/search.hxx +37 -0
  45. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +469 -0
  46. package/deps/couchbase-cxx-client/core/impl/search_row_location.cxx +12 -0
  47. package/deps/couchbase-cxx-client/core/impl/search_sort_geo_distance.cxx +87 -0
  48. package/deps/couchbase-cxx-client/core/impl/with_legacy_durability.hxx +23 -25
  49. package/deps/couchbase-cxx-client/core/io/dns_config.cxx +28 -0
  50. package/deps/couchbase-cxx-client/core/io/dns_config.hxx +6 -25
  51. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +9 -1
  52. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +1 -1
  53. package/deps/couchbase-cxx-client/core/io/mcbp_message.hxx +3 -2
  54. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +51 -21
  55. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +2 -1
  56. package/deps/couchbase-cxx-client/core/logger/logger.hxx +4 -4
  57. package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +1 -1
  58. package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +1 -1
  59. package/deps/couchbase-cxx-client/core/mcbp/queue_callback.hxx +1 -1
  60. package/deps/couchbase-cxx-client/core/meta/features.hxx +28 -0
  61. package/deps/couchbase-cxx-client/core/operations/document_query.cxx +17 -1
  62. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -1
  63. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +2 -0
  64. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +2 -0
  65. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +2 -0
  66. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +2 -0
  67. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +2 -0
  68. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +2 -0
  69. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +2 -0
  70. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +2 -0
  71. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +2 -0
  72. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +2 -0
  73. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +1 -1
  74. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -0
  75. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +2 -0
  76. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +2 -0
  77. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +2 -0
  78. package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +3 -1
  79. package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +2 -0
  80. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +2 -0
  81. package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +2 -0
  82. package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +6 -5
  83. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +2 -0
  84. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +2 -0
  85. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +2 -0
  86. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +2 -0
  87. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +2 -0
  88. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +2 -0
  89. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +2 -0
  90. package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +2 -0
  91. package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +2 -0
  92. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.cxx +1 -1
  93. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +2 -2
  94. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +4 -1
  95. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +4 -1
  96. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +1 -1
  97. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +1 -1
  98. package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -0
  99. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +2 -0
  100. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +2 -0
  101. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.cxx +4 -4
  102. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +4 -4
  103. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +2 -0
  104. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +2 -0
  105. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +2 -0
  106. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +2 -0
  107. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +2 -0
  108. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +2 -0
  109. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +1 -1
  110. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +2 -0
  111. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +2 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +2 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -0
  114. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -0
  115. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +2 -0
  116. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -0
  117. package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
  118. package/deps/couchbase-cxx-client/core/operations_fwd.hxx +260 -0
  119. package/deps/couchbase-cxx-client/core/origin.cxx +146 -5
  120. package/deps/couchbase-cxx-client/core/origin.hxx +30 -140
  121. package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.hxx +3 -3
  122. package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +5 -0
  123. package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.hxx +4 -4
  124. package/deps/couchbase-cxx-client/core/protocol/hello_feature.hxx +6 -0
  125. package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +3 -0
  126. package/deps/couchbase-cxx-client/core/protocol/status.cxx +6 -0
  127. package/deps/couchbase-cxx-client/core/protocol/status.hxx +1 -0
  128. package/deps/couchbase-cxx-client/core/query_context.hxx +11 -7
  129. package/deps/couchbase-cxx-client/core/range_scan_orchestrator.cxx +1 -1
  130. package/deps/couchbase-cxx-client/core/topology/configuration.cxx +23 -0
  131. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +8 -12
  132. package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +3 -3
  133. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +2 -0
  134. package/deps/couchbase-cxx-client/core/topology/error_map.hxx +2 -2
  135. package/deps/couchbase-cxx-client/core/topology/error_map_json.hxx +4 -0
  136. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.cxx +58 -0
  137. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +5 -40
  138. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +30 -0
  139. package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +18 -18
  140. package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +36 -0
  141. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +39 -41
  142. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +2 -2
  143. package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +3 -1
  144. package/deps/couchbase-cxx-client/core/transactions/internal/atr_entry.hxx +2 -0
  145. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +32 -0
  146. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +4 -30
  147. package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +41 -0
  148. package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +17 -15
  149. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +1 -1
  150. package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +4 -4
  151. package/deps/couchbase-cxx-client/core/transactions/internal/utils.hxx +1 -13
  152. package/deps/couchbase-cxx-client/core/transactions/result.hxx +0 -26
  153. package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +46 -0
  154. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +16 -14
  155. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +6 -6
  156. package/deps/couchbase-cxx-client/core/transactions/transaction_keyspace.cxx +48 -0
  157. package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +1 -0
  158. package/deps/couchbase-cxx-client/core/transactions/transaction_options.cxx +61 -4
  159. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +9 -8
  160. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +9 -16
  161. package/deps/couchbase-cxx-client/core/transactions/transactions_config.cxx +7 -6
  162. package/deps/couchbase-cxx-client/core/transactions.hxx +6 -5
  163. package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +4 -3
  164. package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +4 -4
  165. package/deps/couchbase-cxx-client/couchbase/allow_querying_search_index_options.hxx +44 -0
  166. package/deps/couchbase-cxx-client/couchbase/analytics_index_manager.hxx +463 -0
  167. package/deps/couchbase-cxx-client/couchbase/analyze_document_options.hxx +44 -0
  168. package/deps/couchbase-cxx-client/couchbase/append_options.hxx +0 -24
  169. package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +1 -1
  170. package/deps/couchbase-cxx-client/couchbase/binary_collection.hxx +19 -115
  171. package/deps/couchbase-cxx-client/couchbase/bucket.hxx +13 -30
  172. package/deps/couchbase-cxx-client/couchbase/bucket_manager.hxx +8 -7
  173. package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +0 -1
  174. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +41 -73
  175. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +1 -27
  176. package/deps/couchbase-cxx-client/couchbase/collection.hxx +176 -386
  177. package/deps/couchbase-cxx-client/couchbase/collection_manager.hxx +8 -9
  178. package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +21 -24
  179. package/deps/couchbase-cxx-client/couchbase/connect_link_analytics_options.hxx +116 -0
  180. package/deps/couchbase-cxx-client/couchbase/create_bucket_options.hxx +3 -3
  181. package/deps/couchbase-cxx-client/couchbase/create_collection_options.hxx +3 -2
  182. package/deps/couchbase-cxx-client/couchbase/create_dataset_analytics_options.hxx +120 -0
  183. package/deps/couchbase-cxx-client/couchbase/create_dataverse_analytics_options.hxx +85 -0
  184. package/deps/couchbase-cxx-client/couchbase/create_index_analytics_options.hxx +103 -0
  185. package/deps/couchbase-cxx-client/couchbase/create_link_analytics_options.hxx +63 -0
  186. package/deps/couchbase-cxx-client/couchbase/decrement_options.hxx +0 -23
  187. package/deps/couchbase-cxx-client/couchbase/disallow_querying_search_index_options.hxx +43 -0
  188. package/deps/couchbase-cxx-client/couchbase/disconnect_link_analytics_options.hxx +105 -0
  189. package/deps/couchbase-cxx-client/couchbase/drop_dataset_analytics_options.hxx +103 -0
  190. package/deps/couchbase-cxx-client/couchbase/drop_dataverse_analytics_options.hxx +84 -0
  191. package/deps/couchbase-cxx-client/couchbase/drop_index_analytics_options.hxx +103 -0
  192. package/deps/couchbase-cxx-client/couchbase/drop_link_analytics_options.hxx +63 -0
  193. package/deps/couchbase-cxx-client/couchbase/drop_search_index_options.hxx +43 -0
  194. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +22 -1
  195. package/deps/couchbase-cxx-client/couchbase/exists_options.hxx +0 -23
  196. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_error_map_attribute.hxx +6 -0
  197. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +3 -0
  198. package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +37 -0
  199. package/deps/couchbase-cxx-client/couchbase/freeze_plan_search_index_options.hxx +43 -0
  200. package/deps/couchbase-cxx-client/couchbase/get_all_datasets_analytics_options.hxx +66 -0
  201. package/deps/couchbase-cxx-client/couchbase/get_all_indexes_analytics_options.hxx +65 -0
  202. package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +1 -4
  203. package/deps/couchbase-cxx-client/couchbase/get_all_replicas_options.hxx +0 -23
  204. package/deps/couchbase-cxx-client/couchbase/get_all_search_indexes_options.hxx +45 -0
  205. package/deps/couchbase-cxx-client/couchbase/get_and_lock_options.hxx +0 -24
  206. package/deps/couchbase-cxx-client/couchbase/get_and_touch_options.hxx +0 -24
  207. package/deps/couchbase-cxx-client/couchbase/get_any_replica_options.hxx +0 -23
  208. package/deps/couchbase-cxx-client/couchbase/get_indexed_search_index_options.hxx +43 -0
  209. package/deps/couchbase-cxx-client/couchbase/get_links_analytics_options.hxx +121 -0
  210. package/deps/couchbase-cxx-client/couchbase/get_options.hxx +0 -23
  211. package/deps/couchbase-cxx-client/couchbase/get_pending_mutations_analytics_options.hxx +67 -0
  212. package/deps/couchbase-cxx-client/couchbase/get_search_index_options.hxx +44 -0
  213. package/deps/couchbase-cxx-client/couchbase/increment_options.hxx +0 -23
  214. package/deps/couchbase-cxx-client/couchbase/insert_options.hxx +0 -24
  215. package/deps/couchbase-cxx-client/couchbase/key_value_error_map_attribute.hxx +12 -0
  216. package/deps/couchbase-cxx-client/couchbase/key_value_status_code.hxx +1 -0
  217. package/deps/couchbase-cxx-client/couchbase/lookup_in_options.hxx +0 -24
  218. package/deps/couchbase-cxx-client/couchbase/management/analytics_dataset.hxx +48 -0
  219. package/deps/couchbase-cxx-client/couchbase/management/analytics_index.hxx +48 -0
  220. package/deps/couchbase-cxx-client/couchbase/management/analytics_link.hxx +239 -0
  221. package/deps/couchbase-cxx-client/couchbase/management/query_index.hxx +3 -3
  222. package/deps/couchbase-cxx-client/couchbase/management/search_index.hxx +40 -0
  223. package/deps/couchbase-cxx-client/couchbase/manager_error_context.hxx +0 -1
  224. package/deps/couchbase-cxx-client/couchbase/mutate_in_options.hxx +0 -24
  225. package/deps/couchbase-cxx-client/couchbase/network_options.hxx +1 -1
  226. package/deps/couchbase-cxx-client/couchbase/pause_ingest_search_index_options.hxx +43 -0
  227. package/deps/couchbase-cxx-client/couchbase/phrase_query.hxx +19 -0
  228. package/deps/couchbase-cxx-client/couchbase/prepend_options.hxx +0 -24
  229. package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +99 -20
  230. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +0 -21
  231. package/deps/couchbase-cxx-client/couchbase/remove_options.hxx +0 -23
  232. package/deps/couchbase-cxx-client/couchbase/replace_link_analytics_options.hxx +63 -0
  233. package/deps/couchbase-cxx-client/couchbase/replace_options.hxx +0 -24
  234. package/deps/couchbase-cxx-client/couchbase/resume_ingest_search_index_options.hxx +43 -0
  235. package/deps/couchbase-cxx-client/couchbase/scope.hxx +13 -45
  236. package/deps/couchbase-cxx-client/couchbase/search_facet_result.hxx +1 -7
  237. package/deps/couchbase-cxx-client/couchbase/search_geo_distance_units.hxx +26 -0
  238. package/deps/couchbase-cxx-client/couchbase/search_index_manager.hxx +292 -0
  239. package/deps/couchbase-cxx-client/couchbase/search_row_location.hxx +10 -0
  240. package/deps/couchbase-cxx-client/couchbase/search_sort_geo_distance.hxx +84 -0
  241. package/deps/couchbase-cxx-client/couchbase/security_options.hxx +1 -1
  242. package/deps/couchbase-cxx-client/couchbase/touch_options.hxx +0 -24
  243. package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +1 -1
  244. package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +10 -7
  245. package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +10 -10
  246. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +8 -58
  247. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +28 -70
  248. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +7 -2
  249. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +2 -1
  250. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +11 -38
  251. package/deps/couchbase-cxx-client/couchbase/unfreeze_plan_search_index_options.hxx +43 -0
  252. package/deps/couchbase-cxx-client/couchbase/unlock_options.hxx +0 -24
  253. package/deps/couchbase-cxx-client/couchbase/upsert_options.hxx +0 -24
  254. package/deps/couchbase-cxx-client/couchbase/upsert_search_index_options.hxx +41 -0
  255. package/dist/binding.d.ts +7 -9
  256. package/dist/bindingutilities.js +2 -0
  257. package/dist/collection.js +3 -3
  258. package/dist/errors.d.ts +9 -0
  259. package/dist/errors.js +14 -2
  260. package/dist/transactions.d.ts +2 -0
  261. package/dist/transactions.js +2 -3
  262. package/dist/usermanager.js +1 -1
  263. package/package.json +7 -7
  264. package/src/binding.cpp +1 -0
  265. package/src/connection.cpp +12 -9
  266. package/src/connection.hpp +3 -3
  267. package/src/connection_autogen.cpp +7 -5
  268. package/src/constants.cpp +3 -0
  269. package/src/instance.cpp +2 -2
  270. package/src/instance.hpp +1 -1
  271. package/src/jstocbpp_autogen.hpp +21 -38
  272. package/src/jstocbpp_basic.hpp +2 -0
  273. package/src/jstocbpp_errors.hpp +1 -0
  274. package/src/jstocbpp_transactions.hpp +6 -22
  275. package/src/mutationtoken.hpp +1 -0
  276. package/tools/gen-bindings-json.py +39 -16
  277. package/deps/couchbase-cxx-cache/spdlog/66ab2619a0014319471759c03e2de1af6bda14de/spdlog/example/CMakeLists.txt +0 -23
  278. package/deps/couchbase-cxx-cache/spdlog/66ab2619a0014319471759c03e2de1af6bda14de/spdlog/example/example.cpp +0 -398
  279. package/deps/couchbase-cxx-client/core/impl/append.cxx +0 -87
  280. package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +0 -157
  281. package/deps/couchbase-cxx-client/core/impl/create_bucket.cxx +0 -158
  282. package/deps/couchbase-cxx-client/core/impl/create_collection.cxx +0 -83
  283. package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +0 -232
  284. package/deps/couchbase-cxx-client/core/impl/create_scope.cxx +0 -69
  285. package/deps/couchbase-cxx-client/core/impl/decrement.cxx +0 -96
  286. package/deps/couchbase-cxx-client/core/impl/drop_bucket.cxx +0 -66
  287. package/deps/couchbase-cxx-client/core/impl/drop_collection.cxx +0 -76
  288. package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +0 -187
  289. package/deps/couchbase-cxx-client/core/impl/drop_scope.cxx +0 -68
  290. package/deps/couchbase-cxx-client/core/impl/exists.cxx +0 -47
  291. package/deps/couchbase-cxx-client/core/impl/flush_bucket.cxx +0 -66
  292. package/deps/couchbase-cxx-client/core/impl/get.cxx +0 -68
  293. package/deps/couchbase-cxx-client/core/impl/get_all_buckets.cxx +0 -178
  294. package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +0 -106
  295. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.cxx +0 -145
  296. package/deps/couchbase-cxx-client/core/impl/get_all_scopes.cxx +0 -94
  297. package/deps/couchbase-cxx-client/core/impl/get_and_lock.cxx +0 -49
  298. package/deps/couchbase-cxx-client/core/impl/get_and_touch.cxx +0 -49
  299. package/deps/couchbase-cxx-client/core/impl/get_any_replica.cxx +0 -134
  300. package/deps/couchbase-cxx-client/core/impl/get_bucket.cxx +0 -168
  301. package/deps/couchbase-cxx-client/core/impl/increment.cxx +0 -96
  302. package/deps/couchbase-cxx-client/core/impl/insert.cxx +0 -90
  303. package/deps/couchbase-cxx-client/core/impl/lookup_in.cxx +0 -69
  304. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.cxx +0 -178
  305. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.cxx +0 -169
  306. package/deps/couchbase-cxx-client/core/impl/mutate_in.cxx +0 -125
  307. package/deps/couchbase-cxx-client/core/impl/prepend.cxx +0 -87
  308. package/deps/couchbase-cxx-client/core/impl/remove.cxx +0 -86
  309. package/deps/couchbase-cxx-client/core/impl/replace.cxx +0 -102
  310. package/deps/couchbase-cxx-client/core/impl/touch.cxx +0 -49
  311. package/deps/couchbase-cxx-client/core/impl/unlock.cxx +0 -47
  312. package/deps/couchbase-cxx-client/core/impl/update_bucket.cxx +0 -133
  313. package/deps/couchbase-cxx-client/core/impl/update_collection.cxx +0 -83
  314. package/deps/couchbase-cxx-client/core/impl/upsert.cxx +0 -100
  315. package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +0 -196
  316. package/deps/couchbase-cxx-client/core/operations/mcbp_noop.hxx +0 -49
  317. /package/deps/couchbase-cxx-client/core/impl/{streaming_json_lexter_error_category.cxx → streaming_json_lexer_error_category.cxx} +0 -0
@@ -0,0 +1,469 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2023-Present Couchbase, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ #include "core/cluster.hxx"
19
+
20
+ #include "core/operations/management/search_index_analyze_document.hxx"
21
+ #include "core/operations/management/search_index_control_ingest.hxx"
22
+ #include "core/operations/management/search_index_control_plan_freeze.hxx"
23
+ #include "core/operations/management/search_index_control_query.hxx"
24
+ #include "core/operations/management/search_index_drop.hxx"
25
+ #include "core/operations/management/search_index_get.hxx"
26
+ #include "core/operations/management/search_index_get_all.hxx"
27
+ #include "core/operations/management/search_index_get_documents_count.hxx"
28
+ #include "core/operations/management/search_index_upsert.hxx"
29
+ #include "core/utils/json.hxx"
30
+ #include "internal_manager_error_context.hxx"
31
+
32
+ #include <couchbase/search_index_manager.hxx>
33
+
34
+ #include <memory>
35
+ #include <utility>
36
+
37
+ namespace couchbase
38
+ {
39
+ namespace
40
+ {
41
+ template<typename Response>
42
+ manager_error_context
43
+ build_context(Response& resp)
44
+ {
45
+ return manager_error_context(internal_manager_error_context{ resp.ctx.ec,
46
+ resp.ctx.last_dispatched_to,
47
+ resp.ctx.last_dispatched_from,
48
+ resp.ctx.retry_attempts,
49
+ std::move(resp.ctx.retry_reasons),
50
+ std::move(resp.ctx.client_context_id),
51
+ resp.ctx.http_status,
52
+ std::move(resp.ctx.http_body),
53
+ std::move(resp.ctx.path) });
54
+ }
55
+
56
+ couchbase::management::search::index
57
+ map_search_index(const couchbase::core::management::search::index& index)
58
+ {
59
+ couchbase::management::search::index public_index{};
60
+ public_index.uuid = index.uuid;
61
+ public_index.name = index.name;
62
+ public_index.type = index.type;
63
+ public_index.params_json = index.params_json;
64
+
65
+ public_index.source_name = index.source_name;
66
+ public_index.source_type = index.source_type;
67
+ public_index.source_uuid = index.source_uuid;
68
+ public_index.source_params_json = index.source_params_json;
69
+
70
+ public_index.plan_params_json = index.plan_params_json;
71
+
72
+ return public_index;
73
+ }
74
+
75
+ std::vector<couchbase::management::search::index>
76
+ map_all_search_indexes(const std::vector<couchbase::core::management::search::index>& indexes)
77
+ {
78
+ std::vector<couchbase::management::search::index> search_indexes{};
79
+ for (const auto& index : indexes) {
80
+ auto converted_index = map_search_index(index);
81
+ search_indexes.emplace_back(converted_index);
82
+ }
83
+ return search_indexes;
84
+ }
85
+
86
+ couchbase::core::management::search::index
87
+ map_search_index(const couchbase::management::search::index& index)
88
+ {
89
+ couchbase::core::management::search::index search_index{};
90
+ search_index.name = index.name;
91
+ search_index.type = index.type;
92
+ search_index.source_type = index.source_type;
93
+
94
+ if (index.uuid.has_value()) {
95
+ search_index.uuid = index.uuid.value();
96
+ }
97
+ if (index.params_json.has_value()) {
98
+ search_index.params_json = index.params_json.value();
99
+ }
100
+ // Below marked as omitempty
101
+ if (!index.source_name.empty()) {
102
+ search_index.source_name = index.source_name;
103
+ }
104
+ if (index.source_uuid.has_value()) {
105
+ if (!index.source_uuid.value().empty()) {
106
+ search_index.source_uuid = index.source_uuid.value();
107
+ }
108
+ }
109
+ if (index.source_params_json.has_value()) {
110
+ if (index.source_params_json.value() != "{}" && !index.source_params_json.value().empty()) {
111
+ search_index.source_params_json = index.source_params_json.value();
112
+ }
113
+ }
114
+ if (index.plan_params_json.has_value()) {
115
+ if (index.plan_params_json.value() != "{}" && !index.plan_params_json->empty()) {
116
+ search_index.plan_params_json = index.plan_params_json.value();
117
+ }
118
+ }
119
+ return search_index;
120
+ }
121
+
122
+ std::vector<std::string>
123
+ convert_analysis(const std::string& analysis)
124
+ {
125
+ std::vector<std::string> result;
126
+
127
+ if (analysis.empty()) {
128
+ return result;
129
+ }
130
+
131
+ auto parsed = core::utils::json::parse(analysis);
132
+ auto analyses = parsed.get_array();
133
+ for (auto const& object : analyses) {
134
+ result.emplace_back(core::utils::json::generate(object));
135
+ }
136
+ return result;
137
+ }
138
+ } // namespace
139
+
140
+ class search_index_manager_impl
141
+ {
142
+ public:
143
+ explicit search_index_manager_impl(core::cluster core)
144
+ : core_{ std::move(core) }
145
+ {
146
+ }
147
+
148
+ void get_index(std::string index_name,
149
+ const couchbase::get_search_index_options::built& options,
150
+ get_search_index_handler&& handler) const
151
+ {
152
+ core_.execute(
153
+ core::operations::management::search_index_get_request{ std::move(index_name), {}, options.timeout },
154
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp), map_search_index(resp.index)); });
155
+ }
156
+
157
+ void get_all_indexes(const get_all_search_indexes_options::built& options, get_all_search_indexes_handler&& handler) const
158
+ {
159
+ core_.execute(
160
+ core::operations::management::search_index_get_all_request{ {}, options.timeout },
161
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp), map_all_search_indexes(resp.indexes)); });
162
+ }
163
+
164
+ void upsert_index(const management::search::index& search_index,
165
+ const upsert_search_index_options::built& options,
166
+ upsert_search_index_handler&& handler) const
167
+ {
168
+ core_.execute(core::operations::management::search_index_upsert_request{ map_search_index(search_index), {}, options.timeout },
169
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp)); });
170
+ }
171
+
172
+ void drop_index(std::string index_name, const drop_search_index_options::built& options, drop_search_index_handler&& handler) const
173
+ {
174
+ core_.execute(core::operations::management::search_index_drop_request{ std::move(index_name), {}, options.timeout },
175
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp)); });
176
+ }
177
+
178
+ void get_indexed_documents_count(std::string index_name,
179
+ const get_indexed_search_index_options::built& options,
180
+ get_indexed_search_index_handler&& handler) const
181
+ {
182
+ core_.execute(core::operations::management::search_index_get_documents_count_request{ std::move(index_name), {}, options.timeout },
183
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp), resp.count); });
184
+ }
185
+
186
+ void pause_ingest(std::string index_name,
187
+ const pause_ingest_search_index_options::built& options,
188
+ pause_ingest_search_index_handler&& handler) const
189
+ {
190
+ core_.execute(core::operations::management::search_index_control_ingest_request{ std::move(index_name), true, {}, options.timeout },
191
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp)); });
192
+ }
193
+
194
+ void resume_ingest(std::string index_name,
195
+ const resume_ingest_search_index_options::built& options,
196
+ resume_ingest_search_index_handler&& handler) const
197
+ {
198
+ core_.execute(
199
+ core::operations::management::search_index_control_ingest_request{ std::move(index_name), false, {}, options.timeout },
200
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp)); });
201
+ }
202
+
203
+ void allow_querying(std::string index_name,
204
+ const allow_querying_search_index_options::built& options,
205
+ allow_querying_search_index_handler&& handler) const
206
+ {
207
+ core_.execute(core::operations::management::search_index_control_query_request{ std::move(index_name), true, {}, options.timeout },
208
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp)); });
209
+ }
210
+
211
+ void disallow_querying(std::string index_name,
212
+ const disallow_querying_search_index_options::built& options,
213
+ disallow_querying_search_index_handler&& handler) const
214
+ {
215
+ core_.execute(core::operations::management::search_index_control_query_request{ std::move(index_name), false, {}, options.timeout },
216
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp)); });
217
+ }
218
+
219
+ void freeze_plan(std::string index_name,
220
+ const freeze_plan_search_index_options::built& options,
221
+ freeze_plan_search_index_handler&& handler) const
222
+ {
223
+ core_.execute(
224
+ core::operations::management::search_index_control_plan_freeze_request{ std::move(index_name), true, {}, options.timeout },
225
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp)); });
226
+ }
227
+
228
+ void unfreeze_plan(std::string index_name,
229
+ const unfreeze_plan_search_index_options::built& options,
230
+ unfreeze_plan_search_index_handler&& handler) const
231
+ {
232
+ core_.execute(
233
+ core::operations::management::search_index_control_plan_freeze_request{ std::move(index_name), false, {}, options.timeout },
234
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp)); });
235
+ }
236
+
237
+ void analyze_document(std::string index_name,
238
+ std::string document,
239
+ const analyze_document_options::built& options,
240
+ analyze_document_handler&& handler) const
241
+ {
242
+ core_.execute(
243
+ core::operations::management::search_index_analyze_document_request{
244
+ std::move(index_name), std::move(document), {}, options.timeout },
245
+ [handler = std::move(handler)](auto resp) mutable { return handler(build_context(resp), convert_analysis(resp.analysis)); });
246
+ }
247
+
248
+ private:
249
+ core::cluster core_;
250
+ };
251
+
252
+ search_index_manager::search_index_manager(core::cluster core)
253
+ : impl_(std::make_shared<search_index_manager_impl>(std::move(core)))
254
+ {
255
+ }
256
+
257
+ void
258
+ search_index_manager::get_index(std::string index_name,
259
+ const couchbase::get_search_index_options& options,
260
+ get_search_index_handler&& handler) const
261
+ {
262
+ return impl_->get_index(std::move(index_name), options.build(), std::move(handler));
263
+ }
264
+
265
+ auto
266
+ search_index_manager::get_index(std::string index_name, const couchbase::get_search_index_options& options) const
267
+ -> std::future<std::pair<manager_error_context, management::search::index>>
268
+ {
269
+ auto barrier = std::make_shared<std::promise<std::pair<manager_error_context, management::search::index>>>();
270
+ get_index(std::move(index_name), options, [barrier](auto ctx, auto result) mutable {
271
+ barrier->set_value(std::make_pair(std::move(ctx), std::move(result)));
272
+ });
273
+ return barrier->get_future();
274
+ }
275
+
276
+ void
277
+ search_index_manager::get_all_indexes(const couchbase::get_all_search_indexes_options& options,
278
+ get_all_search_indexes_handler&& handler) const
279
+ {
280
+ return impl_->get_all_indexes(options.build(), std::move(handler));
281
+ }
282
+
283
+ auto
284
+ search_index_manager::get_all_indexes(const couchbase::get_all_search_indexes_options& options) const
285
+ -> std::future<std::pair<manager_error_context, std::vector<management::search::index>>>
286
+ {
287
+ auto barrier = std::make_shared<std::promise<std::pair<manager_error_context, std::vector<management::search::index>>>>();
288
+ get_all_indexes(options,
289
+ [barrier](auto ctx, auto result) mutable { barrier->set_value(std::make_pair(std::move(ctx), std::move(result))); });
290
+ return barrier->get_future();
291
+ }
292
+
293
+ void
294
+ search_index_manager::upsert_index(const management::search::index& search_index,
295
+ const couchbase::upsert_search_index_options& options,
296
+ couchbase::upsert_search_index_handler&& handler) const
297
+ {
298
+ return impl_->upsert_index(search_index, options.build(), std::move(handler));
299
+ }
300
+
301
+ auto
302
+ search_index_manager::upsert_index(const management::search::index& search_index,
303
+ const couchbase::upsert_search_index_options& options) const -> std::future<manager_error_context>
304
+ {
305
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
306
+ upsert_index(search_index, options, [barrier](auto ctx) mutable { barrier->set_value(std::move(ctx)); });
307
+ return barrier->get_future();
308
+ }
309
+
310
+ void
311
+ search_index_manager::drop_index(std::string index_name,
312
+ const couchbase::drop_search_index_options& options,
313
+ couchbase::drop_search_index_handler&& handler) const
314
+ {
315
+ return impl_->drop_index(std::move(index_name), options.build(), std::move(handler));
316
+ }
317
+
318
+ auto
319
+ search_index_manager::drop_index(std::string index_name, const couchbase::drop_search_index_options& options) const
320
+ -> std::future<manager_error_context>
321
+ {
322
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
323
+ drop_index(std::move(index_name), options, [barrier](auto ctx) mutable { barrier->set_value(std::move(ctx)); });
324
+ return barrier->get_future();
325
+ }
326
+
327
+ void
328
+ search_index_manager::get_indexed_documents_count(std::string index_name,
329
+ const couchbase::get_indexed_search_index_options& options,
330
+ couchbase::get_indexed_search_index_handler&& handler) const
331
+ {
332
+ return impl_->get_indexed_documents_count(std::move(index_name), options.build(), std::move(handler));
333
+ }
334
+
335
+ auto
336
+ search_index_manager::get_indexed_documents_count(std::string index_name, const get_indexed_search_index_options& options) const
337
+ -> std::future<std::pair<manager_error_context, std::uint64_t>>
338
+ {
339
+ auto barrier = std::make_shared<std::promise<std::pair<manager_error_context, std::uint64_t>>>();
340
+ get_indexed_documents_count(std::move(index_name), options, [barrier](auto ctx, auto result) mutable {
341
+ barrier->set_value(std::make_pair(std::move(ctx), std::move(result)));
342
+ });
343
+ return barrier->get_future();
344
+ }
345
+
346
+ void
347
+ search_index_manager::pause_ingest(std::string index_name,
348
+ const couchbase::pause_ingest_search_index_options& options,
349
+ couchbase::pause_ingest_search_index_handler&& handler) const
350
+ {
351
+ return impl_->pause_ingest(std::move(index_name), options.build(), std::move(handler));
352
+ }
353
+
354
+ auto
355
+ search_index_manager::pause_ingest(std::string index_name, const couchbase::pause_ingest_search_index_options& options) const
356
+ -> std::future<manager_error_context>
357
+ {
358
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
359
+ pause_ingest(std::move(index_name), options, [barrier](auto ctx) mutable { barrier->set_value(std::move(ctx)); });
360
+ return barrier->get_future();
361
+ }
362
+
363
+ void
364
+ search_index_manager::resume_ingest(std::string index_name,
365
+ const couchbase::resume_ingest_search_index_options& options,
366
+ couchbase::resume_ingest_search_index_handler&& handler) const
367
+ {
368
+ return impl_->resume_ingest(std::move(index_name), options.build(), std::move(handler));
369
+ }
370
+
371
+ auto
372
+ search_index_manager::resume_ingest(std::string index_name, const couchbase::resume_ingest_search_index_options& options) const
373
+ -> std::future<manager_error_context>
374
+ {
375
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
376
+ resume_ingest(std::move(index_name), options, [barrier](auto ctx) mutable { barrier->set_value(std::move(ctx)); });
377
+ return barrier->get_future();
378
+ }
379
+
380
+ void
381
+ search_index_manager::allow_querying(std::string index_name,
382
+ const couchbase::allow_querying_search_index_options& options,
383
+ couchbase::allow_querying_search_index_handler&& handler) const
384
+ {
385
+ return impl_->allow_querying(std::move(index_name), options.build(), std::move(handler));
386
+ }
387
+
388
+ auto
389
+ search_index_manager::allow_querying(std::string index_name, const couchbase::allow_querying_search_index_options& options) const
390
+ -> std::future<manager_error_context>
391
+ {
392
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
393
+ allow_querying(std::move(index_name), options, [barrier](auto ctx) mutable { barrier->set_value(std::move(ctx)); });
394
+ return barrier->get_future();
395
+ }
396
+
397
+ void
398
+ search_index_manager::disallow_querying(std::string index_name,
399
+ const couchbase::disallow_querying_search_index_options& options,
400
+ couchbase::disallow_querying_search_index_handler&& handler) const
401
+ {
402
+ return impl_->disallow_querying(std::move(index_name), options.build(), std::move(handler));
403
+ }
404
+
405
+ auto
406
+ search_index_manager::disallow_querying(std::string index_name, const couchbase::disallow_querying_search_index_options& options) const
407
+ -> std::future<manager_error_context>
408
+ {
409
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
410
+ disallow_querying(std::move(index_name), options, [barrier](auto ctx) mutable { barrier->set_value(std::move(ctx)); });
411
+ return barrier->get_future();
412
+ }
413
+
414
+ void
415
+ search_index_manager::freeze_plan(std::string index_name,
416
+ const couchbase::freeze_plan_search_index_options& options,
417
+ couchbase::freeze_plan_search_index_handler&& handler) const
418
+ {
419
+ return impl_->freeze_plan(std::move(index_name), options.build(), std::move(handler));
420
+ }
421
+
422
+ auto
423
+ search_index_manager::freeze_plan(std::string index_name, const couchbase::freeze_plan_search_index_options& options) const
424
+ -> std::future<manager_error_context>
425
+ {
426
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
427
+ freeze_plan(std::move(index_name), options, [barrier](auto ctx) mutable { barrier->set_value(std::move(ctx)); });
428
+ return barrier->get_future();
429
+ }
430
+
431
+ void
432
+ search_index_manager::unfreeze_plan(std::string index_name,
433
+ const couchbase::unfreeze_plan_search_index_options& options,
434
+ couchbase::unfreeze_plan_search_index_handler&& handler) const
435
+ {
436
+ return impl_->unfreeze_plan(std::move(index_name), options.build(), std::move(handler));
437
+ }
438
+
439
+ auto
440
+ search_index_manager::unfreeze_plan(std::string index_name, const couchbase::unfreeze_plan_search_index_options& options) const
441
+ -> std::future<manager_error_context>
442
+ {
443
+ auto barrier = std::make_shared<std::promise<manager_error_context>>();
444
+ unfreeze_plan(std::move(index_name), options, [barrier](auto ctx) mutable { barrier->set_value(std::move(ctx)); });
445
+ return barrier->get_future();
446
+ }
447
+
448
+ void
449
+ search_index_manager::analyze_document(std::string index_name,
450
+ std::string document,
451
+ const couchbase::analyze_document_options& options,
452
+ couchbase::analyze_document_handler&& handler) const
453
+ {
454
+ return impl_->analyze_document(std::move(index_name), std::move(document), options.build(), std::move(handler));
455
+ }
456
+
457
+ auto
458
+ search_index_manager::analyze_document(std::string index_name,
459
+ std::string document,
460
+ const couchbase::analyze_document_options& options) const
461
+ -> std::future<std::pair<manager_error_context, std::vector<std::string>>>
462
+ {
463
+ auto barrier = std::make_shared<std::promise<std::pair<manager_error_context, std::vector<std::string>>>>();
464
+ analyze_document(std::move(index_name), std::move(document), options, [barrier](auto ctx, auto result) mutable {
465
+ barrier->set_value(std::make_pair(std::move(ctx), std::move(result)));
466
+ });
467
+ return barrier->get_future();
468
+ }
469
+ } // namespace couchbase
@@ -26,6 +26,18 @@ search_row_location::search_row_location(internal_search_row_location internal)
26
26
  {
27
27
  }
28
28
 
29
+ search_row_location::search_row_location()
30
+ : internal_{ nullptr }
31
+ {
32
+ }
33
+
34
+ search_row_location::~search_row_location() = default;
35
+
36
+ search_row_location::search_row_location(search_row_location&&) noexcept = default;
37
+
38
+ search_row_location&
39
+ search_row_location::operator=(couchbase::search_row_location&&) noexcept = default;
40
+
29
41
  auto
30
42
  search_row_location::field() const -> const std::string&
31
43
  {
@@ -0,0 +1,87 @@
1
+ /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright 2023-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 "encoded_search_sort.hxx"
19
+
20
+ #include <couchbase/search_sort_geo_distance.hxx>
21
+
22
+ namespace couchbase
23
+ {
24
+ auto
25
+ search_sort_geo_distance::descending(bool desc) -> search_sort_geo_distance&
26
+ {
27
+ descending_ = desc;
28
+ return *this;
29
+ }
30
+
31
+ auto
32
+ search_sort_geo_distance::unit(couchbase::search_geo_distance_units unit) -> search_sort_geo_distance&
33
+ {
34
+ unit_ = unit;
35
+ return *this;
36
+ }
37
+
38
+ auto
39
+ search_sort_geo_distance::encode() const -> encoded_search_sort
40
+ {
41
+ encoded_search_sort built;
42
+ built.sort = {
43
+ { "by", "geo_distance" },
44
+ { "field", field_ },
45
+ };
46
+ built.sort["location"] = {
47
+ { "lat", location_.latitude },
48
+ { "lon", location_.longitude },
49
+ };
50
+ if (const auto& desc = descending_; desc.has_value()) {
51
+ built.sort["desc"] = desc.value();
52
+ }
53
+
54
+ if (const auto& unit = unit_; unit.has_value()) {
55
+ switch (unit.value()) {
56
+ case search_geo_distance_units::meters:
57
+ built.sort["unit"] = "meters";
58
+ break;
59
+ case search_geo_distance_units::miles:
60
+ built.sort["unit"] = "miles";
61
+ break;
62
+ case search_geo_distance_units::centimeters:
63
+ built.sort["unit"] = "centimeters";
64
+ break;
65
+ case search_geo_distance_units::millimeters:
66
+ built.sort["unit"] = "millimeters";
67
+ break;
68
+ case search_geo_distance_units::nautical_miles:
69
+ built.sort["unit"] = "nauticalmiles";
70
+ break;
71
+ case search_geo_distance_units::kilometers:
72
+ built.sort["unit"] = "kilometers";
73
+ break;
74
+ case search_geo_distance_units::feet:
75
+ built.sort["unit"] = "feet";
76
+ break;
77
+ case search_geo_distance_units::yards:
78
+ built.sort["unit"] = "yards";
79
+ break;
80
+ case search_geo_distance_units::inch:
81
+ built.sort["unit"] = "inch";
82
+ break;
83
+ }
84
+ }
85
+ return built;
86
+ }
87
+ } // namespace couchbase
@@ -34,32 +34,30 @@ struct with_legacy_durability : public mutation_request {
34
34
  template<typename Core, typename Handler>
35
35
  void execute(Core core, Handler handler)
36
36
  {
37
- using mutation_response = typename mutation_request::response_type;
38
- core->template execute<mutation_request>(*this,
39
- [core,
40
- id = mutation_request::id,
41
- timeout = mutation_request::timeout,
42
- persist_to = persist_to,
43
- replicate_to = replicate_to,
44
- handler = std::forward<Handler>(handler)](mutation_response&& resp) mutable {
45
- if (resp.ctx.ec()) {
46
- return handler(std::move(resp));
47
- }
37
+ core.execute(*static_cast<mutation_request*>(this),
38
+ [core,
39
+ id = mutation_request::id,
40
+ timeout = mutation_request::timeout,
41
+ persist_to_ = persist_to,
42
+ replicate_to_ = replicate_to,
43
+ handler = std::forward<Handler>(handler)](auto&& resp) mutable {
44
+ if (resp.ctx.ec()) {
45
+ return handler(std::move(resp));
46
+ }
48
47
 
49
- initiate_observe_poll(
50
- core,
51
- id,
52
- resp.token,
53
- timeout,
54
- persist_to,
55
- replicate_to,
56
- [resp = std::move(resp), handler = std::move(handler)](std::error_code ec) mutable {
57
- if (ec) {
58
- resp.ctx.override_ec(ec);
59
- }
60
- return handler(std::move(resp));
61
- });
62
- });
48
+ initiate_observe_poll(core,
49
+ id,
50
+ resp.token,
51
+ timeout,
52
+ persist_to_,
53
+ replicate_to_,
54
+ [resp = std::move(resp), handler = std::move(handler)](std::error_code ec) mutable {
55
+ if (ec) {
56
+ resp.ctx.override_ec(ec);
57
+ }
58
+ return handler(std::move(resp));
59
+ });
60
+ });
63
61
  }
64
62
  };
65
63
  } // namespace couchbase::core::impl
@@ -33,7 +33,10 @@
33
33
 
34
34
  #include <asio/ip/address.hpp>
35
35
 
36
+ #include <filesystem>
37
+ #include <fstream>
36
38
  #include <mutex>
39
+ #include <utility>
37
40
 
38
41
  namespace couchbase::core::io::dns
39
42
  {
@@ -158,4 +161,29 @@ dns_config::system_config()
158
161
 
159
162
  return instance;
160
163
  }
164
+
165
+ dns_config::dns_config(std::string nameserver, std::uint16_t port, std::chrono::milliseconds timeout)
166
+ : nameserver_{ std::move(nameserver) }
167
+ , port_{ port }
168
+ , timeout_{ timeout }
169
+ {
170
+ }
171
+
172
+ std::uint16_t
173
+ dns_config::port() const
174
+ {
175
+ return port_;
176
+ }
177
+
178
+ const std::string&
179
+ dns_config::nameserver() const
180
+ {
181
+ return nameserver_;
182
+ }
183
+
184
+ std::chrono::milliseconds
185
+ dns_config::timeout() const
186
+ {
187
+ return timeout_;
188
+ }
161
189
  } // namespace couchbase::core::io::dns