couchbase 3.4.3 → 3.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/ext/couchbase/CMakeLists.txt +22 -1
  4. data/ext/couchbase/core/bucket.cxx +183 -152
  5. data/ext/couchbase/core/bucket.hxx +17 -4
  6. data/ext/couchbase/core/cluster.hxx +41 -13
  7. data/ext/couchbase/core/cluster_options.hxx +3 -0
  8. data/ext/couchbase/core/crud_component.cxx +51 -22
  9. data/ext/couchbase/core/error_context/key_value.cxx +2 -1
  10. data/ext/couchbase/core/error_context/key_value.hxx +10 -12
  11. data/ext/couchbase/core/impl/build_deferred_query_indexes.cxx +115 -50
  12. data/ext/couchbase/core/impl/cluster.cxx +6 -0
  13. data/ext/couchbase/core/impl/create_bucket.cxx +158 -0
  14. data/ext/couchbase/core/impl/create_collection.cxx +83 -0
  15. data/ext/couchbase/core/impl/create_query_index.cxx +172 -59
  16. data/ext/couchbase/core/impl/create_scope.cxx +69 -0
  17. data/ext/couchbase/core/impl/dns_srv_tracker.cxx +2 -1
  18. data/ext/couchbase/core/impl/drop_bucket.cxx +66 -0
  19. data/ext/couchbase/core/impl/drop_collection.cxx +76 -0
  20. data/ext/couchbase/core/impl/drop_query_index.cxx +138 -59
  21. data/ext/couchbase/core/impl/drop_scope.cxx +68 -0
  22. data/ext/couchbase/core/impl/flush_bucket.cxx +66 -0
  23. data/ext/couchbase/core/impl/get_all_buckets.cxx +178 -0
  24. data/ext/couchbase/core/impl/get_all_query_indexes.cxx +67 -37
  25. data/ext/couchbase/core/impl/get_all_scopes.cxx +94 -0
  26. data/ext/couchbase/core/impl/get_bucket.cxx +168 -0
  27. data/ext/couchbase/core/impl/internal_manager_error_context.cxx +113 -0
  28. data/ext/couchbase/core/impl/internal_manager_error_context.hxx +60 -0
  29. data/ext/couchbase/core/impl/key_value_error_category.cxx +2 -4
  30. data/ext/couchbase/core/impl/key_value_error_context.cxx +98 -0
  31. data/ext/couchbase/core/impl/lookup_in.cxx +1 -0
  32. data/ext/couchbase/core/impl/lookup_in_all_replicas.cxx +178 -0
  33. data/ext/couchbase/core/impl/lookup_in_all_replicas.hxx +80 -0
  34. data/ext/couchbase/core/impl/lookup_in_any_replica.cxx +169 -0
  35. data/ext/couchbase/core/impl/lookup_in_any_replica.hxx +75 -0
  36. data/ext/couchbase/core/impl/lookup_in_replica.cxx +104 -0
  37. data/ext/couchbase/core/impl/lookup_in_replica.hxx +67 -0
  38. data/ext/couchbase/core/impl/manager_error_context.cxx +100 -0
  39. data/ext/couchbase/core/impl/query.cxx +1 -0
  40. data/ext/couchbase/core/impl/query_error_context.cxx +75 -0
  41. data/ext/couchbase/core/impl/update_bucket.cxx +133 -0
  42. data/ext/couchbase/core/impl/update_collection.cxx +83 -0
  43. data/ext/couchbase/core/impl/watch_query_indexes.cxx +53 -29
  44. data/ext/couchbase/core/io/dns_client.cxx +111 -40
  45. data/ext/couchbase/core/io/dns_config.cxx +5 -4
  46. data/ext/couchbase/core/io/http_session.hxx +24 -1
  47. data/ext/couchbase/core/io/mcbp_command.hxx +9 -2
  48. data/ext/couchbase/core/io/mcbp_session.cxx +80 -43
  49. data/ext/couchbase/core/io/mcbp_session.hxx +4 -3
  50. data/ext/couchbase/core/logger/custom_rotating_file_sink.cxx +1 -1
  51. data/ext/couchbase/core/logger/logger.cxx +80 -20
  52. data/ext/couchbase/core/logger/logger.hxx +31 -0
  53. data/ext/couchbase/core/management/bucket_settings.hxx +8 -5
  54. data/ext/couchbase/core/management/bucket_settings_json.hxx +12 -2
  55. data/ext/couchbase/core/meta/features.hxx +42 -0
  56. data/ext/couchbase/core/operations/document_lookup_in.cxx +8 -1
  57. data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +192 -0
  58. data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +188 -0
  59. data/ext/couchbase/core/operations/document_query.cxx +11 -0
  60. data/ext/couchbase/core/operations/document_query.hxx +1 -0
  61. data/ext/couchbase/core/operations/management/CMakeLists.txt +1 -0
  62. data/ext/couchbase/core/operations/management/bucket_create.cxx +30 -9
  63. data/ext/couchbase/core/operations/management/bucket_update.cxx +27 -6
  64. data/ext/couchbase/core/operations/management/collection_create.cxx +5 -1
  65. data/ext/couchbase/core/operations/management/collection_create.hxx +1 -0
  66. data/ext/couchbase/core/operations/management/collection_update.cxx +87 -0
  67. data/ext/couchbase/core/operations/management/collection_update.hxx +54 -0
  68. data/ext/couchbase/core/operations/management/collections.hxx +1 -0
  69. data/ext/couchbase/core/operations.hxx +2 -0
  70. data/ext/couchbase/core/origin.cxx +270 -0
  71. data/ext/couchbase/core/origin.hxx +2 -0
  72. data/ext/couchbase/core/protocol/client_response.hxx +1 -0
  73. data/ext/couchbase/core/protocol/cmd_hello.hxx +1 -0
  74. data/ext/couchbase/core/protocol/cmd_lookup_in_replica.cxx +107 -0
  75. data/ext/couchbase/core/protocol/cmd_lookup_in_replica.hxx +137 -0
  76. data/ext/couchbase/core/protocol/hello_feature.hxx +6 -0
  77. data/ext/couchbase/core/protocol/hello_feature_fmt.hxx +3 -0
  78. data/ext/couchbase/core/protocol/status.cxx +2 -2
  79. data/ext/couchbase/core/range_scan_options.cxx +3 -27
  80. data/ext/couchbase/core/range_scan_options.hxx +13 -17
  81. data/ext/couchbase/core/range_scan_orchestrator.cxx +388 -170
  82. data/ext/couchbase/core/range_scan_orchestrator.hxx +13 -2
  83. data/ext/couchbase/core/range_scan_orchestrator_options.hxx +5 -3
  84. data/ext/couchbase/core/scan_options.hxx +0 -19
  85. data/ext/couchbase/core/scan_result.cxx +19 -5
  86. data/ext/couchbase/core/scan_result.hxx +5 -2
  87. data/ext/couchbase/core/timeout_defaults.hxx +3 -4
  88. data/ext/couchbase/core/topology/capabilities.hxx +4 -0
  89. data/ext/couchbase/core/topology/capabilities_fmt.hxx +11 -0
  90. data/ext/couchbase/core/topology/collections_manifest.hxx +2 -0
  91. data/ext/couchbase/core/topology/collections_manifest_fmt.hxx +1 -1
  92. data/ext/couchbase/core/topology/collections_manifest_json.hxx +3 -0
  93. data/ext/couchbase/core/topology/configuration.hxx +20 -0
  94. data/ext/couchbase/core/topology/configuration_json.hxx +8 -1
  95. data/ext/couchbase/core/utils/connection_string.cxx +62 -47
  96. data/ext/couchbase/core/utils/connection_string.hxx +1 -0
  97. data/ext/couchbase/couchbase/analytics_error_context.hxx +1 -1
  98. data/ext/couchbase/couchbase/behavior_options.hxx +19 -2
  99. data/ext/couchbase/couchbase/bucket.hxx +14 -0
  100. data/ext/couchbase/couchbase/bucket_manager.hxx +135 -0
  101. data/ext/couchbase/couchbase/build_query_index_options.hxx +0 -30
  102. data/ext/couchbase/couchbase/cluster.hxx +14 -0
  103. data/ext/couchbase/couchbase/collection.hxx +111 -0
  104. data/ext/couchbase/couchbase/collection_manager.hxx +160 -0
  105. data/ext/couchbase/couchbase/collection_query_index_manager.hxx +7 -48
  106. data/ext/couchbase/couchbase/create_bucket_options.hxx +41 -0
  107. data/ext/couchbase/couchbase/create_collection_options.hxx +44 -0
  108. data/ext/couchbase/couchbase/create_primary_query_index_options.hxx +0 -29
  109. data/ext/couchbase/couchbase/create_query_index_options.hxx +0 -33
  110. data/ext/couchbase/couchbase/create_scope_options.hxx +41 -0
  111. data/ext/couchbase/couchbase/drop_bucket_options.hxx +41 -0
  112. data/ext/couchbase/couchbase/drop_collection_options.hxx +41 -0
  113. data/ext/couchbase/couchbase/drop_primary_query_index_options.hxx +0 -30
  114. data/ext/couchbase/couchbase/drop_query_index_options.hxx +0 -31
  115. data/ext/couchbase/couchbase/drop_scope_options.hxx +41 -0
  116. data/ext/couchbase/couchbase/error_codes.hxx +1 -2
  117. data/ext/couchbase/couchbase/error_context.hxx +10 -2
  118. data/ext/couchbase/couchbase/flush_bucket_options.hxx +41 -0
  119. data/ext/couchbase/{core/topology/error_map_fmt.hxx → couchbase/fmt/key_value_error_map_attribute.hxx} +21 -21
  120. data/ext/couchbase/couchbase/get_all_buckets_options.hxx +44 -0
  121. data/ext/couchbase/couchbase/get_all_query_indexes_options.hxx +0 -30
  122. data/ext/couchbase/couchbase/get_all_scopes_options.hxx +44 -0
  123. data/ext/couchbase/couchbase/get_and_lock_options.hxx +2 -2
  124. data/ext/couchbase/couchbase/get_and_touch_options.hxx +2 -2
  125. data/ext/couchbase/couchbase/get_bucket_options.hxx +43 -0
  126. data/ext/couchbase/couchbase/get_options.hxx +2 -2
  127. data/ext/couchbase/couchbase/insert_options.hxx +3 -3
  128. data/ext/couchbase/couchbase/key_value_error_context.hxx +7 -2
  129. data/ext/couchbase/couchbase/lookup_in_all_replicas_options.hxx +109 -0
  130. data/ext/couchbase/couchbase/lookup_in_any_replica_options.hxx +101 -0
  131. data/ext/couchbase/couchbase/lookup_in_options.hxx +2 -2
  132. data/ext/couchbase/couchbase/lookup_in_replica_result.hxx +74 -0
  133. data/ext/couchbase/couchbase/lookup_in_result.hxx +26 -0
  134. data/ext/couchbase/couchbase/management/bucket_settings.hxx +119 -0
  135. data/ext/couchbase/couchbase/management/collection_spec.hxx +29 -0
  136. data/ext/couchbase/couchbase/management/scope_spec.hxx +29 -0
  137. data/ext/couchbase/couchbase/manager_error_context.hxx +29 -53
  138. data/ext/couchbase/couchbase/mutate_in_options.hxx +2 -2
  139. data/ext/couchbase/couchbase/query_error_context.hxx +3 -1
  140. data/ext/couchbase/couchbase/query_index_manager.hxx +16 -83
  141. data/ext/couchbase/couchbase/query_options.hxx +18 -0
  142. data/ext/couchbase/couchbase/remove_options.hxx +2 -2
  143. data/ext/couchbase/couchbase/replace_options.hxx +3 -3
  144. data/ext/couchbase/couchbase/security_options.hxx +15 -0
  145. data/ext/couchbase/couchbase/subdocument_error_context.hxx +4 -2
  146. data/ext/couchbase/couchbase/touch_options.hxx +2 -2
  147. data/ext/couchbase/couchbase/unlock_options.hxx +2 -2
  148. data/ext/couchbase/couchbase/update_bucket_options.hxx +41 -0
  149. data/ext/couchbase/couchbase/update_collection_options.hxx +44 -0
  150. data/ext/couchbase/couchbase/upsert_options.hxx +3 -3
  151. data/ext/couchbase/couchbase/watch_query_indexes_options.hxx +0 -31
  152. data/ext/couchbase/test/CMakeLists.txt +1 -0
  153. data/ext/couchbase/test/test_integration_collections.cxx +6 -0
  154. data/ext/couchbase/test/test_integration_crud.cxx +5 -0
  155. data/ext/couchbase/test/test_integration_examples.cxx +137 -1
  156. data/ext/couchbase/test/test_integration_management.cxx +1009 -309
  157. data/ext/couchbase/test/test_integration_query.cxx +19 -7
  158. data/ext/couchbase/test/test_integration_range_scan.cxx +351 -112
  159. data/ext/couchbase/test/test_integration_search.cxx +10 -1
  160. data/ext/couchbase/test/test_integration_subdoc.cxx +721 -7
  161. data/ext/couchbase/test/test_transaction_public_async_api.cxx +13 -12
  162. data/ext/couchbase/test/test_transaction_public_blocking_api.cxx +27 -21
  163. data/ext/couchbase/test/test_unit_connection_string.cxx +29 -0
  164. data/ext/couchbase/test/test_unit_query.cxx +75 -0
  165. data/ext/couchbase.cxx +735 -60
  166. data/ext/revisions.rb +3 -3
  167. data/lib/couchbase/cluster.rb +1 -1
  168. data/lib/couchbase/collection.rb +108 -0
  169. data/lib/couchbase/collection_options.rb +100 -1
  170. data/lib/couchbase/errors.rb +5 -0
  171. data/lib/couchbase/key_value_scan.rb +125 -0
  172. data/lib/couchbase/management/bucket_manager.rb +22 -15
  173. data/lib/couchbase/management/collection_manager.rb +158 -9
  174. data/lib/couchbase/options.rb +151 -0
  175. data/lib/couchbase/scope.rb +1 -1
  176. data/lib/couchbase/utils/time.rb +14 -1
  177. data/lib/couchbase/version.rb +1 -1
  178. metadata +59 -8
  179. data/ext/couchbase/core/impl/collection_query_index_manager.cxx +0 -93
