ModuleManager class. More...
#include <ModuleManager.h>
Classes | |
| struct | DLLEntity | 
| Structure for DLL management.  More... | |
| class | DllPred | 
| Module list that has already loaded.  More... | |
| struct | Error | 
| Structure for exception handling when file open is failed.  More... | |
| struct | FileNotFound | 
| Structure for exception handling when specified file cannot be found.  More... | |
| struct | InvalidArguments | 
| Structure for exception handling when specified argument is invalid.  More... | |
| struct | InvalidOperation | 
| Structure for exception handling when specified operation is invalid.  More... | |
| struct | ModuleNotFound | 
| Structure for exception handling when specified module cannot be found.  More... | |
| struct | NotAllowedOperation | 
| Structure for exception handling when specified operation cannot be allowed.  More... | |
| struct | NotFound | 
| Structure for exception handling of unimplemented part and specified module missing.  More... | |
| struct | SymbolNotFound | 
| Structure for exception handling when specified symbol cannot be found.  More... | |
| class | UnloadPred | 
| Module unloading functor.  More... | |
Public Types | |
| typedef void(* | ModuleInitFunc )(Manager *) | 
Public Member Functions | |
| ModuleManager (coil::Properties &prop) | |
| Constructor.   | |
| ~ModuleManager (void) | |
| Destructor.   | |
| std::string | load (const std::string &file_name) | 
| Load the module.   | |
| std::string | load (const std::string &file_name, const std::string &init_func) | 
| Load and intialize the module.   | |
| void | unload (const std::string &file_name) | 
| Unload the module.   | |
| void | unloadAll () | 
| Unload all modules.   | |
| void * | symbol (const std::string &file_name, const std::string &func_name) throw (ModuleNotFound, SymbolNotFound) | 
| Refer to the symbol of the module.   | |
| void | setLoadpath (const std::vector< std::string > &load_path) | 
| Set the module load path.   | |
| std::vector< std::string > | getLoadPath () | 
| Get the module load path.   | |
| void | addLoadpath (const std::vector< std::string > &load_path) | 
| Add the module load path.   | |
| std::vector< coil::Properties > | getLoadedModules () | 
| Get the module list that has been loaded.   | |
| std::vector< coil::Properties > | getLoadableModules () | 
| Get the loadable module list.   | |
| void | allowAbsolutePath () | 
| Allow absolute path when specify module path.   | |
| void | disallowAbsolutePath () | 
| Disallow absolute path when specify module path.   | |
| void | allowModuleDownload () | 
| Allow URL when specify module path.   | |
| void | disallowModuleDownload () | 
| Disallow URL when specify module path.   | |
| std::string | findFile (const std::string &fname, const std::vector< std::string > &load_path) | 
| Search the file from the LoadPath.   | |
| bool | fileExist (const std::string &filename) | 
| Check whether the file exists.   | |
| std::string | getInitFuncName (const std::string &file_path) | 
| Create initialization function symbol.   | |
Protected Types | |
| typedef std::vector< std::string > | StringVector | 
| typedef StringVector::iterator | StringVectorItr | 
| typedef  StringVector::const_iterator  | StringVectorConstItr | 
| typedef std::vector< DLLEntity > | DllMap | 
| typedef DllMap::iterator | DllMapItr | 
| typedef DllMap::const_iterator | DllMapConstItr | 
Protected Member Functions | |
| void | removeInvalidModules () | 
| Removing incalid module profiles.   | |
| void | getModuleList (const std::string &lang, coil::vstring &modules) | 
| Getting loadable file list on the loadpath for given language.   | |
| void | addNewFile (const std::string &fpath, coil::vstring &modules) | 
| Adding file path not existing cache.   | |
| void | getModuleProfiles (const std::string &lang, const coil::vstring &modules, vProperties &modprops) | 
| Getting module properties from given language and file list.   | |
Protected Attributes | |
| Logger | rtclog | 
| Logger stream.   | |
| coil::Properties & | m_properties | 
| Module Manager properties.   | |
| ObjectManager< const char  *, DLLEntity, DllPred >  | m_modules | 
| Module list that has already loaded.   | |
| StringVector | m_loadPath | 
| Module load path list.   | |
| StringVector | m_configPath | 
| Configuration path list.   | |
| bool | m_downloadAllowed | 
| Flag of URL when specify module for the load.   | |
| bool | m_absoluteAllowed | 
| Flag of absolute path when specify module for the load.   | |
| std::string | m_initFuncSuffix | 
| Initial execution function suffix.   | |
| std::string | m_initFuncPrefix | 
| Initial execution function prefix.   | |
| vProperties | m_modprofs | 
ModuleManager class.
This is a class to manage for loading and unloading modules.
typedef std::vector<DLLEntity> RTC::ModuleManager::DllMap [protected] | 
        
typedef DllMap::const_iterator RTC::ModuleManager::DllMapConstItr [protected] | 
        
typedef DllMap::iterator RTC::ModuleManager::DllMapItr [protected] | 
        
| typedef void(* RTC::ModuleManager::ModuleInitFunc)(Manager *) | 
typedef std::vector<std::string> RTC::ModuleManager::StringVector [protected] | 
        
typedef StringVector::const_iterator RTC::ModuleManager::StringVectorConstItr [protected] | 
        
typedef StringVector::iterator RTC::ModuleManager::StringVectorItr [protected] | 
        
| RTC::ModuleManager::ModuleManager | ( | coil::Properties & | prop | ) | 
Constructor.
Constructor. Initialize based on information in the set Property object.
| prop | Properties for initialization | 
| RTC::ModuleManager::~ModuleManager | ( | void | ) | 
Destructor.
| void RTC::ModuleManager::addLoadpath | ( | const std::vector< std::string > & | load_path | ) | 
Add the module load path.
Add specified path list to search path list.
| void RTC::ModuleManager::addNewFile | ( | const std::string & | fpath, | |
| coil::vstring & | modules | |||
| ) |  [protected] | 
        
