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

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

public class Manager
extends java.lang.Object

各コンポーネントの管理を行うクラスです.


入れ子のクラスの概要
(package private)  class Manager.cleanupComponentsClass
           
(package private)  class Manager.ECFactoryPredicate
          ECFactory検索用ヘルパークラスです。
protected  class Manager.FactoryPredicate
          Factory検索用ヘルパークラスです。
protected  class Manager.Finalized
           
protected  class Manager.InstanceName
          Object検索用ヘルパークラスです。
protected  class Manager.OrbRunner
          ORB実行用ヘルパークラスです。
(package private)  class Manager.shutdownOnNoRtcsClass
           
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)  ManagerServant m_mgrservant
          ManagerServant
protected  ModuleManager m_module
          Module Manager
protected  NamingManager m_namingManager
          Naming Manager
protected  CorbaObjectManager m_objManager
          CORBA Object 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
protected static Manager manager
          唯一のManagerインスタンスです。
protected static java.lang.String manager_mutex
          Manager用ミューテックス変数です。
protected  Logbuf rtcout
          ロガーストリーム
 
コンストラクタの概要
protected Manager()
          コンストラクタです。
  Manager(Manager rhs)
          コピーコンストラクタです。
 
メソッドの概要
 boolean activateManager()
          Managerのアクティブ化 {@.ja 初期化後に runManager() 呼び出しに先立ってこのメソッドを 呼び出す必要があります。
protected  boolean bindManagerServant()
           bindManagerServant
 void cleanupComponent(RTObject_impl comp)
          指定したRTコンポーネントを登録解除します。
 void clearModules()
          RTコンポーネントマネージャをクリアする。
 void clearModulesFactories()
          RTコンポーネントファクトリをクリアする。
protected  void configureComponent(RTObject_impl comp, Properties prop)
          RTコンポーネントのコンフィギュレーション処理 {@.ja RTコンポーネントの型およびインスタンス毎に 記載されたプロパティファイルの 情報を読み込み、コンポーネントに設定する。
 RTObject_impl createComponent(java.lang.String comp_args)
          RTコンポーネントを生成する {@.ja 指定したRTコンポーネントのインスタンスを登録されたFactory経由 で生成する。
 ExecutionContextBase createContext(java.lang.String ec_args)
           createContext
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コンポーネントを削除する {@.ja マネージャに登録されているRTコンポーネントを削除する。
 void deleteComponent(java.lang.String instanceName)
          Manager に登録されているRTコンポーネントを削除する {@.ja マネージャに登録されているRTコンポーネントを削除する。
protected  java.lang.String formatString(java.lang.String namingFormat, Properties properties)
          指定されたPropertiesオブジェクトの内容を、指定された書式に従って文字列として出力します。
 RTObject_impl getComponent(java.lang.String instanceName)
          Managerに登録されているRTコンポーネントを取得します。
 java.util.Vector<RTObject_impl> getComponents()
          Managerに登録されている全てのRTコンポーネントを取得します。
 Properties getConfig()
          マネージャのコンフィギュレーションを取得します。
 java.util.Vector<Properties> getFactoryProfiles()
           getFactoryProfiles
 java.util.Vector<Properties> getLoadableModules()
          ロード可能なモジュール名リストを取得します。
 java.util.Vector<Properties> getLoadedModules()
          ロード済みのモジュール名リストを取得します。
 java.util.Vector<java.lang.String> getModulesFactories()
          すべてのRTコンポーネントファクトリのリストを取得します。
 org.omg.CORBA.ORB getORB()
          ORBを取得します。
 org.omg.PortableServer.POA getPOA()
          RootPOAを取得します。
 org.omg.PortableServer.POAManager getPOAManager()
          POAマネージャを取得します。
static Manager init(java.lang.String[] argv)
          初期化を行います。
protected  boolean initComposite()
           intiComposite
protected  boolean initExecContext()
          ExecutionContextを初期化します。
protected  boolean initFactories()
           intiFactories
protected  boolean initLogger()
          System loggerを初期化します。
protected  void initManager(java.lang.String[] argv)
          Manager の内部初期化処理 {@.ja Manager の内部初期化処理を実行する。
protected  boolean initManagerServant()
          ManagerServant の初期化
protected  boolean initNaming()
          NamingManagerを初期化します。
protected  boolean initORB()
          CORBA ORB の初期化処理 引数により与えられた設定を元にORBを初期化する。
protected  boolean initTimer()
          Timerを初期化します。
static Manager instance()
          Managerオブジェクトを取得します。
 void join()
          Manager終了処理の待ち合わせを行います。
 java.lang.String load(java.lang.String moduleFileName, java.lang.String initFunc)
          [CORBA interface] モジュールのロード コンポーネントのモジュールをロードして、 初期化メソッドを実行します。
protected  boolean mergeProperty(Properties properties, java.lang.String fileName)
          プロパティファイルを読み込んで、指定されたPropertiesオブジェクトに設定します。
 void notifyFinalized(RTObject_impl comp)
          RTコンポーネントの削除する
 boolean procComponentArgs(java.lang.String comp_arg, Properties comp_id, Properties comp_conf)
           procComponentArgs
 boolean procContextArgs(java.lang.String ec_args, java.lang.StringBuffer ec_id, Properties ec_conf)
           procContextArgs
 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 runManager()
          Managerのメインループを実行します。
 void runManager(boolean noBlocking)
          Managerのメインループを実行します。
 void setModuleInitProc(ModuleInitProc initProc)
          初期化プロシジャコールバックインタフェースを設定します。
 void shutdown()
          Managerオブジェクトを終了します。
protected  void shutdownComponents()
          ネーミングサービスに登録されているコンポーネントの終了処理を行います。
protected  void shutdownLogger()
          System Loggerの終了処理を行います。
protected  void shutdownManager()
          Manager の終了処理 Manager を終了する
protected  void shutdownNaming()
          NamingManagerの終了処理を行います。
protected  void shutdownORB()
          ORBの終了処理を行います。
 void terminate()
          Managerの終了処理を行います。
 void unload(java.lang.String moduleFileName)
          モジュールをアンロードします。
 void unloadAll()
          すべてのモジュールをアンロードします。
 boolean unregisterComponent(RTObject_impl comp)
          指定したRTコンポーネントを登録解除します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

m_cleanupComponents

Manager.cleanupComponentsClass m_cleanupComponents

m_shutdownOnNoRtcs

Manager.shutdownOnNoRtcsClass m_shutdownOnNoRtcs

m_mgrservant

ManagerServant m_mgrservant
ManagerServant


manager

protected static Manager manager

唯一のManagerインスタンスです。


manager_mutex

protected static java.lang.String manager_mutex

Manager用ミューテックス変数です。


m_pORB

protected org.omg.CORBA.ORB m_pORB

ORB


m_pPOA

protected org.omg.PortableServer.POA m_pPOA

POA


m_pPOAManager

protected org.omg.PortableServer.POAManager m_pPOAManager

POAManager


m_initProc

protected ModuleInitProc m_initProc

ユーザコンポーネント初期化プロシジャオブジェクト


m_config

protected Properties m_config

Managerコンフィギュレーション


m_module

protected ModuleManager m_module

Module Manager


m_namingManager

protected NamingManager m_namingManager

Naming Manager


m_objManager

protected CorbaObjectManager m_objManager

CORBA Object Manager


m_timer

protected Timer m_timer

Timer


rtcout

protected Logbuf rtcout

ロガーストリーム


m_compManager

protected ObjectManager<java.lang.String,RTObject_impl> m_compManager

Component Manager


m_factory

protected ObjectManager<java.lang.String,FactoryBase> m_factory

Component Factory Manager


m_ecfactory

protected ObjectManager<java.lang.String,java.lang.Object> m_ecfactory

ExecutionContext Factory


m_ecs

protected java.util.Vector<ExecutionContextBase> m_ecs

ExecutionContext


m_runner

protected Manager.OrbRunner m_runner

ORB Runner


m_terminator

protected Manager.Terminator m_terminator

Terminator


m_terminate_waiting

protected int m_terminate_waiting

Terminator用カウンタ


m_finalized

Manager.Finalized m_finalized
コンストラクタの詳細

Manager

protected Manager()

コンストラクタです。

Protected コンストラクタ


Manager

public Manager(Manager rhs)

コピーコンストラクタです。

パラメータ:
rhs - コピー元のManagerオブジェクト
メソッドの詳細

init

public static Manager init(java.lang.String[] argv)

初期化を行います。Managerを使用する場合には、必ず本メソッドを呼ぶ必要があります。
コマンドライン引数を与えて初期化を行います。Managerオブジェクトを取得する方法としては、 init(), instance()の2メソッドがありますが、初期化はinit()でのみ行われるため、 Managerオブジェクトの生存期間の最初にinit()メソッドを呼び出す必要があります。

パラメータ:
argv - コマンドライン引数の配列

instance

public static Manager instance()

Managerオブジェクトを取得します。

戻り値:
Managerオブジェクト

terminate

public void terminate()

Managerの終了処理を行います。


shutdown

public void shutdown()

Managerオブジェクトを終了します。 ORBの終了後,同期を取って終了します。


join

public void join()

Manager終了処理の待ち合わせを行います。


getConfig

public Properties getConfig()

マネージャのコンフィギュレーションを取得します。

戻り値:
マネージャコンフィギュレーション

setModuleInitProc

public void setModuleInitProc(ModuleInitProc initProc)

初期化プロシジャコールバックインタフェースを設定します。 マネージャが初期化されてアクティブ化された後に、 設定されたコールバックインタフェースが呼び出されます。

パラメータ:
initProc - コールバックインタフェース

activateManager

public boolean activateManager()
Managerのアクティブ化

初期化後に runManager() 呼び出しに先立ってこのメソッドを 呼び出す必要があります。 このオペレーションは以下の処理を行う - CORBA POAManager のアクティブ化 - マネージャCORBAオブジェクトのアクティブ化 - Manager のオブジェクト参照の登録 このオペレーションは、マネージャの初期化後、runManager() の前に呼ぶ必要がある。

戻り値:
処理結果(アクティブ化成功:true、失敗:false)

runManager

public void runManager()

Managerのメインループを実行します。本メソッドは、runManager(false)の呼び出しと同等です。


runManager

public void runManager(boolean noBlocking)

Managerのメインループを実行します。 このメインループ内では、CORBA ORBのイベントループなどが処理されます。
ブロッキングモードで起動された場合は、Manager#destroy()メソッドが呼び出されるまで、 本runManager()メソッドは処理を戻しません。
非ブロッキングモードで起動された場合は、内部でイベントループを別スレッドで開始後、 ブロックせずに処理を戻します。

パラメータ:
noBlocking - 非ブロッキングモードの場合はtrue、ブロッキングモードの場合はfalse

load

public java.lang.String load(java.lang.String moduleFileName,
                             java.lang.String initFunc)
[CORBA interface] モジュールのロード

コンポーネントのモジュールをロードして、 初期化メソッドを実行します。

パラメータ:
moduleFileName - モジュールファイル名
initFunc - 初期化メソッド名

unload

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

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

パラメータ:
moduleFileName - モジュールファイル名
例外:
java.lang.Exception

unloadAll

public void unloadAll()

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


getLoadedModules

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

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

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

getLoadableModules

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

ロード可能なモジュール名リストを取得します。

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

registerFactory

public boolean registerFactory(Properties profile,
                               RtcNewFunc new_func,
                               RtcDeleteFunc delete_func)

RTコンポーネントファクトリを登録します。

パラメータ:
profile - コンポーネントプロファイル
new_func - コンポーネント生成オブジェクト
delete_func - コンポーネント削除オブジェクト
戻り値:
登録に成功した場合はtrueを、さもなくばfalseを返します。

getFactoryProfiles

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

getFactoryProfiles


registerECFactory

public boolean registerECFactory(java.lang.String name)

ExecutionContextファクトリを登録します。

パラメータ:
name - ExecutionContext名称
戻り値:
登録に成功した場合はtrueを、さもなくばfalseを返します。

getModulesFactories

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

すべてのRTコンポーネントファクトリのリストを取得します。

戻り値:
すべてのRTコンポーネントファクトリのリスト

clearModulesFactories

public void clearModulesFactories()

RTコンポーネントファクトリをクリアする。


clearModules

public void clearModules()

RTコンポーネントマネージャをクリアする。


createComponent

public RTObject_impl createComponent(java.lang.String comp_args)
RTコンポーネントを生成する

指定したRTコンポーネントのインスタンスを登録されたFactory経由 で生成する。 生成されるコンポーネントの各種プロファイルは以下の優先順位で 設定される。 -# createComponent() の引数で与えられたプロファイル -# rtc.confで指定された外部ファイルで与えられたプロファイル --# category.instance_name.config_file --# category.component_type.config_file -# コードに埋め込まれたプロファイル インスタンス生成が成功した場合、併せて以下の処理を実行する。 - 外部ファイルで設定したコンフィギュレーション情報の読み込み,設定 - ExecutionContextのバインド,動作開始 - ネーミングサービスへの登録

パラメータ:
comp_args - 生成対象RTコンポーネントIDおよびコンフィギュレー ション引数。フォーマットは大きく分けて "id" と "configuration" 部分が存在する。 comp_args: [id]?[configuration] id は必須、configurationはオプション id: RTC:[vendor]:[category]:[implementation_id]:[version] RTC は固定かつ必須 vendor, category, version はオプション implementation_id は必須 オプションを省略する場合でも ":" は省略不可 configuration: [key0]=[value0]&[key1]=[value1]&[key2]=[value2]..... RTCが持つPropertiesの値をすべて上書きすることができる。 key=value の形式で記述し、"&" で区切る 例えば、 RTC:jp.go.aist:example:ConfigSample:1.0?conf.default.str_param0=munya RTC::example:ConfigSample:?conf.default.int_param0=100
戻り値:
生成したRTコンポーネントのインスタンス

cleanupComponent

public void cleanupComponent(RTObject_impl comp)

指定したRTコンポーネントを登録解除します。

パラメータ:
comp - 登録解除するRTコンポーネントオブジェクト

notifyFinalized

public void notifyFinalized(RTObject_impl comp)
RTコンポーネントの削除する

削除するRTコンポーネントを登録する。 登録されたRTコンポーネントは cleanupComponents() で削除される。

パラメータ:
comp - 削除するRTコンポーネント

procComponentArgs

public boolean procComponentArgs(java.lang.String comp_arg,
                                 Properties comp_id,
                                 Properties comp_conf)

procComponentArgs

パラメータ:
comp_arg - String
comp_id - Properties
comp_conf - Propertie
戻り値:
boolean

registerComponent

public boolean registerComponent(RTObject_impl comp)

RTコンポーネントを、直接にManagerに登録します。

パラメータ:
comp - 登録対象のRTコンポーネントオブジェクト
戻り値:
正常に登録できた場合はtrueを、さもなくばfalseを返します。

unregisterComponent

public boolean unregisterComponent(RTObject_impl comp)

指定したRTコンポーネントを登録解除します。

パラメータ:
comp - 登録解除するRTコンポーネントオブジェクト

createContext

public ExecutionContextBase createContext(java.lang.String ec_args)

createContext

パラメータ:
ec_args - String
戻り値:
ExecutionContextBase

procContextArgs

public boolean procContextArgs(java.lang.String ec_args,
                               java.lang.StringBuffer ec_id,
                               Properties ec_conf)

procContextArgs

パラメータ:
ec_args - String
ec_id - StringBuffer
ec_conf - Properties
戻り値:
boolean

deleteComponent

public void deleteComponent(RTObject_impl comp)
Manager に登録されているRTコンポーネントを削除する

マネージャに登録されているRTコンポーネントを削除する。 指定されたRTコンポーネントをネーミングサービスから削除し、 RTコンポーネント自体を終了させるとともに、インスタンスを解放する。

パラメータ:
comp - 削除対象RTコンポーネントのインスタンス

deleteComponent

public void deleteComponent(java.lang.String instanceName)
Manager に登録されているRTコンポーネントを削除する

マネージャに登録されているRTコンポーネントを削除する。 指定されたRTコンポーネントをネーミングサービスから削除し、 RTコンポーネント自体を終了させるとともに、インスタンスを解放する。

パラメータ:
instanceName - 削除対象RTコンポーネントのインスタンス名

getComponent

public RTObject_impl getComponent(java.lang.String instanceName)

Managerに登録されているRTコンポーネントを取得します。

※未実装

パラメータ:
instanceName - 取得対象RTコンポーネント名
戻り値:
対象RTコンポーネントオブジェクト

getComponents

public java.util.Vector<RTObject_impl> getComponents()

Managerに登録されている全てのRTコンポーネントを取得します。

戻り値:
RTコンポーネントのリスト

getORB

public org.omg.CORBA.ORB getORB()

ORBを取得します。

戻り値:
ORBオブジェクト

getPOA

public org.omg.PortableServer.POA getPOA()

RootPOAを取得します。

戻り値:
RootPOAオブジェクト

getPOAManager

public org.omg.PortableServer.POAManager getPOAManager()

POAマネージャを取得します。

戻り値:
POAマネージャ

initManager

protected void initManager(java.lang.String[] argv)
                    throws java.lang.Exception
Manager の内部初期化処理

Manager の内部初期化処理を実行する。

パラメータ:
argv - コマンドライン引数
例外:
java.lang.Exception

shutdownManager

protected void shutdownManager()
Manager の終了処理

Manager を終了する


initLogger

protected boolean initLogger()

System loggerを初期化します。

戻り値:
正常に初期化できた場合はtrueを、さもなくばfalseを返します。

shutdownLogger

protected void shutdownLogger()

System Loggerの終了処理を行います。


initORB

protected boolean initORB()
CORBA ORB の初期化処理

引数により与えられた設定を元にORBを初期化する。

戻り値:
ORB 初期化処理結果(初期化成功:true、初期化失敗:false)

createORBOptions

protected java.lang.String createORBOptions()
ORBのコマンドラインオプションを生成します。

コンフィギュレーション情報に設定された内容から ORB の起動時オプションを作成する。

戻り値:
ORB 起動時オプション

createORBEndpoints

protected void createORBEndpoints(java.util.Vector<java.lang.String> endpoints)
エンドポイントの生成

コンフィグレーションからエンドポイントを生成する。

パラメータ:
endpoints - エンドポイントリスト

createORBEndpointOption

protected void createORBEndpointOption(java.lang.String opt,
                                       java.util.Vector<java.lang.String> endpoints)
ORB の Endpoint のコマンドラインオプション作成

パラメータ:
opt - コマンドラインオプション
endpoints - エンドポイントリスト

createORBProperties

protected java.util.Properties createORBProperties()
プロパティの生成.

戻り値:
java.util.Properties ORB.init() のプロパティ

shutdownORB

protected void shutdownORB()

ORBの終了処理を行います。


initNaming

protected boolean initNaming()

NamingManagerを初期化します。


shutdownNaming

protected void shutdownNaming()

NamingManagerの終了処理を行います。


shutdownComponents

protected void shutdownComponents()

ネーミングサービスに登録されているコンポーネントの終了処理を行います。


configureComponent

protected void configureComponent(RTObject_impl comp,
                                  Properties prop)
RTコンポーネントのコンフィギュレーション処理

RTコンポーネントの型およびインスタンス毎に 記載されたプロパティファイルの 情報を読み込み、コンポーネントに設定する。 また、各コンポーネントの NamingService 登録時の名称を取得し、設定する。

パラメータ:
comp - コンフィギュレーション対象RTコンポーネント

initExecContext

protected boolean initExecContext()

ExecutionContextを初期化します。

戻り値:
正常に初期化できた場合はtrueを、さもなくばfalseを返します。

initComposite

protected boolean initComposite()

intiComposite

戻り値:
boolan

initFactories

protected boolean initFactories()

intiFactories

戻り値:
boolan

initTimer

protected boolean initTimer()

Timerを初期化します。


initManagerServant

protected boolean initManagerServant()
ManagerServant の初期化

戻り値:
初期化処理実行結果(初期化成功:true、初期化失敗:false)

bindManagerServant

protected boolean bindManagerServant()

bindManagerServant

戻り値:
boolean

mergeProperty

protected boolean mergeProperty(Properties properties,
                                java.lang.String fileName)

プロパティファイルを読み込んで、指定されたPropertiesオブジェクトに設定します。

パラメータ:
properties - 設定対象のPropertiesオブジェクト
fileName - プロパティファイル名
戻り値:
正常に設定できた場合はtrueを、さもなくばfalseを返します。

formatString

protected java.lang.String formatString(java.lang.String namingFormat,
                                        Properties properties)

指定されたPropertiesオブジェクトの内容を、指定された書式に従って文字列として出力します。

パラメータ:
namingFormat - 書式指定
properties - 出力対象となるPropertiesオブジェクト
戻り値:
Propertiesオブジェクトの内容を文字列出力したもの