クラス OpenRTM_aist.Manager.Manager

Manager クラス. [詳細]

すべてのメンバ一覧

構成

class  ECFactoryPredicate
 ExecutionContextファクトリ検索用ファンクタ. [詳細]
class  FactoryPredicate
 コンポーネントファクトリ検索用ファンクタ [詳細]
class  Finalized
class  InstanceName
 ObjectManager 検索用ファンクタ. [詳細]
class  ModulePredicate
 Module検索用ファンクタ. [詳細]
class  OrbRunner
 OrbRunner クラス. [詳細]
class  Term
 Term クラス. [詳細]
class  Terminator
 Terminator クラス. [詳細]

Public メソッド

def __init__
 コピーコンストラクタ
def init
 マネージャの初期化
def instance
 マネージャのインスタンスの取得
def terminate
 マネージャ終了処理
def shutdown
 マネージャ・シャットダウン
def join
 マネージャ終了処理の待ち合わせ
def setModuleInitProc
 初期化プロシージャのセット
def activateManager
 Managerのアクティブ化.
def runManager
 Managerの実行.
def load
 [CORBA interface] モジュールのロード
def unload
 モジュールのアンロード
def unloadAll
 全モジュールのアンロード
def getLoadedModules
 ロード済みのモジュールリストを取得する
def getLoadableModules
 ロード可能なモジュールリストを取得する
def registerFactory
 RTコンポーネント用ファクトリを登録する.
def getFactoryProfiles
 ファクトリのプロファイルを取得
def registerECFactory
 ExecutionContext用ファクトリを登録する.
def getModulesFactories
 ファクトリ全リストを取得する
def createComponent
 RTコンポーネントを生成する.
def registerComponent
 RTコンポーネントを直接 Manager に登録する.
def unregisterComponent
 RTコンポーネントの登録を解除する.
def createContext
 Contextを生成する.
def deleteComponent
 Manager に登録されているRTコンポーネントを削除する(未実装).
def getComponent
 Manager に登録されているRTコンポーネントを検索する.
def getComponents
 Manager に登録されている全RTコンポーネントを取得する.
def getORB
 ORB のポインタを取得する.
def getPOA
 Manager が持つ RootPOA のポインタを取得する.
def getPOAManager
 Manager が持つ POAManager を取得する.
def initManager
 Manager の内部初期化処理.
def shutdownManager
 Manager の終了処理(未実装).
def shutdownOnNoRtcs
 Manager の終了処理.
def initLogger
 System logger の初期化.
def shutdownLogger
 System Logger の終了処理(未実装).
def initORB
 CORBA ORB の初期化処理.
def createORBOptions
 ORB のコマンドラインオプション作成.
def createORBEndpoints
 エンドポイントの生成
def createORBEndpointOption
 ORB の Endpoint のコマンドラインオプション作成.
def shutdownORB
 ORB の終了処理.
def initNaming
 NamingManager の初期化.
def shutdownNaming
 NamingManager の終了処理.
def initExecContext
 ExecutionContextManager の初期化.
def initComposite
 PeriodicECSharedComposite の初期化.
def initFactories
 ファクトリの初期化
def initTimer
 Timer の初期化.
def initManagerServant
 ManagerServant の初期化.
def shutdownComponents
 NamingManager に登録されている全コンポーネントの終了処理.
def cleanupComponent
 RTコンポーネントの登録解除.
def cleanupComponents
 RTコンポーネントの削除する.
def notifyFinalized
 RTコンポーネントの削除する.
def procComponentArgs
 createComponentの引数を処理する @ param self @ param comp_arg(str) @ param comp_id(Properties object) @ param comp_conf(Properties object) @ return True or False
def configureComponent
 RTコンポーネントのコンフィギュレーション処理.
def mergeProperty
 プロパティ情報のマージ
def formatString
 NamingServer に登録する際の登録情報を組み立てる.
def getLogbuf
 ログバッファの取得
def getConfig
 マネージャコンフィギュレーションの取得

説明

Manager クラス.

コンポーネントなど各種の情報管理を行うマネージャクラス。

から:
0.2.0

メソッド

def OpenRTM_aist.Manager.Manager.__init__ (   self,
  _manager = None 
)

コピーコンストラクタ

コピーコンストラクタ

引数:
self 
_manager コピー元マネージャオブジェクト(デフォルト値:None)
def OpenRTM_aist.Manager.Manager.activateManager (   self  ) 

