couchbase 3.7.0 → 3.8.1
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.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/ext/CMakeLists.txt +4 -1
- data/ext/cache/extconf_include.rb +4 -3
- data/ext/cache/mozilla-ca-bundle.crt +66 -665
- data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
- data/ext/couchbase/CMakeLists.txt +26 -11
- data/ext/couchbase/cmake/APKBUILD.in +17 -1
- data/ext/couchbase/cmake/Bundler.cmake +9 -1
- data/ext/couchbase/cmake/Cache.cmake +48 -19
- data/ext/couchbase/cmake/CompilerOptions.cmake +3 -1
- data/ext/couchbase/cmake/OpenSSL.cmake +10 -2
- data/ext/couchbase/cmake/Packaging.cmake +48 -8
- data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +43 -1
- data/ext/couchbase/cmake/build_config.hxx.in +2 -0
- data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +18 -0
- data/ext/couchbase/cmake/tarball_glob.txt +10 -0
- data/ext/couchbase/core/app_telemetry_meter.cxx +1 -0
- data/ext/couchbase/core/app_telemetry_reporter.cxx +45 -43
- data/ext/couchbase/core/app_telemetry_reporter.hxx +4 -3
- data/ext/couchbase/core/bucket.cxx +128 -13
- data/ext/couchbase/core/bucket.hxx +12 -2
- data/ext/couchbase/core/cluster.cxx +304 -152
- data/ext/couchbase/core/cluster.hxx +32 -0
- data/ext/couchbase/core/cluster_credentials.cxx +25 -0
- data/ext/couchbase/core/cluster_credentials.hxx +5 -0
- data/ext/couchbase/core/cluster_label_listener.cxx +72 -0
- data/ext/couchbase/core/cluster_label_listener.hxx +46 -0
- data/ext/couchbase/core/cluster_options.hxx +4 -0
- data/ext/couchbase/core/deprecation_utils.hxx +26 -0
- data/ext/couchbase/core/error.hxx +27 -0
- data/ext/couchbase/core/error_context/base_error_context.hxx +32 -0
- data/ext/couchbase/core/error_context/key_value.cxx +1 -0
- data/ext/couchbase/core/error_context/key_value.hxx +23 -0
- data/ext/couchbase/core/error_context/key_value_error_context.hxx +35 -0
- data/ext/couchbase/core/error_context/subdocument_error_context.hxx +41 -0
- data/ext/couchbase/core/free_form_http_request.hxx +0 -2
- data/ext/couchbase/core/http_component.cxx +12 -48
- data/ext/couchbase/core/impl/analytics.cxx +3 -2
- data/ext/couchbase/core/impl/analytics.hxx +2 -1
- data/ext/couchbase/core/impl/analytics_index_manager.cxx +249 -137
- data/ext/couchbase/core/impl/binary_collection.cxx +239 -128
- data/ext/couchbase/core/impl/bucket_manager.cxx +87 -35
- data/ext/couchbase/core/impl/collection.cxx +914 -372
- data/ext/couchbase/core/impl/collection_manager.cxx +89 -49
- data/ext/couchbase/core/impl/dns_srv_tracker.cxx +4 -4
- data/ext/couchbase/core/impl/error.cxx +49 -17
- data/ext/couchbase/core/impl/error.hxx +15 -10
- data/ext/couchbase/core/impl/get_all_replicas.hxx +1 -1
- data/ext/couchbase/core/impl/get_any_replica.hxx +2 -1
- data/ext/couchbase/core/impl/get_replica.hxx +2 -0
- data/ext/couchbase/core/impl/invoke_with_node_id.hxx +44 -0
- data/ext/couchbase/core/impl/lookup_in_replica.hxx +1 -1
- data/ext/couchbase/core/impl/node_id.cxx +110 -0
- data/ext/couchbase/core/impl/node_id.hxx +40 -0
- data/ext/couchbase/core/impl/observability_recorder.cxx +161 -0
- data/ext/couchbase/core/impl/observability_recorder.hxx +77 -0
- data/ext/couchbase/core/impl/observe_seqno.hxx +2 -0
- data/ext/couchbase/core/impl/public_bucket.cxx +31 -7
- data/ext/couchbase/core/impl/public_cluster.cxx +107 -19
- data/ext/couchbase/core/impl/query.cxx +6 -3
- data/ext/couchbase/core/impl/query.hxx +3 -1
- data/ext/couchbase/core/impl/query_index_manager.cxx +267 -102
- data/ext/couchbase/core/impl/scope.cxx +53 -11
- data/ext/couchbase/core/impl/search.cxx +8 -4
- data/ext/couchbase/core/impl/search.hxx +6 -2
- data/ext/couchbase/core/impl/search_index_manager.cxx +131 -41
- data/ext/couchbase/core/impl/with_cancellation.hxx +75 -0
- data/ext/couchbase/core/io/config_tracker.cxx +9 -9
- data/ext/couchbase/core/io/config_tracker.hxx +2 -1
- data/ext/couchbase/core/io/http_command.hxx +98 -49
- data/ext/couchbase/core/io/http_context.hxx +2 -0
- data/ext/couchbase/core/io/http_session.cxx +23 -10
- data/ext/couchbase/core/io/http_session.hxx +17 -9
- data/ext/couchbase/core/io/http_session_manager.hxx +245 -270
- data/ext/couchbase/core/io/http_traits.hxx +0 -7
- data/ext/couchbase/core/io/mcbp_command.hxx +123 -44
- data/ext/couchbase/core/io/mcbp_session.cxx +251 -26
- data/ext/couchbase/core/io/mcbp_session.hxx +9 -1
- data/ext/couchbase/core/io/mcbp_traits.hxx +0 -8
- data/ext/couchbase/core/io/streams.cxx +3 -3
- data/ext/couchbase/core/io/streams.hxx +3 -2
- data/ext/couchbase/core/meta/features.hxx +15 -0
- data/ext/couchbase/core/meta/version.cxx +13 -0
- data/ext/couchbase/core/meta/version.hxx +3 -0
- data/ext/couchbase/core/metrics/constants.hxx +23 -0
- data/ext/couchbase/core/metrics/logging_meter.cxx +5 -5
- data/ext/couchbase/core/metrics/meter_wrapper.cxx +65 -63
- data/ext/couchbase/core/metrics/meter_wrapper.hxx +12 -10
- data/ext/couchbase/core/operations/document_analytics.hxx +0 -5
- data/ext/couchbase/core/operations/document_append.hxx +0 -4
- data/ext/couchbase/core/operations/document_decrement.hxx +0 -5
- data/ext/couchbase/core/operations/document_exists.hxx +0 -7
- data/ext/couchbase/core/operations/document_get.hxx +0 -7
- data/ext/couchbase/core/operations/document_get_all_replicas.hxx +89 -29
- data/ext/couchbase/core/operations/document_get_and_lock.hxx +0 -9
- data/ext/couchbase/core/operations/document_get_and_touch.hxx +0 -9
- data/ext/couchbase/core/operations/document_get_any_replica.hxx +83 -2
- data/ext/couchbase/core/operations/document_get_projected.cxx +3 -4
- data/ext/couchbase/core/operations/document_get_projected.hxx +0 -9
- data/ext/couchbase/core/operations/document_increment.hxx +0 -5
- data/ext/couchbase/core/operations/document_insert.hxx +0 -4
- data/ext/couchbase/core/operations/document_lookup_in.hxx +0 -9
- data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +50 -4
- data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +121 -43
- data/ext/couchbase/core/operations/document_mutate_in.hxx +0 -5
- data/ext/couchbase/core/operations/document_prepend.hxx +0 -4
- data/ext/couchbase/core/operations/document_query.cxx +12 -12
- data/ext/couchbase/core/operations/document_query.hxx +0 -4
- data/ext/couchbase/core/operations/document_remove.hxx +0 -4
- data/ext/couchbase/core/operations/document_replace.hxx +0 -4
- data/ext/couchbase/core/operations/document_search.hxx +0 -7
- data/ext/couchbase/core/operations/document_touch.hxx +0 -7
- data/ext/couchbase/core/operations/document_unlock.hxx +0 -6
- data/ext/couchbase/core/operations/document_upsert.hxx +0 -4
- data/ext/couchbase/core/operations/document_view.cxx +2 -0
- data/ext/couchbase/core/operations/document_view.hxx +10 -13
- data/ext/couchbase/core/operations/http_noop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_describe.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_flush.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_update.hxx +2 -0
- data/ext/couchbase/core/operations/management/change_password.hxx +2 -0
- data/ext/couchbase/core/operations/management/cluster_describe.hxx +2 -0
- data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_create.cxx +11 -11
- data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_drop.cxx +11 -11
- data/ext/couchbase/core/operations/management/collection_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_update.cxx +11 -11
- data/ext/couchbase/core/operations/management/collection_update.hxx +2 -0
- data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/error_utils.cxx +13 -7
- data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_status.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/freeform.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_build.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +68 -30
- data/ext/couchbase/core/operations/management/query_index_create.cxx +5 -4
- data/ext/couchbase/core/operations/management/query_index_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_drop.cxx +7 -6
- data/ext/couchbase/core/operations/management/query_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_get_all.hxx +4 -3
- data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +2 -1
- data/ext/couchbase/core/operations/management/role_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_create.cxx +12 -13
- data/ext/couchbase/core/operations/management/scope_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_drop.cxx +8 -9
- data/ext/couchbase/core/operations/management/scope_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_get_stats.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_query.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/operation_traits.hxx +6 -0
- data/ext/couchbase/core/operations.hxx +0 -1
- data/ext/couchbase/core/operations_fwd.hxx +8 -0
- data/ext/couchbase/core/origin.cxx +67 -12
- data/ext/couchbase/core/origin.hxx +13 -8
- data/ext/couchbase/core/orphan_reporter.cxx +164 -0
- data/ext/couchbase/core/orphan_reporter.hxx +65 -0
- data/ext/couchbase/core/sasl/CMakeLists.txt +1 -0
- data/ext/couchbase/core/sasl/client.cc +6 -0
- data/ext/couchbase/core/sasl/mechanism.cc +2 -1
- data/ext/couchbase/core/sasl/mechanism.h +2 -1
- data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.cc +41 -0
- data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.h +47 -0
- data/ext/couchbase/core/tls_context_provider.cxx +44 -0
- data/ext/couchbase/core/tls_context_provider.hxx +44 -0
- data/ext/couchbase/core/topology/configuration.cxx +21 -0
- data/ext/couchbase/core/topology/configuration.hxx +28 -0
- data/ext/couchbase/core/tracing/attribute_helpers.hxx +45 -0
- data/ext/couchbase/core/tracing/constants.hxx +148 -68
- data/ext/couchbase/core/tracing/threshold_logging_options.hxx +0 -3
- data/ext/couchbase/core/tracing/threshold_logging_tracer.cxx +122 -170
- data/ext/couchbase/core/tracing/tracer_wrapper.cxx +17 -24
- data/ext/couchbase/core/tracing/tracer_wrapper.hxx +8 -10
- data/ext/couchbase/core/tracing/wrapper_sdk_tracer.cxx +114 -0
- data/ext/couchbase/core/tracing/wrapper_sdk_tracer.hxx +85 -0
- data/ext/couchbase/core/transactions/attempt_context_impl.cxx +16 -14
- data/ext/couchbase/core/transactions/attempt_context_impl.hxx +4 -4
- data/ext/couchbase/core/transactions/transactions.cxx +1 -1
- data/ext/couchbase/core/transactions/transactions_cleanup.cxx +1 -2
- data/ext/couchbase/core/utils/byteswap.hxx +12 -0
- data/ext/couchbase/core/utils/concurrent_fixed_priority_queue.hxx +102 -0
- data/ext/couchbase/core/utils/connection_string.cxx +2 -0
- data/ext/couchbase/core/utils/contains_string.cxx +61 -0
- data/ext/couchbase/core/utils/contains_string.hxx +26 -0
- data/ext/couchbase/couchbase/certificate_authenticator.hxx +1 -0
- data/ext/couchbase/couchbase/cluster.hxx +47 -0
- data/ext/couchbase/couchbase/cluster_options.hxx +16 -0
- data/ext/couchbase/couchbase/collection.hxx +133 -15
- data/ext/couchbase/couchbase/error.hxx +16 -0
- data/ext/couchbase/couchbase/error_codes.hxx +48 -48
- data/ext/couchbase/couchbase/jwt_authenticator.hxx +52 -0
- data/ext/couchbase/couchbase/metrics/meter.hxx +2 -1
- data/ext/couchbase/couchbase/metrics/otel_meter.hxx +75 -80
- data/ext/couchbase/couchbase/network_options.hxx +19 -0
- data/ext/couchbase/couchbase/node_id.hxx +123 -0
- data/ext/couchbase/couchbase/node_id_for_options.hxx +61 -0
- data/ext/couchbase/couchbase/node_ids_options.hxx +62 -0
- data/ext/couchbase/couchbase/password_authenticator.hxx +1 -0
- data/ext/couchbase/couchbase/result.hxx +42 -0
- data/ext/couchbase/couchbase/tracing/otel_tracer.hxx +15 -17
- data/ext/couchbase/couchbase/tracing/request_span.hxx +2 -2
- data/ext/couchbase.cxx +4 -0
- data/ext/extconf.rb +1 -0
- data/ext/rcb_analytics.cxx +157 -47
- data/ext/rcb_backend.cxx +118 -71
- data/ext/rcb_buckets.cxx +39 -16
- data/ext/rcb_collections.cxx +36 -12
- data/ext/rcb_crud.cxx +589 -294
- data/ext/rcb_hdr_histogram.cxx +219 -0
- data/ext/rcb_hdr_histogram.hxx +28 -0
- data/ext/rcb_logger.cxx +15 -17
- data/ext/rcb_multi.cxx +142 -59
- data/ext/rcb_observability.cxx +132 -0
- data/ext/rcb_observability.hxx +49 -0
- data/ext/rcb_query.cxx +77 -27
- data/ext/rcb_search.cxx +92 -31
- data/ext/rcb_users.cxx +69 -26
- data/ext/rcb_utils.cxx +91 -0
- data/ext/rcb_utils.hxx +141 -168
- data/ext/rcb_views.cxx +36 -12
- data/lib/active_support/cache/couchbase_store.rb +6 -6
- data/lib/couchbase/authenticator.rb +14 -0
- data/lib/couchbase/binary_collection.rb +37 -22
- data/lib/couchbase/bucket.rb +46 -31
- data/lib/couchbase/cluster.rb +146 -61
- data/lib/couchbase/collection.rb +257 -186
- data/lib/couchbase/datastructures/couchbase_list.rb +82 -50
- data/lib/couchbase/datastructures/couchbase_map.rb +87 -50
- data/lib/couchbase/datastructures/couchbase_queue.rb +65 -38
- data/lib/couchbase/datastructures/couchbase_set.rb +58 -41
- data/lib/couchbase/deprecations.rb +1 -1
- data/lib/couchbase/diagnostics.rb +8 -8
- data/lib/couchbase/errors.rb +7 -1
- data/lib/couchbase/json_transcoder.rb +1 -1
- data/lib/couchbase/management/analytics_index_manager.rb +90 -59
- data/lib/couchbase/management/bucket_manager.rb +73 -45
- data/lib/couchbase/management/collection_manager.rb +86 -43
- data/lib/couchbase/management/collection_query_index_manager.rb +56 -33
- data/lib/couchbase/management/query_index_manager.rb +88 -36
- data/lib/couchbase/management/scope_search_index_manager.rb +119 -52
- data/lib/couchbase/management/search_index_manager.rb +401 -178
- data/lib/couchbase/management/user_manager.rb +343 -174
- data/lib/couchbase/management/view_index_manager.rb +166 -73
- data/lib/couchbase/metrics/logging_meter.rb +108 -0
- data/lib/couchbase/metrics/logging_value_recorder.rb +50 -0
- data/lib/couchbase/metrics/meter.rb +27 -0
- data/lib/couchbase/metrics/noop_meter.rb +30 -0
- data/lib/couchbase/metrics/noop_value_recorder.rb +27 -0
- data/lib/couchbase/metrics/value_recorder.rb +25 -0
- data/lib/couchbase/options.rb +71 -5
- data/lib/couchbase/protostellar/client.rb +0 -2
- data/lib/couchbase/protostellar/cluster.rb +7 -0
- data/lib/couchbase/protostellar/generated/admin/analytics/v1/analytics_pb.rb +54 -0
- data/lib/couchbase/protostellar/generated/admin/analytics/v1/analytics_services_pb.rb +51 -0
- data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_pb.rb +5 -24
- data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_services_pb.rb +16 -0
- data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_pb.rb +5 -24
- data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_services_pb.rb +16 -0
- data/lib/couchbase/protostellar/generated/admin/query/v1/query_pb.rb +5 -24
- data/lib/couchbase/protostellar/generated/admin/query/v1/query_services_pb.rb +18 -0
- data/lib/couchbase/protostellar/generated/admin/search/v1/search_pb.rb +2 -23
- data/lib/couchbase/protostellar/generated/admin/search/v1/search_services_pb.rb +23 -0
- data/lib/couchbase/protostellar/generated/analytics/v1/analytics_pb.rb +4 -25
- data/lib/couchbase/protostellar/generated/analytics/v1/analytics_services_pb.rb +10 -0
- data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_pb.rb +6 -25
- data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_services_pb.rb +18 -0
- data/lib/couchbase/protostellar/generated/internal/xdcr/v1/xdcr_pb.rb +46 -0
- data/lib/couchbase/protostellar/generated/internal/xdcr/v1/xdcr_services_pb.rb +56 -0
- data/lib/couchbase/protostellar/generated/kv/v1/kv_pb.rb +3 -26
- data/lib/couchbase/protostellar/generated/kv/v1/kv_services_pb.rb +47 -0
- data/lib/couchbase/protostellar/generated/query/v1/query_pb.rb +4 -26
- data/lib/couchbase/protostellar/generated/query/v1/query_services_pb.rb +10 -0
- data/lib/couchbase/protostellar/generated/routing/v2/routing_pb.rb +26 -0
- data/lib/couchbase/protostellar/generated/routing/v2/routing_services_pb.rb +43 -0
- data/lib/couchbase/protostellar/generated/search/v1/search_pb.rb +5 -26
- data/lib/couchbase/protostellar/generated/search/v1/search_services_pb.rb +11 -0
- data/lib/couchbase/protostellar/generated/transactions/v1/transactions_pb.rb +2 -23
- data/lib/couchbase/protostellar/generated/transactions/v1/transactions_services_pb.rb +30 -0
- data/lib/couchbase/protostellar/generated/view/v1/view_pb.rb +2 -23
- data/lib/couchbase/protostellar/generated/view/v1/view_services_pb.rb +9 -0
- data/lib/couchbase/protostellar/request_generator/admin/collection.rb +4 -2
- data/lib/couchbase/protostellar/request_generator/admin/query.rb +2 -0
- data/lib/couchbase/protostellar/request_generator/kv.rb +1 -1
- data/lib/couchbase/protostellar/scope.rb +4 -0
- data/lib/couchbase/scope.rb +62 -48
- data/lib/couchbase/search_options.rb +18 -18
- data/lib/couchbase/tracing/noop_span.rb +29 -0
- data/lib/couchbase/tracing/noop_tracer.rb +29 -0
- data/lib/couchbase/tracing/request_span.rb +34 -0
- data/lib/couchbase/tracing/request_tracer.rb +28 -0
- data/lib/couchbase/tracing/threshold_logging_span.rb +112 -0
- data/lib/couchbase/tracing/threshold_logging_tracer.rb +231 -0
- data/lib/couchbase/utils/hdr_histogram.rb +55 -0
- data/lib/couchbase/utils/observability.rb +263 -0
- data/lib/couchbase/utils/observability_constants.rb +200 -0
- data/lib/couchbase/utils/stdlib_logger_adapter.rb +1 -3
- data/lib/couchbase/version.rb +1 -1
- data/lib/couchbase.rb +2 -2
- metadata +72 -8
- data/lib/couchbase/protostellar/generated/routing/v1/routing_pb.rb +0 -52
- data/lib/couchbase/protostellar/generated/routing/v1/routing_services_pb.rb +0 -30
|
@@ -35,6 +35,8 @@
|
|
|
35
35
|
#include <couchbase/lookup_in_specs.hxx>
|
|
36
36
|
#include <couchbase/mutate_in_options.hxx>
|
|
37
37
|
#include <couchbase/mutate_in_specs.hxx>
|
|
38
|
+
#include <couchbase/node_id_for_options.hxx>
|
|
39
|
+
#include <couchbase/node_ids_options.hxx>
|
|
38
40
|
#include <couchbase/query_options.hxx>
|
|
39
41
|
#include <couchbase/remove_options.hxx>
|
|
40
42
|
#include <couchbase/replace_options.hxx>
|
|
@@ -463,8 +465,10 @@ public:
|
|
|
463
465
|
const upsert_options& options,
|
|
464
466
|
upsert_handler&& handler) const
|
|
465
467
|
{
|
|
466
|
-
return upsert(
|
|
467
|
-
|
|
468
|
+
return upsert(std::move(document_id),
|
|
469
|
+
create_encode_fn<Transcoder, Document>(std::move(document)),
|
|
470
|
+
options,
|
|
471
|
+
std::move(handler));
|
|
468
472
|
}
|
|
469
473
|
|
|
470
474
|
/**
|
|
@@ -506,11 +510,12 @@ public:
|
|
|
506
510
|
*/
|
|
507
511
|
template<typename Transcoder = codec::default_json_transcoder, typename Document>
|
|
508
512
|
[[nodiscard]] auto upsert(std::string document_id,
|
|
509
|
-
|
|
513
|
+
Document document,
|
|
510
514
|
const upsert_options& options = {}) const
|
|
511
515
|
-> std::future<std::pair<error, mutation_result>>
|
|
512
516
|
{
|
|
513
|
-
return upsert(
|
|
517
|
+
return upsert(
|
|
518
|
+
std::move(document_id), create_encode_fn<Transcoder, Document>(std::move(document)), options);
|
|
514
519
|
}
|
|
515
520
|
|
|
516
521
|
/**
|
|
@@ -559,8 +564,10 @@ public:
|
|
|
559
564
|
const insert_options& options,
|
|
560
565
|
insert_handler&& handler) const
|
|
561
566
|
{
|
|
562
|
-
return insert(
|
|
563
|
-
|
|
567
|
+
return insert(std::move(document_id),
|
|
568
|
+
create_encode_fn<Transcoder, Document>(std::move(document)),
|
|
569
|
+
options,
|
|
570
|
+
std::move(handler));
|
|
564
571
|
}
|
|
565
572
|
|
|
566
573
|
/**
|
|
@@ -605,11 +612,12 @@ public:
|
|
|
605
612
|
typename Document,
|
|
606
613
|
std::enable_if_t<!std::is_same_v<codec::encoded_value, Document>, bool> = true>
|
|
607
614
|
[[nodiscard]] auto insert(std::string document_id,
|
|
608
|
-
|
|
615
|
+
Document document,
|
|
609
616
|
const insert_options& options = {}) const
|
|
610
617
|
-> std::future<std::pair<error, mutation_result>>
|
|
611
618
|
{
|
|
612
|
-
return insert(
|
|
619
|
+
return insert(
|
|
620
|
+
std::move(document_id), create_encode_fn<Transcoder, Document>(std::move(document)), options);
|
|
613
621
|
}
|
|
614
622
|
|
|
615
623
|
/**
|
|
@@ -660,8 +668,10 @@ public:
|
|
|
660
668
|
const replace_options& options,
|
|
661
669
|
replace_handler&& handler) const
|
|
662
670
|
{
|
|
663
|
-
return replace(
|
|
664
|
-
|
|
671
|
+
return replace(std::move(document_id),
|
|
672
|
+
create_encode_fn<Transcoder, Document>(std::move(document)),
|
|
673
|
+
options,
|
|
674
|
+
std::move(handler));
|
|
665
675
|
}
|
|
666
676
|
|
|
667
677
|
/**
|
|
@@ -708,11 +718,12 @@ public:
|
|
|
708
718
|
typename Document,
|
|
709
719
|
std::enable_if_t<!std::is_same_v<codec::encoded_value, Document>, bool> = true>
|
|
710
720
|
[[nodiscard]] auto replace(std::string document_id,
|
|
711
|
-
|
|
721
|
+
Document document,
|
|
712
722
|
const replace_options& options = {}) const
|
|
713
723
|
-> std::future<std::pair<error, mutation_result>>
|
|
714
724
|
{
|
|
715
|
-
return replace(
|
|
725
|
+
return replace(
|
|
726
|
+
std::move(document_id), create_encode_fn<Transcoder, Document>(std::move(document)), options);
|
|
716
727
|
}
|
|
717
728
|
|
|
718
729
|
/**
|
|
@@ -1081,6 +1092,77 @@ public:
|
|
|
1081
1092
|
[[nodiscard]] auto scan(const scan_type& scan_type, const scan_options& options = {}) const
|
|
1082
1093
|
-> std::future<std::pair<error, scan_result>>;
|
|
1083
1094
|
|
|
1095
|
+
/**
|
|
1096
|
+
* Resolves a document key to the identity of the cluster node that currently
|
|
1097
|
+
* owns it, using the client-side vBucket map (no network round-trip).
|
|
1098
|
+
*
|
|
1099
|
+
* @param document_id the document id to resolve
|
|
1100
|
+
* @param options options to customize the request
|
|
1101
|
+
* @param handler the handler that receives the result
|
|
1102
|
+
*
|
|
1103
|
+
* @since 1.3.2
|
|
1104
|
+
* @uncommitted
|
|
1105
|
+
*/
|
|
1106
|
+
void node_id_for(std::string document_id,
|
|
1107
|
+
const node_id_for_options& options,
|
|
1108
|
+
node_id_for_handler&& handler) const;
|
|
1109
|
+
|
|
1110
|
+
/**
|
|
1111
|
+
* Resolves a document key to the identity of the cluster node that currently
|
|
1112
|
+
* owns it, using the client-side vBucket map (no network round-trip).
|
|
1113
|
+
*
|
|
1114
|
+
* @param document_id the document id to resolve
|
|
1115
|
+
* @param options options to customize the request
|
|
1116
|
+
* @return future carrying the error (if any) and node_id
|
|
1117
|
+
*
|
|
1118
|
+
* @since 1.3.2
|
|
1119
|
+
* @uncommitted
|
|
1120
|
+
*/
|
|
1121
|
+
[[nodiscard]] auto node_id_for(std::string document_id,
|
|
1122
|
+
const node_id_for_options& options = {}) const
|
|
1123
|
+
-> std::future<std::pair<error, node_id>>;
|
|
1124
|
+
|
|
1125
|
+
/**
|
|
1126
|
+
* Returns the set of cluster nodes that currently serve key-value
|
|
1127
|
+
* traffic for this collection's bucket, drawn from the client-side
|
|
1128
|
+
* topology snapshot (no network round-trip).
|
|
1129
|
+
*
|
|
1130
|
+
* Each entry corresponds to one cluster node and is the same node_id
|
|
1131
|
+
* the SDK reports on KV results and errors that touched that node, so
|
|
1132
|
+
* the returned set is directly comparable to the keys of any
|
|
1133
|
+
* application-side state that is keyed by node_id (e.g. a per-node
|
|
1134
|
+
* circuit breaker registry). A periodic sweep that diffs the
|
|
1135
|
+
* registry's keys against this set is the canonical way to retire
|
|
1136
|
+
* tracker state for a node that has been removed from the cluster
|
|
1137
|
+
* topology.
|
|
1138
|
+
*
|
|
1139
|
+
* Nodes that do not expose a key-value port for the configured
|
|
1140
|
+
* transport (TLS or plain) are excluded from the returned set, since
|
|
1141
|
+
* they do not serve KV operations and therefore have no meaningful
|
|
1142
|
+
* identity from the SDK's point of view.
|
|
1143
|
+
*
|
|
1144
|
+
* @param options options to customize the request
|
|
1145
|
+
* @param handler the handler that receives the result
|
|
1146
|
+
*
|
|
1147
|
+
* @since 1.3.2
|
|
1148
|
+
* @uncommitted
|
|
1149
|
+
*/
|
|
1150
|
+
void node_ids(const node_ids_options& options, node_ids_handler&& handler) const;
|
|
1151
|
+
|
|
1152
|
+
/**
|
|
1153
|
+
* Returns the set of cluster nodes that currently serve key-value
|
|
1154
|
+
* traffic for this collection's bucket, drawn from the client-side
|
|
1155
|
+
* topology snapshot (no network round-trip).
|
|
1156
|
+
*
|
|
1157
|
+
* @param options options to customize the request
|
|
1158
|
+
* @return future carrying the error (if any) and the set of node_ids
|
|
1159
|
+
*
|
|
1160
|
+
* @since 1.3.2
|
|
1161
|
+
* @uncommitted
|
|
1162
|
+
*/
|
|
1163
|
+
[[nodiscard]] auto node_ids(const node_ids_options& options = {}) const
|
|
1164
|
+
-> std::future<std::pair<error, std::vector<node_id>>>;
|
|
1165
|
+
|
|
1084
1166
|
[[nodiscard]] auto query_indexes() const -> collection_query_index_manager;
|
|
1085
1167
|
|
|
1086
1168
|
private:
|
|
@@ -1090,15 +1172,51 @@ private:
|
|
|
1090
1172
|
[[nodiscard]] auto crypto_manager() const -> const std::shared_ptr<crypto::manager>&;
|
|
1091
1173
|
|
|
1092
1174
|
template<typename Transcoder, typename Document>
|
|
1093
|
-
[[nodiscard]] auto
|
|
1175
|
+
[[nodiscard]] auto create_encode_fn(Document document) const
|
|
1176
|
+
-> std::function<codec::encoded_value()>
|
|
1094
1177
|
{
|
|
1095
1178
|
if constexpr (codec::is_crypto_transcoder_v<Transcoder>) {
|
|
1096
|
-
return
|
|
1179
|
+
return [crypto_manager = crypto_manager(),
|
|
1180
|
+
document = std::move(document)]() -> codec::encoded_value {
|
|
1181
|
+
return Transcoder::encode(document, crypto_manager);
|
|
1182
|
+
};
|
|
1097
1183
|
} else {
|
|
1098
|
-
return
|
|
1184
|
+
return [document = std::move(document)]() -> codec::encoded_value {
|
|
1185
|
+
return Transcoder::encode(document);
|
|
1186
|
+
};
|
|
1099
1187
|
}
|
|
1100
1188
|
}
|
|
1101
1189
|
|
|
1190
|
+
void replace(std::string document_id,
|
|
1191
|
+
std::function<codec::encoded_value()> document_fn,
|
|
1192
|
+
const replace_options& options,
|
|
1193
|
+
replace_handler&& handler) const;
|
|
1194
|
+
|
|
1195
|
+
auto replace(std::string document_id,
|
|
1196
|
+
std::function<codec::encoded_value()> document_fn,
|
|
1197
|
+
const replace_options& options) const
|
|
1198
|
+
-> std::future<std::pair<error, mutation_result>>;
|
|
1199
|
+
|
|
1200
|
+
void upsert(std::string document_id,
|
|
1201
|
+
std::function<codec::encoded_value()> document_fn,
|
|
1202
|
+
const upsert_options& options,
|
|
1203
|
+
upsert_handler&& handler) const;
|
|
1204
|
+
|
|
1205
|
+
auto upsert(std::string document_id,
|
|
1206
|
+
std::function<codec::encoded_value()> document_fn,
|
|
1207
|
+
const upsert_options& options) const
|
|
1208
|
+
-> std::future<std::pair<error, mutation_result>>;
|
|
1209
|
+
|
|
1210
|
+
void insert(std::string document_id,
|
|
1211
|
+
std::function<codec::encoded_value()> document_fn,
|
|
1212
|
+
const insert_options& options,
|
|
1213
|
+
insert_handler&& handler) const;
|
|
1214
|
+
|
|
1215
|
+
auto insert(std::string document_id,
|
|
1216
|
+
std::function<codec::encoded_value()> document_fn,
|
|
1217
|
+
const insert_options& options) const
|
|
1218
|
+
-> std::future<std::pair<error, mutation_result>>;
|
|
1219
|
+
|
|
1102
1220
|
collection(core::cluster core,
|
|
1103
1221
|
std::string_view bucket_name,
|
|
1104
1222
|
std::string_view scope_name,
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
#pragma once
|
|
19
19
|
|
|
20
20
|
#include <couchbase/error_context.hxx>
|
|
21
|
+
#include <couchbase/node_id.hxx>
|
|
21
22
|
|
|
22
23
|
#include <memory>
|
|
23
24
|
#include <optional>
|
|
@@ -32,12 +33,26 @@ public:
|
|
|
32
33
|
error() = default;
|
|
33
34
|
error(std::error_code ec, std::string message = {}, error_context ctx = {});
|
|
34
35
|
error(std::error_code ec, std::string message, error_context ctx, error cause);
|
|
36
|
+
error(std::error_code ec, std::string message, error_context ctx, couchbase::node_id node_id);
|
|
35
37
|
|
|
36
38
|
[[nodiscard]] auto ec() const -> std::error_code;
|
|
37
39
|
[[nodiscard]] auto message() const -> const std::string&;
|
|
38
40
|
[[nodiscard]] auto ctx() const -> const error_context&;
|
|
39
41
|
[[nodiscard]] auto cause() const -> std::optional<error>;
|
|
40
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Returns the identity of the cluster node where the error occurred.
|
|
45
|
+
*
|
|
46
|
+
* The returned node_id is default-constructed (falsy) when the node
|
|
47
|
+
* could not be determined (e.g. for non-KV errors).
|
|
48
|
+
*
|
|
49
|
+
* @return identity of the node that returned the error
|
|
50
|
+
*
|
|
51
|
+
* @since 1.3.2
|
|
52
|
+
* @uncommitted
|
|
53
|
+
*/
|
|
54
|
+
[[nodiscard]] auto node_id() const -> const couchbase::node_id&;
|
|
55
|
+
|
|
41
56
|
explicit operator bool() const;
|
|
42
57
|
auto operator==(const error& other) const -> bool;
|
|
43
58
|
|
|
@@ -46,6 +61,7 @@ private:
|
|
|
46
61
|
std::string message_{};
|
|
47
62
|
error_context ctx_{};
|
|
48
63
|
std::shared_ptr<error> cause_{};
|
|
64
|
+
couchbase::node_id node_id_{};
|
|
49
65
|
};
|
|
50
66
|
|
|
51
67
|
} // namespace couchbase
|
|
@@ -24,41 +24,41 @@ namespace couchbase
|
|
|
24
24
|
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
|
|
25
25
|
namespace core::impl
|
|
26
26
|
{
|
|
27
|
-
|
|
28
|
-
common_category() noexcept
|
|
27
|
+
auto
|
|
28
|
+
common_category() noexcept -> const std::error_category&;
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
key_value_category() noexcept
|
|
30
|
+
auto
|
|
31
|
+
key_value_category() noexcept -> const std::error_category&;
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
query_category() noexcept
|
|
33
|
+
auto
|
|
34
|
+
query_category() noexcept -> const std::error_category&;
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
analytics_category() noexcept
|
|
36
|
+
auto
|
|
37
|
+
analytics_category() noexcept -> const std::error_category&;
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
search_category() noexcept
|
|
39
|
+
auto
|
|
40
|
+
search_category() noexcept -> const std::error_category&;
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
view_category() noexcept
|
|
42
|
+
auto
|
|
43
|
+
view_category() noexcept -> const std::error_category&;
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
management_category() noexcept
|
|
45
|
+
auto
|
|
46
|
+
management_category() noexcept -> const std::error_category&;
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
field_level_encryption_category() noexcept
|
|
48
|
+
auto
|
|
49
|
+
field_level_encryption_category() noexcept -> const std::error_category&;
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
network_category() noexcept
|
|
51
|
+
auto
|
|
52
|
+
network_category() noexcept -> const std::error_category&;
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
streaming_json_lexer_category() noexcept
|
|
54
|
+
auto
|
|
55
|
+
streaming_json_lexer_category() noexcept -> const std::error_category&;
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
transaction_category() noexcept
|
|
57
|
+
auto
|
|
58
|
+
transaction_category() noexcept -> const std::error_category&;
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
transaction_op_category() noexcept
|
|
60
|
+
auto
|
|
61
|
+
transaction_op_category() noexcept -> const std::error_category&;
|
|
62
62
|
|
|
63
63
|
} // namespace core::impl
|
|
64
64
|
#endif
|
|
@@ -1151,74 +1151,74 @@ enum class transaction_op {
|
|
|
1151
1151
|
};
|
|
1152
1152
|
|
|
1153
1153
|
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
|
|
1154
|
-
inline
|
|
1155
|
-
make_error_code(common e) noexcept
|
|
1154
|
+
inline auto
|
|
1155
|
+
make_error_code(common e) noexcept -> std::error_code
|
|
1156
1156
|
{
|
|
1157
1157
|
return { static_cast<int>(e), core::impl::common_category() };
|
|
1158
1158
|
}
|
|
1159
1159
|
|
|
1160
|
-
inline
|
|
1161
|
-
make_error_code(key_value e)
|
|
1160
|
+
inline auto
|
|
1161
|
+
make_error_code(key_value e) -> std::error_code
|
|
1162
1162
|
{
|
|
1163
1163
|
return { static_cast<int>(e), core::impl::key_value_category() };
|
|
1164
1164
|
}
|
|
1165
1165
|
|
|
1166
|
-
inline
|
|
1167
|
-
make_error_code(query e)
|
|
1166
|
+
inline auto
|
|
1167
|
+
make_error_code(query e) -> std::error_code
|
|
1168
1168
|
{
|
|
1169
1169
|
return { static_cast<int>(e), core::impl::query_category() };
|
|
1170
1170
|
}
|
|
1171
1171
|
|
|
1172
|
-
inline
|
|
1173
|
-
make_error_code(search e)
|
|
1172
|
+
inline auto
|
|
1173
|
+
make_error_code(search e) -> std::error_code
|
|
1174
1174
|
{
|
|
1175
1175
|
return { static_cast<int>(e), core::impl::search_category() };
|
|
1176
1176
|
}
|
|
1177
1177
|
|
|
1178
|
-
inline
|
|
1179
|
-
make_error_code(view e)
|
|
1178
|
+
inline auto
|
|
1179
|
+
make_error_code(view e) -> std::error_code
|
|
1180
1180
|
{
|
|
1181
1181
|
return { static_cast<int>(e), core::impl::view_category() };
|
|
1182
1182
|
}
|
|
1183
1183
|
|
|
1184
|
-
inline
|
|
1185
|
-
make_error_code(analytics e)
|
|
1184
|
+
inline auto
|
|
1185
|
+
make_error_code(analytics e) -> std::error_code
|
|
1186
1186
|
{
|
|
1187
1187
|
return { static_cast<int>(e), core::impl::analytics_category() };
|
|
1188
1188
|
}
|
|
1189
1189
|
|
|
1190
|
-
inline
|
|
1191
|
-
make_error_code(management e)
|
|
1190
|
+
inline auto
|
|
1191
|
+
make_error_code(management e) -> std::error_code
|
|
1192
1192
|
{
|
|
1193
1193
|
return { static_cast<int>(e), core::impl::management_category() };
|
|
1194
1194
|
}
|
|
1195
1195
|
|
|
1196
|
-
inline
|
|
1197
|
-
make_error_code(network e)
|
|
1196
|
+
inline auto
|
|
1197
|
+
make_error_code(network e) -> std::error_code
|
|
1198
1198
|
{
|
|
1199
1199
|
return { static_cast<int>(e), core::impl::network_category() };
|
|
1200
1200
|
}
|
|
1201
1201
|
|
|
1202
|
-
inline
|
|
1203
|
-
make_error_code(field_level_encryption e)
|
|
1202
|
+
inline auto
|
|
1203
|
+
make_error_code(field_level_encryption e) -> std::error_code
|
|
1204
1204
|
{
|
|
1205
1205
|
return { static_cast<int>(e), core::impl::field_level_encryption_category() };
|
|
1206
1206
|
}
|
|
1207
1207
|
|
|
1208
|
-
inline
|
|
1209
|
-
make_error_code(streaming_json_lexer e)
|
|
1208
|
+
inline auto
|
|
1209
|
+
make_error_code(streaming_json_lexer e) -> std::error_code
|
|
1210
1210
|
{
|
|
1211
1211
|
return { static_cast<int>(e), core::impl::streaming_json_lexer_category() };
|
|
1212
1212
|
}
|
|
1213
1213
|
|
|
1214
|
-
inline
|
|
1215
|
-
make_error_code(transaction e)
|
|
1214
|
+
inline auto
|
|
1215
|
+
make_error_code(transaction e) -> std::error_code
|
|
1216
1216
|
{
|
|
1217
1217
|
return { static_cast<int>(e), core::impl::transaction_category() };
|
|
1218
1218
|
}
|
|
1219
1219
|
|
|
1220
|
-
inline
|
|
1221
|
-
make_error_code(transaction_op e)
|
|
1220
|
+
inline auto
|
|
1221
|
+
make_error_code(transaction_op e) -> std::error_code
|
|
1222
1222
|
{
|
|
1223
1223
|
return { static_cast<int>(e), core::impl::transaction_op_category() };
|
|
1224
1224
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2020-Present Couchbase, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#pragma once
|
|
19
|
+
|
|
20
|
+
#include <string>
|
|
21
|
+
|
|
22
|
+
namespace couchbase
|
|
23
|
+
{
|
|
24
|
+
/**
|
|
25
|
+
* A JWT authenticator which uses a JSON Web Token (JWT) to authenticate with the cluster.
|
|
26
|
+
*
|
|
27
|
+
* @since 1.3.0
|
|
28
|
+
* @uncommitted
|
|
29
|
+
*/
|
|
30
|
+
class jwt_authenticator
|
|
31
|
+
{
|
|
32
|
+
public:
|
|
33
|
+
/**
|
|
34
|
+
* Creates a JWT authenticator with the provided token.
|
|
35
|
+
*
|
|
36
|
+
* @param token the JWT
|
|
37
|
+
*
|
|
38
|
+
* @since 1.3.0
|
|
39
|
+
* @uncommitted
|
|
40
|
+
*/
|
|
41
|
+
explicit jwt_authenticator(std::string token)
|
|
42
|
+
: token_{ std::move(token) }
|
|
43
|
+
{
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
private:
|
|
47
|
+
std::string token_;
|
|
48
|
+
|
|
49
|
+
friend class cluster_options;
|
|
50
|
+
friend class cluster;
|
|
51
|
+
};
|
|
52
|
+
} // namespace couchbase
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
#pragma once
|
|
19
19
|
|
|
20
|
+
#include <cstdint>
|
|
20
21
|
#include <map>
|
|
21
22
|
#include <memory>
|
|
22
23
|
#include <string>
|
|
@@ -33,7 +34,7 @@ public:
|
|
|
33
34
|
auto operator=(value_recorder&& other) -> value_recorder& = default;
|
|
34
35
|
virtual ~value_recorder() = default;
|
|
35
36
|
|
|
36
|
-
virtual void record_value(int64_t value) = 0;
|
|
37
|
+
virtual void record_value(std::int64_t value) = 0;
|
|
37
38
|
};
|
|
38
39
|
|
|
39
40
|
class meter
|