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
          モジュール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()
          全モジュールのアンロード 全てのロード済みモジュールをアンロードする。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

m_properties

protected Properties m_properties
Module Manager プロパティ


m_modules

protected java.util.Map<java.lang.String,jp.go.aist.rtm.RTC.ModuleManager.DLLEntity> m_modules
ロード済みモジュール


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
モジュールURL指定許可フラグ


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オブジェクト内の情報に基づいて 初期化を行います。

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

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

パラメータ:
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()
モジュールのURL指定許可。

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


disallowModuleDownload

public void disallowModuleDownload()
モジュールのURL指定禁止

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