モジュールマネージャクラス [詳細]
#include <ModuleManager.h>
| 構成 | |
| struct | DLLEntity | 
| DLL管理用構造体.  [詳細] | |
| class | DllPred | 
| ロード済みモジュールリスト  [詳細] | |
| struct | Error | 
| ファイル・オープン失敗例外処理用構造体  [詳細] | |
| struct | FileNotFound | 
| 指定ファイル不明例外処理用構造体  [詳細] | |
| struct | InvalidArguments | 
| 指定引数不正時例外処理用構造体  [詳細] | |
| struct | InvalidOperation | 
| 指定操作不正時例外処理用構造体  [詳細] | |
| struct | ModuleNotFound | 
| 指定モジュール不明例外処理用構造体  [詳細] | |
| struct | NotAllowedOperation | 
| 指定操作禁止時例外処理用構造体  [詳細] | |
| struct | NotFound | 
| 未実装部,指定モジュール不明例外処理用構造体  [詳細] | |
| struct | SymbolNotFound | 
| 指定シンボル不明例外処理用構造体  [詳細] | |
| class | UnloadPred | 
| モジュールアンロードファンクタ  [詳細] | |
| Public 型 | |
| typedef void(* | ModuleInitFunc )(Manager *) | 
| Public メソッド | |
| ModuleManager (coil::Properties &prop) | |
| コンストラクタ | |
| ~ModuleManager (void) | |
| デストラクタ | |
| std::string | load (const std::string &file_name) | 
| モジュールのロード | |
| std::string | load (const std::string &file_name, const std::string &init_func) | 
| モジュールのロード、初期化 | |
| void | unload (const std::string &file_name) | 
| モジュールのアンロード | |
| void | unloadAll () | 
| 全モジュールのアンロード | |
| void * | symbol (const std::string &file_name, const std::string &func_name) throw (ModuleNotFound, SymbolNotFound) | 
| モジュールのシンボルの参照 | |
| void | setLoadpath (const std::vector< std::string > &load_path) | 
| モジュールロードパスを指定する | |
| std::vector< std::string > | getLoadPath () | 
| モジュールロードパスを取得する | |
| void | addLoadpath (const std::vector< std::string > &load_path) | 
| モジュールロードパスを追加する | |
| std::vector< coil::Properties > | getLoadedModules () | 
| ロード済みのモジュールリストを取得する | |
| std::vector< coil::Properties > | getLoadableModules () | 
| ロード可能モジュールリストを取得する | |
| void | allowAbsolutePath () | 
| モジュールの絶対パス指定許可 | |
| void | disallowAbsolutePath () | 
| モジュールの絶対パス指定禁止 | |
| void | allowModuleDownload () | 
| モジュールのURL指定許可 | |
| void | disallowModuleDownload () | 
| モジュールのURL指定禁止 | |
| std::string | findFile (const std::string &fname, const std::vector< std::string > &load_path) | 
| LoadPath からのファイルの検索. | |
| bool | fileExist (const std::string &filename) | 
| ファイルが存在するかどうかのチェック | |
| std::string | getInitFuncName (const std::string &file_path) | 
| 初期化関数シンボルを生成する | |
| Protected 型 | |
| 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 メソッド | |
| void | removeInvalidModules () | 
| 無効なモジュールプロファイルを削除する | |
| void | getModuleList (const std::string &lang, coil::vstring &modules) | 
| 指定言語におけるロードパス上のローダブルなファイルリストを返す | |
| void | addNewFile (const std::string &fpath, coil::vstring &modules) | 
| キャッシュに無いパスだけmodulesに追加する | |
| void | getModuleProfiles (const std::string &lang, const coil::vstring &modules, vProperties &modprops) | 
| 指定言語、ファイルリストからモジュールのプロパティを返す | |
| Protected 変数 | |
| Logger | rtclog | 
| ロガーストリーム | |
| coil::Properties & | m_properties | 
| Module Manager プロパティ. | |
| ObjectManager< const char *, DLLEntity, DllPred > | m_modules | 
| ロード済みモジュールリスト | |
| StringVector | m_loadPath | 
| モジュール・ロード・パス・リスト | |
| StringVector | m_configPath | 
| コンフィギュレーション・パス・リスト | |
| bool | m_downloadAllowed | 
| モジュールURL指定許可フラグ | |
| bool | m_absoluteAllowed | 
| モジュール絶対パス指定許可フラグ | |
| std::string | m_initFuncSuffix | 
| 初期実行関数サフィックス | |
| std::string | m_initFuncPrefix | 
| 初期実行関数プリフィックス | |
| vProperties | m_modprofs | 
モジュールマネージャクラス
モジュールのロード、アンロードなどを管理するクラス
| 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 | ) | 
コンストラクタ
コンストラクタ。 設定された Property オブジェクト内の情報を基に初期化を実行する。
| prop | 初期化用プロパティ | 
| RTC::ModuleManager::~ModuleManager | ( | void | ) | 
デストラクタ
| void RTC::ModuleManager::addLoadpath | ( | const std::vector< std::string > & | load_path | ) | 
モジュールロードパスを追加する
指定されたパスリストを検索対象パスリストに追加する。
| void RTC::ModuleManager::addNewFile | ( | const std::string & | fpath, | |
| coil::vstring & | modules | |||
| ) |  [protected] | 
キャッシュに無いパスだけmodulesに追加する
| void RTC::ModuleManager::allowAbsolutePath | ( | ) |  [inline] | 
| void RTC::ModuleManager::allowModuleDownload | ( | ) |  [inline] | 
モジュールのURL指定許可
ロード対象モジュールのURL指定を許可する。 本設定が許可されている場合、モジュールをダウンロードしてロードすることが 許可される。
参照先 m_downloadAllowed.
| void RTC::ModuleManager::disallowAbsolutePath | ( | ) |  [inline] | 
| void RTC::ModuleManager::disallowModuleDownload | ( | ) |  [inline] | 
| bool RTC::ModuleManager::fileExist | ( | const std::string & | filename | ) | 
ファイルが存在するかどうかのチェック
指定されたファイルが存在するか確認する。
| filename | 存在確認対象ファイル名 | 
| std::string RTC::ModuleManager::findFile | ( | const std::string & | fname, | |
| const std::vector< std::string > & | load_path | |||
| ) | 
LoadPath からのファイルの検索.
指定されたパス内に、指定されたファイルが存在するか確認する。
| fname | 検索対象ファイル名 | |
| load_path | 検索先パスリスト | 
| std::string RTC::ModuleManager::getInitFuncName | ( | const std::string & | file_path | ) | 
初期化関数シンボルを生成する
初期化関数の名称を組み立てる。
| file_path | 初期化対象モジュール名称 | 
| std::vector<coil::Properties> RTC::ModuleManager::getLoadableModules | ( | ) | 
ロード可能モジュールリストを取得する
ロード可能なモジュールのリストを取得する。 (未実装)
| std::vector<coil::Properties> RTC::ModuleManager::getLoadedModules | ( | ) | 
ロード済みのモジュールリストを取得する
既にロード済みのモジュールリストを取得する。
| std::vector<std::string> RTC::ModuleManager::getLoadPath | ( | ) |  [inline] | 
| void RTC::ModuleManager::getModuleList | ( | const std::string & | lang, | |
| coil::vstring & | modules | |||
| ) |  [protected] | 
指定言語におけるロードパス上のローダブルなファイルリストを返す
| void RTC::ModuleManager::getModuleProfiles | ( | const std::string & | lang, | |
| const coil::vstring & | modules, | |||
| vProperties & | modprops | |||
| ) |  [protected] | 
指定言語、ファイルリストからモジュールのプロパティを返す
| std::string RTC::ModuleManager::load | ( | const std::string & | file_name, | |
| const std::string & | init_func | |||
| ) | 
モジュールのロード、初期化
指定したファイルをDLL もしくは共有ライブラリとしてロードするとともに、 指定した初期化用オペレーションを実行する。
| file_name | ロード対象モジュール名 | |
| init_func | 初期化処理用オペレーション | 
| std::string RTC::ModuleManager::load | ( | const std::string & | file_name | ) | 
モジュールのロード
file_name をDLL もしくは共有ライブラリとしてロードする。 file_name は既定のロードパス (manager.modules.load_path) に対する 相対パスで指定する。
Property manager.modules.abs_path_allowed が yes の場合、 ロードするモジュールを絶対パスで指定することができる。
 Property manager.modules.download_allowed が yes の場合、 ロードするモジュールをURLで指定することができる。
