OpenRTM-aist-Python 1.1.2
クラス | 公開メンバ関数 | 全メンバ一覧
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 クラス [詳解]
 

公開メンバ関数

def __init__ (self, _manager=None)
 コピーコンストラクタ [詳解]
 
def init (arg)
 マネージャの初期化 [詳解]
 
def instance ()
 マネージャのインスタンスの取得 [詳解]
 
def terminate (self)
 マネージャ終了処理 [詳解]
 
def shutdown (self)
 マネージャ・シャットダウン [詳解]
 
def join (self)
 マネージャ終了処理の待ち合わせ [詳解]
 
def setModuleInitProc (self, proc)
 初期化プロシージャのセット [詳解]
 
def activateManager (self)
 Managerのアクティブ化 [詳解]
 
def runManager (self, no_block=None)
 Managerの実行 [詳解]
 
def load (self, fname, initfunc)
 [CORBA interface] モジュールのロード [詳解]
 
def unload (self, fname)
 モジュールのアンロード [詳解]
 
def unloadAll (self)
 全モジュールのアンロード [詳解]
 
def getLoadedModules (self)
 ロード済みのモジュールリストを取得する [詳解]
 
def getLoadableModules (self)
 ロード可能なモジュールリストを取得する [詳解]
 
def registerFactory (self, profile, new_func, delete_func)
 RTコンポーネント用ファクトリを登録する [詳解]
 
def getFactoryProfiles (self)
 ファクトリのプロファイルを取得 [詳解]
 
def registerECFactory (self, name, new_func, delete_func)
 ExecutionContext用ファクトリを登録する [詳解]
 
def getModulesFactories (self)
 ファクトリ全リストを取得する [詳解]
 
def createComponent (self, comp_args)
 RTコンポーネントを生成する [詳解]
 
def registerComponent (self, comp)
 RTコンポーネントを直接 Manager に登録する [詳解]
 
def unregisterComponent (self, comp)
 RTコンポーネントの登録を解除する [詳解]
 
def createContext (self, ec_args)
 Contextを生成する [詳解]
 
def deleteComponent (self, instance_name=None, comp=None)
 Manager に登録されているRTコンポーネントを削除する(未実装) [詳解]
 
def getComponent (self, instance_name)
 Manager に登録されているRTコンポーネントを検索する [詳解]
 
def getComponents (self)
 Manager に登録されている全RTコンポーネントを取得する [詳解]
 
def getORB (self)
 ORB のポインタを取得する [詳解]
 
def getPOA (self)
 Manager が持つ RootPOA のポインタを取得する [詳解]
 
def getPOAManager (self)
 Manager が持つ POAManager を取得する [詳解]
 
def initManager (self, argv)
 Manager の内部初期化処理 [詳解]
 
def shutdownManager (self)
 Manager の終了処理(未実装) [詳解]
 
def shutdownOnNoRtcs (self)
 Manager の終了処理 [詳解]
 
def initLogger (self)
 System logger の初期化 [詳解]
 
def shutdownLogger (self)
 System Logger の終了処理(未実装) [詳解]
 
def initORB (self)
 CORBA ORB の初期化処理 [詳解]
 
def createORBOptions (self)
 ORB のコマンドラインオプション作成 [詳解]
 
def createORBEndpoints (self, endpoints)
 エンドポイントの生成 [詳解]
 
def createORBEndpointOption (self, opt, endpoints)
 ORB の Endpoint のコマンドラインオプション作成 [詳解]
 
def shutdownORB (self)
 ORB の終了処理 [詳解]
 
def initNaming (self)
 NamingManager の初期化 [詳解]
 
def shutdownNaming (self)
 NamingManager の終了処理 [詳解]
 
def initExecContext (self)
 ExecutionContextManager の初期化 [詳解]
 
def initComposite (self)
 PeriodicECSharedComposite の初期化 [詳解]
 
def initFactories (self)
 ファクトリの初期化 [詳解]
 
def initTimer (self)
 Timer の初期化 [詳解]
 
def initManagerServant (self)
 ManagerServant の初期化 [詳解]
 
def shutdownComponents (self)
 NamingManager に登録されている全コンポーネントの終了処理 [詳解]
 
def cleanupComponent (self, comp)
 RTコンポーネントの登録解除 [詳解]
 
def cleanupComponents (self)
 RTコンポーネントの削除する [詳解]
 
def notifyFinalized (self, comp)
 RTコンポーネントの削除する [詳解]
 
def 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 Falsebool procComponentArgs(const char* comp_arg, coil::Properties& comp_id, coil::Properties& comp_conf)
 
def configureComponent (self, comp, prop)
 RTコンポーネントのコンフィギュレーション処理 [詳解]
 
def mergeProperty (self, prop, file_name)
 プロパティ情報のマージ [詳解]
 
def formatString (self, naming_format, prop)
 NamingServer に登録する際の登録情報を組み立てる [詳解]
 
def getLogbuf (self, name="manager")
 ログバッファの取得 [詳解]
 
def getConfig (self)
 マネージャコンフィギュレーションの取得 [詳解]
 

詳解

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_formatNamingService 登録情報書式指定
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.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_funcExecutionContext生成用関数
delete_funcExecutionContext破棄用関数
戻り値
登録処理結果(登録成功:true、失敗:false)
def OpenRTM_aist.Manager.Manager.registerFactory (   self,
  profile,
  new_func,
  delete_func 
)

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

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

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

Managerの実行

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

引数
self
no_blockfalse: ブロッキングモード, 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)

このクラス詳解は次のファイルから抽出されました: