[Kolab-devel] libkolabxml C language bindings

Christian Hilberg hilberg at kernelconcepts.de
Thu Apr 12 11:22:02 CEST 2012


Hi everyone.

I'm presently evaluating the possiblity to integrate libkolabxml
with evolution-kolab [0], a Kolab plugin for the Evolution PIM
client, in order to support a future Kolab3 server version (we
do support Kolab2 only atm).

Evolution, the Evolution-Data-Server as well as the evolution-kolab
plugin are implemented in the C language. While it is technically
possible to link to a C++ library from C, the libkolabxml API cannot
be used from C since it exposes C++ language details. Skimming through
the sources of libkolabxml, I've found the following C++ features
being used in the API which C does not support (the list may not
be exhaustive, though):

* Namespaces
* Templates (including Standard Template Library, "vector" and friends)
* Classes (the "Kolab Containers")
* Types from the BOOST library
* References
* structs with "private fields"
* C++ base types (like "bool")

It is thus not possible to use libkolabxml directly from a C program,
apart from any C/C++ linking issues which may arise. Without a dedicated
C language binding being available, libkolabxml cannot be integrated
with evolution-kolab.

Although we would still need to map between Evolution and libkolabxml
container types, it seems using libkolabxml would be beneficial for us
(changes in the Kolab3 format would be easier for us to follow) as well
as for you (one more use case for libkolabxml, which means broader
testing and promoting libkolabxml as "the library" for Kolab3 client
implementors to use).

Do you plan to make available a C language binding for evolution-kolab?


Kind regards,

	Christian


[0] https://live.gnome.org/Evolution/Kolab

-- 
kernel concepts GmbH       Tel: +49-271-771091-14
Sieghuetter Hauptweg 48
D-57072 Siegen
http://www.kernelconcepts.de/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.kolab.org/pipermail/devel/attachments/20120412/4df748a9/attachment.sig>


More information about the devel mailing list