jp.go.aist.rtm.RTC
クラス ModuleManager

java.lang.Object
  上位を拡張 jp.go.aist.rtm.RTC.ModuleManager

public class ModuleManager
extends java.lang.Object

モジュール管理クラスです。モジュールのロード・アンロードなどを管理します。


フィールドの概要
protected  boolean m_absoluteAllowed
          モジュール絶対パス指定許可フラグ
protected  java.util.Vector<java.lang.String> m_configPath
          コンフィギュレーションパス
protected  boolean m_downloadAllowed
          モジュールダウンロード許可フラグ
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
          ロード済みモジュール Module list that has already loaded
protected  Properties m_properties
          ModuleManagerプロパティ
 
コンストラクタの概要
ModuleManager(Properties properties)
          コンストラクタです。
 
メソッドの概要
 void addLoadPath(java.util.Vector<java.lang.String> loadPath)
          規定となるモジュールロードパスを追加します。
 void allowAbsolutePath()
          モジュールのフルクラス名指定を指定します。
 void allowModuleDownload()
          モジュールのダウンロード許可を指定します。
 void destruct()
          デストラクタです。
 void disallowAbsolutePath()
          モジュールのフルクラス名指定解除を指定します。
 void disallowModuleDownload()
          モジュールのダウンロード許可を解除します。
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)
          モジュールのロード {@.ja file_name をDLL もしくは共有ライブラリとしてロードする。
 java.lang.String load(java.lang.String moduleName, java.lang.String methodName)
          モジュールのアンロード {@.ja 指定されたモジュールをロードします。
 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()
          すべてのモジュールをアンロードします。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

m_properties

protected Properties m_properties

ModuleManagerプロパティ


m_modules

protected java.util.Map<java.lang.String,jp.go.aist.rtm.RTC.ModuleManager.DLLEntity> m_modules

ロード済みモジュール

Module list that has already loaded


m_loadPath

protected java.util.Vector<java.lang.String> m_loadPath

モジュールロードパス


m_configPath

protected java.util.Vector<java.lang.String> m_configPath

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


m_downloadAllowed

protected boolean m_downloadAllowed

モジュールダウンロード許可フラグ


m_absoluteAllowed

protected boolean m_absoluteAllowed

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


m_initFuncSuffix

protected java.lang.String m_initFuncSuffix

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


m_initFuncPrefix

protected java.lang.String m_initFuncPrefix

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

コンストラクタの詳細

ModuleManager

public ModuleManager(Properties properties)
コンストラクタです。

指定されたPropertiesオブジェクト内の情報に基づいてi 初期化を行います。

パラメータ:
properties - 初期化情報を持つPropertiesオブジェクト
メソッドの詳細

destruct

public void destruct()

デストラクタです。ロード済みモジュールのアンロードなど、リソースの解放処理を行います。 当該ModuleManagerオブジェクトの使用を終えた際に、明示的に呼び出してください。


finalize

protected void finalize()
                 throws java.lang.Throwable

ファイナライザです。

オーバーライド:
クラス java.lang.Object 内の finalize
例外:
java.lang.Throwable

load

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.allowAbsolutePath が no の場合、 既定のモジュールロードパスから、file_name のモジュールを探しロードする。

パラメータ:
moduleName - ロード対象モジュール名
戻り値:
指定したロード対象モジュール名
例外:
java.lang.Exception

load

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 - 初期実行メソッド名
戻り値:
moduleName引数で指定したモジュール名がそのまま返されます。
例外:
java.lang.IllegalArgumentException - 引数が正しく指定されていない場合にスローされます。
java.lang.Exception

unload

public void unload(java.lang.String moduleName)
            throws java.lang.Exception

指定されたモジュールをアンロードします。

パラメータ:
moduleName - アンロードするモジュール名
例外:
java.lang.Exception

unloadAll

public void unloadAll()

すべてのモジュールをアンロードします。


symbol

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

getInitFuncName

public java.lang.String getInitFuncName(java.lang.String class_path)

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


setLoadpath

public void setLoadpath(java.util.Vector<java.lang.String> loadPath)

規定となるモジュールロードパスを指定します。

パラメータ:
loadPath - 規定ロードパス

getLoadPath

public java.util.Vector<java.lang.String> getLoadPath()

規定となるモジュールロードパスを取得します。

戻り値:
規定モジュールロードパス

addLoadPath

public void addLoadPath(java.util.Vector<java.lang.String> loadPath)

規定となるモジュールロードパスを追加します。

パラメータ:
loadPath - 追加する規定ロードパス

getLoadedModules

public java.util.Vector<Properties> getLoadedModules()

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

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

getLoadableModules

public java.util.Vector<Properties> getLoadableModules()
ロード可能モジュールリストを取得する

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

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

allowAbsolutePath

public void allowAbsolutePath()

モジュールのフルクラス名指定を指定します。


disallowAbsolutePath

public void disallowAbsolutePath()

モジュールのフルクラス名指定解除を指定します。


allowModuleDownload

public void allowModuleDownload()

モジュールのダウンロード許可を指定します。


disallowModuleDownload

public void disallowModuleDownload()

モジュールのダウンロード許可を解除します。