Managerのアクティブ化.

このオペレーションは以下の処理を行う

  • CORBA POAManager のアクティブ化
  • マネージャCORBAオブジェクトのアクティブ化
  • Manager オブジェクトへの初期化プロシージャの実行

このオペレーションは、マネージャの初期化後、runManager() の前に呼ぶ必要がある。

引数:
self 
戻り値:
処理結果(アクティブ化成功:true、失敗:false)
def OpenRTM_aist.Manager.Manager.cleanupComponent (   self,
  comp 
)

RTコンポーネントの登録解除.

指定したRTコンポーネントのインスタンスをネーミングサービスから 登録解除する。

引数:
self 
comp 登録解除対象RTコンポーネント
def OpenRTM_aist.Manager.Manager.cleanupComponents (   self  ) 

RTコンポーネントの削除する.

notifyFinalized()によって登録されたRTコンポーネントを削除する。

void cleanupComponents();

def OpenRTM_aist.Manager.Manager.configureComponent (   self,
  comp,
  prop 
)

RTコンポーネントのコンフィギュレーション処理.

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

引数:
self 
comp コンフィギュレーション対象RTコンポーネント

void configureComponent(RTObject_impl* comp, const coil.Properties& prop);

def OpenRTM_aist.Manager.Manager.createComponent (   self,
  comp_args 
)

RTコンポーネントを生成する.

指定したRTコンポーネントのインスタンスを登録されたFactory経由 で生成する。

生成されるコンポーネントの各種プロファイルは以下の優先順位で 設定される。

  1. createComponent() の引数で与えられたプロファイル
  2. rtc.confで指定された外部ファイルで与えられたプロファイル --# category.instance_name.config_file --# category.component_type.config_file
  3. コードに埋め込まれたプロファイル

インスタンス生成が成功した場合、併せて以下の処理を実行する。

  • 外部ファイルで設定したコンフィギュレーション情報の読み込み,設定
  • 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コンポーネントのインスタンス
def OpenRTM_aist.Manager.Manager.createContext (   self,
  ec_args 
)

Contextを生成する.

戻り値:
生成したConetextのインスタンス

ExecutionContextBase* createContext(const char* ec_args);

def OpenRTM_aist.Manager.Manager.createORBEndpointOption (   self,
  opt,
  endpoints 
)

ORB の Endpoint のコマンドラインオプション作成.

引数:
opt コマンドラインオプション
endpoints エンドポイントリスト

void createORBEndpointOption(std.string& opt, coil.vstring& endpoints);

def OpenRTM_aist.Manager.Manager.createORBEndpoints (   self,
  endpoints 
)

エンドポイントの生成

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

引数:
endpoints エンドポイントリスト

void createORBEndpoints(coil.vstring& endpoints);

def OpenRTM_aist.Manager.Manager.createORBOptions (   self  ) 

ORB のコマンドラインオプション作成.

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

引数:
self 
戻り値:
ORB 起動時オプション
def OpenRTM_aist.Manager.Manager.deleteComponent (   self,
  instance_name = None,
  comp = None 
)

Manager に登録されているRTコンポーネントを削除する(未実装).

マネージャに登録されているRTコンポーネントを削除する。

引数:
self 
instance_name 削除対象RTコンポーネントのインスタンス名
def OpenRTM_aist.Manager.Manager.formatString (   self,
  naming_format,
  prop 
)

NamingServer に登録する際の登録情報を組み立てる.

指定された書式とプロパティ情報を基に NameServer に登録する際の情報を 組み立てる。 各書式指定用文字の意味は以下のとおり

  • % : コンテキストの区切り
  • n : インスタンス名称
  • t : 型名
  • m : 型名
  • v : バージョン
  • V : ベンダー
  • c : カテゴリ
  • h : ホスト名
  • M : マネージャ名
  • p : プロセスID
引数:
self 
naming_format NamingService 登録情報書式指定
prop 使用するプロパティ情報
戻り値:
指定書式変換結果
def OpenRTM_aist.Manager.Manager.getComponent (   self,
  instance_name 
)

Manager に登録されているRTコンポーネントを検索する.

Manager に登録されているRTコンポーネントを指定した名称で検索し、 合致するコンポーネントを取得する。