@@ -0,0 +1,41 @@
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 <functional>
21
+ #include <memory>
22
+ #include <optional>
23
+ #include <string>
24
+
25
+ namespace couchbase
26
+ {
27
+ struct create_bucket_options : public common_options<create_bucket_options> {
28
+ public:
29
+ struct built : public common_options<create_bucket_options>::built {
30
+ };
31
+
32
+ [[nodiscard]] auto build() const -> built
33
+ {
34
+ return { build_common_options() };
35
+ }
36
+
37
+ private:
38
+ };
39
+
40
+ using create_bucket_handler = std::function<void(couchbase::manager_error_context)>;
41
+ } // namespace couchbase
@@ -0,0 +1,44 @@
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 <functional>
21
+ #include <memory>
22
+ #include <optional>
23
+ #include <string>
24
+
25
+ namespace couchbase
26
+ {
27
+ struct create_collection_options : public common_options<create_collection_options> {
28
+ public:
29
+ struct built : public common_options<create_collection_options>::built {
30
+ };
31
+
32
+ [[nodiscard]] auto build() const -> built
33
+ {
34
+ return { build_common_options() };
35
+ }
36
+ };
37
+
38
+ struct create_collection_settings {
39
+ std::uint32_t max_expiry{ 0 };
40
+ std::optional<bool> history{};
41
+ };
42
+
43
+ using create_collection_handler = std::function<void(couchbase::manager_error_context)>;
44
+ } // namespace couchbase
@@ -134,33 +134,4 @@ class create_primary_query_index_options : public common_options<create_primary_
134
134
  */
