Difference between revisions of "Slicer3:Loadable Modules:Phase1"

From NAMIC Wiki
Jump to: navigation, search
Line 24: Line 24:
 
Create shared libraries for each of the static modules listed in Slicer3.cxx
 
Create shared libraries for each of the static modules listed in Slicer3.cxx
  
 +
==== loadable modules entry points ====
 +
 +
void* ModuleGUI
 +
void* ModuleLogic
 +
 +
 +
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.
  
 
==== References ====
 
==== References ====

Revision as of 03:55, 3 January 2008

Home < Slicer3:Loadable Modules:Phase1

From 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* ModuleGUI
void* ModuleLogic


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.

References

Slicer3:Execution_Model_Documentation

Slicer3:How_to_implement_an_Interactive_Module_GUI