Skip to content

API: Introduce value and datatype structs to Extern C

Florian Spreckelsen requested to merge f-value-data-structs into dev

Summary

See #22 (closed). Introduce datatype and value structs to the Extern C interface which are then used to set and get property and entity values and datatypes. For this, an AbstractValue class was introduced to libcaosdb.

Focus

The former implementations of the caosdb_entity_{property,entity}_get_<type>_value functions have been replaced by the corresponding get functions that operate on value structs. In the same way, the former ..._{set,get}_datatype(char *, bool, bool) functions have been replaced by the corresponding caosdb_entity_datatype_is_<type> and caosdb_entity_datatype_get_datatype_name functions. The tests in test_ccaosdb have been adapted and extended.

Test Environment

Unit and integration tests should be sufficient.

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 Timm Fitschen

Merge request reports