135
135
 
136
136
  using create_primary_query_index_handler = std::function<void(couchbase::manager_error_context)>;
137
-
138
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
139
- namespace core
140
- {
141
- class cluster;
142
- class query_context;
143
- namespace impl
144
- {
145
-
146
- /**
147
- * @since 1.0.0
148
- * @internal
149
- */
150
- void
151
- initiate_create_primary_query_index(std::shared_ptr<couchbase::core::cluster> core,
152
- std::string bucket_name,
153
- couchbase::create_primary_query_index_options::built options,
154
- query_context query_ctx,
155
- std::string collection_name,
156
- create_primary_query_index_handler&& handler);
157
- void
158
- initiate_create_primary_query_index(std::shared_ptr<couchbase::core::cluster> core,
159
- std::string bucket_name,
160
- couchbase::create_primary_query_index_options::built options,
161
- create_primary_query_index_handler&& handler);
162
-
163
- #endif
164
- } // namespace impl
165
- } // namespace core
166
137
  } // namespace couchbase
@@ -136,37 +136,4 @@ class create_query_index_options : public common_options<create_query_index_opti
136
136
  */
137
137
 
138
138
  using create_query_index_handler = std::function<void(couchbase::manager_error_context)>;
139
-
140
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
141
- namespace core
142
- {
143
- class cluster;
144
- class query_context;
145
- namespace impl
146
- {
147
-
148
- /**
149
- * @since 1.0.0
150
- * @internal
151
- */
152
- void
153
- initiate_create_query_index(std::shared_ptr<couchbase::core::cluster> core,
154
- std::string bucket_name,
155
- std::string index_name,
156
- std::vector<std::string> fields,
157
- couchbase::create_query_index_options::built options,
158
- create_query_index_handler&& handler);
159
- void
160
- initiate_create_query_index(std::shared_ptr<couchbase::core::cluster> core,
161
- std::string bucket_name,
162
- std::string index_name,
163
- std::vector<std::string> fields,
164
- couchbase::create_query_index_options::built options,
165
- query_context query_ctx,
166
- std::string collection_name,
167
- create_query_index_handler&& handler);
168
-
169
- #endif
170
- } // namespace impl
171
- } // namespace core
172
139
  } // namespace couchbase