file_name は絶対パスで指定することができる。 manager.modules.abs_path_allowd が no の場合、 既定のモジュールロードパスから、file_name のモジュールを探しロードする。
| file_name | ロード対象モジュール名 | 
| void RTC::ModuleManager::removeInvalidModules | ( | ) |  [protected] | 
無効なモジュールプロファイルを削除する
| void RTC::ModuleManager::setLoadpath | ( | const std::vector< std::string > & | load_path | ) | 
モジュールロードパスを指定する
モジュールロード時に対象モジュールを検索するパスを指定する。
| load_path | モジュール検索対象パスリスト | 
| void* RTC::ModuleManager::symbol | ( | const std::string & | file_name, | |
| const std::string & | func_name | |||
| ) | throw (ModuleNotFound, SymbolNotFound) | 
モジュールのシンボルの参照
| void RTC::ModuleManager::unload | ( | const std::string & | file_name | ) | 
モジュールのアンロード
指定したロード済みモジュールをクローズし、アンロードする。
| file_name | アンロード対象モジュール名 | 
| void RTC::ModuleManager::unloadAll | ( | ) | 
全モジュールのアンロード
全てのロード済みモジュールをアンロードする。
| bool RTC::ModuleManager::m_absoluteAllowed  [protected] | 
モジュール絶対パス指定許可フラグ
| StringVector RTC::ModuleManager::m_configPath  [protected] | 
コンフィギュレーション・パス・リスト
| bool RTC::ModuleManager::m_downloadAllowed  [protected] | 
モジュールURL指定許可フラグ
| std::string RTC::ModuleManager::m_initFuncPrefix  [protected] | 
初期実行関数プリフィックス
| std::string RTC::ModuleManager::m_initFuncSuffix  [protected] | 
初期実行関数サフィックス
| StringVector RTC::ModuleManager::m_loadPath  [protected] | 
モジュール・ロード・パス・リスト
参照元 getLoadPath().
| vProperties RTC::ModuleManager::m_modprofs  [protected] | 
| ObjectManager<const char*, DLLEntity, DllPred> RTC::ModuleManager::m_modules  [protected] | 
ロード済みモジュールリスト
| coil::Properties& RTC::ModuleManager::m_properties  [protected] | 
Module Manager プロパティ.
| Logger RTC::ModuleManager::rtclog  [protected] | 
ロガーストリーム
 1.6.3
 1.6.3