couchbase 4.2.8 → 4.2.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (315) 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-client/core/impl/append.cxx +0 -87
  278. package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +0 -157
  279. package/deps/couchbase-cxx-client/core/impl/create_bucket.cxx +0 -158
  280. package/deps/couchbase-cxx-client/core/impl/create_collection.cxx +0 -83
  281. package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +0 -232
  282. package/deps/couchbase-cxx-client/core/impl/create_scope.cxx +0 -69
  283. package/deps/couchbase-cxx-client/core/impl/decrement.cxx +0 -96
  284. package/deps/couchbase-cxx-client/core/impl/drop_bucket.cxx +0 -66
  285. package/deps/couchbase-cxx-client/core/impl/drop_collection.cxx +0 -76
  286. package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +0 -187
  287. package/deps/couchbase-cxx-client/core/impl/drop_scope.cxx +0 -68
  288. package/deps/couchbase-cxx-client/core/impl/exists.cxx +0 -47
  289. package/deps/couchbase-cxx-client/core/impl/flush_bucket.cxx +0 -66
  290. package/deps/couchbase-cxx-client/core/impl/get.cxx +0 -68
  291. package/deps/couchbase-cxx-client/core/impl/get_all_buckets.cxx +0 -178
  292. package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +0 -106
  293. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.cxx +0 -145
  294. package/deps/couchbase-cxx-client/core/impl/get_all_scopes.cxx +0 -94
  295. package/deps/couchbase-cxx-client/core/impl/get_and_lock.cxx +0 -49
  296. package/deps/couchbase-cxx-client/core/impl/get_and_touch.cxx +0 -49
  297. package/deps/couchbase-cxx-client/core/impl/get_any_replica.cxx +0 -134
  298. package/deps/couchbase-cxx-client/core/impl/get_bucket.cxx +0 -168
  299. package/deps/couchbase-cxx-client/core/impl/increment.cxx +0 -96
  300. package/deps/couchbase-cxx-client/core/impl/insert.cxx +0 -90
  301. package/deps/couchbase-cxx-client/core/impl/lookup_in.cxx +0 -69
  302. package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.cxx +0 -178
  303. package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.cxx +0 -169
  304. package/deps/couchbase-cxx-client/core/impl/mutate_in.cxx +0 -125
  305. package/deps/couchbase-cxx-client/core/impl/prepend.cxx +0 -87
  306. package/deps/couchbase-cxx-client/core/impl/remove.cxx +0 -86
  307. package/deps/couchbase-cxx-client/core/impl/replace.cxx +0 -102
  308. package/deps/couchbase-cxx-client/core/impl/touch.cxx +0 -49
  309. package/deps/couchbase-cxx-client/core/impl/unlock.cxx +0 -47
  310. package/deps/couchbase-cxx-client/core/impl/update_bucket.cxx +0 -133
  311. package/deps/couchbase-cxx-client/core/impl/update_collection.cxx +0 -83
  312. package/deps/couchbase-cxx-client/core/impl/upsert.cxx +0 -100
  313. package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +0 -196
  314. package/deps/couchbase-cxx-client/core/operations/mcbp_noop.hxx +0 -49
  315. /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