Skip to content
Snippets Groups Projects

F multi retrieve

Merged Timm Fitschen requested to merge f-multi-retrieve into dev
All threads resolved!
Files
4
@@ -33,6 +33,7 @@
#include "google/protobuf/util/json_util.h" // for MessageToJsonString, Jso...
#include <stdexcept>
#include <iterator>
// IWYU pragma: no_include <ext/alloc_traits.h>
#include <memory> // for shared_ptr, unique_ptr
#include <string> // for string
#include <vector> // for vector
@@ -119,6 +120,8 @@ using caosdb::transaction::TransactionStatus;
using WrappedResponseCase =
caosdb::entity::v1alpha1::TransactionResponse::WrappedResponseCase;
class Transaction;
static const std::string logger_name = "caosdb::transaction";
class ResultSet {
@@ -131,31 +134,7 @@ public:
class MultiResultSet : public ResultSet {
public:
~MultiResultSet() = default;
explicit inline MultiResultSet(MultiTransactionResponse *response) {
auto responses = response->mutable_responses();
Entity *entity = nullptr;
for (auto sub_response : *responses) {
switch (sub_response.wrapped_response_case()) {
case WrappedResponseCase::kRetrieveResponse:
entity = new Entity(
sub_response.mutable_retrieve_response()->release_entity());
break;
case WrappedResponseCase::kInsertResponse:
entity = new Entity(sub_response.release_insert_response());
break;
case WrappedResponseCase::kDeleteResponse:
entity = new Entity(sub_response.release_delete_response());
break;
default:
// TODO(tf) Updates
break;
}
if (entity) {
this->entities.push_back(std::unique_ptr<Entity>(entity));
}
}
}
explicit MultiResultSet(MultiTransactionResponse *response);
[[nodiscard]] inline auto Size() const noexcept -> int override {
return this->entities.size();
}
Loading