couchbase 4.2.8 → 4.2.10
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.
- package/CMakeLists.txt +1 -1
- package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +139 -56
- package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
- package/deps/couchbase-cxx-client/CMakeLists.txt +401 -424
- package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +7 -3
- package/deps/couchbase-cxx-client/cmake/OpenSSL.cmake +1 -0
- package/deps/couchbase-cxx-client/core/agent_config.hxx +1 -1
- package/deps/couchbase-cxx-client/core/agent_group.cxx +0 -1
- package/deps/couchbase-cxx-client/core/agent_group.hxx +9 -0
- package/deps/couchbase-cxx-client/core/agent_group_config.hxx +1 -1
- package/deps/couchbase-cxx-client/core/bucket.cxx +74 -10
- package/deps/couchbase-cxx-client/core/bucket.hxx +4 -2
- package/deps/couchbase-cxx-client/core/cluster.cxx +1491 -108
- package/deps/couchbase-cxx-client/core/cluster.hxx +183 -473
- package/deps/couchbase-cxx-client/core/cluster_agent_config.hxx +1 -1
- package/deps/couchbase-cxx-client/core/cluster_options.cxx +12 -2
- package/deps/couchbase-cxx-client/core/cluster_options.hxx +9 -8
- package/deps/couchbase-cxx-client/core/config_profiles.cxx +2 -2
- package/deps/couchbase-cxx-client/core/config_profiles.hxx +1 -1
- package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +1 -2
- package/deps/couchbase-cxx-client/core/core_sdk_shim.hxx +3 -2
- package/deps/couchbase-cxx-client/core/diagnostics.hxx +0 -1
- package/deps/couchbase-cxx-client/core/dispatcher.cxx +2 -2
- package/deps/couchbase-cxx-client/core/impl/analytics.cxx +38 -76
- package/deps/couchbase-cxx-client/core/impl/analytics.hxx +40 -0
- package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +820 -0
- package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +403 -0
- package/deps/couchbase-cxx-client/core/impl/bucket.cxx +102 -0
- package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +433 -0
- package/deps/couchbase-cxx-client/core/impl/cluster.cxx +299 -44
- package/deps/couchbase-cxx-client/core/impl/collection.cxx +1384 -0
- package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +306 -0
- package/deps/couchbase-cxx-client/core/impl/configuration_profiles_registry.cxx +3 -1
- package/deps/couchbase-cxx-client/core/impl/diagnostics.cxx +294 -0
- package/deps/couchbase-cxx-client/core/impl/diagnostics.hxx +39 -0
- package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +2 -0
- package/deps/couchbase-cxx-client/core/{operations/mcbp_noop.cxx → impl/doc_id_query.cxx} +19 -15
- package/deps/couchbase-cxx-client/core/impl/key_value_error_category.cxx +4 -2
- package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.hxx +0 -10
- package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.hxx +0 -10
- package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +24 -17
- package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/query.cxx +45 -68
- package/deps/couchbase-cxx-client/core/impl/query.hxx +34 -0
- package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +628 -0
- package/deps/couchbase-cxx-client/core/impl/scope.cxx +187 -0
- package/deps/couchbase-cxx-client/core/impl/search.cxx +81 -57
- package/deps/couchbase-cxx-client/core/impl/search.hxx +45 -0
- package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +712 -0
- package/deps/couchbase-cxx-client/core/impl/search_request.cxx +139 -0
- package/deps/couchbase-cxx-client/core/impl/search_row_location.cxx +12 -0
- package/deps/couchbase-cxx-client/core/impl/search_sort_geo_distance.cxx +87 -0
- package/deps/couchbase-cxx-client/core/impl/vector_query.cxx +42 -0
- package/deps/couchbase-cxx-client/core/impl/vector_search.cxx +40 -0
- package/deps/couchbase-cxx-client/core/impl/with_legacy_durability.hxx +23 -25
- package/deps/couchbase-cxx-client/core/io/dns_config.cxx +28 -0
- package/deps/couchbase-cxx-client/core/io/dns_config.hxx +6 -25
- package/deps/couchbase-cxx-client/core/io/http_session.hxx +6 -3
- package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +9 -1
- package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +1 -1
- package/deps/couchbase-cxx-client/core/io/mcbp_message.hxx +3 -2
- package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +75 -53
- package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +3 -1
- package/deps/couchbase-cxx-client/core/logger/logger.cxx +1 -1
- package/deps/couchbase-cxx-client/core/logger/logger.hxx +4 -4
- package/deps/couchbase-cxx-client/core/management/bucket_settings.hxx +1 -1
- package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +1 -1
- package/deps/couchbase-cxx-client/core/mcbp/queue_callback.hxx +1 -1
- package/deps/couchbase-cxx-client/core/meta/features.hxx +38 -0
- package/deps/couchbase-cxx-client/core/operations/document_query.cxx +23 -2
- package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/document_search.cxx +37 -1
- package/deps/couchbase-cxx-client/core/operations/document_search.hxx +11 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_create.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +9 -6
- package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +9 -8
- package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +9 -5
- package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_get_all.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +2 -2
- package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +4 -1
- package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +4 -1
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.cxx +4 -4
- package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +4 -4
- package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +19 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +23 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +23 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +23 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +19 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +19 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +39 -22
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +20 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +19 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -0
- package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
- package/deps/couchbase-cxx-client/core/operations_fwd.hxx +260 -0
- package/deps/couchbase-cxx-client/core/origin.cxx +146 -5
- package/deps/couchbase-cxx-client/core/origin.hxx +30 -140
- package/deps/couchbase-cxx-client/core/protocol/cmd_cluster_map_change_notification.hxx +3 -3
- package/deps/couchbase-cxx-client/core/protocol/cmd_hello.hxx +5 -0
- package/deps/couchbase-cxx-client/core/protocol/cmd_observe_seqno.hxx +4 -4
- package/deps/couchbase-cxx-client/core/protocol/hello_feature.hxx +6 -0
- package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +3 -0
- package/deps/couchbase-cxx-client/core/protocol/status.cxx +6 -0
- package/deps/couchbase-cxx-client/core/protocol/status.hxx +1 -0
- package/deps/couchbase-cxx-client/core/query_context.hxx +11 -7
- package/deps/couchbase-cxx-client/core/range_scan_orchestrator.cxx +1 -1
- package/deps/couchbase-cxx-client/core/topology/collections_manifest.hxx +1 -1
- package/deps/couchbase-cxx-client/core/topology/collections_manifest_json.hxx +1 -1
- package/deps/couchbase-cxx-client/core/topology/configuration.cxx +23 -0
- package/deps/couchbase-cxx-client/core/topology/configuration.hxx +8 -12
- package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +3 -3
- package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +2 -0
- package/deps/couchbase-cxx-client/core/topology/error_map.hxx +2 -2
- package/deps/couchbase-cxx-client/core/topology/error_map_json.hxx +4 -0
- package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.cxx +58 -0
- package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +5 -40
- package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +30 -0
- package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +18 -18
- package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +36 -0
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +39 -41
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +2 -2
- package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +3 -1
- package/deps/couchbase-cxx-client/core/transactions/internal/atr_entry.hxx +2 -0
- package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.cxx +32 -0
- package/deps/couchbase-cxx-client/core/transactions/internal/doc_record.hxx +4 -30
- package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +41 -0
- package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +17 -15
- package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +1 -1
- package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +4 -4
- package/deps/couchbase-cxx-client/core/transactions/internal/utils.hxx +5 -13
- package/deps/couchbase-cxx-client/core/transactions/result.hxx +0 -26
- package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +46 -0
- package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +16 -14
- package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +6 -6
- package/deps/couchbase-cxx-client/core/transactions/transaction_keyspace.cxx +48 -0
- package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +1 -0
- package/deps/couchbase-cxx-client/core/transactions/transaction_options.cxx +61 -4
- package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +9 -8
- package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +9 -16
- package/deps/couchbase-cxx-client/core/transactions/transactions_config.cxx +7 -6
- package/deps/couchbase-cxx-client/core/transactions.hxx +6 -5
- package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +4 -3
- package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +4 -4
- package/deps/couchbase-cxx-client/core/vector_query_combination.hxx +23 -0
- package/deps/couchbase-cxx-client/couchbase/allow_querying_search_index_options.hxx +44 -0
- package/deps/couchbase-cxx-client/couchbase/analytics_index_manager.hxx +463 -0
- package/deps/couchbase-cxx-client/couchbase/analyze_document_options.hxx +44 -0
- package/deps/couchbase-cxx-client/couchbase/append_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/binary_collection.hxx +19 -115
- package/deps/couchbase-cxx-client/couchbase/bucket.hxx +42 -30
- package/deps/couchbase-cxx-client/couchbase/bucket_manager.hxx +8 -7
- package/deps/couchbase-cxx-client/couchbase/build_query_index_options.hxx +0 -1
- package/deps/couchbase-cxx-client/couchbase/cluster.hxx +151 -73
- package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +1 -27
- package/deps/couchbase-cxx-client/couchbase/codec/json_transcoder.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/codec/raw_binary_transcoder.hxx +2 -1
- package/deps/couchbase-cxx-client/couchbase/codec/raw_json_transcoder.hxx +78 -0
- package/deps/couchbase-cxx-client/couchbase/codec/raw_string_transcoder.hxx +72 -0
- package/deps/couchbase-cxx-client/couchbase/collection.hxx +176 -386
- package/deps/couchbase-cxx-client/couchbase/collection_manager.hxx +8 -9
- package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +21 -24
- package/deps/couchbase-cxx-client/couchbase/connect_link_analytics_options.hxx +116 -0
- package/deps/couchbase-cxx-client/couchbase/create_bucket_options.hxx +3 -3
- package/deps/couchbase-cxx-client/couchbase/create_collection_options.hxx +32 -3
- package/deps/couchbase-cxx-client/couchbase/create_dataset_analytics_options.hxx +120 -0
- package/deps/couchbase-cxx-client/couchbase/create_dataverse_analytics_options.hxx +85 -0
- package/deps/couchbase-cxx-client/couchbase/create_index_analytics_options.hxx +103 -0
- package/deps/couchbase-cxx-client/couchbase/create_link_analytics_options.hxx +63 -0
- package/deps/couchbase-cxx-client/couchbase/decrement_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/diagnostics_options.hxx +75 -0
- package/deps/couchbase-cxx-client/couchbase/diagnostics_result.hxx +124 -0
- package/deps/couchbase-cxx-client/couchbase/disallow_querying_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/disconnect_link_analytics_options.hxx +105 -0
- package/deps/couchbase-cxx-client/couchbase/drop_dataset_analytics_options.hxx +103 -0
- package/deps/couchbase-cxx-client/couchbase/drop_dataverse_analytics_options.hxx +84 -0
- package/deps/couchbase-cxx-client/couchbase/drop_index_analytics_options.hxx +103 -0
- package/deps/couchbase-cxx-client/couchbase/drop_link_analytics_options.hxx +63 -0
- package/deps/couchbase-cxx-client/couchbase/drop_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/endpoint_diagnostics.hxx +206 -0
- package/deps/couchbase-cxx-client/couchbase/endpoint_ping_report.hxx +205 -0
- package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +22 -1
- package/deps/couchbase-cxx-client/couchbase/exists_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/fmt/key_value_error_map_attribute.hxx +6 -0
- package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +3 -0
- package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +37 -0
- package/deps/couchbase-cxx-client/couchbase/freeze_plan_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/get_all_datasets_analytics_options.hxx +66 -0
- package/deps/couchbase-cxx-client/couchbase/get_all_indexes_analytics_options.hxx +65 -0
- package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +1 -4
- package/deps/couchbase-cxx-client/couchbase/get_all_replicas_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/get_all_search_indexes_options.hxx +45 -0
- package/deps/couchbase-cxx-client/couchbase/get_and_lock_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/get_and_touch_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/get_any_replica_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/get_indexed_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/get_links_analytics_options.hxx +121 -0
- package/deps/couchbase-cxx-client/couchbase/get_options.hxx +1 -29
- package/deps/couchbase-cxx-client/couchbase/get_pending_mutations_analytics_options.hxx +67 -0
- package/deps/couchbase-cxx-client/couchbase/get_search_index_options.hxx +44 -0
- package/deps/couchbase-cxx-client/couchbase/increment_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/insert_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/key_value_error_map_attribute.hxx +12 -0
- package/deps/couchbase-cxx-client/couchbase/key_value_status_code.hxx +1 -0
- package/deps/couchbase-cxx-client/couchbase/lookup_in_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/management/analytics_dataset.hxx +48 -0
- package/deps/couchbase-cxx-client/couchbase/management/analytics_index.hxx +48 -0
- package/deps/couchbase-cxx-client/couchbase/management/analytics_link.hxx +239 -0
- package/deps/couchbase-cxx-client/couchbase/management/collection_spec.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/management/query_index.hxx +3 -3
- package/deps/couchbase-cxx-client/couchbase/management/search_index.hxx +40 -0
- package/deps/couchbase-cxx-client/couchbase/manager_error_context.hxx +0 -1
- package/deps/couchbase-cxx-client/couchbase/mutate_in_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/network_options.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/pause_ingest_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/phrase_query.hxx +19 -0
- package/deps/couchbase-cxx-client/couchbase/ping_options.hxx +93 -0
- package/deps/couchbase-cxx-client/couchbase/ping_result.hxx +118 -0
- package/deps/couchbase-cxx-client/couchbase/prepend_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +99 -20
- package/deps/couchbase-cxx-client/couchbase/query_options.hxx +0 -21
- package/deps/couchbase-cxx-client/couchbase/remove_options.hxx +0 -23
- package/deps/couchbase-cxx-client/couchbase/replace_link_analytics_options.hxx +63 -0
- package/deps/couchbase-cxx-client/couchbase/replace_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/resume_ingest_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/scope.hxx +37 -53
- package/deps/couchbase-cxx-client/couchbase/scope_search_index_manager.hxx +291 -0
- package/deps/couchbase-cxx-client/couchbase/search_facet_result.hxx +1 -7
- package/deps/couchbase-cxx-client/couchbase/search_geo_distance_units.hxx +26 -0
- package/deps/couchbase-cxx-client/couchbase/search_index_manager.hxx +292 -0
- package/deps/couchbase-cxx-client/couchbase/search_request.hxx +120 -0
- package/deps/couchbase-cxx-client/couchbase/search_row_location.hxx +10 -0
- package/deps/couchbase-cxx-client/couchbase/search_sort_geo_distance.hxx +84 -0
- package/deps/couchbase-cxx-client/couchbase/security_options.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/service_type.hxx +58 -0
- package/deps/couchbase-cxx-client/couchbase/touch_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +10 -7
- package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +10 -10
- package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +8 -58
- package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +28 -70
- package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +7 -2
- package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +2 -1
- package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +11 -38
- package/deps/couchbase-cxx-client/couchbase/unfreeze_plan_search_index_options.hxx +43 -0
- package/deps/couchbase-cxx-client/couchbase/unlock_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/update_collection_options.hxx +32 -3
- package/deps/couchbase-cxx-client/couchbase/upsert_options.hxx +0 -24
- package/deps/couchbase-cxx-client/couchbase/upsert_search_index_options.hxx +41 -0
- package/deps/couchbase-cxx-client/couchbase/vector_query.hxx +99 -0
- package/deps/couchbase-cxx-client/couchbase/vector_search.hxx +85 -0
- package/deps/couchbase-cxx-client/couchbase/vector_search_options.hxx +76 -0
- package/dist/binding.d.ts +16 -9
- package/dist/binding.js +4 -1
- package/dist/bindingutilities.d.ts +6 -1
- package/dist/bindingutilities.js +17 -1
- package/dist/cluster.d.ts +12 -1
- package/dist/cluster.js +22 -0
- package/dist/collection.js +3 -3
- package/dist/couchbase.d.ts +1 -0
- package/dist/couchbase.js +1 -0
- package/dist/errors.d.ts +9 -0
- package/dist/errors.js +14 -2
- package/dist/searchexecutor.d.ts +2 -2
- package/dist/searchexecutor.js +19 -3
- package/dist/searchtypes.d.ts +46 -0
- package/dist/searchtypes.js +81 -1
- package/dist/transactions.d.ts +2 -0
- package/dist/transactions.js +2 -3
- package/dist/usermanager.js +1 -1
- package/dist/vectorsearch.d.ts +99 -0
- package/dist/vectorsearch.js +132 -0
- package/package.json +7 -7
- package/src/binding.cpp +1 -0
- package/src/connection.cpp +12 -9
- package/src/connection.hpp +3 -3
- package/src/connection_autogen.cpp +7 -5
- package/src/constants.cpp +14 -0
- package/src/instance.cpp +2 -2
- package/src/instance.hpp +1 -1
- package/src/jstocbpp_autogen.hpp +45 -45
- package/src/jstocbpp_basic.hpp +2 -0
- package/src/jstocbpp_errors.hpp +1 -0
- package/src/jstocbpp_transactions.hpp +6 -22
- package/src/mutationtoken.hpp +1 -0
- package/tools/gen-bindings-json.py +41 -16
- package/deps/couchbase-cxx-client/core/impl/append.cxx +0 -87
- package/deps/couchbase-cxx-client/core/impl/build_deferred_query_indexes.cxx +0 -157
- package/deps/couchbase-cxx-client/core/impl/create_bucket.cxx +0 -158
- package/deps/couchbase-cxx-client/core/impl/create_collection.cxx +0 -83
- package/deps/couchbase-cxx-client/core/impl/create_query_index.cxx +0 -232
- package/deps/couchbase-cxx-client/core/impl/create_scope.cxx +0 -69
- package/deps/couchbase-cxx-client/core/impl/decrement.cxx +0 -96
- package/deps/couchbase-cxx-client/core/impl/drop_bucket.cxx +0 -66
- package/deps/couchbase-cxx-client/core/impl/drop_collection.cxx +0 -76
- package/deps/couchbase-cxx-client/core/impl/drop_query_index.cxx +0 -187
- package/deps/couchbase-cxx-client/core/impl/drop_scope.cxx +0 -68
- package/deps/couchbase-cxx-client/core/impl/exists.cxx +0 -47
- package/deps/couchbase-cxx-client/core/impl/flush_bucket.cxx +0 -66
- package/deps/couchbase-cxx-client/core/impl/get.cxx +0 -68
- package/deps/couchbase-cxx-client/core/impl/get_all_buckets.cxx +0 -178
- package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +0 -106
- package/deps/couchbase-cxx-client/core/impl/get_all_replicas.cxx +0 -145
- package/deps/couchbase-cxx-client/core/impl/get_all_scopes.cxx +0 -94
- package/deps/couchbase-cxx-client/core/impl/get_and_lock.cxx +0 -49
- package/deps/couchbase-cxx-client/core/impl/get_and_touch.cxx +0 -49
- package/deps/couchbase-cxx-client/core/impl/get_any_replica.cxx +0 -134
- package/deps/couchbase-cxx-client/core/impl/get_bucket.cxx +0 -168
- package/deps/couchbase-cxx-client/core/impl/increment.cxx +0 -96
- package/deps/couchbase-cxx-client/core/impl/insert.cxx +0 -90
- package/deps/couchbase-cxx-client/core/impl/lookup_in.cxx +0 -69
- package/deps/couchbase-cxx-client/core/impl/lookup_in_all_replicas.cxx +0 -178
- package/deps/couchbase-cxx-client/core/impl/lookup_in_any_replica.cxx +0 -169
- package/deps/couchbase-cxx-client/core/impl/mutate_in.cxx +0 -125
- package/deps/couchbase-cxx-client/core/impl/prepend.cxx +0 -87
- package/deps/couchbase-cxx-client/core/impl/remove.cxx +0 -86
- package/deps/couchbase-cxx-client/core/impl/replace.cxx +0 -102
- package/deps/couchbase-cxx-client/core/impl/touch.cxx +0 -49
- package/deps/couchbase-cxx-client/core/impl/unlock.cxx +0 -47
- package/deps/couchbase-cxx-client/core/impl/update_bucket.cxx +0 -133
- package/deps/couchbase-cxx-client/core/impl/update_collection.cxx +0 -83
- package/deps/couchbase-cxx-client/core/impl/upsert.cxx +0 -100
- package/deps/couchbase-cxx-client/core/impl/watch_query_indexes.cxx +0 -196
- package/deps/couchbase-cxx-client/core/operations/mcbp_noop.hxx +0 -49
- /package/deps/couchbase-cxx-client/core/impl/{streaming_json_lexter_error_category.cxx → streaming_json_lexer_error_category.cxx} +0 -0
|
@@ -17,32 +17,33 @@
|
|
|
17
17
|
|
|
18
18
|
#pragma once
|
|
19
19
|
|
|
20
|
+
#include <couchbase/analytics_index_manager.hxx>
|
|
20
21
|
#include <couchbase/analytics_options.hxx>
|
|
21
22
|
#include <couchbase/bucket.hxx>
|
|
22
23
|
#include <couchbase/bucket_manager.hxx>
|
|
23
24
|
#include <couchbase/cluster_options.hxx>
|
|
25
|
+
#include <couchbase/diagnostics_options.hxx>
|
|
26
|
+
#include <couchbase/ping_options.hxx>
|
|
24
27
|
#include <couchbase/query_index_manager.hxx>
|
|
25
28
|
#include <couchbase/query_options.hxx>
|
|
29
|
+
#include <couchbase/search_index_manager.hxx>
|
|
26
30
|
#include <couchbase/search_options.hxx>
|
|
27
31
|
#include <couchbase/search_query.hxx>
|
|
32
|
+
#include <couchbase/search_request.hxx>
|
|
28
33
|
#include <couchbase/transactions.hxx>
|
|
29
34
|
|
|
30
35
|
#include <memory>
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
namespace couchbase::core
|
|
37
|
+
namespace couchbase
|
|
34
38
|
{
|
|
35
|
-
|
|
39
|
+
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
|
|
40
|
+
namespace core
|
|
36
41
|
{
|
|
37
|
-
class transactions;
|
|
38
|
-
} // namespace transactions
|
|
39
|
-
|
|
40
42
|
class cluster;
|
|
41
|
-
} // namespace
|
|
43
|
+
} // namespace core
|
|
44
|
+
class cluster_impl;
|
|
42
45
|
#endif
|
|
43
46
|
|
|
44
|
-
namespace couchbase
|
|
45
|
-
{
|
|
46
47
|
/**
|
|
47
48
|
* The {@link cluster} is the main entry point when connecting to a Couchbase cluster.
|
|
48
49
|
*
|
|
@@ -55,21 +56,18 @@ class cluster
|
|
|
55
56
|
/**
|
|
56
57
|
* Connect to a Couchbase cluster.
|
|
57
58
|
*
|
|
58
|
-
* @tparam Handler callable type that implements @ref cluster_connect_handler signature
|
|
59
|
-
*
|
|
60
59
|
* @param io IO context
|
|
61
60
|
* @param connection_string connection string used to locate the Couchbase cluster object.
|
|
62
61
|
* @param options options to customize connection (note, that connection_string takes precedence over this options).
|
|
63
|
-
* @param handler the handler
|
|
62
|
+
* @param handler the handler
|
|
64
63
|
*
|
|
65
64
|
* @since 1.0.0
|
|
66
65
|
* @committed
|
|
67
66
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
67
|
+
static void connect(asio::io_context& io,
|
|
68
|
+
const std::string& connection_string,
|
|
69
|
+
const cluster_options& options,
|
|
70
|
+
cluster_connect_handler&& handler);
|
|
73
71
|
|
|
74
72
|
/**
|
|
75
73
|
* Connect to a Couchbase cluster.
|
|
@@ -84,13 +82,7 @@ class cluster
|
|
|
84
82
|
* @committed
|
|
85
83
|
*/
|
|
86
84
|
[[nodiscard]] static auto connect(asio::io_context& io, const std::string& connection_string, const cluster_options& options)
|
|
87
|
-
-> std::future<std::pair<cluster, std::error_code
|
|
88
|
-
{
|
|
89
|
-
auto barrier = std::make_shared<std::promise<std::pair<cluster, std::error_code>>>();
|
|
90
|
-
auto future = barrier->get_future();
|
|
91
|
-
connect(io, connection_string, options, [barrier](auto c, auto ec) { barrier->set_value({ std::move(c), ec }); });
|
|
92
|
-
return future;
|
|
93
|
-
}
|
|
85
|
+
-> std::future<std::pair<cluster, std::error_code>>;
|
|
94
86
|
|
|
95
87
|
cluster() = default;
|
|
96
88
|
cluster(const cluster& other) = default;
|
|
@@ -98,7 +90,7 @@ class cluster
|
|
|
98
90
|
auto operator=(const cluster& other) -> cluster& = default;
|
|
99
91
|
auto operator=(cluster&& other) -> cluster& = default;
|
|
100
92
|
|
|
101
|
-
void close();
|
|
93
|
+
void close() const;
|
|
102
94
|
|
|
103
95
|
/**
|
|
104
96
|
* Wraps low-level implementation of the SDK to provide common API.
|
|
@@ -108,10 +100,7 @@ class cluster
|
|
|
108
100
|
* @since 1.0.0
|
|
109
101
|
* @volatile
|
|
110
102
|
*/
|
|
111
|
-
explicit cluster(
|
|
112
|
-
: core_(std::move(core))
|
|
113
|
-
{
|
|
114
|
-
}
|
|
103
|
+
explicit cluster(core::cluster core);
|
|
115
104
|
|
|
116
105
|
/**
|
|
117
106
|
* Opens a {@link bucket} with the given name.
|
|
@@ -122,16 +111,11 @@ class cluster
|
|
|
122
111
|
* @since 1.0.0
|
|
123
112
|
* @committed
|
|
124
113
|
*/
|
|
125
|
-
[[nodiscard]] auto bucket(std::string_view bucket_name) const -> bucket
|
|
126
|
-
{
|
|
127
|
-
return { core_, bucket_name };
|
|
128
|
-
}
|
|
114
|
+
[[nodiscard]] auto bucket(std::string_view bucket_name) const -> bucket;
|
|
129
115
|
|
|
130
116
|
/**
|
|
131
117
|
* Performs a query against the query (N1QL) services.
|
|
132
118
|
*
|
|
133
|
-
* @tparam Handler callable type that implements @ref query_handler signature
|
|
134
|
-
*
|
|
135
119
|
* @param statement the N1QL query statement.
|
|
136
120
|
* @param options options to customize the query request.
|
|
137
121
|
* @param handler the handler that implements @ref query_handler
|
|
@@ -142,11 +126,7 @@ class cluster
|
|
|
142
126
|
* @since 1.0.0
|
|
143
127
|
* @committed
|
|
144
128
|
*/
|
|
145
|
-
|
|
146
|
-
void query(std::string statement, const query_options& options, Handler&& handler) const
|
|
147
|
-
{
|
|
148
|
-
return core::impl::initiate_query_operation(core_, std::move(statement), {}, options.build(), std::forward<Handler>(handler));
|
|
149
|
-
}
|
|
129
|
+
void query(std::string statement, const query_options& options, query_handler&& handler) const;
|
|
150
130
|
|
|
151
131
|
/**
|
|
152
132
|
* Performs a query against the query (N1QL) services.
|
|
@@ -159,19 +139,14 @@ class cluster
|
|
|
159
139
|
* @committed
|
|
160
140
|
*/
|
|
161
141
|
[[nodiscard]] auto query(std::string statement, const query_options& options) const
|
|
162
|
-
-> std::future<std::pair<query_error_context, query_result
|
|
163
|
-
{
|
|
164
|
-
auto barrier = std::make_shared<std::promise<std::pair<query_error_context, query_result>>>();
|
|
165
|
-
auto future = barrier->get_future();
|
|
166
|
-
query(std::move(statement), options, [barrier](auto ctx, auto result) {
|
|
167
|
-
barrier->set_value({ std::move(ctx), std::move(result) });
|
|
168
|
-
});
|
|
169
|
-
return future;
|
|
170
|
-
}
|
|
142
|
+
-> std::future<std::pair<query_error_context, query_result>>;
|
|
171
143
|
|
|
172
144
|
/**
|
|
173
145
|
* Performs a query against the full text search services.
|
|
174
146
|
*
|
|
147
|
+
* Consider using the newer @ref cluster::search() interface instead, which can be used
|
|
148
|
+
* for both traditional FTS queries, and to perform a @ref vector_search
|
|
149
|
+
*
|
|
175
150
|
* @param index_name name of the search index
|
|
176
151
|
* @param query query object, see hierarchy of @ref search_query for more details.
|
|
177
152
|
* @param options options to customize the query request.
|
|
@@ -190,6 +165,9 @@ class cluster
|
|
|
190
165
|
/**
|
|
191
166
|
* Performs a query against the full text search services.
|
|
192
167
|
*
|
|
168
|
+
* Consider using the newer @ref cluster::search() interface instead, which can be used
|
|
169
|
+
* for both traditional FTS queries, and to perform a vector search.
|
|
170
|
+
*
|
|
193
171
|
* @param index_name name of the search index
|
|
194
172
|
* @param query query object, see hierarchy of @ref search_query for more details.
|
|
195
173
|
* @param options options to customize the query request.
|
|
@@ -206,6 +184,47 @@ class cluster
|
|
|
206
184
|
[[nodiscard]] auto search_query(std::string index_name, const class search_query& query, const search_options& options = {}) const
|
|
207
185
|
-> std::future<std::pair<search_error_context, search_result>>;
|
|
208
186
|
|
|
187
|
+
/**
|
|
188
|
+
* Performs a request against the full text search services.
|
|
189
|
+
*
|
|
190
|
+
* This can be used to perform a traditional FTS query, and/or a vector search.
|
|
191
|
+
*
|
|
192
|
+
* @param index_name name of the search index
|
|
193
|
+
* @param request request object, see @ref search_request for more details.
|
|
194
|
+
* @param options options to customize the query request.
|
|
195
|
+
* @param handler the handler that implements @ref search_handler
|
|
196
|
+
*
|
|
197
|
+
* @exception errc::common::ambiguous_timeout
|
|
198
|
+
* @exception errc::common::unambiguous_timeout
|
|
199
|
+
*
|
|
200
|
+
* @see https://docs.couchbase.com/server/current/fts/fts-introduction.html
|
|
201
|
+
*
|
|
202
|
+
* @since 1.0.0
|
|
203
|
+
* @volatile
|
|
204
|
+
*/
|
|
205
|
+
void search(std::string index_name, search_request request, const search_options& options, search_handler&& handler) const;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Performs a request against the full text search services.
|
|
209
|
+
*
|
|
210
|
+
* This can be used to perform a traditional FTS query, and/or a vector search.
|
|
211
|
+
*
|
|
212
|
+
* @param index_name name of the search index
|
|
213
|
+
* @param request request object, see @ref search_request for more details.
|
|
214
|
+
* @param options options to customize the query request.
|
|
215
|
+
* @return future object that carries result of the operation
|
|
216
|
+
*
|
|
217
|
+
* @exception errc::common::ambiguous_timeout
|
|
218
|
+
* @exception errc::common::unambiguous_timeout
|
|
219
|
+
*
|
|
220
|
+
* @see https://docs.couchbase.com/server/current/fts/fts-introduction.html
|
|
221
|
+
*
|
|
222
|
+
* @since 1.0.0
|
|
223
|
+
* @volatile
|
|
224
|
+
*/
|
|
225
|
+
[[nodiscard]] auto search(std::string index_name, search_request request, const search_options& = {}) const
|
|
226
|
+
-> std::future<std::pair<search_error_context, search_result>>;
|
|
227
|
+
|
|
209
228
|
/**
|
|
210
229
|
* Performs a query against the analytics services.
|
|
211
230
|
*
|
|
@@ -238,6 +257,66 @@ class cluster
|
|
|
238
257
|
[[nodiscard]] auto analytics_query(std::string statement, const analytics_options& options = {}) const
|
|
239
258
|
-> std::future<std::pair<analytics_error_context, analytics_result>>;
|
|
240
259
|
|
|
260
|
+
/**
|
|
261
|
+
* Performs application-level ping requests against services in the Couchbase cluster.
|
|
262
|
+
*
|
|
263
|
+
* @note This operation performs active I/O against services and endpoints to assess their health. If you do not
|
|
264
|
+
* wish to performs I/O, consider using @ref diagnostics() instead.
|
|
265
|
+
*
|
|
266
|
+
* @param options custom options to change the default behavior.
|
|
267
|
+
* @param handler the handler that implements @ref ping_handler.
|
|
268
|
+
*
|
|
269
|
+
* @since 1.0.0
|
|
270
|
+
* @committed
|
|
271
|
+
*/
|
|
272
|
+
void ping(const ping_options& options, ping_handler&& handler) const;
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Performs application-level ping requests against services in the Couchbase cluster.
|
|
276
|
+
*
|
|
277
|
+
* @note This operation performs active I/O against services and endpoints to assess their health. If you do not
|
|
278
|
+
* wish to performs I/O, consider using @ref diagnostics() instead.
|
|
279
|
+
*
|
|
280
|
+
* @param options custom options to change the default behavior.
|
|
281
|
+
* @return future object that carries result of the operation.
|
|
282
|
+
*
|
|
283
|
+
* @since 1.0.0
|
|
284
|
+
* @committed
|
|
285
|
+
*/
|
|
286
|
+
[[nodiscard]] auto ping(const ping_options& options = {}) const -> std::future<ping_result>;
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Assembles a diagnostics report on the current state of the cluster from the SDK's point of view.
|
|
290
|
+
*
|
|
291
|
+
* @note This operation does not perform any I/O to produce the report. It will only use the current known state of
|
|
292
|
+
* the cluster to assemble the report So, if for example, no SQL++ queries have been run, the Query service's socket
|
|
293
|
+
* pool might be empty and as a result not show up in the report. If you wish to actively assess the health of the
|
|
294
|
+
* cluster by performing I/O, consider using @ref ping() instead.
|
|
295
|
+
*
|
|
296
|
+
* @param options custom options to change the default behavior.
|
|
297
|
+
* @param handler the handler that implements @ref diagnostics_handler.
|
|
298
|
+
*
|
|
299
|
+
* @since 1.0.0
|
|
300
|
+
* @committed
|
|
301
|
+
*/
|
|
302
|
+
void diagnostics(const diagnostics_options& options, diagnostics_handler&& handler) const;
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Assembles a diagnostics report on the current state of the cluster from the SDK's point of view.
|
|
306
|
+
*
|
|
307
|
+
* @note This operation does not perform any I/O to produce the report. It will only use the current known state of
|
|
308
|
+
* the cluster to assemble the report So, if for example, no SQL++ queries have been run, the Query service's socket
|
|
309
|
+
* pool might be empty and as a result not show up in the report. If you wish to actively assess the health of the
|
|
310
|
+
* cluster by performing I/O, consider using @ref ping() instead.
|
|
311
|
+
*
|
|
312
|
+
* @param options custom options to change the default behavior.
|
|
313
|
+
* @return future object that carries result of the operation.
|
|
314
|
+
*
|
|
315
|
+
* @since 1.0.0
|
|
316
|
+
* @committed
|
|
317
|
+
*/
|
|
318
|
+
[[nodiscard]] auto diagnostics(const diagnostics_options& options = {}) const -> std::future<diagnostics_result>;
|
|
319
|
+
|
|
241
320
|
/**
|
|
242
321
|
* Provides access to the N1QL index management services.
|
|
243
322
|
*
|
|
@@ -246,52 +325,51 @@ class cluster
|
|
|
246
325
|
* @since 1.0.0
|
|
247
326
|
* @committed
|
|
248
327
|
*/
|
|
249
|
-
[[nodiscard]] auto query_indexes() const -> query_index_manager
|
|
250
|
-
{
|
|
251
|
-
return query_index_manager{ core_ };
|
|
252
|
-
}
|
|
328
|
+
[[nodiscard]] auto query_indexes() const -> query_index_manager;
|
|
253
329
|
|
|
254
330
|
/**
|
|
255
|
-
* Provides access
|
|
331
|
+
* Provides access ot the Analytics index management services.
|
|
256
332
|
*
|
|
257
333
|
* @return a manager instance
|
|
258
334
|
*
|
|
259
335
|
* @since 1.0.0
|
|
260
336
|
* @committed
|
|
261
337
|
*/
|
|
262
|
-
[[nodiscard]] auto
|
|
263
|
-
{
|
|
264
|
-
return bucket_manager{ core_ };
|
|
265
|
-
}
|
|
338
|
+
[[nodiscard]] auto analytics_indexes() const -> analytics_index_manager;
|
|
266
339
|
|
|
267
340
|
/**
|
|
268
|
-
* Provides access to
|
|
269
|
-
*
|
|
270
|
-
* See {@link transactions} for details on using the transactions object.
|
|
341
|
+
* Provides access to the bucket management services.
|
|
271
342
|
*
|
|
272
|
-
* @return
|
|
343
|
+
* @return a manager instance
|
|
273
344
|
*
|
|
274
345
|
* @since 1.0.0
|
|
275
346
|
* @committed
|
|
276
347
|
*/
|
|
348
|
+
[[nodiscard]] auto buckets() const -> bucket_manager;
|
|
277
349
|
|
|
278
|
-
|
|
350
|
+
/**
|
|
351
|
+
* Provides access to search index management services
|
|
352
|
+
*
|
|
353
|
+
* @return a manager instance
|
|
354
|
+
*
|
|
355
|
+
* @since 1.0.0
|
|
356
|
+
* @committed
|
|
357
|
+
*/
|
|
358
|
+
[[nodiscard]] auto search_indexes() const -> search_index_manager;
|
|
279
359
|
|
|
280
360
|
/**
|
|
281
|
-
*
|
|
361
|
+
* Provides access to transaction services.
|
|
282
362
|
*
|
|
283
|
-
*
|
|
363
|
+
* See {@link transactions} for details on using the transactions object.
|
|
284
364
|
*
|
|
285
|
-
* @return
|
|
286
|
-
*
|
|
365
|
+
* @return an {@link transactions} object
|
|
366
|
+
*
|
|
367
|
+
* @since 1.0.0
|
|
368
|
+
* @committed
|
|
287
369
|
*/
|
|
288
|
-
[[nodiscard]] auto
|
|
289
|
-
{
|
|
290
|
-
return core_;
|
|
291
|
-
}
|
|
370
|
+
[[nodiscard]] auto transactions() const -> std::shared_ptr<couchbase::transactions::transactions>;
|
|
292
371
|
|
|
293
372
|
private:
|
|
294
|
-
std::shared_ptr<
|
|
295
|
-
std::shared_ptr<couchbase::core::transactions::transactions> transactions_{};
|
|
373
|
+
std::shared_ptr<cluster_impl> impl_{};
|
|
296
374
|
};
|
|
297
375
|
} // namespace couchbase
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
#include <couchbase/metrics_options.hxx>
|
|
26
26
|
#include <couchbase/network_options.hxx>
|
|
27
27
|
#include <couchbase/password_authenticator.hxx>
|
|
28
|
+
#include <couchbase/retry_strategy.hxx>
|
|
28
29
|
#include <couchbase/security_options.hxx>
|
|
29
30
|
#include <couchbase/timeout_options.hxx>
|
|
30
31
|
#include <couchbase/tracing_options.hxx>
|
|
@@ -312,31 +313,4 @@ class cluster;
|
|
|
312
313
|
* @uncommitted
|
|
313
314
|
*/
|
|
314
315
|
using cluster_connect_handler = std::function<void(cluster, std::error_code)>;
|
|
315
|
-
|
|
316
|
-
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
|
|
317
|
-
namespace core
|
|
318
|
-
{
|
|
319
|
-
class cluster;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
namespace core::impl
|
|
323
|
-
{
|
|
324
|
-
|
|
325
|
-
/**
|
|
326
|
-
* @since 1.0.0
|
|
327
|
-
* @internal
|
|
328
|
-
*/
|
|
329
|
-
void
|
|
330
|
-
initiate_cluster_connect(asio::io_context& io,
|
|
331
|
-
const std::string& connection_string,
|
|
332
|
-
const couchbase::cluster_options& options,
|
|
333
|
-
cluster_connect_handler&& handler);
|
|
334
|
-
/**
|
|
335
|
-
* @since 1.0.0
|
|
336
|
-
* @internal
|
|
337
|
-
*/
|
|
338
|
-
void
|
|
339
|
-
initiate_cluster_close(std::shared_ptr<couchbase::core::cluster> core);
|
|
340
|
-
#endif
|
|
341
|
-
} // namespace core::impl
|
|
342
316
|
} // namespace couchbase
|
|
@@ -40,7 +40,7 @@ class json_transcoder
|
|
|
40
40
|
{
|
|
41
41
|
if (encoded.flags != 0 && !codec_flags::has_common_flags(encoded.flags, codec_flags::json_common_flags)) {
|
|
42
42
|
throw std::system_error(errc::common::decoding_failure,
|
|
43
|
-
"json_transcoder
|
|
43
|
+
"json_transcoder expects document to have JSON common flags, flags=" + std::to_string(encoded.flags));
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
return Serializer::template deserialize<Document>(encoded.data);
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include <couchbase/codec/encoded_value.hxx>
|
|
22
22
|
#include <couchbase/codec/transcoder_traits.hxx>
|
|
23
23
|
#include <couchbase/error_codes.hxx>
|
|
24
|
+
|
|
24
25
|
#include <type_traits>
|
|
25
26
|
|
|
26
27
|
namespace couchbase::codec
|
|
@@ -40,7 +41,7 @@ class raw_binary_transcoder
|
|
|
40
41
|
{
|
|
41
42
|
if (!codec_flags::has_common_flags(encoded.flags, codec_flags::binary_common_flags)) {
|
|
42
43
|
throw std::system_error(errc::common::decoding_failure,
|
|
43
|
-
"raw_binary_transcoder
|
|
44
|
+
"raw_binary_transcoder expects document to have BINARY common flags, flags=" +
|
|
44
45
|
std::to_string(encoded.flags));
|
|
45
46
|
}
|
|
46
47
|
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2024. 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
|
+
#pragma once
|
|
19
|
+
|
|
20
|
+
#include <couchbase/codec/codec_flags.hxx>
|
|
21
|
+
#include <couchbase/codec/encoded_value.hxx>
|
|
22
|
+
#include <couchbase/codec/transcoder_traits.hxx>
|
|
23
|
+
#include <couchbase/error_codes.hxx>
|
|
24
|
+
|
|
25
|
+
#include <cstddef>
|
|
26
|
+
#include <string>
|
|
27
|
+
#include <string_view>
|
|
28
|
+
#include <type_traits>
|
|
29
|
+
#include <vector>
|
|
30
|
+
|
|
31
|
+
namespace couchbase
|
|
32
|
+
{
|
|
33
|
+
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
|
|
34
|
+
namespace core::utils
|
|
35
|
+
{
|
|
36
|
+
std::vector<std::byte>
|
|
37
|
+
to_binary(std::string_view value) noexcept;
|
|
38
|
+
} // namespace core::utils
|
|
39
|
+
#endif
|
|
40
|
+
|
|
41
|
+
namespace codec
|
|
42
|
+
{
|
|
43
|
+
class raw_json_transcoder
|
|
44
|
+
{
|
|
45
|
+
public:
|
|
46
|
+
template<typename Document, std::enable_if_t<std::is_same_v<Document, std::string> || std::is_same_v<Document, binary>, bool> = true>
|
|
47
|
+
static auto encode(const Document& document) -> encoded_value
|
|
48
|
+
{
|
|
49
|
+
if constexpr (std::is_same_v<Document, std::string>) {
|
|
50
|
+
return { core::utils::to_binary(document), codec_flags::json_common_flags };
|
|
51
|
+
} else {
|
|
52
|
+
return { std::move(document), codec_flags::json_common_flags };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
template<typename Document, std::enable_if_t<std::is_same_v<Document, std::string> || std::is_same_v<Document, binary>, bool> = true>
|
|
57
|
+
static auto decode(const encoded_value& encoded) -> Document
|
|
58
|
+
{
|
|
59
|
+
if (!codec_flags::has_common_flags(encoded.flags, codec_flags::json_common_flags)) {
|
|
60
|
+
throw std::system_error(errc::common::decoding_failure,
|
|
61
|
+
"raw_json_transcoder expects document to have JSON common flags, flags=" +
|
|
62
|
+
std::to_string(encoded.flags));
|
|
63
|
+
}
|
|
64
|
+
if constexpr (std::is_same_v<Document, std::string>) {
|
|
65
|
+
return std::string{ reinterpret_cast<const char*>(encoded.data.data()), encoded.data.size() };
|
|
66
|
+
} else {
|
|
67
|
+
return encoded.data;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
|
|
73
|
+
template<>
|
|
74
|
+
struct is_transcoder<raw_json_transcoder> : public std::true_type {
|
|
75
|
+
};
|
|
76
|
+
#endif
|
|
77
|
+
} // namespace codec
|
|
78
|
+
} // namespace couchbase
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2024. 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
|
+
#pragma once
|
|
19
|
+
|
|
20
|
+
#include <couchbase/codec/codec_flags.hxx>
|
|
21
|
+
#include <couchbase/codec/encoded_value.hxx>
|
|
22
|
+
#include <couchbase/codec/transcoder_traits.hxx>
|
|
23
|
+
#include <couchbase/error_codes.hxx>
|
|
24
|
+
|
|
25
|
+
#include <cstddef>
|
|
26
|
+
#include <string>
|
|
27
|
+
#include <string_view>
|
|
28
|
+
#include <type_traits>
|
|
29
|
+
#include <vector>
|
|
30
|
+
|
|
31
|
+
namespace couchbase
|
|
32
|
+
{
|
|
33
|
+
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
|
|
34
|
+
namespace core::utils
|
|
35
|
+
{
|
|
36
|
+
std::vector<std::byte>
|
|
37
|
+
to_binary(std::string_view value) noexcept;
|
|
38
|
+
} // namespace core::utils
|
|
39
|
+
#endif
|
|
40
|
+
|
|
41
|
+
namespace codec
|
|
42
|
+
{
|
|
43
|
+
class raw_string_transcoder
|
|
44
|
+
{
|
|
45
|
+
public:
|
|
46
|
+
using document_type = std::string;
|
|
47
|
+
|
|
48
|
+
static auto encode(document_type document) -> encoded_value
|
|
49
|
+
{
|
|
50
|
+
return { core::utils::to_binary(document), codec_flags::string_common_flags };
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
template<typename Document = document_type, std::enable_if_t<std::is_same_v<Document, document_type>, bool> = true>
|
|
54
|
+
static auto decode(const encoded_value& encoded) -> Document
|
|
55
|
+
{
|
|
56
|
+
if (!codec_flags::has_common_flags(encoded.flags, codec_flags::string_common_flags)) {
|
|
57
|
+
throw std::system_error(errc::common::decoding_failure,
|
|
58
|
+
"raw_string_transcoder expects document to have STRING common flags, flags=" +
|
|
59
|
+
std::to_string(encoded.flags));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return std::string{ reinterpret_cast<const char*>(encoded.data.data()), encoded.data.size() };
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
|
|
67
|
+
template<>
|
|
68
|
+
struct is_transcoder<raw_string_transcoder> : public std::true_type {
|
|
69
|
+
};
|
|
70
|
+
#endif
|
|
71
|
+
} // namespace codec
|
|
72
|
+
} // namespace couchbase
|