typelib/registry: don't return possible null-reference

kudos to scan-build

Signed-off-by: Martin Zenzes <martin.zenzes@dfki.de>
various: fix "unused variable" warnings

low hanging fruits...

Signed-off-by: Martin Zenzes <martin.zenzes@dfki.de>
typemodel: change "s_available_containers" from pointer to object

fixes the test_suite so that it does not segfault (when no plugins can
be found) in test_model.cc:142 because "createContainer" is called,
which used the pointer without checking it.

the commit changes the pointer to be a static empty std::map, instead of
beeing sometimes created with new. removes null-pointer checks.

overhead? well, most of the time std::vectors are present and thus the
std::map would be created anyways... in case someone asks: on my 64bit
machine the size of the empty map is 48 bytes, versus 8 bytes for the
pointer.

Signed-off-by: Martin Zenzes <martin.zenzes@dfki.de>
pluginmanager: add string "name" to exception "PluginNotFound"

Signed-off-by: Martin Zenzes <martin.zenzes@dfki.de>
pluginmanager: add function "loadPluginFromDirectory"

also move the code handling loading of compiled-in TYPELIB_PLUGIN_PATH
into the new function.

return true if any plugin could be loaded, false if no plugin could be
loaded (and prints a warning)

Signed-off-by: Martin Zenzes <martin.zenzes@dfki.de>
pluginmanager: fix error message

does nobody read error-messages? this will always print "0": if(!var) cout << var;

Signed-off-by: Martin Zenzes <martin.zenzes@dfki.de>
pluginmanager: change c-level define for hardcoded typelib plugin path

this is now called "TYPELIB_HARDCODED_PLUGIN_PATH"

Signed-off-by: Martin Zenzes <martin.zenzes@dfki.de>
pluginmanager: override plugin loading locations with env-var "TYPELIB_PLUGIN_PATH"

now the hard-coded plug-lookup-path can be overridden by a environment
variable

the plugins inside the build-folder live in different folders. so we
have to be able to split the env-var at colons to look up a list of
subfolders...

doing like this allows testing the plugins in the build-folder, without
installed them:

    TYPELIB_PLUGIN_PATH=`find build -name 'libtypeLang_*.so' -printf "%h:"` ./build/test/typelib_testsuite

this also works (reproducing the "old" behaviour)

    TYPELIB_PLUGIN_PATH=$ROCK_INSTALL_DIR/lib/typelib ./build/test/typelib_testsuite

Signed-off-by: Martin Zenzes <martin.zenzes@dfki.de>
CMakeLists: add "TYPELIB_PLUGIN_PATH" env-properties to test-suites

three hardcoded path inside the build-folder where the plugins are located

Signed-off-by: Martin Zenzes <martin.zenzes@dfki.de>
pluginmanager: add warning on unset env-var

Signed-off-by: Martin Zenzes <martin.zenzes@dfki.de>