Plugins¶
See also
- Writing Plugins
Examples demonstrating how to write RSB plugins
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 configuration mechanism: for each implementation language of RSB, a language-specific section configures:
Means of locating plugins (e.g. dynamic linker searchpath for C++, classpath for Java,
PYTHONPATHfor Python)Names of the plugins that should be loaded
C++ Plugins¶
In the C++ implementation of RSB, plugins are shared objects defining symbols
rsc_plugin_init()rsc_plugin_shutdown()
Plugins are configured via the configuration options
plugins.cpp.path
Colon-separated list of directories in which expanded (e.g.
rsbspread->DIRECTORY/librsbspread.soon Linux) plugin libraries will be searched.An empty entry (e.g.
:dots,dots::dotsordots:) is replace with the value configured in the respectively more generic configuration source, up to the default value.
plugins.cpp.load
Colon-separated list of plugins that should be loaded. (Names do not include prefixes like
libof suffixes like.soor.dll)An empty entry (e.g.
:dots,dots::dotsordots:) is replace with the value configured in the respectively more generic configuration source, up to the default value.
Configuration Examples:
[plugins.cpp]
path = /vol/vampire/lib/rsb0.8/plugins:/vol/cor/lib/rsb0.8/plugins
load = rsbspread:rsbvampire # no "libX" or filetype suffix like ".so"
RSB_PLUGINS_CPP_PATH=/vol/cor/lib/rsb0.8/plugins
The default searchpath for C++ plugins is
HOME/.rsbVERSION/pluginsPREFIX/lib/rsbVERSION/plugins
where HOME is the home directory of the current user,
PREFIX is the prefix into which RSB has been installed
and VERSION are the major and minor components of the
current RSB version (1.0 for this version). Example:
/homes/juser/.rsb0.8/plugins/usr/lib/rsb0.8/plugins
Python Plugins¶
Warning
This section is work in progress.
Python plugins are modules defining functions
rsbPluginInit()rsbPluginShutdown()
Plugins are configured via the configuration options
plugins.python.path
Colon-separated list of directories which get added to
sys.path?
plugins.python.load
Colon-separated list of plugins that should be loaded.
Java Plugins¶
Warning
This section is work in progress.
Java plugins are Jar files?
Plugins are configured via the configuration options
plugins.java.path
TODO
plugins.java.load
Colon-separated list of plugins that should be loaded.
Common Lisp Plugins¶
Warning
This section is work in progress.
Common Lisp plugins are ASDF-systems or FASL-bundles?
Plugins are configured via the configuration options
plugins.lisp.path
Colon-separated list of directories that should be searched for plugins.
plugins.lisp.load
Colon-separated list of plugins that should be loaded.
Implementations¶
Language |
File(s) |
|---|---|
C++ |
implemented as part of the RSC library |
Java |
not yet implemented |
Python |
not yet implemented |
Common Lisp |
not yet implemented |