Skip to content
Commit 096f91c2 authored by Alberto Miranda's avatar Alberto Miranda ♨️
Browse files

Merge branch '46-refactor-api-conversion-types' into 'main'

Resolve "Refactor API conversion types"

This MR separates the functionality of `managed_rpc_type<T>` into
dedicated lifetime management types and conversion functions. This
makes for clearer the code since it is now possible to know when
a conversion is performed.

Lifetime management for C-types is now done with the `managed_ctype<T>`
types, which act only as holders of dynamically allocated C types and do not
perform any type conversions whatsoever.

Type conversions are now done with the `T1 convert(T2 obj)` family of functions.
When converting from CXX to C API types, these functions effectively
return instances of the appropriate `managed_ctype<T>`s. If one wishes to
relinquish ownership of the content of the `managed_ctype<T>` (e.g. to
pass it to a pure C function that will release it), this can be done
with the `managed_ctype<T>::release()` function.

Closes #46

See merge request !32
parents f5fbf9f1 70a8dfb7
Loading
Loading
Loading
Loading