Skip to content
Snippets Groups Projects

ENH: Add retrieval and queries to Extern C interface

Merged Florian Spreckelsen requested to merge f-extended-c into f-files

Summary

See https://gitlab.indiscale.com/caosdb/customers/lfpb/management/-/issues/411. Extends the Extern C interface by retrieving single and multiple entities and executing queries.

Focus

There is a lot of repetitive new code for create, delete, set, and get functions in ccaosdb.cpp. Some aspects of the c++ objects of Entities, Parents, and Propeties had to be changed in order to comply with the C interface, mainly because of memory management.

The most important new parts is that entities, transactions, properties and parents can now be created and deleted via the C interface, and that their properties can be set and gotten.

Test Environment

In principle, unit tests should be sufficient. Check whether you are content with the extent of the tests. Queries and retrievals are checked in the integration tests.

Check List for the Author

Please, prepare your MR for a review. Be sure to write a summary and a focus and create gitlab comments for the reviewer. They should guide the reviewer through the changes, explain your changes and also point out open questions. For further good practices have a look at our review guidelines

  • All automated tests pass
  • Reference related Issues
  • [ ] Up-to-date CHANGELOG.md
  • Annotations in code (Gitlab comments)
    • Intent of new code
    • Problems with old code
    • Why this implementation?

Check List for the Reviewer

  • I understand the intent of this MR
  • All automated tests pass
  • [ ] Up-to-date CHANGELOG.md
  • The test environment setup works and the intended behavior is reproducible in the test environment
  • In-code documentation and comments are up-to-date.
  • Check: Are there specifications? Are they satisfied?

For further good practices have a look at our review guidelines.

Edited by Florian Spreckelsen

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Florian Spreckelsen
  • Florian Spreckelsen
  • Florian Spreckelsen
  • 113 */
    114 inline auto Append(const T &element) -> void {
    115 auto *destination = this->wrapped->Add();
    116 destination->Swap(element.wrapped);
    117
    118 // Clear the originally wrapped object and return it to the Arena
    119 element.wrapped->Clear();
    120
    121 // set the pointer to the new object which is owned by the RepeatedPtrField
    122 element.wrapped = destination;
    123 }
    124
    125 /**
    126 * Remove the element at the given index.
    127 */
    128 inline auto remove(int index) -> void {
  • Florian Spreckelsen
  • Florian Spreckelsen
  • Florian Spreckelsen
  • Florian Spreckelsen
  • 28 52 } \
    29 53 }
    30 54
    55 /**
    56 * Macro for entity getters
    57 */
    58 #define CAOSDB_ENTITY_GET(element, body_part) \
  • Florian Spreckelsen
  • Florian Spreckelsen
  • Florian Spreckelsen
  • Florian Spreckelsen
  • Florian Spreckelsen
  • Florian Spreckelsen
  • Florian Spreckelsen
  • Florian Spreckelsen
  • Florian Spreckelsen
  • Florian Spreckelsen
  • added 1 commit

    • ec2eb3eb - ENH: Add removal of parents and properties to Extern C

    Compare with previous version

  • Florian Spreckelsen
  • Florian Spreckelsen marked the checklist item Reference related Issues as incomplete

    marked the checklist item Reference related Issues as incomplete

  • Florian Spreckelsen requested review from @henrik

    requested review from @henrik

  • Florian Spreckelsen marked the checklist item Reference related Issues as completed

    marked the checklist item Reference related Issues as completed

  • Florian Spreckelsen marked the checklist item All automated tests pass as completed

    marked the checklist item All automated tests pass as completed

  • Florian Spreckelsen marked the checklist item Annotations in code (Gitlab comments) as completed

    marked the checklist item Annotations in code (Gitlab comments) as completed

  • Florian Spreckelsen marked the checklist item All automated tests pass as incomplete

    marked the checklist item All automated tests pass as incomplete

  • added 5 commits

    • f38dbd12 - API: remove UniqueResult, lower-case at, size for ResultSet
    • ca07e4d2 - Merge branch 'f-extended-c' into f-remove-unique-result
    • f77226eb - FIX: Unit tests
    • 5135df76 - MAINT; Remove commented code
    • 7b8b2233 - Merge branch 'f-remove-unique-result' into 'f-extended-c'

    Compare with previous version

  • Florian Spreckelsen changed the description

    changed the description

  • added 3 commits

    • 934b7cf2 - ENH: Add missing imlementations of message code and description
    • c923bf7a - MAINT: Remove TODOs
    • 8c05cb6c - Merge branch 'f-extended-c' of gitlab.indiscale.com:caosdb/src/caosdb-cpplib into f-extended-c

    Compare with previous version

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading