Orocos Real-Time Toolkit
2.9.0
|
#include <rtt/deployment/ComponentLoader.hpp>
Public Types | |
typedef boost::shared_ptr< ComponentLoader > | shared_ptr |
Public Member Functions | |
bool | import (std::string const &path_list) |
Imports any Component library found in each path in path_list in the current process. More... | |
bool | isImported (std::string type_name) |
Checks if a given Component type, filename or package name has been imported. More... | |
bool | import (std::string const &name, std::string const &path_list) |
Imports a package found in each path in path_list in the current process. More... | |
bool | loadLibrary (std::string const &path) |
Loads a library as component library. More... | |
bool | reloadLibrary (std::string const &filepath) |
Reloads a component library. More... | |
RTT::TaskContext * | loadComponent (std::string const &name, std::string const &type) |
Creates a new component an earlier discovered component type. More... | |
bool | unloadComponent (RTT::TaskContext *tc) |
Destroys an earlier created component. More... | |
std::vector< std::string > | listComponents () const |
Lists all Component created by loadComponent(). More... | |
std::vector< std::string > | listComponentTypes () const |
Lists all Component types discovered by the ComponentLoader. More... | |
std::string | getComponentPath () const |
Returns the current Component path list. More... | |
void | setComponentPath (std::string const &newpath) |
Sets the Component path list. More... | |
const FactoryMap & | getFactories () const |
Returns the factory singleton which creates all types of components for the ComponentLoader. More... | |
void | addFactory (std::string const &name, ComponentLoaderSignature factory) |
Adds a factory to the component factory map. More... | |
Static Public Member Functions | |
static boost::shared_ptr< ComponentLoader > | Instance () |
Create the instance of the ComponentLoader. More... | |
static void | Release () |
Release the ComponentLoader, erasing all knowledge of loaded libraries. More... | |
Definition at line 22 of file ComponentLoader.hpp.
typedef boost::shared_ptr<ComponentLoader> RTT::ComponentLoader::shared_ptr |
Definition at line 111 of file ComponentLoader.hpp.
void ComponentLoader::addFactory | ( | std::string const & | name, |
ComponentLoaderSignature | factory | ||
) |
Adds a factory to the component factory map.
Definition at line 818 of file ComponentLoader.cpp.
References RTT::ComponentFactories::Instance().
std::string ComponentLoader::getComponentPath | ( | ) | const |
Returns the current Component path list.
Defaults to the value of RTT_COMPONENT_PATH, when the RTT was started for the current process.
Definition at line 709 of file ComponentLoader.cpp.
const FactoryMap & ComponentLoader::getFactories | ( | ) | const |
Returns the factory singleton which creates all types of components for the ComponentLoader.
Definition at line 813 of file ComponentLoader.cpp.
References RTT::ComponentFactories::Instance().
bool ComponentLoader::import | ( | std::string const & | path_list | ) |
Imports any Component library found in each path in path_list in the current process.
path_list | A colon or semi-colon seperated list of paths to look for Components. May be the empty string. |
Definition at line 279 of file ComponentLoader.cpp.
References RTT::Debug, RTT::Error, RTT::Info, RTT::plugin::PluginLoader::Instance(), isLoadableLibrary(), and OROCOS_TARGET_NAME.
bool ComponentLoader::import | ( | std::string const & | name, |
std::string const & | path_list | ||
) |
Imports a package found in each path in path_list in the current process.
name | The name of the (package) directory to import |
path_list | A colon or semi-colon seperated list of paths to look for Components. May be the empty string. In that case, the default component search path is used. |
Definition at line 382 of file ComponentLoader.cpp.
References RTT::Error, RTT::Info, isLoadableLibrary(), and OROCOS_TARGET_NAME.
|
static |
Create the instance of the ComponentLoader.
It will keep track of the loaded libraries for this process.
Definition at line 267 of file ComponentLoader.cpp.
bool ComponentLoader::isImported | ( | std::string | type_name | ) |
Checks if a given Component type, filename or package name has been imported.
This function accepts full filenames ('libthe_Component.so.1.99.0'), short names ('the_Component'), the name provided by the Component Factory ('App::Component'), or a package name ('myrobot')
type_name | name of a file, package directory or the Component type. |
Definition at line 556 of file ComponentLoader.cpp.
References RTT::Debug, dlclose(), dlerror(), dlopen(), dlsym(), RTT::Error, RTT::types::TypekitRepository::hasTypekit(), RTT::Info, RTT::ComponentFactories::Instance(), RTLD_NOW, and RTT::Warning.
std::vector< std::string > ComponentLoader::listComponents | ( | ) | const |
Lists all Component created by loadComponent().
Definition at line 775 of file ComponentLoader.cpp.
std::vector< std::string > ComponentLoader::listComponentTypes | ( | ) | const |
Lists all Component types discovered by the ComponentLoader.
Definition at line 700 of file ComponentLoader.cpp.
References RTT::ComponentFactories::Instance().
RTT::TaskContext * ComponentLoader::loadComponent | ( | std::string const & | name, |
std::string const & | type | ||
) |
Creates a new component an earlier discovered component type.
name | The name of the to be created Component |
type | The type of component to be created. |
Definition at line 722 of file ComponentLoader.cpp.
References RTT::Debug, RTT::Error, and RTT::ComponentFactories::Instance().
bool ComponentLoader::loadLibrary | ( | std::string const & | path | ) |
Loads a library as component library.
path | an absolute or relative path to a library. Relative paths are interpreted with regard to the plugin path. |
Definition at line 506 of file ComponentLoader.cpp.
References RTT::Debug, and OROCOS_TARGET_NAME.
|
static |
Release the ComponentLoader, erasing all knowledge of loaded libraries.
No libraries will be unloaded from the process.
Definition at line 273 of file ComponentLoader.cpp.
bool ComponentLoader::reloadLibrary | ( | std::string const & | filepath | ) |
Reloads a component library.
filepath | an absolute path to a library. |
Definition at line 492 of file ComponentLoader.cpp.
void ComponentLoader::setComponentPath | ( | std::string const & | newpath | ) |
Sets the Component path list.
This is typically done by RTT startup code with the contents of the RTT_COMPONENT_PATH variable.
newpath | The new paths to look for Components. |
Definition at line 717 of file ComponentLoader.cpp.
bool ComponentLoader::unloadComponent | ( | RTT::TaskContext * | tc | ) |
Destroys an earlier created component.
tc | The TaskContext to be destroyed. tc may no longer be used after this function returns true. |
Definition at line 758 of file ComponentLoader.cpp.
References RTT::Error.