引数:
self 
instance_name 検索対象RTコンポーネントの名称
戻り値:
名称が一致するRTコンポーネントのインスタンス
def OpenRTM_aist.Manager.Manager.getComponents (   self  ) 

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

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

引数:
self 
戻り値:
全RTコンポーネントのインスタンスリスト
def OpenRTM_aist.Manager.Manager.getConfig (   self  ) 

マネージャコンフィギュレーションの取得

マネージャに設定したコンフィギュレーションを取得する。

引数:
self 
戻り値:
マネージャのコンフィギュレーション
def OpenRTM_aist.Manager.Manager.getFactoryProfiles (   self  ) 

ファクトリのプロファイルを取得

ファクトリのプロファイルを取得する。

戻り値:
ファクトリのプロファイル
def OpenRTM_aist.Manager.Manager.getLoadableModules (   self  ) 

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

ロード可能モジュールのリストを取得する。 (現在はModuleManager側で未実装)

引数:
self 
戻り値:
ロード可能モジュール リスト
def OpenRTM_aist.Manager.Manager.getLoadedModules (   self  ) 

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

現在マネージャにロードされているモジュールのリストを取得する。

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

std.vector<coil.Properties> getLoadedModules();

def OpenRTM_aist.Manager.Manager.getLogbuf (   self,
  name = "manager" 
)

ログバッファの取得

マネージャに設定したログバッファを取得する。

引数:
self 
戻り値:
マネージャに設定したログバッファ
def OpenRTM_aist.Manager.Manager.getModulesFactories (   self  ) 

ファクトリ全リストを取得する

登録されているファクトリの全リストを取得する。

引数:
self 
戻り値:
登録ファクトリ リスト
def OpenRTM_aist.Manager.Manager.getORB (   self  ) 

ORB のポインタを取得する.

Manager に設定された ORB のポインタを取得する。

引数:
self 
戻り値:
ORB オブジェクト
def OpenRTM_aist.Manager.Manager.getPOA (   self  ) 

Manager が持つ RootPOA のポインタを取得する.

Manager に設定された RootPOA へのポインタを取得する。

引数:
self 
戻り値:
RootPOAオブジェクト
def OpenRTM_aist.Manager.Manager.getPOAManager (   self  ) 

Manager が持つ POAManager を取得する.

Manager に設定された POAMAnager を取得する。

引数:
self 
戻り値:
POAマネージャ
def OpenRTM_aist.Manager.Manager.init (   arg  ) 

マネージャの初期化

マネージャを初期化する static 関数。 マネージャをコマンドライン引数を与えて初期化する。 マネージャを使用する場合は、必ずこの初期化メンバ関数 init() を 呼ばなければならない。 マネージャのインスタンスを取得する方法として、init(), instance() の 2つの static 関数が用意されているが、初期化はinit()でしか行われないため、 Manager の生存期間の一番最初にはinit()を呼ぶ必要がある。

※マネージャの初期化処理

  • initManager: 引数処理、configファイルの読み込み、サブシステム初期化
  • initLogger: Logger初期化
  • initORB: ORB 初期化
  • initNaming: NamingService 初期化
  • initExecutionContext: ExecutionContext factory 初期化
  • initTimer: Timer 初期化
引数:
argv コマンドライン引数
戻り値:
Manager の唯一のインスタンスの参照
def OpenRTM_aist.Manager.Manager.initComposite (   self  ) 

PeriodicECSharedComposite の初期化.

戻り値:
PeriodicECSharedComposite 初期化処理実行結果 (初期化成功:true、初期化失敗:false)
def OpenRTM_aist.Manager.Manager.initExecContext (   self  ) 

ExecutionContextManager の初期化.

使用する各 ExecutionContext の初期化処理を実行し、各 ExecutionContext 生成用 Factory を ExecutionContextManager に登録する。

引数:
self 
戻り値:
ExecutionContextManager 初期化処理実行結果 (初期化成功:true、初期化失敗:false)
def OpenRTM_aist.Manager.Manager.initFactories (   self  ) 

ファクトリの初期化

バッファ、スレッド、パブリッシャ、プロバイダ、コンシューマの ファクトリを初期化する。

戻り値:
ファクトリ初期化処理実行結果 (初期化成功:true、初期化失敗:false)
def OpenRTM_aist.Manager.Manager.initLogger (   self  ) 

System logger の初期化.

System logger の初期化を実行する。 コンフィギュレーションファイルに設定された情報に基づき、 ロガーの初期化,設定を実行する。

