C API
Warning
The C API is intended for developers of other libraries. Special carre needs to be taken for correct memory management.
Note
When working with liblinkahead’s C API keep the following in mind:
Delete all objects (transactions, entities, properties, parents, …) that you created using a
call to linkahead_..._create_...
or released using linkahead_..._release_...
and only those.
Specifically, any objects set by a linkahead_..._get_...
function are managed by another owning
object (e.g., a connection object is managed by the connection manager) and thus should not be
deleted manually.
The underlying reason is that all C++ objects are realized in the Extern C interface as mutable structs containing a void pointer to the actuall C++ object which is not filled when initializing the struct but after calling a create function instead. If the C++ object wasn’t created using a create function, e.g., the parent object when getting a parent of an entity, it is owned by another object and deleted together with that object.