diff --git a/include/ccaosdb.h b/include/ccaosdb.h index fb21d00f443380758226e281f7ab3c6558bf6b58..9dd1f03d8e02f8cbec595c34078f473fc79cbaae 100644 --- a/include/ccaosdb.h +++ b/include/ccaosdb.h @@ -266,6 +266,9 @@ int caosdb_transaction_transaction_get_result_set( caosdb_transaction_transaction *transaction, caosdb_transaction_result_set *out); +int caosdb_transaction_transaction_get_count_result( + caosdb_transaction_transaction *transaction, long *out); + typedef struct { void *wrapped_entity; char **id; diff --git a/src/ccaosdb.cpp b/src/ccaosdb.cpp index e847f614393c1a802698927e5a47d779dc5d6132..c86231ce8b6df6245e358dbdb41772186edcc690 100644 --- a/src/ccaosdb.cpp +++ b/src/ccaosdb.cpp @@ -306,4 +306,29 @@ ERROR_RETURN_CODE(GENERIC_ERROR, wrapped_transaction->Execute(); return 0; }) + +ERROR_RETURN_CODE(GENERIC_ERROR, + int caosdb_transaction_transaction_get_result_set( + caosdb_transaction_transaction *transaction, + caosdb_transaction_result_set *out), + { + auto *wrapped_transaction = + static_cast<caosdb::transaction::Transaction *>( + transaction->wrapped_transaction); + out->wrapped_result_set = + (void *)(&(wrapped_transaction->GetResultSet())); + return 0; + }) + +ERROR_RETURN_CODE(GENERIC_ERROR, + int caosdb_transaction_transaction_get_count_result( + caosdb_transaction_transaction *transaction, long *out), + { + auto *wrapped_transaction = + static_cast<caosdb::transaction::Transaction *>( + transaction->wrapped_transaction); + long cr(wrapped_transaction->GetCountResult()); + *out = cr; + return 0; + }) }