Difference between revisions of "Slicer3:Loadable Modules:Phase1"
TerryLorber (talk | contribs) |
TerryLorber (talk | contribs) |
||
Line 31: | Line 31: | ||
That might be it, it'd be nice to have the module describe the necessary methods to call on the GUI and Logic pointer, but that might be Phase I-A. Within Slicer3_main, there doesn't seem to be much variation. | That might be it, it'd be nice to have the module describe the necessary methods to call on the GUI and Logic pointer, but that might be Phase I-A. Within Slicer3_main, there doesn't seem to be much variation. | ||
+ | |||
+ | ==== loadable module support ==== | ||
+ | |||
+ | |||
+ | Is there a header/source file that should be added to every module? Can we follow the CLP methodology and use an XML source and CMake driven tool to generate the necessary files? | ||
==== References ==== | ==== References ==== |
Revision as of 02:40, 8 January 2008
Home < Slicer3:Loadable Modules:Phase1From Slicer3:Loadable_Modules:
* runtime module discovery * module template * like CommandLineModuleFactory
Starting at ~900 in Applications/GUI/Slicer3.cxx, static modules load occurs.
Using vtkSys tools to list shared libraries present. Use itk::DyanmicLoader to open libraries and call our specified entry points.
The actions taken for each module to be added could be queried from the found shared library using a LoadableModuleInfo class. Some of the information a library should provide:
- vtkSlicerLogic pointer (maybe this is one of the defined entry points for a loadable module)
- methods to call on the Logic pointer
- vtkSlicerModulesGUI pointer (ditto)
- methods to call on the GUI pointer
- module name
LoadableModuleFactory (dervie from? Libs/ModuleDescriptionParser/ModuleFactory.cxx) handles this. Looks like ModuleFactory::ScanForSharedObjectModules does something very similar.
Create shared libraries for each of the static modules listed in Slicer3.cxx
loadable modules entry points
void* GetLoadableModuleGUI void* GetLoadableModuleLogic char* GetLoadableModuleDescription
That might be it, it'd be nice to have the module describe the necessary methods to call on the GUI and Logic pointer, but that might be Phase I-A. Within Slicer3_main, there doesn't seem to be much variation.
loadable module support
Is there a header/source file that should be added to every module? Can we follow the CLP methodology and use an XML source and CMake driven tool to generate the necessary files?