クラス RTC::ModuleManager

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

#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::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)
 初期化関数シンボルを生成する

Protected 型

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

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::Propertiesm_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

説明

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

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

から:
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 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 追加モジュール検索対象パスリスト
void RTC::ModuleManager::addNewFile ( const std::string &  fpath,
coil::vstring modules 
) [protected]

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

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指定を禁止する。

参照先 m_downloadAllowed.

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

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

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

引数:
filename 存在確認対象ファイル名
戻り値:
ファイル存在確認結果(ファイルあり:true,なし:false)
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]

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

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

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

参照先 m_loadPath.

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 (  ) 

全モジュールのアンロード

全てのロード済みモジュールをアンロードする。


変数

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

参照元 allowAbsolutePath(), と disallowAbsolutePath().

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

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

参照元 allowModuleDownload(), と disallowModuleDownload().

std::string RTC::ModuleManager::m_initFuncPrefix [protected]

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

std::string RTC::ModuleManager::m_initFuncSuffix [protected]

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

モジュール・ロード・パス・リスト

参照元 getLoadPath().

vProperties RTC::ModuleManager::m_modprofs [protected]

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

Module Manager プロパティ.

ロガーストリーム

OpenRTM-aistに対してFri Oct 28 18:31:16 2016に生成されました。  doxygen 1.6.3