
All: I've begun uploading the Extension library that I've been working on for Boost into the vault (boost-consulting.com/vault directory "Extension"). As of right now, there are only two files, which are just some test cases. I'm uploading them first for comments on the interface. The rest of the library will come slowly, as I document it and put in better comments. Notes: advanced_test.cpp: illustrates loading classes that involve interdependencies. The comments in the file describe how this is done. simple_test.cpp: illustrates loading classes that cannot be modified before being used as extensions - i.e. any class can be made loadable by calling the following: library::make_simple_class_available<any_class>(); //Good point, Janek - this is definitely necessary It is slightly more complicated if non-default constructors are needed. Note the following: -All of these test cases pass. -These test cases all include local classes for simplicity - there are also test cases for classes from dlls, and all of the same functionality works -It can search directories or a single file for loadable classes (it searches .dll, .so or .dylib files automatically on the related platform). It should be possible to search executables (at least on some platforms...), but I haven't tested it yet. -Virtual inheritance does not seem to cause problems- a couple of test cases involving it seem to work just fine -No macros are currently used (all templates) -Only one entry point required in each dll (the function boost_extension_get_class_info). -RTTI is currently required. But, as noted in an earlier discussion, that requirement will hopefully be removed (by use of Boost.Serialization). I believe I've addressed most of the issues raised in the earlier thread, so please let me know your opinions. The extended_type_info will be addressed once the library interface has been deemed useable, and the prototype (using only RTTI) is fully functional (it's functional already, but I'm expecting to need to make changes based on your comments). Also, one particular point of interest to me would be suggestions for test cases. Do you have particular situations that you need the library to handle? Jeremy Pack
participants (1)
-
Jeremy Pack