OpenRTM-aist  1.2.1
クラス | 公開型 | 公開メンバ関数 | 限定公開型 | 限定公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
RTC::ModuleManager クラス

モジュールマネージャクラス [詳解]

#include <ModuleManager.h>

RTC::ModuleManager 連携図
Collaboration graph
[凡例]

クラス

struct  DLLEntity
 DLL管理用構造体 [詳解]
 
class  DllPred
 ロード済みモジュールリスト [詳解]
 
struct  Error
 ファイル・オープン失敗例外処理用構造体 [詳解]
 
struct  FileNotFound
 指定ファイル不明例外処理用構造体 [詳解]
 
struct  InvalidArguments
 指定引数不正時例外処理用構造体 [詳解]
 
struct  InvalidOperation
 指定操作不正時例外処理用構造体 [詳解]
 
struct  ModuleNotFound
 指定モジュール不明例外処理用構造体 [詳解]
 
struct  NotAllowedOperation
 指定操作禁止時例外処理用構造体 [詳解]
 
struct  NotFound
 未実装部,指定モジュール不明例外処理用構造体 [詳解]
 
struct  SymbolNotFound
 指定シンボル不明例外処理用構造体 [詳解]
 
class  UnloadPred
 モジュールアンロードファンクタ [詳解]
 

公開型

typedef void(* ModuleInitFunc) (Manager *)
 

公開メンバ関数

 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::PropertiesgetLoadedModules ()
 ロード済みのモジュールリストを取得する [詳解]
 
std::vector< coil::PropertiesgetLoadableModules ()
 ロード可能モジュールリストを取得する [詳解]
 
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)
 初期化関数シンボルを生成する [詳解]
 

限定公開型

typedef std::vector< std::string > StringVector
 
typedef StringVector::iterator StringVectorItr
 
typedef StringVector::const_iterator StringVectorConstItr
 
typedef std::vector< DLLEntityDllMap
 
typedef DllMap::iterator DllMapItr
 
typedef DllMap::const_iterator DllMapConstItr
 

限定公開メンバ関数

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)
 指定言語、ファイルリストからモジュールのプロパティを返す [詳解]
 

限定公開変数類

Logger rtclog
 ロガーストリーム [詳解]
 
coil::Propertiesm_properties
 Module Manager プロパティ [詳解]
 
ObjectManager< const char *, DLLEntity, DllPredm_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
 
coil::vstring m_loadfailmods
 

詳解

モジュールマネージャクラス

モジュールのロード、アンロードなどを管理するクラス

から
0.4.0

型定義メンバ詳解

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)

モジュールロードパスを追加する

指定されたパスリストを検索対象パスリストに追加する。

戻り値
load_path 追加モジュール検索対象パスリスト

参照元 getLoadPath().

void RTC::ModuleManager::addNewFile ( const std::string &  fpath,
coil::vstring modules 
)
protected

キャッシュに無いパスだけmodulesに追加する

参照元 disallowModuleDownload().

void RTC::ModuleManager::allowAbsolutePath ( )
inline

モジュールの絶対パス指定許可

ロード対象モジュールの絶対パス指定を許可するように設定する。

参照先 m_absoluteAllowed.

void RTC::ModuleManager::allowModuleDownload ( )
inline

モジュールのURL指定許可

ロード対象モジュールのURL指定を許可する。 本設定が許可されている場合、モジュールをダウンロードしてロードすることが 許可される。

参照先 m_downloadAllowed.

void RTC::ModuleManager::disallowAbsolutePath ( )
inline

モジュールの絶対パス指定禁止

ロード対象モジュールの絶対パス指定を禁止するように設定する。

参照先 m_absoluteAllowed.

void RTC::ModuleManager::disallowModuleDownload ( )
inline

モジュールのURL指定禁止

ロード対象モジュールのURL指定を禁止する。

参照先 addNewFile(), fileExist(), findFile(), getInitFuncName(), getModuleList(), getModuleProfiles(), m_downloadAllowed, removeInvalidModules().

bool RTC::ModuleManager::fileExist ( const std::string &  filename)

ファイルが存在するかどうかのチェック

指定されたファイルが存在するか確認する。

引数
filename存在確認対象ファイル名
戻り値
ファイル存在確認結果(ファイルあり:true,なし:false)

参照元 disallowModuleDownload().

std::string RTC::ModuleManager::findFile ( const std::string &  fname,
const std::vector< std::string > &  load_path 
)

LoadPath からのファイルの検索

指定されたパス内に、指定されたファイルが存在するか確認する。

引数
fname検索対象ファイル名
load_path検索先パスリスト
戻り値
検索されたファイル名

参照元 disallowModuleDownload().

std::string RTC::ModuleManager::getInitFuncName ( const std::string &  file_path)

初期化関数シンボルを生成する

初期化関数の名称を組み立てる。

引数
file_path初期化対象モジュール名称
戻り値
初期化関数名称組み立て結果

参照元 disallowModuleDownload().

std::vector<coil::Properties> RTC::ModuleManager::getLoadableModules ( )

ロード可能モジュールリストを取得する

ロード可能なモジュールのリストを取得する。 (未実装)

戻り値
ロード可能モジュールリスト

参照元 getLoadPath().

std::vector<coil::Properties> RTC::ModuleManager::getLoadedModules ( )

ロード済みのモジュールリストを取得する

既にロード済みのモジュールリストを取得する。

戻り値
ロード済みモジュールリスト

参照元 getLoadPath().

std::vector<std::string> RTC::ModuleManager::getLoadPath ( )
inline

モジュールロードパスを取得する

設定されているモジュールを検索対象パスリストを取得する。

戻り値
load_path モジュール検索対象パスリスト

参照先 addLoadpath(), getLoadableModules(), getLoadedModules(), m_loadPath.

void RTC::ModuleManager::getModuleList ( const std::string &  lang,
coil::vstring modules 
)
protected

指定言語におけるロードパス上のローダブルなファイルリストを返す

参照元 disallowModuleDownload().

void RTC::ModuleManager::getModuleProfiles ( const std::string &  lang,
const coil::vstring modules,
vProperties &  modprops 
)
protected

指定言語、ファイルリストからモジュールのプロパティを返す

参照元 disallowModuleDownload().

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ロード対象モジュール名
戻り値
指定したロード対象モジュール名
std::string RTC::ModuleManager::load ( const std::string &  file_name,
const std::string &  init_func 
)

モジュールのロード、初期化

指定したファイルをDLL もしくは共有ライブラリとしてロードするとともに、 指定した初期化用オペレーションを実行する。

引数
file_nameロード対象モジュール名
init_func初期化処理用オペレーション
戻り値
指定したロード対象モジュール名
void RTC::ModuleManager::removeInvalidModules ( )
protected

無効なモジュールプロファイルを削除する

参照元 disallowModuleDownload().

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

モジュール絶対パス指定許可フラグ

参照元 allowAbsolutePath(), disallowAbsolutePath().

StringVector RTC::ModuleManager::m_configPath
protected

コンフィギュレーション・パス・リスト

bool RTC::ModuleManager::m_downloadAllowed
protected

モジュールURL指定許可フラグ

参照元 allowModuleDownload(), disallowModuleDownload().

std::string RTC::ModuleManager::m_initFuncPrefix
protected

初期実行関数プリフィックス

std::string RTC::ModuleManager::m_initFuncSuffix
protected

初期実行関数サフィックス

coil::vstring RTC::ModuleManager::m_loadfailmods
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

ロガーストリーム


このクラス詳解は次のファイルから抽出されました: