Christian Thaeter | 15 Sep 16:38

Low level interface foundation for review

I've prepared the basic foundation for declaring and defining interfaces 
(for real now). So far I tried to reduce it to the bare minimum needed 
for the functionality.
Notably interfaces are versioned, but their functions and instances are 
not versioned here. This should be subject to be versioned somewhere 
else (when required).
Descriptors for querying metadata from an interface implementation are 
realized as interfaces themself (i'll show up examples next).

This system needs some careful review now because we will stick to it 
once it is finalized. Please take a look and let us discuss any changes 
you want. I tried to make it very low level and keeping only the 
essentials in the core, it was some pita to make it compatible with C 
and C++ (with some gnuism's, don't try to compile it with -pedantic). 
Documentation is partially finished but it might be that I failed to 
explain some intentions behind its design, when you question these this 
would be great help to improve it.

The code is in src/lib/interface.h in my 'devel' branch:
http://www.lumiera.org/gitweb?p=lumiera/ct;a=blob;f=src/lib/interface.h;hb=devel

Note: please do not merge my 'devel' branch into your sourcecode, its 
going to be rebased.

Whats next:
  * add a macro to call functions through interfaces
  * preparing some examples how it is used (as part of the testsuite)
  * a simple implementation for interface descriptors
  * provide a tool to generate uuid's for the implementations
  * plugin loader, plugindb, ...

	Christian

Gmane