クラス RTC::ModuleManager

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

#include <ModuleManager.h>

すべてのメンバ一覧

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 変数

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
 初期実行関数プリフィックス

構成

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


説明

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

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

から:
0.4.0

型定義

typedef void(* RTC::ModuleManager::ModuleInitFunc)(Manager *)

typedef std::vector<std::string> RTC::ModuleManager::StringVector [protected]

typedef StringVector::iterator RTC::ModuleManager::StringVectorItr [protected]

typedef StringVector::const_iterator RTC::ModuleManager::StringVectorConstItr [protected]

typedef std::vector<DLLEntity> RTC::ModuleManager::DllMap [protected]

typedef DllMap::iterator RTC::ModuleManager::DllMapItr [protected]

typedef DllMap::const_iterator RTC::ModuleManager::DllMapConstItr [protected]


コンストラクタとデストラクタ

RTC::ModuleManager::ModuleManager ( coil::Properties &  prop  ) 

コンストラクタ

コンストラクタ。 設定された Property オブジェクト内の情報を基に初期化を実行する。

引数:
prop 初期化用プロパティ

RTC::ModuleManager::~ModuleManager ( void   ) 

デストラクタ


関数

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.allowAbsolutePath が 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::unload ( const std::string &  file_name  ) 

モジュールのアンロード

指定したロード済みモジュールをクローズし、アンロードする。

引数:
file_name アンロード対象モジュール名

void RTC::ModuleManager::unloadAll (  ) 

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

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

void* RTC::ModuleManager::symbol ( const std::string &  file_name,
const std::string &  func_name 
) throw (ModuleNotFound, SymbolNotFound)

モジュールのシンボルの参照

void RTC::ModuleManager::setLoadpath ( const std::vector< std::string > &  load_path  ) 

モジュールロードパスを指定する

モジュールロード時に対象モジュールを検索するパスを指定する。

引数:
load_path モジュール検索対象パスリスト

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

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

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

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

void RTC::ModuleManager::addLoadpath ( const std::vector< std::string > &  load_path  ) 

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

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

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

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

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

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

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

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

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

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

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

void RTC::ModuleManager::allowAbsolutePath (  )  [inline]

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

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

void RTC::ModuleManager::disallowAbsolutePath (  )  [inline]

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

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

void RTC::ModuleManager::allowModuleDownload (  )  [inline]

モジュールのURL指定許可

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

void RTC::ModuleManager::disallowModuleDownload (  )  [inline]

モジュールのURL指定禁止

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

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

LoadPath からのファイルの検索

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

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

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

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

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

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

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

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

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

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


変数

coil::Properties& RTC::ModuleManager::m_properties [protected]

Module Manager プロパティ

ObjectManager<const char*, DLLEntity, DllPred> RTC::ModuleManager::m_modules [protected]

StringVector RTC::ModuleManager::m_loadPath [protected]

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

StringVector RTC::ModuleManager::m_configPath [protected]

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

bool RTC::ModuleManager::m_downloadAllowed [protected]

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

bool RTC::ModuleManager::m_absoluteAllowed [protected]

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

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

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

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

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


OpenRTMに対してSun May 24 14:08:26 2009に生成されました。  doxygen 1.5.3