PluginConcept » History » Version 4
J. Moringen, 05/26/2011 06:00 AM
added "Interaction with Introspection of Configuation Options"
1 | 2 | J. Moringen | h1. Overview |
---|---|---|---|
2 | 1 | J. Wienke | |
3 | 2 | J. Moringen | * Plugins are loaded at initialization time |
4 | 2 | J. Moringen | ** This means, registration of provided converters and connectors happens during initialization |
5 | 2 | J. Moringen | ** This is required in order for RSB to be able inquire about capabilities and configuration of converters and connectors |
6 | 2 | J. Moringen | * Selection and loading of plugins is configured using the [[Configuration|usual mechanism]] |
7 | 2 | J. Moringen | ** An implementation-language-specific section configures |
8 | 2 | J. Moringen | *** Means of locating plugins (e.g. searchpath, classpath, PYTHONPATH) |
9 | 2 | J. Moringen | *** Names of the plugins that should be loaded |
10 | 2 | J. Moringen | |
11 | 2 | J. Moringen | h2. C++ Plugins |
12 | 2 | J. Moringen | |
13 | 2 | J. Moringen | * Are shared objects |
14 | 2 | J. Moringen | * Configuration via options |
15 | 2 | J. Moringen | ** @plugins.c++.path@: Colon separated list of directories in which expanded (e.g. @rsbspread DIRECTORY/librsbspread.so@ on linux) plugin libraries will be searched |
16 | 2 | J. Moringen | ** @plugins.c++.libraries@: Colon separated list of plugin names (no including prefixes like "lib" of suffixes like ".so" or ".dll") |
17 | 2 | J. Moringen | |
18 | 3 | J. Moringen | Configuration Examples: |
19 | 2 | J. Moringen | <pre> |
20 | 3 | J. Moringen | [plugins.cpp] |
21 | 1 | J. Wienke | path = /vol/vampire/lib:/vol/cor/lib |
22 | 1 | J. Wienke | libraries = rsbspread:rsbvampire # no filetype suffix |
23 | 3 | J. Moringen | </pre> |
24 | 3 | J. Moringen | |
25 | 3 | J. Moringen | <pre> |
26 | 3 | J. Moringen | RSB_PLUGINS_CPP_PATH=/vol/cor/lib |
27 | 2 | J. Moringen | </pre> |
28 | 4 | J. Moringen | |
29 | 4 | J. Moringen | h2. Interaction with Introspection of Configuation Options |
30 | 4 | J. Moringen | |
31 | 4 | J. Moringen | The following protocol should be sufficient |
32 | 4 | J. Moringen | |
33 | 4 | J. Moringen | # Setup fundamental configuration options (debugging, plugin loading, etc.) |
34 | 4 | J. Moringen | # Process configuration sources |
35 | 4 | J. Moringen | # Load requested plugins |
36 | 4 | J. Moringen | #* Plugins register connector implementations, converters, etc. |
37 | 4 | J. Moringen | # Introspect connector implementations to discover additional configuration options |
38 | 4 | J. Moringen | # Update configuration options |
39 | 4 | J. Moringen | # Process configuration sources again |