1515 */
1616#pragma once
1717
18+ #include " core/operations/document_query.hxx"
19+ #include " transaction_get_multi_mode.hxx"
20+ #include " transaction_get_multi_replicas_from_preferred_server_group_mode.hxx"
21+ #include " transaction_get_multi_replicas_from_preferred_server_group_result.hxx"
22+ #include " transaction_get_multi_result.hxx"
1823#include " transaction_get_result.hxx"
1924
20- #include " internal/exceptions_internal.hxx"
21-
25+ // TODO(SA): remove public API from core interfaces
2226#include < couchbase/transactions/transaction_query_options.hxx>
2327
2428#include < optional>
@@ -37,7 +41,13 @@ namespace couchbase::core::transactions
3741class attempt_context
3842{
3943public:
44+ attempt_context () = default ;
45+ attempt_context (attempt_context&&) noexcept = default ;
46+ attempt_context (const attempt_context&) = default ;
47+ auto operator =(attempt_context&&) noexcept -> attempt_context& = default ;
48+ auto operator =(const attempt_context&) -> attempt_context& = default ;
4049 virtual ~attempt_context () = default ;
50+
4151 /* *
4252 * Gets a document from the specified Couchbase collection matching the
4353 * specified id.
@@ -80,6 +90,14 @@ public:
8090 virtual auto get_replica_from_preferred_server_group (const core::document_id& id)
8191 -> std::optional<transaction_get_result> = 0;
8292
93+ virtual auto get_multi (const std::vector<core::document_id>& ids, transaction_get_multi_mode mode)
94+ -> transaction_get_multi_result = 0;
95+
96+ virtual auto get_multi_replicas_from_preferred_server_group (
97+ const std::vector<core::document_id>& ids,
98+ transaction_get_multi_replicas_from_preferred_server_group_mode mode)
99+ -> transaction_get_multi_replicas_from_preferred_server_group_result = 0;
100+
83101 /* *
84102 * Mutates the specified document with new content, using the document's last
85103 * TransactionDocument#cas().
@@ -101,8 +119,8 @@ public:
101119 * @throws transaction_operation_failed which either should not be caught by
102120 * the lambda, or rethrown if it is caught.
103121 */
104- virtual auto replace (const transaction_get_result& document,
105- codec::encoded_value content) -> transaction_get_result = 0;
122+ virtual auto replace (const transaction_get_result& document, codec::encoded_value content)
123+ -> transaction_get_result = 0;
106124
107125 /* *
108126 * Inserts a new document into the specified Couchbase collection.
@@ -124,8 +142,8 @@ public:
124142 * @throws transaction_operation_failed which either should not be caught by
125143 * the lambda, or rethrown if it is caught.
126144 */
127- virtual auto insert (const core::document_id& id,
128- codec::encoded_value content) -> transaction_get_result = 0;
145+ virtual auto insert (const core::document_id& id, codec::encoded_value content)
146+ -> transaction_get_result = 0;
129147
130148 /* *
131149 * Removes the specified document, using the document's last
@@ -157,7 +175,7 @@ public:
157175 const couchbase::transactions::transaction_query_options& opts,
158176 std::optional<std::string> query_context = {}) -> core::operations::query_response
159177 {
160- return do_core_query (statement, opts, query_context);
178+ return do_core_query (statement, opts, std::move ( query_context) );
161179 };
162180
163181 /* *
0 commit comments