@@ -0,0 +1,41 @@
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 <functional>
21
+ #include <memory>
22
+ #include <optional>
23
+ #include <string>
24
+
25
+ namespace couchbase
26
+ {
27
+ struct create_scope_options : public common_options<create_scope_options> {
28
+ public:
29
+ struct built : public common_options<create_scope_options>::built {
30
+ };
31
+
32
+ [[nodiscard]] auto build() const -> built
33
+ {
34
+ return { build_common_options() };
35
+ }
36
+
37
+ private:
38
+ };
39
+
40
+ using create_scope_handler = std::function<void(couchbase::manager_error_context)>;
41
+ } // namespace couchbase
@@ -0,0 +1,41 @@
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 <functional>
21
+ #include <memory>
22
+ #include <optional>
23
+ #include <string>
24
+
25
+ namespace couchbase
26
+ {
27
+ struct drop_bucket_options : public common_options<drop_bucket_options> {
28
+ public:
29
+ struct built : public common_options<drop_bucket_options>::built {
30
+ };
31
+
32
+ [[nodiscard]] auto build() const -> built
33
+ {
34
+ return { build_common_options() };
35
+ }
36
+
37
+ private:
38
+ };
39
+
40
+ using drop_bucket_handler = std::function<void(couchbase::manager_error_context)>;
41
+ } // namespace couchbase
@@ -0,0 +1,41 @@
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 <functional>
21
+ #include <memory>
22
+ #include <optional>
23
+ #include <string>
24
+
25
+ namespace couchbase
26
+ {
27
+ struct drop_collection_options : public common_options<drop_collection_options> {
28
+ public:
29
+ struct built : public common_options<drop_collection_options>::built {
30
+ };
31
+
32
+ [[nodiscard]] auto build() const -> built
33
+ {
34
+ return { build_common_options() };
35
+ }
36
+
37
+ private:
38
+ };
39
+
40
+ using drop_collection_handler = std::function<void(couchbase::manager_error_context)>;
41
+ } // namespace couchbase
@@ -96,34 +96,4 @@ class drop_primary_query_index_options : public common_options<drop_primary_quer
96
96
  */
