OpenRTM-aist 2.0.2
|
#include <Manager.h>
クラス | |
struct | ECFactoryPredicate |
class | FactoryPredicate |
struct | Finalized |
struct | InstanceName |
struct | ModuleFactories |
class | ModulePredicate |
公開型 | |
using | TaskId = coil::Timer<coil::PeriodicFunction>::TaskId |
公開メンバ関数 | |
void | join () |
マネージャ終了処理の待ち合わせ | |
LogStreamBuf & | getLogStreamBuf () |
ログバッファの取得 | |
std::string & | getLogLevel () |
コンフィグレーションのログレベルの取得 | |
coil::Properties & | getConfig () |
マネージャコンフィギュレーションの取得 | |
void | setModuleInitProc (ModuleInitProc proc) |
初期化プロシージャのセット | |
bool | activateManager () |
Managerのアクティブ化 | |
void | runManager (bool no_block=false) |
Managerの実行 | |
TaskId | addTask (std::function< void(void)> fn, std::chrono::nanoseconds period) |
周期実行タスクの登録 | |
void | invoke (std::function< void(void)> fn, std::chrono::nanoseconds delay=std::chrono::seconds::zero()) |
Manger のメインスレッドで処理を実行 | |
ReturnCode_t | load (const std::string &fname, const std::string &initfunc) |
[CORBA interface] モジュールのロード | |
void | unload (const char *fname) |
モジュールのアンロード | |
void | unloadAll () |
全モジュールのアンロード | |
std::vector< coil::Properties > | getLoadedModules () |
ロード済みのモジュールリストを取得する | |
std::vector< coil::Properties > | getLoadableModules () |
ロード可能なモジュールリストを取得する | |
bool | registerFactory (coil::Properties &profile, RtcNewFunc new_func, RtcDeleteFunc delete_func) |
RTコンポーネント用ファクトリを登録する | |
std::vector< coil::Properties > | getFactoryProfiles () |
ファクトリのプロファイルを取得 | |
bool | registerECFactory (const char *name, ECNewFunc new_func, ECDeleteFunc delete_func) |
ExecutionContext用ファクトリを登録する | |
std::vector< std::string > | getModulesFactories () |
ファクトリ全リストを取得する | |
RTObject_impl * | createComponent (const char *comp_args) |
RTコンポーネントを生成する | |
ExecutionContextBase * | createContext (const char *ec_args) |
Contextを生成する | |
void | cleanupComponent (RTObject_impl *comp) |
RTコンポーネントの登録解除 | |
void | cleanupComponents () |
RTコンポーネントの削除する | |
void | notifyFinalized (RTObject_impl *comp) |
RTコンポーネントの削除する | |
bool | registerComponent (RTObject_impl *comp) |
RTコンポーネントを直接 Manager に登録する | |
bool | unregisterComponent (RTObject_impl *comp) |
RTコンポーネントの登録を解除する | |
void | deleteComponent (RTObject_impl *comp) |
Manager に登録されているRTコンポーネントを削除する | |
void | deleteComponent (const char *instance_name) |
Manager に登録されているRTコンポーネントを削除する | |
RTObject_impl * | getComponent (const char *instance_name) |
Manager に登録されているRTコンポーネントを検索する | |
std::vector< RTObject_impl * > | getComponents () |
Manager に登録されている全RTコンポーネントを取得する | |
void | addManagerActionListener (RTM::ManagerActionListener *listener, bool autoclean=true) |
void | removeManagerActionListener (RTM::ManagerActionListener *listener) |
void | addModuleActionListener (RTM::ModuleActionListener *listener, bool autoclean=true) |
void | removeModuleActionListener (RTM::ModuleActionListener *listener) |
void | addRtcLifecycleActionListener (RTM::RtcLifecycleActionListener *listener, bool autoclean=true) |
void | removeRtcLifecycleActionListener (RTM::RtcLifecycleActionListener *listener) |
void | addNamingActionListener (RTM::NamingActionListener *listener, bool autoclean=true) |
void | removeNamingActionListener (RTM::NamingActionListener *listener) |
void | addLocalServiceActionListener (RTM::LocalServiceActionListener *listener, bool autoclean=true) |
void | removeLocalServiceActionListener (RTM::LocalServiceActionListener *listener) |
CORBA::ORB_ptr | theORB () |
ORB のポインタを取得する (所有権保持) | |
CORBA::ORB_ptr | getORB () |
ORB のポインタを取得する (所有権複製) | |
PortableServer::POA_ptr | thePOA () |
Manager が持つ RootPOA のポインタを取得する (所有権保持) | |
PortableServer::POA_ptr | getPOA () |
Manager が持つ RootPOA のポインタを取得する (所有権複製) | |
PortableServer::POAManager_ptr | thePOAManager () |
Manager が持つ POAManager を取得する (所有権保持) | |
PortableServer::POAManager_ptr | getPOAManager () |
Manager が持つ POAManager を取得する (所有権複製) | |
RTM::ManagerServant & | getManagerServant () |
ManagerServantを取得する | |
bool | initLocalService () |
LocalService の初期化 | |
NamingManager * | getNaming () |
NamingManagerを取得する | |
静的公開メンバ関数 | |
static Manager * | init (int argc, char **argv) |
マネージャの初期化 | |
static Manager & | instance () |
マネージャのインスタンスの取得 | |
static void | terminate () |
マネージャ終了処理 | |
static void | removeTask (TaskId id) |
周期実行タスクの削除 | |
限定公開型 | |
using | ComponentManager |
using | FactoryManager |
コンポーネントファクトリ | |
using | ECFactoryManager |
限定公開メンバ関数 | |
Manager () | |
Protected コンストラクタ | |
Manager (const Manager &)=delete | |
Manager & | operator= (const Manager &)=delete |
void | initManager (int argc, char **argv) |
Manager の内部初期化処理 | |
void | shutdown () |
マネージャ・シャットダウン | |
void | mainThread () |
Manager メインスレッドのメイン関数 | |
void | initLogstreamFile () |
void | initLogstreamPlugins () |
void | initLogstreamOthers () |
bool | initLogger () |
System logger の初期化 | |
void | shutdownLogger () |
System Logger の終了処理 | |
void | shutdownManagerServant () |
Managerサーバント の終了処理 | |
bool | initORB () |
CORBA ORB の初期化処理 | |
std::string | createORBOptions () |
ORB のコマンドラインオプション作成 | |
void | createORBEndpoints (coil::vstring &endpoints) |
エンドポイントの生成 | |
void | createORBEndpointOption (std::string &opt, coil::vstring endpoints) |
ORB の Endpoint のコマンドラインオプション作成 | |
void | shutdownORB () |
ORB の終了処理 | |
bool | initNaming () |
NamingManager の初期化 | |
void | shutdownNaming () |
NamingManager の終了処理 | |
NamingManager & | getNamingManager () |
NamingManagerを取得する | |
void | shutdownComponents () |
NamingManager に登録されている RTコンポーネントの終了処理 | |
bool | procComponentArgs (const char *comp_arg, coil::Properties &comp_id, coil::Properties &comp_conf) |
引数文字列からコンポーネント型名・プロパティを抽出する | |
bool | procContextArgs (const char *ec_args, std::string &ec_id, coil::Properties &ec_conf) |
引数文字列からExecutionContext名・プロパティを抽出する | |
void | configureComponent (RTObject_impl *comp, const coil::Properties &prop) |
RTコンポーネントのコンフィギュレーション処理 | |
bool | initExecContext () |
ExecutionContextManager の初期化 | |
bool | initComposite () |
PeriodicECSharedComposite の初期化 | |
bool | initFactories () |
ファクトリの初期化 | |
void | initCpuAffinity () |
void | initPreConnection () |
起動時にrtc.confで指定したポートを接続する | |
void | initPreActivation () |
起動時にrtc.confで指定したRTCをアクティベーションする | |
void | initPreCreation () |
起動時にrtc.confで指定したRTCを生成する | |
void | invokeInitProc () |
void | publishPorts (RTObject_impl *comp) |
void | subscribePorts (RTObject_impl *comp) |
PortServiceList * | getPortsOnNameServers (const std::string &nsname, const std::string &kind) |
void | connectDataPorts (PortService_ptr port, PortServiceList_var &target_ports) |
void | connectServicePorts (PortService_ptr port, PortServiceList_var &target_ports) |
bool | initManagerServant () |
ManagerServant の初期化 | |
bool | mergeProperty (coil::Properties &prop, const char *file_name) |
プロパティ情報のマージ | |
std::string | formatString (const char *naming_format, coil::Properties &prop) |
NamingServer に登録する際の登録情報を組み立てる | |
void | setEndpointProperty (CORBA::Object_ptr objref) |
corba.endpoints にエンドポイント情報を設定する | |
void | endpointPropertySwitch (const std::string &ipver, bool &ip, std::vector< int > &ip_list) |
corba.endpoint_property からオプション情報を取得する | |
限定公開変数類 | |
RTM::ManagerServant * | m_mgrservant {nullptr} |
ManagerServant へのポインタ | |
CORBA::ORB_var | m_pORB |
ORB へのポインタ | |
PortableServer::POA_var | m_pPOA |
POA へのポインタ | |
PortableServer::POAManager_var | m_pPOAManager |
POAManager へのポインタ | |
coil::Argv | m_argv |
ORB_init に指定する引数 | |
int | m_argvSize |
ORB_init に指定する引数 | |
ModuleInitProc | m_initProc {nullptr} |
ユーザ初期化関数へのポインタ | |
coil::Properties | m_config |
Manager の configuration を格納する Properties | |
ModuleManager * | m_module {nullptr} |
ModuleManager へのポインタ | |
NamingManager * | m_namingManager {nullptr} |
NamingManager へのポインタ | |
coil::Timer< coil::DelayedFunction > | m_invoker |
Manager スレッド上での遅延呼び出し用タイマー | |
coil::Timer< coil::PeriodicFunction > | m_scheduler |
Manager スレッド上での周期呼び出し用タイマー | |
std::thread | m_threadOrb |
ORB 用のスレッド | |
std::thread | m_threadMain |
Manager のメインスレッド | |
std::list< coil::SignalAction > | m_signals |
シグナル管理用配列 | |
bool | m_needsTimer {false} |
マネージャーがタイマーを利用するかどうかのフラグ | |
LogStreamBuf | m_logStreamBuf |
ロガーバッファ | |
Logger | rtclog {&m_logStreamBuf} |
ロガーストリーム | |
std::vector< std::filebuf * > | m_logfiles |
ログ出力ファイル | |
ComponentManager | m_compManager |
コンポーネントマネージャ | |
FactoryManager | m_factory |
ComponentManager | |
ECFactoryManager | m_ecfactory |
ExecutionContext マネージャ | |
std::vector< ExecutionContextBase * > | m_ecs |
ExecutionContext リスト | |
Finalized | m_finalized |
::RTM::ManagerActionListeners | m_listeners |
静的限定公開変数類 | |
static Manager * | manager |
唯一の Manager へのポインタ | |
static std::mutex | mutex |
唯一の Manager へのポインタに対する mutex | |
static std::atomic_flag | m_isRunning |
メインスレッド停止用フラグ | |
|
protected |
|
protected |
|
protected |
コンポーネントファクトリ
using RTC::Manager::TaskId = coil::Timer<coil::PeriodicFunction>::TaskId |
|
protected |
Protected コンストラクタ
Protected コンストラクタ
|
protecteddelete |
bool RTC::Manager::activateManager | ( | ) |
Managerのアクティブ化
このオペレーションは以下の処理を行う
このオペレーションは、マネージャの初期化後、runManager() の前に呼ぶ必要がある。
void RTC::Manager::addLocalServiceActionListener | ( | RTM::LocalServiceActionListener * | listener, |
bool | autoclean = true ) |
void RTC::Manager::addManagerActionListener | ( | RTM::ManagerActionListener * | listener, |
bool | autoclean = true ) |
void RTC::Manager::addModuleActionListener | ( | RTM::ModuleActionListener * | listener, |
bool | autoclean = true ) |
void RTC::Manager::addNamingActionListener | ( | RTM::NamingActionListener * | listener, |
bool | autoclean = true ) |
void RTC::Manager::addRtcLifecycleActionListener | ( | RTM::RtcLifecycleActionListener * | listener, |
bool | autoclean = true ) |
TaskId RTC::Manager::addTask | ( | std::function< void(void)> | fn, |
std::chrono::nanoseconds | period ) |
周期実行タスクの登録
周期的に実行する関数や関数オブジェクトを Manager のタイマーに登録する。 removePeriodTask() が実行されるまで処理が継続される。本関数に登録する処理 の中で sleep などの長時間ブロッキングは推奨されない。また周期タスクの中で 本関数を呼び出してはならない。
fn | 周期実行する関数または関数オブジェクト |
period | 周期実行の実行間隔 |
void RTC::Manager::cleanupComponent | ( | RTObject_impl * | comp | ) |
RTコンポーネントの登録解除
指定したRTコンポーネントのインスタンスをネーミングサービスから 登録解除する。
comp | 登録解除対象RTコンポーネント |
void RTC::Manager::cleanupComponents | ( | ) |
RTコンポーネントの削除する
notifyFinalized()によって登録されたRTコンポーネントを削除する。
|
protected |
RTコンポーネントのコンフィギュレーション処理
RTコンポーネントの型およびインスタンス毎に記載されたプロパティファイルの 情報を読み込み、コンポーネントに設定する。 また、各コンポーネントの NamingService 登録時の名称を取得し、設定する。
comp | コンフィギュレーション対象RTコンポーネント |
|
protected |
port | |
target_ports |
|
protected |
port | |
target_ports |
RTObject_impl * RTC::Manager::createComponent | ( | const char * | comp_args | ) |
RTコンポーネントを生成する
指定したRTコンポーネントのインスタンスを登録されたFactory経由 で生成する。
生成されるコンポーネントの各種プロファイルは以下の優先順位で 設定される。
インスタンス生成が成功した場合、併せて以下の処理を実行する。
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
ExecutionContextBase * RTC::Manager::createContext | ( | const char * | ec_args | ) |
Contextを生成する
|
protected |
ORB の Endpoint のコマンドラインオプション作成
opt | コマンドラインオプション |
endpoint | エンドポイントリスト |
|
protected |
エンドポイントの生成
コンフィグレーションからエンドポイントを生成する。
endpoints | エンドポイントリスト |
|
protected |
ORB のコマンドラインオプション作成
コンフィギュレーション情報に設定された内容から ORB の起動時オプションを作成する。
void RTC::Manager::deleteComponent | ( | const char * | instance_name | ) |
Manager に登録されているRTコンポーネントを削除する
マネージャに登録されているRTコンポーネントを削除する。 指定されたRTコンポーネントをネーミングサービスから削除し、 RTコンポーネント自体を終了させるとともに、インスタンスを解放する。
instance_name | 削除対象RTコンポーネントのインスタンス名 |
void RTC::Manager::deleteComponent | ( | RTObject_impl * | comp | ) |
Manager に登録されているRTコンポーネントを削除する
マネージャに登録されているRTコンポーネントを削除する。 指定されたRTコンポーネントをネーミングサービスから削除し、 RTコンポーネント自体を終了させるとともに、インスタンスを解放する。
comp | 削除対象RTコンポーネントのインスタンス |
|
protected |
corba.endpoint_property からオプション情報を取得する
|
protected |
NamingServer に登録する際の登録情報を組み立てる
指定された書式とプロパティ情報を基に NameServer に登録する際の情報を 組み立てる。 各書式指定用文字の意味は以下のとおり
naming_format | NamingService 登録情報書式指定 |
prop | 使用するプロパティ情報 |
RTObject_impl * RTC::Manager::getComponent | ( | const char * | instance_name | ) |
std::vector< RTObject_impl * > RTC::Manager::getComponents | ( | ) |
|
inline |
std::vector< coil::Properties > RTC::Manager::getFactoryProfiles | ( | ) |
ファクトリのプロファイルを取得
ファクトリのプロファイルを取得する。
std::vector< coil::Properties > RTC::Manager::getLoadableModules | ( | ) |
ロード可能なモジュールリストを取得する
ロード可能モジュールのリストを取得する。 (現在はModuleManager側で未実装)
std::vector< coil::Properties > RTC::Manager::getLoadedModules | ( | ) |
ロード済みのモジュールリストを取得する
現在マネージャにロードされているモジュールのリストを取得する。
|
inline |
|
inline |
RTM::ManagerServant & RTC::Manager::getManagerServant | ( | ) |
ManagerServantを取得する
std::vector< std::string > RTC::Manager::getModulesFactories | ( | ) |
ファクトリ全リストを取得する
登録されているファクトリの全リストを取得する。
NamingManager * RTC::Manager::getNaming | ( | ) |
NamingManagerを取得する
|
protected |
NamingManagerを取得する
CORBA::ORB_ptr RTC::Manager::getORB | ( | ) |
ORB のポインタを取得する (所有権複製)
Manager に設定された ORB のポインタを取得する。所有権はコピーさ れ(リファレンスカウントが1増加する。)、受け取った側でも所有権 を獲得する。したがって、使用後にはリファレンスを解放する必要があ る。通常は以下のように戻り値を _var 型変数で受け取り、自動的に解 放させる方法が推奨される。
{ CORBA::ORB_var orb = Manager::instance().getORB(); orb->string_to_object(<IOR string>); } // ORB's reference in orb is released here.
PortableServer::POA_ptr RTC::Manager::getPOA | ( | ) |
Manager が持つ RootPOA のポインタを取得する (所有権複製)
Manager に設定された RootPOA へのポインタを取得する。所有権はコ ピーされ(リファレンスカウントが1増加する。)、受け取った側でも 所有権を獲得する。したがって、使用後にはリファレンスを解放する必 要がある。通常は以下のように戻り値を _var 型変数で受け取り、自動 的に解放させる方法が推奨される。
{ PortableServer::POA_var poa = Manager::instance().getPOA();; poa->servant_to_id(m_servant); } // POA's reference in orb is released here.
PortableServer::POAManager_ptr RTC::Manager::getPOAManager | ( | ) |
Manager が持つ POAManager を取得する (所有権複製)
Manager に設定された POAMAnager を取得する。所有権はコピーさ れ(リファレンスカウントが1増加する。)、受け取った側でも所有権 を獲得する。したがって、使用後にはリファレンスを解放する必要があ る。通常は以下のように戻り値を _var 型変数で受け取り、自動的に解 放させる方法が推奨される。
{ PortableServer::POAManager_var poam; poam = = Manager::instance().getPOAManager(); poam->activate(); } // POAManager's reference in orb is released here.
|
protected |
comp |
|
static |
マネージャの初期化
マネージャを初期化する static メンバ関数。 マネージャをコマンドライン引数を与えて初期化する。 マネージャを使用する場合は、必ずこの初期化メンバ関数 init() を 呼ばなければならない。 マネージャのインスタンスを取得する方法として、init(), instance() の 2つの static メンバ関数が用意されているが、初期化はinit()でしか 行われないため、Manager の生存期間の一番最初にはinit()を呼ぶ必要がある。
※マネージャの初期化処理
argc | コマンドライン引数の数 |
argv | コマンドライン引数 |
|
protected |
PeriodicECSharedComposite の初期化
|
protected |
|
protected |
ExecutionContextManager の初期化
使用する各 ExecutionContext の初期化処理を実行し、各 ExecutionContext 生成用 Factory を ExecutionContextManager に登録する。
|
protected |
ファクトリの初期化
バッファ、スレッド、パブリッシャ、プロバイダ、コンシューマの ファクトリを初期化する。
bool RTC::Manager::initLocalService | ( | ) |
LocalService の初期化
|
protected |
System logger の初期化
System logger の初期化を実行する。 コンフィギュレーションファイルに設定された情報に基づき、 ロガーの初期化,設定を実行する。
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
ManagerServant の初期化
|
protected |
NamingManager の初期化
NamingManager の初期化処理を実行する。 ただし、NamingManager を使用しないようにプロパティ情報に設定されている 場合には何もしない。 NamingManager を使用する場合、プロパティ情報に設定されている デフォルト NamingServer を登録する。 また、定期的に情報を更新するように設定されている場合には、指定された周期 で自動更新を行うためのタイマを起動するとともに、更新用メソッドをタイマに 登録する。
|
protected |
CORBA ORB の初期化処理
引数により与えられた設定を元にORBを初期化する。
|
protected |
起動時にrtc.confで指定したRTCをアクティベーションする
例: manager.components.preactivation: RTC1,RTC2~
|
protected |
起動時にrtc.confで指定したポートを接続する
例: manager.components.preconnect: RTC0.port0?port=RTC0.port1&interface_type=corba_cdr&dataflow_type=pull&~,~
|
protected |
起動時にrtc.confで指定したRTCを生成する
例: manager.components.precreate RTC1,RTC2~
|
static |
void RTC::Manager::invoke | ( | std::function< void(void)> | fn, |
std::chrono::nanoseconds | delay = std::chrono::seconds::zero() ) |
Manger のメインスレッドで処理を実行
Manger のメインスレッドで指定された処理を実行する。長時間のブロッ キングを行う関数の登録は推奨しない。
fn | 関数または関数オブジェクト |
delay | 起動するまでの遅延時間 |
|
protected |
void RTC::Manager::join | ( | ) |
マネージャ終了処理の待ち合わせ
同期を取るため、マネージャ終了処理の待ち合わせを行う。
ReturnCode_t RTC::Manager::load | ( | const std::string & | fname, |
const std::string & | initfunc ) |
[CORBA interface] モジュールのロード
指定したコンポーネントのモジュールをロードするとともに、 指定した初期化関数を実行する。
fname | モジュールファイル名 |
initfunc | 初期化関数名 |
|
protected |
Manager メインスレッドのメイン関数
|
protected |
プロパティ情報のマージ
指定されたファイル内に設定されているプロパティ情報をロードし、 既存の設定済みプロパティとマージする。
prop | マージ対象プロパティ |
file_name | プロパティ情報が記述されているファイル名 |
void RTC::Manager::notifyFinalized | ( | RTObject_impl * | comp | ) |
|
protected |
引数文字列からコンポーネント型名・プロパティを抽出する
文字列からコンポーネント型とコンポーネントのプロパティを抽出する。 与えられる文字列のフォーマットは 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 | 抽出されたコンポーネントのプロパティ |
|
protected |
引数文字列からExecutionContext名・プロパティを抽出する
文字列から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のプロパティ |
|
protected |
comp |
bool RTC::Manager::registerComponent | ( | RTObject_impl * | comp | ) |
RTコンポーネントを直接 Manager に登録する
指定したRTコンポーネントのインスタンスを ファクトリ経由ではなく直接マネージャに登録する。
comp | 登録対象RTコンポーネントのインスタンス |
bool RTC::Manager::registerECFactory | ( | const char * | name, |
ECNewFunc | new_func, | ||
ECDeleteFunc | delete_func ) |
ExecutionContext用ファクトリを登録する
ExecutionContextのインスタンスを生成するための Factoryを登録する。
name | 生成対象ExecutionContext名称 |
new_func | ExecutionContext生成用関数 |
delete_func | ExecutionContext破棄用関数 |
bool RTC::Manager::registerFactory | ( | coil::Properties & | profile, |
RtcNewFunc | new_func, | ||
RtcDeleteFunc | delete_func ) |
RTコンポーネント用ファクトリを登録する
RTコンポーネントのインスタンスを生成するための Factoryを登録する。
profile | RTコンポーネント プロファイル |
new_func | RTコンポーネント生成用関数 |
delete_func | RTコンポーネント破棄用関数 |
void RTC::Manager::removeLocalServiceActionListener | ( | RTM::LocalServiceActionListener * | listener | ) |
void RTC::Manager::removeManagerActionListener | ( | RTM::ManagerActionListener * | listener | ) |
void RTC::Manager::removeModuleActionListener | ( | RTM::ModuleActionListener * | listener | ) |
void RTC::Manager::removeNamingActionListener | ( | RTM::NamingActionListener * | listener | ) |
void RTC::Manager::removeRtcLifecycleActionListener | ( | RTM::RtcLifecycleActionListener * | listener | ) |
|
inlinestatic |
周期実行タスクの削除
タイマーに登録されている周期タスクを削除する。
id | 削除対象のタスクを示す ID |
void RTC::Manager::runManager | ( | bool | no_block = false | ) |
Managerの実行
このオペレーションはマネージャのメインループを実行する。このメインループ 内では、タイマー処理が行われる。また CORBA ORB のイベントループ等も開始さ れる。デフォルトでは、このオペレーションはブロックし、 Manager::terminate() や シグナルハンドラーが呼ばれるまで処理を戻さない。 引数 no_block が true に設定されている場合は、内部でイベントループを処理 するスレッドを起動し、ブロックせずに処理を戻す。
no_block | false: ブロッキングモード, true: ノンブロッキングモード |
|
protected |
corba.endpoints にエンドポイント情報を設定する
void RTC::Manager::setModuleInitProc | ( | ModuleInitProc | proc | ) |
初期化プロシージャのセット
このオペレーションはユーザが行うモジュール等の初期化プロシージャ を設定する。ここで設定されたプロシージャは、マネージャが初期化され、 アクティブ化された後、適切なタイミングで実行される。
proc | 初期化プロシージャの関数ポインタ |
|
protected |
マネージャ・シャットダウン
マネージャの終了処理を実行する。 ORB終了後、同期を取って終了する。
|
protected |
NamingManager に登録されている RTコンポーネントの終了処理
NamingManager に登録されているRTコンポーネントのリストを取得し、 全コンポーネントを終了する。
|
protected |
System Logger の終了処理
System Loggerの終了処理を実行する。 バッファ内に保持されているログ情報が存在する場合には、 強制的にログファイルに出力し、ログファイルを閉じる。
|
protected |
Managerサーバント の終了処理
ManagerサーバントのCORBAオブジェクトの非活性化、 終了処理を実行する。
|
protected |
NamingManager の終了処理
NamingManager を終了する。 登録されている全要素をアンバインドし、終了する。
|
protected |
ORB の終了処理
ORB の終了処理を実行する。 実行待ちの処理が存在する場合には、その処理が終了するまで待つ。 実際の終了処理では、POA Managerを非活性化し、 ORB のシャットダウンを実行 する。
|
protected |
comp |
|
static |
マネージャ終了処理
マネージャの終了処理を実行する。
CORBA::ORB_ptr RTC::Manager::theORB | ( | ) |
ORB のポインタを取得する (所有権保持)
Manager に設定された ORB のポインタを取得する。所有権は保持され たままである。_var型で受ける場合は getORB() を用いること。この関 数は以下のようにORBのオペレーションを直接呼ぶ場合に利用する。
Manager::instance().theORB()->string_to_object(<IOR string>);
PortableServer::POA_ptr RTC::Manager::thePOA | ( | ) |
Manager が持つ RootPOA のポインタを取得する (所有権保持)
Manager に設定された RootPOA へのポインタを取得する。所有権は保持され たままである。_var型で受ける場合は getPOA() を用いること。この関 数は以下のようにPOAのオペレーションを直接呼ぶ場合に利用する。
Manager::instance().getPOA()->servant_to_id(m_servant);
PortableServer::POAManager_ptr RTC::Manager::thePOAManager | ( | ) |
Manager が持つ POAManager を取得する (所有権保持)
Manager に設定された POAMAnager を取得する。所有権は保持され たままである。_var型で受ける場合は getORB() を用いること。この関 数は以下のようにORBのオペレーションを直接呼ぶ場合に利用する。
Manager::instance().thePOAManager()->activate();
void RTC::Manager::unload | ( | const char * | fname | ) |
モジュールのアンロード
モジュールをアンロードする
fname | モジュールのファイル名 |
void RTC::Manager::unloadAll | ( | ) |
全モジュールのアンロード
モジュールをすべてアンロードする
bool RTC::Manager::unregisterComponent | ( | RTObject_impl * | comp | ) |
RTコンポーネントの登録を解除する
指定したRTコンポーネントの登録を解除する。
comp | 登録解除対象RTコンポーネントのインスタンス |
|
protected |
ORB_init に指定する引数
omniORB の実装がひどすぎて、ORB_init後も与えた引数を維持しなければならない。
|
protected |
ORB_init に指定する引数
omniORB の実装がひどすぎて、ORB_init後も与えた引数を維持しなければならない。
|
protected |
コンポーネントマネージャ
|
protected |
Manager の configuration を格納する Properties
参照元 getConfig(), getLogLevel().
|
protected |
ExecutionContext マネージャ
|
protected |
ExecutionContext リスト
|
protected |
ComponentManager
|
protected |
|
protected |
ユーザ初期化関数へのポインタ
|
protected |
Manager スレッド上での遅延呼び出し用タイマー
|
staticprotected |
メインスレッド停止用フラグ
|
protected |
|
protected |
ログ出力ファイル
|
protected |
ロガーバッファ
参照元 getLogStreamBuf().
|
protected |
ManagerServant へのポインタ
|
protected |
ModuleManager へのポインタ
|
protected |
NamingManager へのポインタ
|
protected |
マネージャーがタイマーを利用するかどうかのフラグ
|
protected |
ORB へのポインタ
|
protected |
POA へのポインタ
|
protected |
POAManager へのポインタ
|
protected |
Manager スレッド上での周期呼び出し用タイマー
|
protected |
シグナル管理用配列
|
protected |
Manager のメインスレッド
|
protected |
ORB 用のスレッド
|
staticprotected |
唯一の Manager へのポインタに対する mutex
|
protected |
ロガーストリーム