class_loader
master
The class_loader package is a ROS-independent package for loading plugins during runtime.
|
A ClassLoader that can bind more than one runtime library. More...
#include <multi_library_class_loader.hpp>
Public Member Functions | |
MultiLibraryClassLoader (bool enable_ondemand_loadunload) | |
Constructor for the class. More... | |
virtual | ~MultiLibraryClassLoader () |
Virtual destructor for class. More... | |
template<class Base > | |
std::shared_ptr< Base > | createInstance (const std::string &class_name) |
Creates an instance of an object of given class name with ancestor class Base This version does not look in a specific library for the factory, but rather the first open library that defines the classs. More... | |
template<class Base > | |
std::shared_ptr< Base > | createInstance (const std::string &class_name, const std::string &library_path) |
Creates an instance of an object of given class name with ancestor class Base This version takes a specific library to make explicit the factory being used. More... | |
template<class Base > | |
ClassLoader::UniquePtr< Base > | createUniqueInstance (const std::string &class_name) |
Creates an instance of an object of given class name with ancestor class Base. More... | |
template<class Base > | |
ClassLoader::UniquePtr< Base > | createUniqueInstance (const std::string &class_name, const std::string &library_path) |
Creates an instance of an object of given class name with ancestor class Base. More... | |
template<class Base > | |
Base * | createUnmanagedInstance (const std::string &class_name) |
Creates an instance of an object of given class name with ancestor class Base This version does not look in a specific library for the factory, but rather the first open library that defines the class This version should not be used as the plugin system cannot do automated safe loading/unloadings. More... | |
template<class Base > | |
Base * | createUnmanagedInstance (const std::string &class_name, const std::string &library_path) |
Creates an instance of an object of given class name with ancestor class Base This version takes a specific library to make explicit the factory being used This version should not be used as the plugin system cannot do automated safe loading/unloadings. More... | |
template<class Base > | |
bool | isClassAvailable (const std::string &class_name) const |
Indicates if a class has been loaded and can be instantiated. More... | |
bool | isLibraryAvailable (const std::string &library_path) const |
Indicates if a library has been loaded into memory. More... | |
template<class Base > | |
std::vector< std::string > | getAvailableClasses () const |
Gets a list of all classes that are loaded by the class loader. More... | |
template<class Base > | |
std::vector< std::string > | getAvailableClassesForLibrary (const std::string &library_path) |
Gets a list of all classes loaded for a particular library. More... | |
std::vector< std::string > | getRegisteredLibraries () const |
Gets a list of all libraries opened by this class loader. More... | |
void | loadLibrary (const std::string &library_path) |
Loads a library into memory for this class loader. More... | |
int | unloadLibrary (const std::string &library_path) |
Unloads a library for this class loader. More... | |
A ClassLoader that can bind more than one runtime library.
|
explicit |
Constructor for the class.
enable_ondemand_loadunload | - Flag indicates if classes are to be loaded/unloaded automatically as class_loader are created and destroyed |
|
virtual |
Virtual destructor for class.
|
inline |
Creates an instance of an object of given class name with ancestor class Base This version does not look in a specific library for the factory, but rather the first open library that defines the classs.
Base | - polymorphic type indicating base class |
class_name | - the name of the concrete plugin class we want to instantiate |
|
inline |
Creates an instance of an object of given class name with ancestor class Base This version takes a specific library to make explicit the factory being used.
Base | - polymorphic type indicating base class |
class_name | - the name of the concrete plugin class we want to instantiate |
library_path | - the library from which we want to create the plugin |
|
inline |
Creates an instance of an object of given class name with ancestor class Base.
This version does not look in a specific library for the factory, but rather the first open library that defines the class
Base | - polymorphic type indicating base class |
class_name | - the name of the concrete plugin class we want to instantiate |
|
inline |
Creates an instance of an object of given class name with ancestor class Base.
This version takes a specific library to make explicit the factory being used
Base | - polymorphic type indicating base class |
class_name | - the name of the concrete plugin class we want to instantiate |
library_path | - the library from which we want to create the plugin |
|
inline |
Creates an instance of an object of given class name with ancestor class Base This version does not look in a specific library for the factory, but rather the first open library that defines the class This version should not be used as the plugin system cannot do automated safe loading/unloadings.
Base | - polymorphic type indicating base class |
class_name | - the name of the concrete plugin class we want to instantiate |
|
inline |
Creates an instance of an object of given class name with ancestor class Base This version takes a specific library to make explicit the factory being used This version should not be used as the plugin system cannot do automated safe loading/unloadings.
Base | - polymorphic type indicating Base class |
class_name | - name of class for which we want to create instance |
library_path | - the fully qualified path to the runtime library |
|
inline |
Indicates if a class has been loaded and can be instantiated.
Base | - polymorphic type indicating Base class |
class_name | - name of class that is be inquired about |
bool class_loader::MultiLibraryClassLoader::isLibraryAvailable | ( | const std::string & | library_path | ) | const |
Indicates if a library has been loaded into memory.
library_path | - The full qualified path to the runtime library |
|
inline |
Gets a list of all classes that are loaded by the class loader.
Base | - polymorphic type indicating Base class |
|
inline |
Gets a list of all classes loaded for a particular library.
Base | - polymorphic type indicating Base class |
std::vector<std::string> class_loader::MultiLibraryClassLoader::getRegisteredLibraries | ( | ) | const |
Gets a list of all libraries opened by this class loader.
void class_loader::MultiLibraryClassLoader::loadLibrary | ( | const std::string & | library_path | ) |
Loads a library into memory for this class loader.
library_path | - the fully qualified path to the runtime library |
int class_loader::MultiLibraryClassLoader::unloadLibrary | ( | const std::string & | library_path | ) |
Unloads a library for this class loader.
library_path | - the fully qualified path to the runtime library |