couchbase 4.4.2 → 4.4.3
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 +2 -0
- package/deps/couchbase-cxx-client/CMakeLists.txt +17 -14
- package/deps/couchbase-cxx-client/README.md +2 -2
- package/deps/couchbase-cxx-client/cmake/Packaging.cmake +4 -0
- package/deps/couchbase-cxx-client/cmake/Testing.cmake +1 -1
- package/deps/couchbase-cxx-client/cmake/VersionInfo.cmake +24 -2
- package/deps/couchbase-cxx-client/cmake/couchbase-cxx-client.spec.in +43 -4
- package/deps/couchbase-cxx-client/core/agent_group.cxx +8 -0
- package/deps/couchbase-cxx-client/core/agent_group.hxx +4 -0
- package/deps/couchbase-cxx-client/core/bucket.cxx +16 -20
- package/deps/couchbase-cxx-client/core/bucket.hxx +12 -12
- package/deps/couchbase-cxx-client/core/cluster.cxx +44 -52
- package/deps/couchbase-cxx-client/core/cluster_agent.cxx +8 -0
- package/deps/couchbase-cxx-client/core/cluster_agent.hxx +4 -0
- package/deps/couchbase-cxx-client/core/collections_component.cxx +2 -2
- package/deps/couchbase-cxx-client/core/columnar/agent.cxx +2 -2
- package/deps/couchbase-cxx-client/core/columnar/agent.hxx +1 -1
- package/deps/couchbase-cxx-client/core/columnar/management_component.cxx +3 -3
- package/deps/couchbase-cxx-client/core/columnar/query_component.cxx +103 -45
- package/deps/couchbase-cxx-client/core/columnar/query_component.hxx +1 -0
- package/deps/couchbase-cxx-client/core/free_form_http_request.hxx +8 -0
- package/deps/couchbase-cxx-client/core/http_component.cxx +55 -24
- package/deps/couchbase-cxx-client/core/http_component.hxx +4 -0
- package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +15 -15
- package/deps/couchbase-cxx-client/core/impl/bootstrap_error.hxx +10 -2
- package/deps/couchbase-cxx-client/core/impl/bucket.cxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +6 -6
- package/deps/couchbase-cxx-client/core/impl/cluster.cxx +36 -40
- package/deps/couchbase-cxx-client/core/impl/collection.cxx +2 -2
- package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +5 -5
- package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +13 -5
- package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -3
- package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +6 -6
- package/deps/couchbase-cxx-client/core/impl/scan_result.cxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +12 -12
- package/deps/couchbase-cxx-client/core/io/http_command.hxx +31 -20
- package/deps/couchbase-cxx-client/core/io/http_session.cxx +5 -0
- package/deps/couchbase-cxx-client/core/io/http_session.hxx +17 -4
- package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +97 -49
- package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +15 -14
- package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +48 -33
- package/deps/couchbase-cxx-client/core/io/streams.cxx +256 -0
- package/deps/couchbase-cxx-client/core/io/streams.hxx +31 -155
- package/deps/couchbase-cxx-client/core/logger/configuration.hxx +5 -0
- package/deps/couchbase-cxx-client/core/logger/custom_rotating_file_sink.cxx +2 -3
- package/deps/couchbase-cxx-client/core/logger/logger.cxx +39 -7
- package/deps/couchbase-cxx-client/core/logger/logger.hxx +7 -0
- package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.cxx +188 -0
- package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.hxx +73 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_update.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +5 -2
- package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +4 -2
- package/deps/couchbase-cxx-client/core/operations/management/group_upsert.cxx +3 -3
- package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -1
- package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +4 -1
- package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +5 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +5 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +4 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +5 -2
- package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -1
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -1
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -1
- package/deps/couchbase-cxx-client/core/origin.cxx +37 -17
- package/deps/couchbase-cxx-client/core/platform/base64.cc +1 -1
- package/deps/couchbase-cxx-client/core/platform/random.cc +2 -0
- package/deps/couchbase-cxx-client/core/platform/uuid.h +6 -6
- package/deps/couchbase-cxx-client/core/row_streamer.cxx +1 -1
- package/deps/couchbase-cxx-client/core/sasl/scram-sha/stringutils.cc +1 -1
- package/deps/couchbase-cxx-client/core/sasl/scram-sha/stringutils.h +4 -4
- package/deps/couchbase-cxx-client/core/topology/configuration.hxx +2 -0
- package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +8 -0
- package/deps/couchbase-cxx-client/core/tracing/constants.hxx +3 -0
- package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.cxx +87 -0
- package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.hxx +57 -0
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +16 -15
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +2 -2
- package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +2 -2
- package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +2 -2
- package/deps/couchbase-cxx-client/core/utils/connection_string.cxx +128 -52
- package/deps/couchbase-cxx-client/couchbase/analytics_options.hxx +4 -3
- package/deps/couchbase-cxx-client/couchbase/codec/tao_json_serializer.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/mutate_in_specs.hxx +2 -2
- package/deps/couchbase-cxx-client/couchbase/query_options.hxx +4 -3
- package/deps/couchbase-cxx-client/couchbase/search_options.hxx +1 -1
- package/package.json +8 -8
- package/src/binding.cpp +13 -13
package/CMakeLists.txt
CHANGED
|
@@ -194,6 +194,7 @@ set(COUCHBASE_CXX_SOURCE_DIR "${PROJECT_SOURCE_DIR}/deps/couchbase-cxx-client")
|
|
|
194
194
|
if(CMAKE_JS_VERSION VERSION_GREATER_EQUAL "7.0.0")
|
|
195
195
|
target_include_directories(${PROJECT_NAME}
|
|
196
196
|
PRIVATE ${NODEJS_INC_DIR}
|
|
197
|
+
"${COUCHBASE_CXX_BINARY_DIR}/generated"
|
|
197
198
|
"${COUCHBASE_CXX_SOURCE_DIR}"
|
|
198
199
|
"${COUCHBASE_CXX_SOURCE_DIR}/third_party/cxx_function"
|
|
199
200
|
"${COUCHBASE_CXX_SOURCE_DIR}/third_party/expected/include")
|
|
@@ -208,6 +209,7 @@ else()
|
|
|
208
209
|
target_include_directories(${PROJECT_NAME}
|
|
209
210
|
PRIVATE ${NODEJS_INC_DIR}
|
|
210
211
|
${NODE_ADDON_API_DIR}
|
|
212
|
+
"${COUCHBASE_CXX_BINARY_DIR}/generated"
|
|
211
213
|
"${COUCHBASE_CXX_SOURCE_DIR}"
|
|
212
214
|
"${COUCHBASE_CXX_SOURCE_DIR}/third_party/cxx_function"
|
|
213
215
|
"${COUCHBASE_CXX_SOURCE_DIR}/third_party/expected/include")
|
|
@@ -21,7 +21,7 @@ endif()
|
|
|
21
21
|
|
|
22
22
|
project(
|
|
23
23
|
couchbase_cxx_client
|
|
24
|
-
VERSION "1.0.
|
|
24
|
+
VERSION "1.0.3"
|
|
25
25
|
LANGUAGES CXX C)
|
|
26
26
|
message(STATUS "Couchbase C++ client ${couchbase_cxx_client_VERSION} build ${couchbase_cxx_client_BUILD_NUMBER}, master: ${COUCHBASE_CXX_CLIENT_MASTER_PROJECT}")
|
|
27
27
|
message(STATUS "System: ${CMAKE_SYSTEM_NAME}, ${CMAKE_SYSTEM_VERSION}, ${CMAKE_SYSTEM_PROCESSOR}")
|
|
@@ -76,19 +76,6 @@ include(cmake/OpenSSL.cmake)
|
|
|
76
76
|
|
|
77
77
|
include(cmake/VersionInfo.cmake)
|
|
78
78
|
|
|
79
|
-
include(cmake/DetectStandardFilesystem.cmake)
|
|
80
|
-
couchbase_cxx_check_filesystem(
|
|
81
|
-
couchbase_cxx_client
|
|
82
|
-
"filesystem"
|
|
83
|
-
"std::filesystem"
|
|
84
|
-
"stdc++fs;c++fs"
|
|
85
|
-
STD_FILESYSTEM)
|
|
86
|
-
if(STD_FILESYSTEM)
|
|
87
|
-
message(STATUS "Using std::filesystem")
|
|
88
|
-
else()
|
|
89
|
-
message(FATAL_ERROR "Couchbase C++ Client requires C++17, including an implementation of std::filesystem.")
|
|
90
|
-
endif()
|
|
91
|
-
|
|
92
79
|
add_subdirectory(core/platform)
|
|
93
80
|
set(couchbase_cxx_client_FILES
|
|
94
81
|
${CMAKE_CURRENT_BINARY_DIR}/generated/mozilla_ca_bundle.cxx
|
|
@@ -242,6 +229,7 @@ set(couchbase_cxx_client_FILES
|
|
|
242
229
|
core/io/mcbp_message.cxx
|
|
243
230
|
core/io/mcbp_parser.cxx
|
|
244
231
|
core/io/mcbp_session.cxx
|
|
232
|
+
core/io/streams.cxx
|
|
245
233
|
core/key_value_config.cxx
|
|
246
234
|
core/logger/custom_rotating_file_sink.cxx
|
|
247
235
|
core/logger/logger.cxx
|
|
@@ -260,6 +248,7 @@ set(couchbase_cxx_client_FILES
|
|
|
260
248
|
core/mcbp/server_duration.cxx
|
|
261
249
|
core/meta/version.cxx
|
|
262
250
|
core/metrics/logging_meter.cxx
|
|
251
|
+
core/metrics/meter_wrapper.cxx
|
|
263
252
|
core/n1ql_query_options.cxx
|
|
264
253
|
core/operations/document_analytics.cxx
|
|
265
254
|
core/operations/document_append.cxx
|
|
@@ -412,6 +401,7 @@ set(couchbase_cxx_client_FILES
|
|
|
412
401
|
core/seed_config.cxx
|
|
413
402
|
core/topology/configuration.cxx
|
|
414
403
|
core/tracing/threshold_logging_tracer.cxx
|
|
404
|
+
core/tracing/tracer_wrapper.cxx
|
|
415
405
|
core/transactions/active_transaction_record.cxx
|
|
416
406
|
core/transactions/async_attempt_context.cxx
|
|
417
407
|
core/transactions/atr_cleanup_entry.cxx
|
|
@@ -492,6 +482,19 @@ if(WIN32 OR NOT COUCHBASE_CXX_CLIENT_BUILD_SHARED)
|
|
|
492
482
|
endif()
|
|
493
483
|
|
|
494
484
|
foreach(TARGET ${couchbase_cxx_client_LIBRARIES})
|
|
485
|
+
include(cmake/DetectStandardFilesystem.cmake)
|
|
486
|
+
couchbase_cxx_check_filesystem(
|
|
487
|
+
${TARGET}
|
|
488
|
+
"filesystem"
|
|
489
|
+
"std::filesystem"
|
|
490
|
+
"stdc++fs;c++fs"
|
|
491
|
+
STD_FILESYSTEM)
|
|
492
|
+
if(STD_FILESYSTEM)
|
|
493
|
+
message(STATUS "Using std::filesystem")
|
|
494
|
+
else()
|
|
495
|
+
message(FATAL_ERROR "Couchbase C++ Client requires C++17, including an implementation of std::filesystem.")
|
|
496
|
+
endif()
|
|
497
|
+
|
|
495
498
|
set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
|
496
499
|
|
|
497
500
|
target_include_directories(
|
|
@@ -62,6 +62,7 @@ set(CPM_USE_LOCAL_PACKAGES OFF CACHE BOOL \"\" FORCE)
|
|
|
62
62
|
set(CPM_SOURCE_CACHE \"\${PROJECT_SOURCE_DIR}/third_party_cache\" CACHE STRING \"\" FORCE)
|
|
63
63
|
set(COUCHBASE_CXX_CLIENT_GIT_REVISION \"${COUCHBASE_CXX_CLIENT_GIT_REVISION}\")
|
|
64
64
|
set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE \"${COUCHBASE_CXX_CLIENT_GIT_DESCRIBE}\")
|
|
65
|
+
set(COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP \"${COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP}\")
|
|
65
66
|
set(COUCHBASE_CXX_CLIENT_EMBED_MOZILLA_CA_BUNDLE_ROOT \"\${PROJECT_SOURCE_DIR}/third_party_cache\" CACHE STRING \"\" FORCE)
|
|
66
67
|
message(STATUS \"Building from Tarball: ${COUCHBASE_CXX_CLIENT_TARBALL_NAME}.tar.gz\")
|
|
67
68
|
")
|
|
@@ -132,8 +133,11 @@ if(COUCHBASE_CXX_CLIENT_RPM_TARGETS)
|
|
|
132
133
|
add_custom_target(packaging_srpm DEPENDS ${COUCHBASE_CXX_CLIENT_SRPM})
|
|
133
134
|
|
|
134
135
|
list(APPEND COUCHBASE_CXX_CLIENT_SUPPORTED_ROOTS
|
|
136
|
+
"opensuse-leap-15.5-${CMAKE_SYSTEM_PROCESSOR}"
|
|
135
137
|
"rocky-9-${CMAKE_SYSTEM_PROCESSOR}"
|
|
138
|
+
"rocky-8-${CMAKE_SYSTEM_PROCESSOR}"
|
|
136
139
|
"amazonlinux-2023-${CMAKE_SYSTEM_PROCESSOR}"
|
|
140
|
+
"fedora-40-${CMAKE_SYSTEM_PROCESSOR}"
|
|
137
141
|
)
|
|
138
142
|
|
|
139
143
|
message(STATUS "Supported build roots for RPM packages: ${COUCHBASE_CXX_CLIENT_SUPPORTED_ROOTS}")
|
|
@@ -15,7 +15,7 @@ if(COUCHBASE_CXX_CLIENT_ENABLE_VALGRIND)
|
|
|
15
15
|
if(VALGRIND)
|
|
16
16
|
set(VALGRIND_COMMAND "${VALGRIND}")
|
|
17
17
|
set(VALGRIND_COMMAND_OPTIONS
|
|
18
|
-
"-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe"
|
|
18
|
+
"-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe --suppressions=${PROJECT_SOURCE_DIR}/.valgrind_suppressions.txt"
|
|
19
19
|
)
|
|
20
20
|
set(MEMORYCHECK_COMMAND "${VALGRIND}")
|
|
21
21
|
set(MEMORYCHECK_COMMAND_OPTIONS "${VALGRIND_COMMAND_OPTIONS}")
|
|
@@ -24,8 +24,30 @@ if(NOT COUCHBASE_CXX_CLIENT_GIT_DESCRIBE)
|
|
|
24
24
|
endif()
|
|
25
25
|
endif()
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
if(NOT COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP)
|
|
28
|
+
if(GIT)
|
|
29
|
+
execute_process(
|
|
30
|
+
COMMAND git describe --tags --abbrev=0 HEAD
|
|
31
|
+
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
32
|
+
RESULT_VARIABLE tag_result
|
|
33
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
34
|
+
OUTPUT_VARIABLE last_tag)
|
|
35
|
+
|
|
36
|
+
if (tag_result EQUAL 0)
|
|
37
|
+
execute_process(
|
|
38
|
+
COMMAND git log --max-count=1 --no-patch --format=%cd --date=format:%Y-%m-%dT%H:%M:%S ${last_tag}
|
|
39
|
+
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
40
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
41
|
+
OUTPUT_VARIABLE COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP)
|
|
42
|
+
endif()
|
|
43
|
+
endif()
|
|
44
|
+
|
|
45
|
+
if (NOT COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP)
|
|
46
|
+
string(TIMESTAMP COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP "%Y-%m-%dT%H:%M:%S" UTC)
|
|
47
|
+
endif()
|
|
48
|
+
endif()
|
|
49
|
+
|
|
50
|
+
string(REGEX REPLACE "T.*" "" COUCHBASE_CXX_CLIENT_BUILD_DATE "${COUCHBASE_CXX_CLIENT_BUILD_TIMESTAMP}")
|
|
29
51
|
|
|
30
52
|
# set(couchbase_cxx_client_BUILD_NUMBER 142)
|
|
31
53
|
# set(COUCHBASE_CXX_CLIENT_GIT_DESCRIBE "1.0.0-beta.4-27-g6807da0") #-> "couchbase_cxx_client-1.0.0-beta.4+142.27.6807da0"
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
%if 0%{?suse_version}
|
|
2
|
+
%global license_dir %{_datadir}/doc
|
|
3
|
+
%else
|
|
4
|
+
%global license_dir %{_docdir}
|
|
5
|
+
%endif
|
|
6
|
+
|
|
1
7
|
Name: couchbase-cxx-client
|
|
2
8
|
Summary: Couchbase C++ SDK
|
|
3
9
|
Version: @COUCHBASE_CXX_CLIENT_PACKAGE_VERSION@
|
|
@@ -6,10 +12,20 @@ Vendor: Couchbase, Inc.
|
|
|
6
12
|
Packager: Couchbase SDK Team <support@couchbase.com>
|
|
7
13
|
License: ASL 2.0
|
|
8
14
|
URL: https://docs.couchbase.com/cxx-sdk/current/hello-world/overview.html
|
|
15
|
+
%if 0%{?suse_version} == 1500
|
|
16
|
+
BuildRequires: gcc13, gcc13-c++
|
|
17
|
+
%else
|
|
9
18
|
BuildRequires: gcc, gcc-c++
|
|
19
|
+
%endif
|
|
10
20
|
BuildRequires: cmake >= 3.19
|
|
11
21
|
Source0: @COUCHBASE_CXX_CLIENT_TARBALL_NAME@.tar.gz
|
|
12
22
|
|
|
23
|
+
%if 0%{?amzn}
|
|
24
|
+
# The additional linker flags break AmazonLinux
|
|
25
|
+
# https://bugzilla.redhat.com/show_bug.cgi?id=2043092
|
|
26
|
+
%undefine _package_note_flags
|
|
27
|
+
%endif
|
|
28
|
+
|
|
13
29
|
%description
|
|
14
30
|
This is the client and protocol library for Couchbase project.
|
|
15
31
|
|
|
@@ -28,6 +44,13 @@ Development files for the Couchbase C++ SDK.
|
|
|
28
44
|
%prep
|
|
29
45
|
%autosetup -p1 -n@COUCHBASE_CXX_CLIENT_TARBALL_NAME@
|
|
30
46
|
%cmake \
|
|
47
|
+
%if 0%{?rhel} == 8 || 0%{?rocky} == 8 || 0%{?ol} == 8
|
|
48
|
+
-S "." -B "redhat-linux-build" \
|
|
49
|
+
%endif
|
|
50
|
+
%if 0%{?suse_version} == 1500
|
|
51
|
+
-DCMAKE_C_COMPILER=gcc-13 \
|
|
52
|
+
-DCMAKE_CXX_COMPILER=g++-13 \
|
|
53
|
+
%endif
|
|
31
54
|
-DBUILD_SHARED_LIBS=OFF \
|
|
32
55
|
-DCOUCHBASE_CXX_CLIENT_INSTALL=ON \
|
|
33
56
|
-DCOUCHBASE_CXX_CLIENT_STATIC_BORINGSSL=ON \
|
|
@@ -38,15 +61,32 @@ Development files for the Couchbase C++ SDK.
|
|
|
38
61
|
-DCOUCHBASE_CXX_CLIENT_BUILD_SHARED=ON
|
|
39
62
|
|
|
40
63
|
%build
|
|
64
|
+
%if 0%{?rhel} == 8 || 0%{?rocky} == 8 || 0%{?ol} == 8
|
|
65
|
+
/usr/bin/cmake --build "redhat-linux-build" -j${RPM_BUILD_NCPUS} --verbose
|
|
66
|
+
%else
|
|
67
|
+
%if 0%{?suse_version} == 1500
|
|
68
|
+
cd build
|
|
69
|
+
%endif
|
|
41
70
|
%cmake_build
|
|
71
|
+
%endif
|
|
42
72
|
|
|
43
73
|
%install
|
|
74
|
+
%if 0%{?rhel} == 8 || 0%{?rocky} == 8 || 0%{?ol} == 8
|
|
75
|
+
DESTDIR="%{buildroot}" /usr/bin/cmake --install "redhat-linux-build"
|
|
76
|
+
%else
|
|
44
77
|
%cmake_install
|
|
78
|
+
%endif
|
|
79
|
+
%if 0%{?suse_version} == 1500
|
|
80
|
+
%{__mkdir_p} %{buildroot}%{license_dir}/tao/json %{buildroot}%{_libdir}/cmake
|
|
81
|
+
%{__mv} %{buildroot}%{license_dir}/taocpp-json/tao/json/LICENSE %{buildroot}%{license_dir}/tao/json/LICENSE
|
|
82
|
+
%{__mv} %{buildroot}%{_datadir}/taocpp-json/cmake %{buildroot}%{_libdir}/cmake/taocpp-json
|
|
83
|
+
%{__mv} %{buildroot}%{_datadir}/pegtl/cmake %{buildroot}%{_libdir}/cmake/pegtl
|
|
84
|
+
%endif
|
|
45
85
|
|
|
46
86
|
%files
|
|
47
|
-
%license %{
|
|
48
|
-
%license %{
|
|
49
|
-
%license %{
|
|
87
|
+
%license %{license_dir}/couchbase_cxx_client/LICENSE.txt
|
|
88
|
+
%license %{license_dir}/tao/pegtl/LICENSE
|
|
89
|
+
%license %{license_dir}/tao/json/LICENSE
|
|
50
90
|
%{_libdir}/libcouchbase_cxx_client.so.*
|
|
51
91
|
|
|
52
92
|
%files tools
|
|
@@ -62,4 +102,3 @@ Development files for the Couchbase C++ SDK.
|
|
|
62
102
|
%changelog
|
|
63
103
|
* @COUCHBASE_CXX_CLIENT_RPM_DATE@ Couchbase SDK Team <support@couchbase.com> - @COUCHBASE_CXX_CLIENT_PACKAGE_VERSION@-@COUCHBASE_CXX_CLIENT_PACKAGE_RELEASE@
|
|
64
104
|
- Automated build.
|
|
65
|
-
%{_libdir}/libcouchbase_cxx_client_static.a
|
|
@@ -132,7 +132,11 @@ public:
|
|
|
132
132
|
|
|
133
133
|
auto free_form_http_request(const http_request& request,
|
|
134
134
|
free_form_http_request_callback&& callback)
|
|
135
|
+
#ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
|
|
136
|
+
-> tl::expected<std::shared_ptr<pending_operation>, error_union>
|
|
137
|
+
#else
|
|
135
138
|
-> tl::expected<std::shared_ptr<pending_operation>, std::error_code>
|
|
139
|
+
#endif
|
|
136
140
|
{
|
|
137
141
|
return cluster_agent_.free_form_http_request(request, std::move(callback));
|
|
138
142
|
}
|
|
@@ -221,7 +225,11 @@ agent_group::search_query(const search_query_options& options, search_query_call
|
|
|
221
225
|
auto
|
|
222
226
|
agent_group::free_form_http_request(const http_request& request,
|
|
223
227
|
free_form_http_request_callback&& callback)
|
|
228
|
+
#ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
|
|
229
|
+
-> tl::expected<std::shared_ptr<pending_operation>, error_union>
|
|
230
|
+
#else
|
|
224
231
|
-> tl::expected<std::shared_ptr<pending_operation>, std::error_code>
|
|
232
|
+
#endif
|
|
225
233
|
{
|
|
226
234
|
return impl_->free_form_http_request(request, std::move(callback));
|
|
227
235
|
}
|
|
@@ -70,7 +70,11 @@ public:
|
|
|
70
70
|
|
|
71
71
|
auto free_form_http_request(const http_request& request,
|
|
72
72
|
free_form_http_request_callback&& callback)
|
|
73
|
+
#ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
|
|
74
|
+
-> tl::expected<std::shared_ptr<pending_operation>, error_union>;
|
|
75
|
+
#else
|
|
73
76
|
-> tl::expected<std::shared_ptr<pending_operation>, std::error_code>;
|
|
77
|
+
#endif
|
|
74
78
|
|
|
75
79
|
auto wait_until_ready(std::chrono::milliseconds timeout,
|
|
76
80
|
const wait_until_ready_options& options,
|
|
@@ -25,11 +25,13 @@
|
|
|
25
25
|
#include "core/io/mcbp_message.hxx"
|
|
26
26
|
#include "core/logger/logger.hxx"
|
|
27
27
|
#include "core/mcbp/codec.hxx"
|
|
28
|
+
#include "core/metrics/meter_wrapper.hxx"
|
|
28
29
|
#include "core/protocol/client_opcode.hxx"
|
|
29
30
|
#include "core/protocol/client_request.hxx"
|
|
30
31
|
#include "core/protocol/hello_feature.hxx"
|
|
31
32
|
#include "core/response_handler.hxx"
|
|
32
33
|
#include "core/service_type.hxx"
|
|
34
|
+
#include "core/tracing/tracer_wrapper.hxx"
|
|
33
35
|
#include "core/utils/movable_function.hxx"
|
|
34
36
|
#include "dispatcher.hxx"
|
|
35
37
|
#include "impl/bootstrap_state_listener.hxx"
|
|
@@ -42,10 +44,8 @@
|
|
|
42
44
|
#include "retry_orchestrator.hxx"
|
|
43
45
|
|
|
44
46
|
#include <couchbase/error_codes.hxx>
|
|
45
|
-
#include <couchbase/metrics/meter.hxx>
|
|
46
47
|
#include <couchbase/retry_reason.hxx>
|
|
47
48
|
#include <couchbase/retry_strategy.hxx>
|
|
48
|
-
#include <couchbase/tracing/request_tracer.hxx>
|
|
49
49
|
|
|
50
50
|
#include <asio/bind_executor.hpp>
|
|
51
51
|
#include <asio/error.hpp>
|
|
@@ -82,8 +82,8 @@ public:
|
|
|
82
82
|
bucket_impl(std::string client_id,
|
|
83
83
|
std::string name,
|
|
84
84
|
couchbase::core::origin origin,
|
|
85
|
-
std::shared_ptr<
|
|
86
|
-
std::shared_ptr<
|
|
85
|
+
std::shared_ptr<tracing::tracer_wrapper> tracer,
|
|
86
|
+
std::shared_ptr<metrics::meter_wrapper> meter,
|
|
87
87
|
std::vector<protocol::hello_feature> known_features,
|
|
88
88
|
std::shared_ptr<impl::bootstrap_state_listener> state_listener,
|
|
89
89
|
asio::io_context& ctx,
|
|
@@ -114,15 +114,11 @@ public:
|
|
|
114
114
|
std::optional<key_value_error_map_info> error_info)
|
|
115
115
|
{
|
|
116
116
|
// TODO(SA): copy from mcbp_command, subject to refactor later
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
{ "db.operation", fmt::format("{}", req->command_) },
|
|
117
|
+
metrics::metric_attributes attrs{
|
|
118
|
+
service_type::key_value, fmt::format("{}", req->command_), ec, name_, req->scope_name_,
|
|
119
|
+
req->collection_name_,
|
|
121
120
|
};
|
|
122
|
-
meter_->
|
|
123
|
-
->record_value(std::chrono::duration_cast<std::chrono::microseconds>(
|
|
124
|
-
std::chrono::steady_clock::now() - req->dispatched_time_)
|
|
125
|
-
.count());
|
|
121
|
+
meter_->record_value(std::move(attrs), req->dispatched_time_);
|
|
126
122
|
|
|
127
123
|
if (ec == asio::error::operation_aborted) {
|
|
128
124
|
// TODO(SA): fix tracing
|
|
@@ -894,12 +890,12 @@ public:
|
|
|
894
890
|
return configured_;
|
|
895
891
|
}
|
|
896
892
|
|
|
897
|
-
[[nodiscard]] auto tracer() const -> std::shared_ptr<
|
|
893
|
+
[[nodiscard]] auto tracer() const -> std::shared_ptr<tracing::tracer_wrapper>
|
|
898
894
|
{
|
|
899
895
|
return tracer_;
|
|
900
896
|
}
|
|
901
897
|
|
|
902
|
-
[[nodiscard]] auto meter() const -> std::shared_ptr<
|
|
898
|
+
[[nodiscard]] auto meter() const -> std::shared_ptr<metrics::meter_wrapper>
|
|
903
899
|
{
|
|
904
900
|
return meter_;
|
|
905
901
|
}
|
|
@@ -952,8 +948,8 @@ private:
|
|
|
952
948
|
const std::string name_;
|
|
953
949
|
const std::string log_prefix_;
|
|
954
950
|
const origin origin_;
|
|
955
|
-
const std::shared_ptr<
|
|
956
|
-
const std::shared_ptr<
|
|
951
|
+
const std::shared_ptr<tracing::tracer_wrapper> tracer_;
|
|
952
|
+
const std::shared_ptr<metrics::meter_wrapper> meter_;
|
|
957
953
|
const std::vector<protocol::hello_feature> known_features_;
|
|
958
954
|
const std::shared_ptr<impl::bootstrap_state_listener> state_listener_;
|
|
959
955
|
mcbp::codec codec_;
|
|
@@ -985,8 +981,8 @@ private:
|
|
|
985
981
|
bucket::bucket(std::string client_id,
|
|
986
982
|
asio::io_context& ctx,
|
|
987
983
|
asio::ssl::context& tls,
|
|
988
|
-
std::shared_ptr<
|
|
989
|
-
std::shared_ptr<
|
|
984
|
+
std::shared_ptr<tracing::tracer_wrapper> tracer,
|
|
985
|
+
std::shared_ptr<metrics::meter_wrapper> meter,
|
|
990
986
|
std::string name,
|
|
991
987
|
couchbase::core::origin origin,
|
|
992
988
|
std::vector<protocol::hello_feature> known_features,
|
|
@@ -1054,13 +1050,13 @@ bucket::log_prefix() const -> const std::string&
|
|
|
1054
1050
|
}
|
|
1055
1051
|
|
|
1056
1052
|
auto
|
|
1057
|
-
bucket::tracer() const -> std::shared_ptr<
|
|
1053
|
+
bucket::tracer() const -> std::shared_ptr<tracing::tracer_wrapper>
|
|
1058
1054
|
{
|
|
1059
1055
|
return impl_->tracer();
|
|
1060
1056
|
}
|
|
1061
1057
|
|
|
1062
1058
|
auto
|
|
1063
|
-
bucket::meter() const -> std::shared_ptr<
|
|
1059
|
+
bucket::meter() const -> std::shared_ptr<metrics::meter_wrapper>
|
|
1064
1060
|
{
|
|
1065
1061
|
return impl_->meter();
|
|
1066
1062
|
}
|
|
@@ -33,14 +33,6 @@
|
|
|
33
33
|
|
|
34
34
|
namespace couchbase
|
|
35
35
|
{
|
|
36
|
-
namespace metrics
|
|
37
|
-
{
|
|
38
|
-
class meter;
|
|
39
|
-
} // namespace metrics
|
|
40
|
-
namespace tracing
|
|
41
|
-
{
|
|
42
|
-
class request_tracer;
|
|
43
|
-
} // namespace tracing
|
|
44
36
|
namespace core
|
|
45
37
|
{
|
|
46
38
|
namespace mcbp
|
|
@@ -52,6 +44,14 @@ namespace diag
|
|
|
52
44
|
class ping_collector;
|
|
53
45
|
struct diagnostics_result;
|
|
54
46
|
} // namespace diag
|
|
47
|
+
namespace tracing
|
|
48
|
+
{
|
|
49
|
+
class tracer_wrapper;
|
|
50
|
+
} // namespace tracing
|
|
51
|
+
namespace metrics
|
|
52
|
+
{
|
|
53
|
+
class meter_wrapper;
|
|
54
|
+
} // namespace metrics
|
|
55
55
|
namespace impl
|
|
56
56
|
{
|
|
57
57
|
class bootstrap_state_listener;
|
|
@@ -68,8 +68,8 @@ public:
|
|
|
68
68
|
bucket(std::string client_id,
|
|
69
69
|
asio::io_context& ctx,
|
|
70
70
|
asio::ssl::context& tls,
|
|
71
|
-
std::shared_ptr<
|
|
72
|
-
std::shared_ptr<
|
|
71
|
+
std::shared_ptr<tracing::tracer_wrapper> tracer,
|
|
72
|
+
std::shared_ptr<metrics::meter_wrapper> meter,
|
|
73
73
|
std::string name,
|
|
74
74
|
couchbase::core::origin origin,
|
|
75
75
|
std::vector<protocol::hello_feature> known_features,
|
|
@@ -200,8 +200,8 @@ public:
|
|
|
200
200
|
|
|
201
201
|
[[nodiscard]] auto name() const -> const std::string&;
|
|
202
202
|
[[nodiscard]] auto log_prefix() const -> const std::string&;
|
|
203
|
-
[[nodiscard]] auto tracer() const -> std::shared_ptr<
|
|
204
|
-
[[nodiscard]] auto meter() const -> std::shared_ptr<
|
|
203
|
+
[[nodiscard]] auto tracer() const -> std::shared_ptr<tracing::tracer_wrapper>;
|
|
204
|
+
[[nodiscard]] auto meter() const -> std::shared_ptr<metrics::meter_wrapper>;
|
|
205
205
|
[[nodiscard]] auto default_retry_strategy() const -> std::shared_ptr<couchbase::retry_strategy>;
|
|
206
206
|
[[nodiscard]] auto is_closed() const -> bool;
|
|
207
207
|
[[nodiscard]] auto is_configured() const -> bool;
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
#include "core/mcbp/queue_request.hxx"
|
|
40
40
|
#include "core/meta/version.hxx"
|
|
41
41
|
#include "core/metrics/logging_meter.hxx"
|
|
42
|
+
#include "core/metrics/meter_wrapper.hxx"
|
|
42
43
|
#include "core/metrics/noop_meter.hxx"
|
|
43
44
|
#include "core/operations/document_analytics.hxx"
|
|
44
45
|
#include "core/operations/document_append.hxx"
|
|
@@ -145,6 +146,7 @@
|
|
|
145
146
|
#include "core/topology/capabilities.hxx"
|
|
146
147
|
#include "core/tracing/noop_tracer.hxx"
|
|
147
148
|
#include "core/tracing/threshold_logging_tracer.hxx"
|
|
149
|
+
#include "core/tracing/tracer_wrapper.hxx"
|
|
148
150
|
#include "core/utils/join_strings.hxx"
|
|
149
151
|
#include "core/utils/movable_function.hxx"
|
|
150
152
|
#include "crud_component.hxx"
|
|
@@ -352,30 +354,7 @@ public:
|
|
|
352
354
|
id_,
|
|
353
355
|
couchbase::core::meta::sdk_semver(),
|
|
354
356
|
origin_.to_json());
|
|
355
|
-
|
|
356
|
-
if (nullptr != origin_.options().tracer) {
|
|
357
|
-
tracer_ = origin_.options().tracer;
|
|
358
|
-
} else {
|
|
359
|
-
if (origin_.options().enable_tracing) {
|
|
360
|
-
tracer_ = std::make_shared<tracing::threshold_logging_tracer>(
|
|
361
|
-
ctx_, origin_.options().tracing_options);
|
|
362
|
-
} else {
|
|
363
|
-
tracer_ = std::make_shared<tracing::noop_tracer>();
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
tracer_->start();
|
|
367
|
-
// ignore the metrics options if a meter was passed in.
|
|
368
|
-
if (nullptr != origin_.options().meter) {
|
|
369
|
-
meter_ = origin_.options().meter;
|
|
370
|
-
} else {
|
|
371
|
-
if (origin_.options().enable_metrics) {
|
|
372
|
-
meter_ = std::make_shared<metrics::logging_meter>(ctx_, origin_.options().metrics_options);
|
|
373
|
-
} else {
|
|
374
|
-
meter_ = std::make_shared<metrics::noop_meter>();
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
meter_->start();
|
|
378
|
-
session_manager_->set_tracer(tracer_);
|
|
357
|
+
setup_observability();
|
|
379
358
|
if (origin_.options().enable_dns_srv) {
|
|
380
359
|
std::string hostname;
|
|
381
360
|
std::string port;
|
|
@@ -433,30 +412,7 @@ public:
|
|
|
433
412
|
id_,
|
|
434
413
|
couchbase::core::meta::sdk_semver(),
|
|
435
414
|
origin_.to_json());
|
|
436
|
-
|
|
437
|
-
if (nullptr != origin_.options().tracer) {
|
|
438
|
-
tracer_ = origin_.options().tracer;
|
|
439
|
-
} else {
|
|
440
|
-
if (origin_.options().enable_tracing) {
|
|
441
|
-
tracer_ = std::make_shared<tracing::threshold_logging_tracer>(
|
|
442
|
-
ctx_, origin_.options().tracing_options);
|
|
443
|
-
} else {
|
|
444
|
-
tracer_ = std::make_shared<tracing::noop_tracer>();
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
tracer_->start();
|
|
448
|
-
// ignore the metrics options if a meter was passed in.
|
|
449
|
-
if (nullptr != origin_.options().meter) {
|
|
450
|
-
meter_ = origin_.options().meter;
|
|
451
|
-
} else {
|
|
452
|
-
if (origin_.options().enable_metrics) {
|
|
453
|
-
meter_ = std::make_shared<metrics::logging_meter>(ctx_, origin_.options().metrics_options);
|
|
454
|
-
} else {
|
|
455
|
-
meter_ = std::make_shared<metrics::noop_meter>();
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
meter_->start();
|
|
459
|
-
session_manager_->set_tracer(tracer_);
|
|
415
|
+
setup_observability();
|
|
460
416
|
session_manager_->set_dispatch_timeout(origin_.options().dispatch_timeout);
|
|
461
417
|
// at this point we will infinitely try to connect
|
|
462
418
|
if (origin_.options().enable_dns_srv) {
|
|
@@ -493,6 +449,10 @@ public:
|
|
|
493
449
|
b = std::make_shared<bucket>(
|
|
494
450
|
id_, ctx_, tls_, tracer_, meter_, bucket_name, origin, known_features, dns_srv_tracker_);
|
|
495
451
|
buckets_.try_emplace(bucket_name, b);
|
|
452
|
+
|
|
453
|
+
// Register the tracer & the meter for config updates to track Cluster name & UUID
|
|
454
|
+
b->on_configuration_update(tracer_);
|
|
455
|
+
b->on_configuration_update(meter_);
|
|
496
456
|
}
|
|
497
457
|
}
|
|
498
458
|
if (b == nullptr) {
|
|
@@ -1092,7 +1052,7 @@ public:
|
|
|
1092
1052
|
if (cluster->session_) {
|
|
1093
1053
|
cluster->session_->ping(collector->build_reporter(), timeout);
|
|
1094
1054
|
}
|
|
1095
|
-
cluster->for_each_bucket([&collector, &timeout](auto bucket) {
|
|
1055
|
+
cluster->for_each_bucket([&collector, &timeout](const auto& bucket) {
|
|
1096
1056
|
bucket->ping(collector, timeout);
|
|
1097
1057
|
});
|
|
1098
1058
|
}
|
|
@@ -1145,7 +1105,7 @@ public:
|
|
|
1145
1105
|
}
|
|
1146
1106
|
self->retry_backoff_.cancel();
|
|
1147
1107
|
#endif
|
|
1148
|
-
self->for_each_bucket([](auto bucket) {
|
|
1108
|
+
self->for_each_bucket([](const auto& bucket) {
|
|
1149
1109
|
bucket->close();
|
|
1150
1110
|
});
|
|
1151
1111
|
self->session_manager_->close();
|
|
@@ -1221,6 +1181,38 @@ public:
|
|
|
1221
1181
|
}
|
|
1222
1182
|
|
|
1223
1183
|
private:
|
|
1184
|
+
void setup_observability()
|
|
1185
|
+
{
|
|
1186
|
+
// ignore the enable_tracing flag if a tracer was passed in
|
|
1187
|
+
if (nullptr != origin_.options().tracer) {
|
|
1188
|
+
tracer_ = tracing::tracer_wrapper::create(origin_.options().tracer);
|
|
1189
|
+
} else {
|
|
1190
|
+
if (origin_.options().enable_tracing) {
|
|
1191
|
+
tracer_ =
|
|
1192
|
+
tracing::tracer_wrapper::create(std::make_shared<tracing::threshold_logging_tracer>(
|
|
1193
|
+
ctx_, origin_.options().tracing_options));
|
|
1194
|
+
} else {
|
|
1195
|
+
tracer_ = tracing::tracer_wrapper::create(std::make_shared<tracing::noop_tracer>());
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
tracer_->start();
|
|
1199
|
+
// ignore the metrics options if a meter was passed in.
|
|
1200
|
+
if (nullptr != origin_.options().meter) {
|
|
1201
|
+
meter_ = metrics::meter_wrapper::create(origin_.options().meter);
|
|
1202
|
+
} else {
|
|
1203
|
+
if (origin_.options().enable_metrics) {
|
|
1204
|
+
meter_ = metrics::meter_wrapper::create(
|
|
1205
|
+
std::make_shared<metrics::logging_meter>(ctx_, origin_.options().metrics_options));
|
|
1206
|
+
} else {
|
|
1207
|
+
meter_ = metrics::meter_wrapper::create(std::make_shared<metrics::noop_meter>());
|
|
1208
|
+
}
|
|
1209
|
+
}
|
|
1210
|
+
meter_->start();
|
|
1211
|
+
|
|
1212
|
+
session_manager_->set_tracer(tracer_);
|
|
1213
|
+
session_manager_->set_meter(meter_);
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1224
1216
|
std::string id_{ uuid::to_string(uuid::random()) };
|
|
1225
1217
|
asio::io_context& ctx_;
|
|
1226
1218
|
asio::executor_work_guard<asio::io_context::executor_type> work_;
|
|
@@ -1231,8 +1223,8 @@ private:
|
|
|
1231
1223
|
std::mutex buckets_mutex_{};
|
|
1232
1224
|
std::map<std::string, std::shared_ptr<bucket>> buckets_{};
|
|
1233
1225
|
couchbase::core::origin origin_{};
|
|
1234
|
-
std::shared_ptr<
|
|
1235
|
-
std::shared_ptr<
|
|
1226
|
+
std::shared_ptr<tracing::tracer_wrapper> tracer_{ nullptr };
|
|
1227
|
+
std::shared_ptr<metrics::meter_wrapper> meter_{ nullptr };
|
|
1236
1228
|
std::atomic_bool stopped_{ false };
|
|
1237
1229
|
#ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
|
|
1238
1230
|
std::shared_ptr<couchbase::core::io::cluster_config_tracker> config_tracker_{};
|
|
@@ -42,7 +42,11 @@ public:
|
|
|
42
42
|
|
|
43
43
|
auto free_form_http_request(const http_request& request,
|
|
44
44
|
free_form_http_request_callback&& callback)
|
|
45
|
+
#ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
|
|
46
|
+
-> tl::expected<std::shared_ptr<pending_operation>, error_union>
|
|
47
|
+
#else
|
|
45
48
|
-> tl::expected<std::shared_ptr<pending_operation>, std::error_code>
|
|
49
|
+
#endif
|
|
46
50
|
{
|
|
47
51
|
return http_.do_http_request(request, std::move(callback));
|
|
48
52
|
}
|
|
@@ -61,7 +65,11 @@ cluster_agent::cluster_agent(asio::io_context& io, cluster_agent_config config)
|
|
|
61
65
|
auto
|
|
62
66
|
cluster_agent::free_form_http_request(const couchbase::core::http_request& request,
|
|
63
67
|
couchbase::core::free_form_http_request_callback&& callback)
|
|
68
|
+
#ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
|
|
69
|
+
-> tl::expected<std::shared_ptr<pending_operation>, error_union>
|
|
70
|
+
#else
|
|
64
71
|
-> tl::expected<std::shared_ptr<pending_operation>, std::error_code>
|
|
72
|
+
#endif
|
|
65
73
|
{
|
|
66
74
|
return impl_->free_form_http_request(request, std::move(callback));
|
|
67
75
|
}
|
|
@@ -40,7 +40,11 @@ public:
|
|
|
40
40
|
|
|
41
41
|
auto free_form_http_request(const http_request& request,
|
|
42
42
|
free_form_http_request_callback&& callback)
|
|
43
|
+
#ifdef COUCHBASE_CXX_CLIENT_COLUMNAR
|
|
44
|
+
-> tl::expected<std::shared_ptr<pending_operation>, error_union>;
|
|
45
|
+
#else
|
|
43
46
|
-> tl::expected<std::shared_ptr<pending_operation>, std::error_code>;
|
|
47
|
+
#endif
|
|
44
48
|
|
|
45
49
|
private:
|
|
46
50
|
std::shared_ptr<cluster_agent_impl> impl_;
|
|
@@ -430,7 +430,7 @@ collection_id_cache_entry_impl::refresh_collection_id(
|
|
|
430
430
|
self->manager_.lock()->remove(req->scope_name_, req->collection_name_);
|
|
431
431
|
auto queue = self->swap_queue();
|
|
432
432
|
queue->close();
|
|
433
|
-
return queue->drain([ec](auto r) {
|
|
433
|
+
return queue->drain([ec](const auto& r) {
|
|
434
434
|
r->try_callback({}, ec);
|
|
435
435
|
});
|
|
436
436
|
}
|
|
@@ -443,7 +443,7 @@ collection_id_cache_entry_impl::refresh_collection_id(
|
|
|
443
443
|
res.collection_id);
|
|
444
444
|
auto queue = self->swap_queue();
|
|
445
445
|
queue->close();
|
|
446
|
-
return queue->drain([self](auto r) {
|
|
446
|
+
return queue->drain([self](const auto& r) {
|
|
447
447
|
if (auto ec = self->assign_collection_id(r); ec) {
|
|
448
448
|
CB_LOG_DEBUG("failed to set collection ID \"{}.{}\" on request (OP={}): {}",
|
|
449
449
|
r->scope_name_,
|