97
97
 
98
98
  using drop_primary_query_index_handler = std::function<void(couchbase::manager_error_context)>;
99
-
100
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
101
- namespace core
102
- {
103
- class cluster;
104
- class query_context;
105
- namespace impl
106
- {
107
-
108
- /**
109
- * @since 1.0.0
110
- * @internal
111
- */
112
- void
113
- initiate_drop_primary_query_index(std::shared_ptr<couchbase::core::cluster> core,
114
- std::string bucket_name,
115
- couchbase::drop_primary_query_index_options::built options,
116
- query_context query_ctx,
117
- std::string collection_name,
118
- drop_primary_query_index_handler&& handler);
119
-
120
- void
121
- initiate_drop_primary_query_index(std::shared_ptr<couchbase::core::cluster> core,
122
- std::string bucket_name,
123
- couchbase::drop_primary_query_index_options::built options,
124
- drop_primary_query_index_handler&& handler);
125
-
126
- #endif
127
- } // namespace impl
128
- } // namespace core
129
99
  } // namespace couchbase
@@ -82,35 +82,4 @@ class drop_query_index_options : public common_options<drop_query_index_options>
82
82
  */
83
83
 
84
84
  using drop_query_index_handler = std::function<void(couchbase::manager_error_context)>;
85
-
86
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
87
- namespace core
88
- {
89
- class cluster;
90
- class query_context;
91
- namespace impl
92
- {
93
-
94
- /**
95
- * @since 1.0.0
96
- * @internal
97
- */
98
- void
99
- initiate_drop_query_index(std::shared_ptr<couchbase::core::cluster> core,
100
- std::string bucket_name,
101
- std::string index_name,
102
- couchbase::drop_query_index_options::built options,
103
- query_context query_ctx,
104
- std::string collection_name,
105
- drop_query_index_handler&& handler);
106
- void
107
- initiate_drop_query_index(std::shared_ptr<couchbase::core::cluster> core,
108
- std::string bucket_name,
109
- std::string index_name,
110
- couchbase::drop_query_index_options::built options,
111
- drop_query_index_handler&& handler);
112
-
113
- #endif
114
- } // namespace impl
115
- } // namespace core
116
85
  } // namespace couchbase
