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.Objectjava.lang.Throwablepublic 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.Exceptionpublic 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.Exceptionpublic void unload(java.lang.String moduleName)
            throws java.lang.Exception
指定したロード済みモジュールをクローズし、アンロードする。
moduleName - アンロード対象モジュール名
   java.lang.Exceptionpublic 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.Exceptionpublic 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指定を禁止する。