Talk:Slicer3:Execution Model Documentation

From NAMIC Wiki
Jump to: navigation, search
Home < Talk:Slicer3:Execution Model Documentation

Questions from Execution Model Users:

  • Unsigned parameters?
  • Model inputs and outputs?
  • Multiple numbers of input and output volumes? (particularly where the number isn't pre-defined; i.e. isn't determined until run-time)
    • ditto for models
  • What TARGET_LINK_LIBRARIES should we use for something that's not an ITK filter? Do we need ITKIO for all CLI modules that have files and directory parameters?
    • To link to Slicer libraries, use the module name: vtkITK (to use a VTK Image Archetype Reader).
    • To link to VTK libraries, use upper case VTK: VTKGraphics
  • I found that GenerateCLP.exe on WindowsXP failed on my xml file, created with windows emacs, until I ran dos2unix on the xml file. The error was not well-formed (invalid token) at line [last line]
  • How to handle enums (string to integer mappings). (from Gordon) As a stringVector?
  • Variable vs. fixed length vectors. (from Gordon)
  • Is there a sensible default for the Module Path? If we choose a different bin directory for the CL executables we could try to default to that.
    • Plugins should be "installed" in a plugins area. Could be part of the build process. Could just set the EXECUTABLE_OUTPUT_PATH for the plugins to the plugins directory instead of the bin directory.
  • Why can't we reload command line modules? So if you edit your module and recompile you can test it without restarting slicer?
    • *** Haven't written the code yet
    • since the slicerdaemon is listening on a socket, we could provide a program that tells slicer to reparse the command line modules -- this could be incorporated into the build process so that once your compile finishes your module is instantly ready for use.
    • we'd want to be sure to preserve the parameters so that people can re-run their experiment with the new code
      • Just need to write the node serialization
  • For shared object modules, can we avoid the memory copy of image data from Slicer to the plugin and from the plugin to the Slicer?
    • Perhaps we can add methods to ImageIOBase that the ImageFilterReader/Writer can query as to whether the reader needs to provide a block of the memory for the ImageIO to fill or whether the ImageIO already has a block of memory that it can pass to the reader directly. Dual for the writer giving memory to the ImageIO, can the ImageIO be told that it can keep the memory?
  • Shared memory Image? ImageIO?
  • Shared object plugins. Clean up/extend/document the API to the shared object.
  • Run the command line modules and shared object modules in a thread.