Adding file path not existing cache.
| void RTC::ModuleManager::allowAbsolutePath | ( | ) |  [inline] | 
        
Allow absolute path when specify module path.
Set to allow the absolute path when specify the module for the load.
References m_absoluteAllowed.
| void RTC::ModuleManager::allowModuleDownload | ( | ) |  [inline] | 
        
Allow URL when specify module path.
Allow URL when specify module for the load. When this setup is allowed, downloading and loading the module will be allowed.
References m_downloadAllowed.
| void RTC::ModuleManager::disallowAbsolutePath | ( | ) |  [inline] | 
        
Disallow absolute path when specify module path.
Set to disallow the absolute path when specify the module for the load.
References m_absoluteAllowed.
| void RTC::ModuleManager::disallowModuleDownload | ( | ) |  [inline] | 
        
Disallow URL when specify module path.
Disallow URL when specify module for the load.
References m_downloadAllowed.
| bool RTC::ModuleManager::fileExist | ( | const std::string & | filename | ) | 
Check whether the file exists.
Check whether the specified file exists.
| filename | Name of file existence for checking | 
| std::string RTC::ModuleManager::findFile | ( | const std::string & | fname, | |
| const std::vector< std::string > & | load_path | |||
| ) | 
Search the file from the LoadPath.
Check whether the specified file exists in the specified path.
| fname | Target file name of the search | |
| load_path | Path list for the search | 
| std::string RTC::ModuleManager::getInitFuncName | ( | const std::string & | file_path | ) | 
Create initialization function symbol.
Assemble names of the initialization functions.
| file_path | Name of module for initialization | 
| std::vector<coil::Properties> RTC::ModuleManager::getLoadableModules | ( | ) | 
Get the loadable module list.
Get the loadable module list (not implemented).
| std::vector<coil::Properties> RTC::ModuleManager::getLoadedModules | ( | ) | 
Get the module list that has been loaded.
Get the module list that has been loaded.
| std::vector<std::string> RTC::ModuleManager::getLoadPath | ( | ) |  [inline] | 
        
Get the module load path.
Get the search path of the set module.
References m_loadPath.
| void RTC::ModuleManager::getModuleList | ( | const std::string & | lang, | |
| coil::vstring & | modules | |||
| ) |  [protected] | 
        
Getting loadable file list on the loadpath for given language.
| void RTC::ModuleManager::getModuleProfiles | ( | const std::string & | lang, | |
| const coil::vstring & | modules, | |||
| vProperties & | modprops | |||
| ) |  [protected] | 
        
Getting module properties from given language and file list.
| std::string RTC::ModuleManager::load | ( | const std::string & | file_name, | |
| const std::string & | init_func | |||
| ) | 
Load and intialize the module.
Load the specified file as DLL or a shared library, and execute operation for specified initialization.
| file_name | The target module name for the loading | |
| init_func | Operation for initialization | 
| std::string RTC::ModuleManager::load | ( | const std::string & | file_name | ) | 
Load the module.
Load file_name as DLL or a shared liblary. The file_name is specified by the relative path to default load path (manager.modules.load_path).
If Property manager.modules.abs_path_allowed is yes, the load module can be specified by the absolute path.
 If Property manager.modules.download_allowed is yes, the load module can be specified with URL.
The file_name can be specified by the absolute path. If manager.modules.allowAbsolutePath is no, module of file_name will be searched from the default module load path and loaded.
| file_name | The target module name for the loading | 
| void RTC::ModuleManager::removeInvalidModules | ( | ) |  [protected] | 
        
Removing incalid module profiles.
| void RTC::ModuleManager::setLoadpath | ( | const std::vector< std::string > & | load_path | ) | 
Set the module load path.
Specify searching path to find the target module when loading module.
| load_path | List of module search path | 
| void* RTC::ModuleManager::symbol | ( | const std::string & | file_name, | |
| const std::string & | func_name | |||
| ) | throw (ModuleNotFound, SymbolNotFound) | 
Refer to the symbol of the module.
| void RTC::ModuleManager::unload | ( | const std::string & | file_name | ) | 
Unload the module.
Close and unload the specified module that has been loaded.
| file_name | Name of module for the unloading | 
| void RTC::ModuleManager::unloadAll | ( | ) | 
Unload all modules.
Unload all modules that have been loaded.
bool RTC::ModuleManager::m_absoluteAllowed [protected] | 
        
Flag of absolute path when specify module for the load.
Referenced by allowAbsolutePath(), and disallowAbsolutePath().
StringVector RTC::ModuleManager::m_configPath [protected] | 
        
Configuration path list.
bool RTC::ModuleManager::m_downloadAllowed [protected] | 
        
Flag of URL when specify module for the load.
Referenced by allowModuleDownload(), and disallowModuleDownload().
std::string RTC::ModuleManager::m_initFuncPrefix [protected] | 
        
Initial execution function prefix.
std::string RTC::ModuleManager::m_initFuncSuffix [protected] | 
        
Initial execution function suffix.
StringVector RTC::ModuleManager::m_loadPath [protected] | 
        
Module load path list.
Referenced by getLoadPath().
vProperties RTC::ModuleManager::m_modprofs [protected] | 
        
ObjectManager<const char*, DLLEntity, DllPred> RTC::ModuleManager::m_modules [protected] | 
        
Module list that has already loaded.
coil::Properties& RTC::ModuleManager::m_properties [protected] | 
        
Module Manager properties.
Logger RTC::ModuleManager::rtclog [protected] | 
        
Logger stream.
 1.6.3