I've started playing around with loading extension libraries to support "other language" extensions and so a wee bit of re-architecture has "cpp" being an extension language. In other words I'm trying to make a core that is not tied to cpp implementation. This core will roughly be a model loader in line with the assembly model spec with extensions for stuff like < implementation.cpp.. > and a runtime for resolving wiring and locating services. This is nearly what we have now but without the cpp C&I spec api implmentation code (anything under runtime/core/src/osoa...).
This will involve a bit of refactoring to remove the unnecessary dependencies from the "core" to the cpp specific code. What I expect to end up with is libraries for: tuscany_sca - the core assembly model and internal message structure tuscany_sca_cpp - the cpp language extension (extension functions for loading cpp model etc.) tuscany_sca_cpp_osoa - the "client" side functions defined by the C++ C&I spec (ComponentContext etc.) I'm not yet sure if the latter 2 should be the same library, that will depend on their interdependencies. This is not a trivial change and it's tricky to break it down into sensible small chunks so I may start a branch/sandbox to play in for the moment...or if it suddenly all works I'll get it checked in to the trunk asap ;-) It's nearly there but will probably take another day or maybe 2 and it would probably be good for anyone else interested in the cpp code to review it. It won't be near perfect but it will provide a good base for a more modular and extensible runtime. Cheers,
