PluginConcept » History » Version 4

« Previous - Version 4/10 (diff) - Next » - Current version
J. Moringen, 05/26/2011 06:00 AM
added "Interaction with Introspection of Configuation Options"


  • Plugins are loaded at initialization time
    • This means, registration of provided converters and connectors happens during initialization
    • This is required in order for RSB to be able inquire about capabilities and configuration of converters and connectors
  • Selection and loading of plugins is configured using the usual mechanism
    • An implementation-language-specific section configures
      • Means of locating plugins (e.g. searchpath, classpath, PYTHONPATH)
      • Names of the plugins that should be loaded

C++ Plugins

  • Are shared objects
  • Configuration via options
    • plugins.c++.path: Colon separated list of directories in which expanded (e.g. rsbspread DIRECTORY/ on linux) plugin libraries will be searched
    • plugins.c++.libraries: Colon separated list of plugin names (no including prefixes like "lib" of suffixes like ".so" or ".dll")

Configuration Examples:

path = /vol/vampire/lib:/vol/cor/lib
libraries = rsbspread:rsbvampire     # no filetype suffix


Interaction with Introspection of Configuation Options

The following protocol should be sufficient

  1. Setup fundamental configuration options (debugging, plugin loading, etc.)
  2. Process configuration sources
  3. Load requested plugins
    • Plugins register connector implementations, converters, etc.
  4. Introspect connector implementations to discover additional configuration options
  5. Update configuration options
  6. Process configuration sources again