diff --git a/src/ccaosdb.cpp b/src/ccaosdb.cpp index 023bea0330db9b3081409d9beb442fb60a99b047..8a1786934d351299012a5e30f14f9db92f4fe815 100644 --- a/src/ccaosdb.cpp +++ b/src/ccaosdb.cpp @@ -375,7 +375,33 @@ ERROR_RETURN_CODE(GENERIC_ERROR, result_set->wrapped_result_set); auto requested_entity = wrapped_result_set->At(index); entity->wrapped_entity = (void *)(&requested_entity); + // TODO(fspreck) explicit pointers to id, name, ... + return 0; + }) +ERROR_RETURN_CODE(GENERIC_ERROR, + int caosdb_transaction_result_set_size( + caosdb_transaction_result_set *result_set, int *out), + { + auto *wrapped_result_set = + static_cast<caosdb::transaction::MultiResultSet *>( + result_set->wrapped_result_set); + int size(wrapped_result_set->Size()); + *out = size; + return 0; + }) + +ERROR_RETURN_CODE(GENERIC_ERROR, + int caosdb_entity_create_entity(caosdb_entity_entity *out), { + auto entity = caosdb::entity::Entity(); + out->wrapped_entity = (void *)(&entity); + return 0; + }) + +ERROR_RETURN_CODE(GENERIC_ERROR, + int caosdb_entity_delete_entity(caosdb_entity_entity *out), { + delete static_cast<caosdb::entity::Entity *>( + out->wrapped_entity); return 0; }) } diff --git a/test/test_ccaosdb.cpp b/test/test_ccaosdb.cpp index 70ee14da1bec1982ddebd6c4b096235ffe22ec71..1493525d9aa2faa17ec985b577261d8e9a89abb2 100644 --- a/test/test_ccaosdb.cpp +++ b/test/test_ccaosdb.cpp @@ -133,3 +133,13 @@ TEST_F(test_ccaosdb, test_query) { return_code = caosdb_transaction_delete_transaction(&transaction); EXPECT_EQ(return_code, 0); } + +TEST_F(test_ccaosdb, test_entity) { + caosdb_entity_entity entity; + + int return_code(caosdb_entity_create_entity(&entity)); + EXPECT_EQ(return_code, 0); + + return_code = caosdb_entity_delete_entity(&entity); + EXPECT_EQ(return_code, 0); +}