引数:
self 
戻り値:
初期化実行結果(初期化成功:true、初期化失敗:false)
def OpenRTM_aist.Manager.Manager.initManager (   self,
  argv 
)

Manager の内部初期化処理.

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

  • Manager コンフィギュレーションの設定
  • ログ出力ファイルの設定
  • 終了処理用スレッドの生成
  • タイマ用スレッドの生成(タイマ使用時)
引数:
self 
argv コマンドライン引数
def OpenRTM_aist.Manager.Manager.initManagerServant (   self  ) 

ManagerServant の初期化.

戻り値:
Timer 初期化処理実行結果(初期化成功:true、初期化失敗:false)
def OpenRTM_aist.Manager.Manager.initNaming (   self  ) 

NamingManager の初期化.

NamingManager の初期化処理を実行する。 ただし、 NamingManager を使用しないようにプロパティ情報に設定されている 場合には何もしない。 NamingManager を使用する場合、プロパティ情報に設定されている デフォルト NamingServer を登録する。 また、定期的に情報を更新するように設定されている場合には、指定された周期 で自動更新を行うためのタイマを起動するとともに、更新用メソッドをタイマに 登録する。

引数:
self 
戻り値:
初期化処理結果(初期化成功:true、初期化失敗:false)
def OpenRTM_aist.Manager.Manager.initORB (   self  ) 

CORBA ORB の初期化処理.

設定情報を元にORBを初期化する。

引数:
self 
戻り値:
ORB 初期化処理結果(初期化成功:true、初期化失敗:false)
def OpenRTM_aist.Manager.Manager.initTimer (   self  ) 

Timer の初期化.

使用する各 Timer の初期化処理を実行する。 (現状の実装では何もしない)

引数:
self 
戻り値:
Timer 初期化処理実行結果(初期化成功:true、初期化失敗:false)
def OpenRTM_aist.Manager.Manager.instance (  ) 

マネージャのインスタンスの取得

マネージャのインスタンスを取得する static 関数。 この関数を呼ぶ前に、必ずこの初期化関数 init() が呼ばれている必要がある。

戻り値:
Manager の唯一のインスタンスの参照
def OpenRTM_aist.Manager.Manager.join (   self  ) 

マネージャ終了処理の待ち合わせ

同期を取るため、マネージャ終了処理の待ち合わせを行う。

引数:
self 
def OpenRTM_aist.Manager.Manager.load (   self,
  fname,
  initfunc 
)

[CORBA interface] モジュールのロード

指定したコンポーネントのモジュールをロードするとともに、 指定した初期化関数を実行する。

引数:
self 
fname モジュールファイル名
initfunc 初期化関数名
def OpenRTM_aist.Manager.Manager.mergeProperty (   self,
  prop,
  file_name 
)

プロパティ情報のマージ

指定されたファイル内に設定されているプロパティ情報をロードし、 既存の設定済みプロパティとマージする。

引数:
self 
prop マージ対象プロパティ
file_name プロパティ情報が記述されているファイル名
戻り値:
マージ処理実行結果(マージ成功:true、マージ失敗:false)
def OpenRTM_aist.Manager.Manager.notifyFinalized (   self,
  comp 
)

RTコンポーネントの削除する.

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

引数:
削除するRTコンポーネント 

void notifyFinalized(RTObject_impl* comp);

def OpenRTM_aist.Manager.Manager.procComponentArgs (   self,
  comp_arg,
  comp_id,
  comp_conf 
)

createComponentの引数を処理する @ param self @ param comp_arg(str) @ param comp_id(Properties object) @ param comp_conf(Properties object) @ return True or False

bool procComponentArgs(const char* comp_arg, coil.Properties& comp_id, coil.Properties& comp_conf)

def OpenRTM_aist.Manager.Manager.registerComponent (   self,
  comp 
)

RTコンポーネントを直接 Manager に登録する.

指定したRTコンポーネントのインスタンスをファクトリ経由ではなく 直接マネージャに登録する。

引数:
self 
comp 登録対象RTコンポーネントのインスタンス
戻り値:
登録処理結果(登録成功:true、失敗:false)
def OpenRTM_aist.Manager.Manager.registerECFactory (   self,
  name,
  new_func,
  delete_func 
)

ExecutionContext用ファクトリを登録する.

ExecutionContextのインスタンスを生成するためのFactoryを登録する。

