public class ModuleManager
extends java.lang.Object
モジュールのロード、アンロードなどを管理するクラス
修飾子とタイプ | フィールドと説明 |
---|---|
protected boolean |
m_absoluteAllowed
モジュール絶対パス指定許可フラグ
|
protected java.util.Vector<java.lang.String> |
m_configPath
コンフィギュレーション・パス・リスト
|
protected boolean |
m_downloadAllowed
モジュールURL指定許可フラグ
|
protected java.lang.String |
m_initFuncPrefix
初期実行関数プリフィックス
|
protected java.lang.String |
m_initFuncSuffix
初期実行関数サフィックス
|
protected java.util.Vector<java.lang.String> |
m_loadPath
モジュール・ロード・パス・リスト
|
protected java.util.Map<java.lang.String,jp.go.aist.rtm.RTC.ModuleManager.DLLEntity> |
m_modules
ロード済みモジュール
|
protected Properties |
m_properties
Module Manager プロパティ
|
コンストラクタと説明 |
---|
ModuleManager(Properties properties)
コンストラクタ。
|
修飾子とタイプ | メソッドと説明 |
---|---|
void |
addLoadPath(java.util.Vector<java.lang.String> loadPath)
モジュールロードパスを追加する。
|
void |
allowAbsolutePath()
モジュールの絶対パス指定許可。
|
void |
allowModuleDownload()
モジュールのURL指定許可。
|
void |
destruct()
デストラクタ。
|
void |
disallowAbsolutePath()
モジュールの絶対パス指定禁止
ロード対象モジュールの絶対パス指定を禁止するように設定する。
|
void |
disallowModuleDownload()
モジュールのURL指定禁止
ロード対象モジュールのURL指定を禁止する。
|
protected void |
finalize()
ファイナライザ。
|
java.lang.String |
getInitFuncName(java.lang.String class_path)
初期化関数シンボルを生成する
初期化関数の名称を組み立てる。
|
java.util.Vector<Properties> |
getLoadableModules()
ロード可能モジュールリストを取得する
ロード可能なモジュールのリストを取得する。
|
java.util.Vector<Properties> |
getLoadedModules()
ロード済みのモジュールリストを取得する
既にロード済みのモジュールリストを取得する。
|
java.util.Vector<java.lang.String> |
getLoadPath()
モジュールロードパスを取得する。
|
java.lang.String |
load(java.lang.String moduleName)
モジュールのロード。
|
java.lang.String |
load(java.lang.String moduleName,
java.lang.String methodName)
モジュールのアンロード。
|
void |
setLoadpath(java.util.Vector<java.lang.String> loadPath)
モジュールロードパスを指定する。
|
java.lang.reflect.Method |
symbol(java.lang.String class_name,
java.lang.String method_name)
モジュールのメソッドの参照。
|
void |
unload(java.lang.String moduleName)
モジュールのアンロード
指定したロード済みモジュールをクローズし、アンロードする。
|
void |
unloadAll()
全モジュールのアンロード
全てのロード済みモジュールをアンロードする。
|
protected Properties m_properties
protected java.util.Map<java.lang.String,jp.go.aist.rtm.RTC.ModuleManager.DLLEntity> m_modules
protected java.util.Vector<java.lang.String> m_loadPath
protected java.util.Vector<java.lang.String> m_configPath
protected boolean m_downloadAllowed
protected boolean m_absoluteAllowed
protected java.lang.String m_initFuncSuffix
protected java.lang.String m_initFuncPrefix
public ModuleManager(Properties properties)
指定されたPropertiesオブジェクト内の情報に基づいて 初期化を行います。
properties
- 初期化情報を持つPropertiesオブジェクト
public void destruct()
ロード済みモジュールのアンロードなど、 リソースの解放処理を行います。 当該ModuleManagerオブジェクトの使用を終えた際に、 明示的に呼び出してください。
protected void finalize() throws java.lang.Throwable
finalize
クラス内 java.lang.Object
java.lang.Throwable
public java.lang.String load(java.lang.String moduleName) throws java.lang.Exception
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_allowed が no の場合、
既定のモジュールロードパスから、file_name のモジュールを探しロードする。
moduleName
- ロード対象モジュール名
java.lang.Exception
public java.lang.String load(java.lang.String moduleName, java.lang.String methodName) throws java.lang.Exception
指定されたモジュールをロードします。初期化メソッドを指定した場合
には、 * ロード時にそのメソッドが呼び出されます。
これにより、モジュール初期化を行えます。>
コンストラクタで指定した初期化情報の 'manager.modules.abs_path_allowed'
が 'yes' の場合は、className引数は、ロードモジュールのフルクラス名
として解釈されます。
'no' が指定されている場合は、className引数はロードモジュールの
シンプルクラス名として解釈され、
規定のモジュールロードパス以下からモジュールが検索されます。
コンストラクタで指定した初期化情報の 'manager.modules.download_allowed'
が 'yes' の場合は、
className引数は、ロードモジュールのURLとして解釈されます。(未実装)
moduleName
- モジュール名
methodName
- 初期実行メソッド名
java.lang.IllegalArgumentException
- 引数が正しく指定されていない場合にスローされます。
java.lang.Exception
public void unload(java.lang.String moduleName) throws java.lang.Exception
指定したロード済みモジュールをクローズし、アンロードする。
moduleName
- アンロード対象モジュール名
java.lang.Exception
public void unloadAll()
全てのロード済みモジュールをアンロードする。
public java.lang.reflect.Method symbol(java.lang.String class_name, java.lang.String method_name) throws java.lang.Exception
class_name
- クラスの名前
method_name
- メソッドの名前
java.lang.Exception
public java.lang.String getInitFuncName(java.lang.String class_path)
初期化関数の名称を組み立てる。
class_path
- 初期化対象モジュール名称
public void setLoadpath(java.util.Vector<java.lang.String> loadPath)
モジュールロード時に対象モジュールを検索するパスを指定する。
loadPath
- 規定ロードパス
public java.util.Vector<java.lang.String> getLoadPath()
設定されているモジュールを検索対象パスリストを取得する。
public void addLoadPath(java.util.Vector<java.lang.String> loadPath)
指定されたパスリストを検索対象パスリストに追加する。
loadPath
- 追加する規定ロードパス
public java.util.Vector<Properties> getLoadedModules()
既にロード済みのモジュールリストを取得する。
public java.util.Vector<Properties> getLoadableModules()
ロード可能なモジュールのリストを取得する。
public void allowAbsolutePath()
ロード対象モジュールの絶対パス指定を許可するように設定する。
public void disallowAbsolutePath()
ロード対象モジュールの絶対パス指定を禁止するように設定する。
public void allowModuleDownload()
ロード対象モジュールのURL指定を許可する。 本設定が許可されている場合、モジュールをダウンロードしてロードすることが 許可される。
public void disallowModuleDownload()
ロード対象モジュールのURL指定を禁止する。