Hi,

I agree that we should strive for a Native-OSGi API which does not depend on third-party libraries. Having said that, I also think that if such a C API gets too cumbersome and complicated to use, we should rethink this requirement.

Without a specific memory ownership management technique (like APR memory pools), the C API of services obviously needs to be carefully crafted if the service interface is stateful (e.g. internally keeps a pointer or reference via a method call). In this case, the service likely needs to provide additional methods which can be used to clear the internal state (e.g. signal the withdrawel of a previously passed pointer because the calling bundle is being unloaded). I don't see a problem with adapting the original Java service interfaces to better meet the specifics of C (or C++).

Transferring memory ownership to a service from another bundle probably needs a mixed approach, if APR memory pools are used internally in C a implementation like Celix (like Alexander mentioned). But I am not conviced yet that this problem cannot be overcome by a carefully designed service interface.


Best,

Sascha

Reply via email to