@@ -0,0 +1,41 @@
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 <functional>
21
+ #include <memory>
22
+ #include <optional>
23
+ #include <string>
24
+
25
+ namespace couchbase
26
+ {
27
+ struct drop_scope_options : public common_options<drop_scope_options> {
28
+ public:
29
+ struct built : public common_options<drop_scope_options>::built {
30
+ };
31
+
32
+ [[nodiscard]] auto build() const -> built
33
+ {
34
+ return { build_common_options() };
35
+ }
36
+
37
+ private:
38
+ };
39
+
40
+ using drop_scope_handler = std::function<void(couchbase::manager_error_context)>;
41
+ } // namespace couchbase
@@ -599,8 +599,7 @@ enum class key_value {
599
599
  // KV Code: 0xd6
600
600
  cannot_revive_living_document = 131,
601
601
 
602
- range_scan_cancelled = 132,
603
- range_scan_vb_uuid_not_equal = 133,
602
+ mutation_token_outdated = 133,
604
603
  range_scan_completed = 134,
605
604
  };
606
605
 
@@ -57,12 +57,14 @@ class error_context
57
57
  * @since 1.0.0
58
58
  * @internal
59
59
  */
60
- error_context(std::error_code ec,
60
+ error_context(std::string operation_id,
61
+ std::error_code ec,
61
62
  std::optional<std::string> last_dispatched_to,
62
63
  std::optional<std::string> last_dispatched_from,
63
64
  std::size_t retry_attempts,
64
65
  std::set<retry_reason> retry_reasons)
65
- : ec_{ ec }
66
+ : operation_id_{ std::move(operation_id) }
67
+ , ec_{ ec }
66
68
  , last_dispatched_to_{ std::move(last_dispatched_to) }
67
69
  , last_dispatched_from_{ std::move(last_dispatched_from) }
68
70
  , retry_attempts_{ retry_attempts }
@@ -70,6 +72,11 @@ class error_context
70
72
  {
71
73
  }
72
74
 
75
+ [[nodiscard]] virtual auto operation_id() const -> const std::string&
76
+ {
77
+ return operation_id_;
78
+ }
79
+
73
80
  /**
74
81
  * Returns status of the operation.
75
82
  *
@@ -165,6 +172,7 @@ class error_context
165
172
  }
166
173
 
167
174
  private:
175
+ std::string operation_id_{};
168
176
  std::error_code ec_{};
169
177
  std::optional<std::string> last_dispatched_to_{};
170
178
  std::optional<std::string> last_dispatched_from_{};
@@ -0,0 +1,41 @@
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 <functional>
21
+ #include <memory>
22
+ #include <optional>
23
+ #include <string>
24
+
25
+ namespace couchbase
26
+ {
27
+ struct flush_bucket_options : public common_options<flush_bucket_options> {
28
+ public:
29
+ struct built : public common_options<flush_bucket_options>::built {
30
+ };
31
+
32
+ [[nodiscard]] auto build() const -> built
33
+ {
34
+ return { build_common_options() };
35
+ }
36
+
37
+ private:
38
+ };
39
+
40
+ using flush_bucket_handler = std::function<void(couchbase::manager_error_context)>;
41
+ } // namespace couchbase
@@ -17,12 +17,12 @@
17
17
 
18
18
  #pragma once
19
19
 
20
- #include "error_map.hxx"
20
+ #include <couchbase/key_value_error_map_attribute.hxx>
21
21
 
22
22
  #include <fmt/core.h>
23
23
 
24
24
  template<>
25
- struct fmt::formatter<couchbase::api::key_value_error_map_attribute> {
25
+ struct fmt::formatter<couchbase::key_value_error_map_attribute> {
26
26
  template<typename ParseContext>
27
27
  constexpr auto parse(ParseContext& ctx)
28
28
  {
@@ -30,62 +30,62 @@ struct fmt::formatter<couchbase::api::key_value_error_map_attribute> {
30
30
  }
31
31
 
32
32
  template<typename FormatContext>
33
- auto format(couchbase::api::key_value_error_map_attribute attr, FormatContext& ctx) const
33
+ auto format(couchbase::key_value_error_map_attribute attr, FormatContext& ctx) const
34
34
  {
35
35
  string_view name = "unknown";
36
36
  switch (attr) {
37
- case couchbase::api::key_value_error_map_attribute::success:
37
+ case couchbase::key_value_error_map_attribute::success:
38
38
  name = "success";
39
39
  break;
40
- case couchbase::api::key_value_error_map_attribute::item_only:
40
+ case couchbase::key_value_error_map_attribute::item_only:
41
41
  name = "item-only";
42
42
  break;
43
- case couchbase::api::key_value_error_map_attribute::invalid_input:
43
+ case couchbase::key_value_error_map_attribute::invalid_input:
44
44
  name = "invalid-input";
45
45
  break;
46
- case couchbase::api::key_value_error_map_attribute::fetch_config:
46
+ case couchbase::key_value_error_map_attribute::fetch_config:
47
47
  name = "fetch-config";
48
48
  break;
49
- case couchbase::api::key_value_error_map_attribute::conn_state_invalidated:
49
+ case couchbase::key_value_error_map_attribute::conn_state_invalidated:
50
50
  name = "conn-state-invalidated";
51
51
  break;
52
- case couchbase::api::key_value_error_map_attribute::auth:
52
+ case couchbase::key_value_error_map_attribute::auth:
53
53
  name = "auth";
54
54
  break;
55
- case couchbase::api::key_value_error_map_attribute::special_handling:
55
+ case couchbase::key_value_error_map_attribute::special_handling:
56
56
  name = "special-handling";
57
57
  break;
58
- case couchbase::api::key_value_error_map_attribute::support:
58
+ case couchbase::key_value_error_map_attribute::support:
59
59
  name = "support";
60
60
  break;
61
- case couchbase::api::key_value_error_map_attribute::temp:
61
+ case couchbase::key_value_error_map_attribute::temp:
62
62
  name = "temp";
63
63
  break;
64
- case couchbase::api::key_value_error_map_attribute::internal:
64
+ case couchbase::key_value_error_map_attribute::internal:
65
65
  name = "internal";
66
66
  break;
67
- case couchbase::api::key_value_error_map_attribute::retry_now:
67
+ case couchbase::key_value_error_map_attribute::retry_now:
68
68
  name = "retry-now";
69
69
  break;
70
- case couchbase::api::key_value_error_map_attribute::retry_later:
70
+ case couchbase::key_value_error_map_attribute::retry_later:
71
71
  name = "retry-later";
72
72
  break;
73
- case couchbase::api::key_value_error_map_attribute::subdoc:
73
+ case couchbase::key_value_error_map_attribute::subdoc:
74
74
  name = "subdoc";
75
75
  break;
76
- case couchbase::api::key_value_error_map_attribute::dcp:
76
+ case couchbase::key_value_error_map_attribute::dcp:
77
77
  name = "dcp";
78
78
  break;
79
- case couchbase::api::key_value_error_map_attribute::auto_retry:
79
+ case couchbase::key_value_error_map_attribute::auto_retry:
80
80
  name = "auto-retry";
81
81
  break;
82
- case couchbase::api::key_value_error_map_attribute::item_locked:
82
+ case couchbase::key_value_error_map_attribute::item_locked:
83
83
  name = "item-locked";
84
84
  break;
85
- case couchbase::api::key_value_error_map_attribute::item_deleted:
85
+ case couchbase::key_value_error_map_attribute::item_deleted:
86
86
  name = "item-deleted";
87
87
  break;
88
- case couchbase::api::key_value_error_map_attribute::rate_limit:
88
+ case couchbase::key_value_error_map_attribute::rate_limit:
89
89
  name = "rate-limit";
90
90
  break;
91
91
  }
@@ -0,0 +1,44 @@
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 <couchbase/management/bucket_settings.hxx>
21
+
22
+ #include <functional>
23
+ #include <memory>
24
+ #include <optional>
25
+ #include <string>
26
+
27
+ namespace couchbase
28
+ {
29
+ struct get_all_buckets_options : public common_options<get_all_buckets_options> {
30
+ public:
31
+ struct built : public common_options<get_all_buckets_options>::built {
32
+ };
33
+
34
+ [[nodiscard]] auto build() const -> built
35
+ {
36
+ return { build_common_options() };
37
+ }
38
+
39
+ private:
40
+ };
41
+
42
+ using get_all_buckets_handler =
43
+ std::function<void(couchbase::manager_error_context, std::vector<couchbase::management::cluster::bucket_settings>)>;
44
+ } // namespace couchbase
@@ -68,34 +68,4 @@ class get_all_query_indexes_options : public common_options<get_all_query_indexe
68
68
 
69
69
  using get_all_query_indexes_handler =
70
70
  std::function<void(couchbase::manager_error_context, std::vector<couchbase::management::query::index>)>;
71
-
72
- #ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
73
- namespace core
74
- {
75
- class cluster;
76
- class query_context;
77
- namespace impl
78
- {
79
-
80
- /**
81
- * @since 1.0.0
82
- * @internal
83
- */
84
- void
85
- initiate_get_all_query_indexes(std::shared_ptr<couchbase::core::cluster> core,
86
- std::string bucket_name,
87
- couchbase::get_all_query_indexes_options::built options,
88
- get_all_query_indexes_handler&& handler);
89
-
90
- void
91
- initiate_get_all_query_indexes(std::shared_ptr<couchbase::core::cluster> core,
92
- std::string bucket_name,
93
- couchbase::get_all_query_indexes_options::built options,
94
- query_context query_ctx,
95
- std::string collection_name,
96
- get_all_query_indexes_handler&& handler);
97
-
98
- #endif
99
- } // namespace impl
100
- } // namespace core
101
71
  } // namespace couchbase