引数:
self 
name 生成対象ExecutionContext名称
new_func ExecutionContext生成用関数
delete_func ExecutionContext破棄用関数
戻り値:
登録処理結果(登録成功:true、失敗:false)
def OpenRTM_aist.Manager.Manager.registerFactory (   self,
  profile,
  new_func,
  delete_func 
)

RTコンポーネント用ファクトリを登録する.

RTコンポーネントのインスタンスを生成するための Factoryを登録する。

引数:
self 
profile RTコンポーネント プロファイル
new_func RTコンポーネント生成用関数
delete_func RTコンポーネント破棄用関数
戻り値:
登録処理結果(登録成功:true、失敗:false)
def OpenRTM_aist.Manager.Manager.runManager (   self,
  no_block = None 
)

Managerの実行.

このオペレーションはマネージャのメインループを実行する。 このメインループ内では、CORBA ORBのイベントループ等が 処理される。デフォルトでは、このオペレーションはブロックし、 Manager.destroy() が呼ばれるまで処理を戻さない。 引数 no_block が true に設定されている場合は、内部でイベントループ を処理するスレッドを起動し、ブロックせずに処理を戻す。

引数:
self 
no_block false: ブロッキングモード, true: ノンブロッキングモード
def OpenRTM_aist.Manager.Manager.setModuleInitProc (   self,
  proc 
)

初期化プロシージャのセット

このオペレーションはユーザが行うモジュール等の初期化プロシージャ を設定する。ここで設定されたプロシージャは、マネージャが初期化され、 アクティブ化された後、適切なタイミングで実行される。

引数:
self 
proc 初期化プロシージャの関数ポインタ
def OpenRTM_aist.Manager.Manager.shutdown (   self  ) 

マネージャ・シャットダウン

マネージャの終了処理を実行する。 ORB終了後、同期を取って終了する。

引数:
self 
def OpenRTM_aist.Manager.Manager.shutdownComponents (   self  ) 

NamingManager に登録されている全コンポーネントの終了処理.

NamingManager に登録されているRTコンポーネントおよび ExecutionContext の リストを取得し、全コンポーネントを終了する。

引数:
self 
def OpenRTM_aist.Manager.Manager.shutdownLogger (   self  ) 

System Logger の終了処理(未実装).

System Loggerの終了処理を実行する。 (現在は未実装)

引数:
self 
def OpenRTM_aist.Manager.Manager.shutdownManager (   self  ) 

Manager の終了処理(未実装).

Manager を終了する (ただし,現在は未実装)

引数:
self 
def OpenRTM_aist.Manager.Manager.shutdownNaming (   self  ) 

NamingManager の終了処理.

NamingManager を終了する。 登録されている全要素をアンバインドし、終了する。

引数:
self 
def OpenRTM_aist.Manager.Manager.shutdownOnNoRtcs (   self  ) 

Manager の終了処理.

configuration の "manager.shutdown_on_nortcs" YES で、 コンポーネントが登録されていない場合 Manager を終了する。

void shutdownOnNoRtcs();

def OpenRTM_aist.Manager.Manager.shutdownORB (   self  ) 

ORB の終了処理.

ORB の終了処理を実行する。 実行待ちの処理が存在する場合には、その処理が終了するまで待つ。 実際の終了処理では、POA Managerを非活性化し、 ORB のシャットダウンを実行 する。

引数:
self 
def OpenRTM_aist.Manager.Manager.terminate (   self  ) 

マネージャ終了処理

マネージャの終了処理を実行する。

引数:
self 
def OpenRTM_aist.Manager.Manager.unload (   self,
  fname 
)

モジュールのアンロード

モジュールをアンロードする

引数:
self 
fname モジュールのファイル名
def OpenRTM_aist.Manager.Manager.unloadAll (   self  ) 

全モジュールのアンロード

モジュールをすべてアンロードする

引数:
self 
def OpenRTM_aist.Manager.Manager.unregisterComponent (   self,
  comp 
)

RTコンポーネントの登録を解除する.

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

引数:
self 
comp 登録解除対象RTコンポーネントのインスタンス
戻り値:
登録解除処理結果(解除成功:true、解除失敗:false)

このクラスの説明は次のファイルから生成されました:
OpenRTM-aist-1.1.0-Pythonに対してMon Mar 2 14:14:08 2015に生成されました。  doxygen 1.6.3