public class Manager
extends java.lang.Object
コンポーネントなど各種の情報管理を行うマネージャクラス。
修飾子とタイプ | クラスと説明 |
---|---|
(package private) class |
Manager.cleanupComponentsClass
RTコンポーネントの削除するためのリスナークラス
|
(package private) class |
Manager.ECFactoryPredicate
ECFactory検索用ヘルパークラス
|
protected class |
Manager.FactoryPredicate
Factory検索用ヘルパークラス
|
protected class |
Manager.Finalized
コンポーネント削除用クラス
|
protected class |
Manager.Finalizer |
protected class |
Manager.InstanceName
Object検索用ヘルパークラス
|
protected class |
Manager.OrbRunner
ORB実行用ヘルパークラス
|
(package private) class |
Manager.shutdownOnNoRtcsClass
Manager の終了のためのリスナークラス
|
protected class |
Manager.Terminator
終了処理用ヘルパークラス
|
修飾子とタイプ | フィールドと説明 |
---|---|
(package private) Manager.cleanupComponentsClass |
m_cleanupComponents
タイマー処理用リスナー
|
protected ObjectManager<java.lang.String,RTObject_impl> |
m_compManager
Component Manager
|
protected Properties |
m_config
Managerコンフィギュレーション
|
protected ObjectManager<java.lang.String,java.lang.Object> |
m_ecfactory
ExecutionContext Factory
|
protected java.util.Vector<ExecutionContextBase> |
m_ecs
ExecutionContext
|
protected ObjectManager<java.lang.String,FactoryBase> |
m_factory
Component Factory Manager
|
(package private) Manager.Finalized |
m_finalized
コンポーネント削除用リスト
|
protected ModuleInitProc |
m_initProc
ユーザコンポーネント初期化プロシジャオブジェクト
|
(package private) ManagerActionListeners |
m_listeners |
(package private) ManagerServant |
m_mgrservant
ManagerServant オブジェクト
|
protected ModuleManager |
m_module
Module Manager
|
protected NamingManager |
m_namingManager
Naming Manager
|
protected org.omg.CORBA.ORB |
m_pORB
ORB
|
protected org.omg.PortableServer.POA |
m_pPOA
POA
|
protected org.omg.PortableServer.POAManager |
m_pPOAManager
POAManager
|
protected Manager.OrbRunner |
m_runner
ORB Runner
|
(package private) Manager.shutdownOnNoRtcsClass |
m_shutdownOnNoRtcs
タイマー処理用リスナー
|
protected int |
m_terminate_waiting
Terminator用カウンタ
|
protected Manager.Terminator |
m_terminator
Terminator
|
protected Timer |
m_timer
Timer Object
|
protected static Manager |
manager
唯一のManagerインスタンス
|
protected static java.lang.String |
manager_mutex
Manager用ミューテックス変数
|
protected Logbuf |
rtcout
ロガーストリーム
|
修飾子とタイプ | メソッドと説明 |
---|---|
boolean |
activateManager()
Managerのアクティブ化。
|
void |
addLocalServiceActionListener(LocalServiceActionListener listener) |
void |
addLocalServiceActionListener(LocalServiceActionListener listener,
boolean autoclean) |
void |
addManagerActionListener(ManagerActionListener listener) |
void |
addManagerActionListener(ManagerActionListener listener,
boolean autoclean) |
void |
addModuleActionListener(ModuleActionListener listener) |
void |
addModuleActionListener(ModuleActionListener listener,
boolean autoclean) |
void |
addNamingActionListener(NamingActionListener listener) |
void |
addNamingActionListener(NamingActionListener listener,
boolean autoclean) |
void |
addRtcLifecycleActionListener(RtcLifecycleActionListener listener) |
void |
addRtcLifecycleActionListener(RtcLifecycleActionListener listener,
boolean autoclean) |
protected boolean |
bindManagerServant()
ManagerServantをバインドする。
|
void |
cleanupComponent(RTObject_impl comp)
RTコンポーネントの登録解除。
|
void |
clearModules()
RTコンポーネントマネージャをクリアする。
|
void |
clearModulesFactories()
RTコンポーネントファクトリをクリアする。
|
protected void |
configureComponent(RTObject_impl comp,
Properties prop)
RTコンポーネントのコンフィギュレーション処理。
|
RTObject_impl |
createComponent(java.lang.String comp_args)
RTコンポーネントを生成する。
|
ExecutionContextBase |
createContext(java.lang.String ec_args)
Contextを生成する。
|
protected void |
createORBEndpointOption(java.lang.String opt,
java.util.Vector<java.lang.String> endpoints)
ORB の Endpoint のコマンドラインオプション作成
|
protected void |
createORBEndpoints(java.util.Vector<java.lang.String> endpoints)
エンドポイントの生成
コンフィグレーションからエンドポイントを生成する。
|
protected java.lang.String |
createORBOptions()
ORBのコマンドラインオプションを生成します。
|
protected java.util.Properties |
createORBProperties()
プロパティの生成.
|
void |
deleteComponent(RTObject_impl comp)
Manager に登録されているRTコンポーネントを削除する。
|
void |
deleteComponent(java.lang.String instanceName)
Manager に登録されているRTコンポーネントを削除する。
|
protected java.lang.String |
formatString(java.lang.String namingFormat,
Properties properties)
NamingServer に登録する際の登録情報を組み立てる。
|
RTObject_impl |
getComponent(java.lang.String instanceName)
Manager に登録されているRTコンポーネントを検索する。
|
java.util.Vector<RTObject_impl> |
getComponents()
Manager に登録されている全RTコンポーネントを取得する。
|
Properties |
getConfig()
マネージャコンフィギュレーションの取得。
|
java.util.Vector<Properties> |
getFactoryProfiles()
ファクトリのプロファイルを取得。
|
java.util.Vector<Properties> |
getLoadableModules()
ロード可能なモジュールリストを取得する。
|
java.util.Vector<Properties> |
getLoadedModules()
ロード済みのモジュールリストを取得する。
|
java.util.Vector<java.lang.String> |
getModulesFactories()
ファクトリ全リストを取得する。
|
org.omg.CORBA.ORB |
getORB()
ORB のポインタを取得する。
|
org.omg.PortableServer.POA |
getPOA()
Manager が持つ RootPOA のポインタを取得する。
|
org.omg.PortableServer.POAManager |
getPOAManager()
Manager が持つ POAManager を取得する。
|
static Manager |
init(java.lang.String[] argv)
マネージャの初期化。
|
protected boolean |
initComposite()
PeriodicECSharedComposite の初期化。
|
protected boolean |
initExecContext()
ExecutionContextManager の初期化。
|
protected boolean |
initFactories()
ファクトリの初期化。
|
protected boolean |
initLocalService()
LocalService の初期化
|
protected boolean |
initLogger()
System logger の初期化。
|
protected void |
initManager(java.lang.String[] argv)
Manager の内部初期化処理。
|
protected boolean |
initManagerServant()
ManagerServant の初期化
|
protected boolean |
initNaming()
NamingManager の初期化。
|
protected boolean |
initORB()
CORBA ORB の初期化処理
引数により与えられた設定を元にORBを初期化する。
|
protected boolean |
initTimer()
Timer の初期化。
|
static Manager |
instance()
マネージャのインスタンスの取得。
|
static boolean |
isActive()
マネージャインスタンスが生成済みかチェック。
|
void |
join()
マネージャ終了処理の待ち合わせ。
|
java.lang.String |
load(java.lang.String moduleFileName,
java.lang.String initFunc)
[CORBA interface] モジュールのロード。
|
protected boolean |
mergeProperty(Properties properties,
java.lang.String fileName)
プロパティ情報のマージ。
|
void |
notifyFinalized(RTObject_impl comp)
RTコンポーネントの削除する
|
boolean |
procComponentArgs(java.lang.String comp_arg,
Properties comp_id,
Properties comp_conf)
引数文字列からコンポーネント型名・プロパティを抽出する。
|
boolean |
procContextArgs(java.lang.String ec_args,
java.lang.StringBuffer ec_id,
Properties ec_conf)
引数文字列からExecutionContext名・プロパティを抽出する。
|
boolean |
registerComponent(RTObject_impl comp)
RTコンポーネントを直接 Manager に登録する。
|
boolean |
registerECFactory(java.lang.String name)
ExecutionContext用ファクトリを登録する。
|
boolean |
registerFactory(Properties profile,
RtcNewFunc new_func,
RtcDeleteFunc delete_func)
RTコンポーネント用ファクトリを登録する。
|
void |
removeLocalServiceActionListener(LocalServiceActionListener listener) |
void |
removeManagerActionListener(ManagerActionListener listener) |
void |
removeModuleActionListener(ModuleActionListener listener) |
void |
removeNamingActionListener(NamingActionListener listener) |
void |
removeRtcLifecycleActionListener(RtcLifecycleActionListener listener) |
void |
runManager()
Managerの実行。
|
void |
runManager(boolean noBlocking)
Managerの実行。
|
void |
setModuleInitProc(ModuleInitProc initProc)
初期化プロシージャのセット。
|
void |
shutdown()
マネージャ・シャットダウン
{@.ja マネージャの終了処理を実行する。
|
protected void |
shutdownComponents()
NamingManager に登録されている RTコンポーネントの終了処理。
|
protected void |
shutdownLogger()
System Logger の終了処理。
|
protected void |
shutdownManager()
Manager の終了処理
Manager を終了する
|
protected void |
shutdownNaming()
NamingManager の終了処理。
|
protected void |
shutdownORB()
ORB の終了処理。
|
void |
terminate()
マネージャ終了処理。
|
void |
unload(java.lang.String moduleFileName)
モジュールのアンロード。
|
void |
unloadAll()
全モジュールのアンロード。
|
boolean |
unregisterComponent(RTObject_impl comp)
RTコンポーネントの登録を解除する。
|
Manager.cleanupComponentsClass m_cleanupComponents
Manager.shutdownOnNoRtcsClass m_shutdownOnNoRtcs
ManagerServant m_mgrservant
protected static Manager manager
protected static java.lang.String manager_mutex
protected org.omg.CORBA.ORB m_pORB
protected org.omg.PortableServer.POA m_pPOA
protected org.omg.PortableServer.POAManager m_pPOAManager
protected ModuleInitProc m_initProc
protected Properties m_config
protected ModuleManager m_module
protected NamingManager m_namingManager
protected Timer m_timer
protected Logbuf rtcout
protected ObjectManager<java.lang.String,RTObject_impl> m_compManager
protected ObjectManager<java.lang.String,FactoryBase> m_factory
protected ObjectManager<java.lang.String,java.lang.Object> m_ecfactory
protected java.util.Vector<ExecutionContextBase> m_ecs
protected Manager.OrbRunner m_runner
protected Manager.Terminator m_terminator
protected int m_terminate_waiting
Manager.Finalized m_finalized
ManagerActionListeners m_listeners
protected Manager()
Protected コンストラクタ
public Manager(Manager rhs)
Protected コピーコンストラクタ
rhs
- コピー元のManagerオブジェクト
public static Manager init(java.lang.String[] argv)
マネージャを初期化する static メンバ関数。 マネージャをコマンドライン引数を与えて初期化する。 マネージャを使用する場合は、必ずこの初期化メンバ関数 init() を 呼ばなければならない。 マネージャのインスタンスを取得する方法として、init(), instance() の 2つの static メンバ関数が用意されているが、初期化はinit()でしか 行われないため、Manager の生存期間の一番最初にはinit()を呼ぶ必要がある。 ※マネージャの初期化処理
argv
- コマンドライン引数の配列
public static Manager instance()
マネージャのインスタンスを取得する static メンバ関数。 この関数を呼ぶ前に、必ずこの初期化メンバ関数 init() が呼ばれている 必要がある。
public void terminate()
マネージャの終了処理を実行する。
public static boolean isActive()
マネージャインスタンスが生成済みかどうか確認する。
public void shutdown()
マネージャの終了処理を実行する。 ORB終了後、同期を取って終了する。
public void join()
同期を取るため、マネージャ終了処理の待ち合わせを行う。
public Properties getConfig()
マネージャに設定したコンフィギュレーションを取得する。
public void setModuleInitProc(ModuleInitProc initProc)
このオペレーションはユーザが行うモジュール等の初期化プロシージャ を設定する。ここで設定されたプロシージャは、マネージャが初期化され、 アクティブ化された後、適切なタイミングで実行される。
initProc
- コールバックインタフェース
public boolean activateManager()
初期化後に runManager() 呼び出しに先立ってこのメソッドを 呼び出す必要があります。 このオペレーションは以下の処理を行う
public void runManager()
このオペレーションはマネージャのメインループを実行する。 runManager(false)の呼び出しと同等。 このメインループ内では、CORBA ORBのイベントループ等が 処理される。このオペレーションはブロックし、 Manager::destroy() が呼ばれるまで処理を戻さない。
public void runManager(boolean noBlocking)
このオペレーションはマネージャのメインループを実行する。 このメインループ内では、CORBA ORBのイベントループ等が 処理される。デフォルトでは、このオペレーションはブロックし、 Manager::destroy() が呼ばれるまで処理を戻さない。 引数 no_block が true に設定されている場合は、内部でイベントループ を処理するスレッドを起動し、ブロックせずに処理を戻す。
noBlocking
- false: ブロッキングモード, true: ノンブロッキングモード
public java.lang.String load(java.lang.String moduleFileName, java.lang.String initFunc)
コンポーネントのモジュールをロードして、 初期化メソッドを実行します。
moduleFileName
- モジュールファイル名
initFunc
- 初期化メソッド名
public void unload(java.lang.String moduleFileName) throws java.lang.Exception
モジュールをアンロードする
moduleFileName
- モジュールのファイル名
java.lang.Exception
public void unloadAll()
モジュールをすべてアンロードする
public java.util.Vector<Properties> getLoadedModules()
現在マネージャにロードされているモジュールのリストを取得する。
public java.util.Vector<Properties> getLoadableModules()
ロード可能モジュールのリストを取得する。 (現在はModuleManager側で未実装)
public boolean registerFactory(Properties profile, RtcNewFunc new_func, RtcDeleteFunc delete_func)
RTコンポーネントのインスタンスを生成するための Factoryを登録する。
profile
- コンポーネントプロファイル
new_func
- コンポーネント生成オブジェクト
delete_func
- コンポーネント削除オブジェクト
public java.util.Vector<Properties> getFactoryProfiles()
ファクトリのプロファイルを取得する。
public boolean registerECFactory(java.lang.String name)
name
- ExecutionContext名称
public java.util.Vector<java.lang.String> getModulesFactories()
登録されているファクトリの全リストを取得する。
public void clearModulesFactories()
public void clearModules()
public RTObject_impl createComponent(java.lang.String comp_args)
指定したRTコンポーネントのインスタンスを登録されたFactory経由 で生成する。 生成されるコンポーネントの各種プロファイルは以下の優先順位で 設定される。
comp_args
- 生成対象RTコンポーネントIDおよびコンフィギュレー
ション引数。フォーマットは大きく分けて "id" と "configuration"
部分が存在する。
comp_args: [id]?[configuration] public void cleanupComponent(RTObject_impl comp)
指定したRTコンポーネントのインスタンスをネーミングサービスから 登録解除する。
comp
- 登録解除対象RTコンポーネントオブジェクト
public void notifyFinalized(RTObject_impl comp)
削除するRTコンポーネントを登録する。 登録されたRTコンポーネントは cleanupComponents() で削除される。
comp
- 削除するRTコンポーネント
public boolean procComponentArgs(java.lang.String comp_arg, Properties comp_id, Properties comp_conf)
文字列からコンポーネント型とコンポーネントのプロパティを抽出する。 与えられる文字列のフォーマットは RTC の ID とコンフィギュレーショ ンからなる [RTC type]?[key(0)]=[val(0)]&[key(1)]=[val(1)]&...&[key(n)]=[val(n)] である。なお、RTC type は implementation_id のみ、もしくは、下記 の RTC ID 形式 RTC:[vendor]:[category]:[impl_id]:[version] を受け付ける。戻り値である、comp_id は、 "vendor", "category", "implementation_id", "version" のキーを持つ Properties 型のオブジェクトとして返される。 comp_conf には "?" 以下に記述されるコンポーネントに与えるプロパティ が Properties 型のオブジェクトとして返される。
comp_arg
- 処理すべき文字列
comp_id
- 抽出されたコンポーネントの型名
comp_conf
- 抽出されたコンポーネントのプロパティ
public boolean registerComponent(RTObject_impl comp)
指定したRTコンポーネントのインスタンスを ファクトリ経由ではなく直接マネージャに登録する。
comp
- 登録対象のRTコンポーネントオブジェクト
public boolean unregisterComponent(RTObject_impl comp)
指定したRTコンポーネントの登録を解除する。
comp
- 登録解除するRTコンポーネントオブジェクト
public ExecutionContextBase createContext(java.lang.String ec_args)
ec_args
- 引数
public boolean procContextArgs(java.lang.String ec_args, java.lang.StringBuffer ec_id, Properties ec_conf)
文字列からExecutionContext名とプロパティを抽出する。 与えられる文字列のフォーマットは RTC の ID とコンフィギュレーショ ンからなる [ExecutionContext名]?[key(0)] =[val(0)]&[key(1)]=[val(1)]&...&[key(n)]=[val(n)] である。 ec_conf には "?" 以下に記述されるコンポーネントに与えるプロパティ が Properties 型のオブジェクトとして返される。
ec_args
- 処理すべき文字列
ec_id
- 抽出されたExecutionContext名
ec_conf
- 抽出されたExecutionContextのプロパティ
public void deleteComponent(RTObject_impl comp)
マネージャに登録されているRTコンポーネントを削除する。 指定されたRTコンポーネントをネーミングサービスから削除し、 RTコンポーネント自体を終了させるとともに、インスタンスを解放する。
comp
- 削除対象RTコンポーネントのインスタンス
public void deleteComponent(java.lang.String instanceName)
マネージャに登録されているRTコンポーネントを削除する。 指定されたRTコンポーネントをネーミングサービスから削除し、 RTコンポーネント自体を終了させるとともに、インスタンスを解放する。
instanceName
- 削除対象RTコンポーネントのインスタンス名
public RTObject_impl getComponent(java.lang.String instanceName)
Manager に登録されているRTコンポーネントを指定した名称で検索し、 合致するコンポーネントを取得する。
instanceName
- 取得対象RTコンポーネント名
public java.util.Vector<RTObject_impl> getComponents()
Manager に登録されているRTコンポーネントの全インスタンスを 取得する。
public void addManagerActionListener(ManagerActionListener listener, boolean autoclean)
public void addManagerActionListener(ManagerActionListener listener)
public void removeManagerActionListener(ManagerActionListener listener)
public void addModuleActionListener(ModuleActionListener listener, boolean autoclean)
public void addModuleActionListener(ModuleActionListener listener)
public void removeModuleActionListener(ModuleActionListener listener)
public void addRtcLifecycleActionListener(RtcLifecycleActionListener listener, boolean autoclean)
public void addRtcLifecycleActionListener(RtcLifecycleActionListener listener)
public void removeRtcLifecycleActionListener(RtcLifecycleActionListener listener)
public void addNamingActionListener(NamingActionListener listener, boolean autoclean)
public void addNamingActionListener(NamingActionListener listener)
public void removeNamingActionListener(NamingActionListener listener)
public void addLocalServiceActionListener(LocalServiceActionListener listener, boolean autoclean)
public void addLocalServiceActionListener(LocalServiceActionListener listener)
public void removeLocalServiceActionListener(LocalServiceActionListener listener)
public org.omg.CORBA.ORB getORB()
Manager に設定された ORB のポインタを取得する。
public org.omg.PortableServer.POA getPOA()
Manager に設定された RootPOA へのポインタを取得する。
public org.omg.PortableServer.POAManager getPOAManager()
Manager に設定された POAMAnager を取得する。
protected void initManager(java.lang.String[] argv) throws java.lang.Exception
Manager の内部初期化処理を実行する。
argv
- コマンドライン引数
java.lang.Exception
protected void shutdownManager()
Manager を終了する
protected boolean initLogger()
System logger の初期化を実行する。 コンフィギュレーションファイルに設定された情報に基づき、 ロガーの初期化,設定を実行する。
protected void shutdownLogger()
protected boolean initORB()
引数により与えられた設定を元にORBを初期化する。
protected java.lang.String createORBOptions()
コンフィギュレーション情報に設定された内容から ORB の起動時オプションを作成する。
protected void createORBEndpoints(java.util.Vector<java.lang.String> endpoints)
コンフィグレーションからエンドポイントを生成する。
endpoints
- エンドポイントリスト
protected void createORBEndpointOption(java.lang.String opt, java.util.Vector<java.lang.String> endpoints)
opt
- コマンドラインオプション
endpoints
- エンドポイントリスト
protected java.util.Properties createORBProperties()
protected void shutdownORB()
ORB の終了処理を実行する。 実行待ちの処理が存在する場合には、その処理が終了するまで待つ。 実際の終了処理では、POA Managerを非活性化し、 ORB のシャットダウンを実行 する。
protected boolean initNaming()
NamingManager の初期化処理を実行する。 ただし、NamingManager を使用しないようにプロパティ情報に設定されている 場合には何もしない。 NamingManager を使用する場合、プロパティ情報に設定されている デフォルト NamingServer を登録する。 また、定期的に情報を更新するように設定されている場合には、指定された周期 で自動更新を行うためのタイマを起動するとともに、更新用メソッドをタイマに 登録する。
protected void shutdownNaming()
NamingManager を終了する。 登録されている全要素をアンバインドし、終了する。
protected void shutdownComponents()
NamingManager に登録されているRTコンポーネントのリストを取得し、 全コンポーネントを終了する。
protected void configureComponent(RTObject_impl comp, Properties prop)
RTコンポーネントの型およびインスタンス毎に 記載されたプロパティファイルの 情報を読み込み、コンポーネントに設定する。 また、各コンポーネントの NamingService 登録時の名称を取得し、設定する。
comp
- コンフィギュレーション対象RTコンポーネント
protected boolean initExecContext()
使用する各 ExecutionContext の初期化処理を実行し、 各 ExecutionContext 生成用 Factory を ExecutionContextManager に登録する。
protected boolean initComposite()
protected boolean initFactories()
バッファ、スレッド、パブリッシャ、プロバイダ、コンシューマの ファクトリを初期化する。
protected boolean initTimer()
使用する各 Timer の初期化処理を実行する。 (現状の実装では何もしない)
protected boolean initManagerServant()
protected boolean bindManagerServant()
protected boolean mergeProperty(Properties properties, java.lang.String fileName)
指定されたファイル内に設定されているプロパティ情報をロードし、 既存の設定済みプロパティとマージする。
properties
- 設定対象のPropertiesオブジェクト
fileName
- プロパティファイル名
protected java.lang.String formatString(java.lang.String namingFormat, Properties properties)
指定された書式とプロパティ情報を基に NameServer に登録する際の 情報を組み立てる。 各書式指定用文字の意味は以下のとおり
namingFormat
- 書式指定
properties
- 出力対象となるPropertiesオブジェクト
protected boolean initLocalService()