|
OpenRTM-aist 2.1.0
|
#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] モジュールのロード | |
| ReturnCode_t | load (coil::Properties &prop, 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 = ObjectManager< std::string, RTObject_impl, InstanceName > |
| using | FactoryManager = ObjectManager< const coil::Properties, FactoryBase, FactoryPredicate > |
| コンポーネントファクトリ | |
| using | ECFactoryManager = ObjectManager< const char *, ECFactoryBase, ECFactoryPredicate > |
限定公開メンバ関数 | |
| 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 からオプション情報を取得する | |
静的限定公開メンバ関数 | |
| static bool | isORBEndPoint (const std::string &endpoint) |
| giopからはじまるORBエンドポイントでの指定した場合にtrue、 それ以外(例えばホスト名:ポート番号の指定)の場合はfalseを返す。 | |
限定公開変数類 | |
| 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 {0} |
| 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 コンストラクタ
|
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コンポーネントの登録解除
| void RTC::Manager::cleanupComponents | ( | ) |
RTコンポーネントの削除する
|
protected |
RTコンポーネントのコンフィギュレーション処理
|
protected |
|
protected |
| RTObject_impl * RTC::Manager::createComponent | ( | const char * | comp_args | ) |
RTコンポーネントを生成する
| ExecutionContextBase * RTC::Manager::createContext | ( | const char * | ec_args | ) |
Contextを生成する
|
protected |
ORB の Endpoint のコマンドラインオプション作成
|
protected |
エンドポイントの生成
|
protected |
ORB のコマンドラインオプション作成
| void RTC::Manager::deleteComponent | ( | const char * | instance_name | ) |
Manager に登録されているRTコンポーネントを削除する
| void RTC::Manager::deleteComponent | ( | RTObject_impl * | comp | ) |
Manager に登録されているRTコンポーネントを削除する
|
protected |
corba.endpoint_property からオプション情報を取得する
|
protected |
NamingServer に登録する際の登録情報を組み立てる
| RTObject_impl * RTC::Manager::getComponent | ( | const char * | instance_name | ) |
Manager に登録されているRTコンポーネントを検索する
| std::vector< RTObject_impl * > RTC::Manager::getComponents | ( | ) |
Manager に登録されている全RTコンポーネントを取得する
|
inline |
マネージャコンフィギュレーションの取得
参照先 m_config.
| std::vector< coil::Properties > RTC::Manager::getFactoryProfiles | ( | ) |
ファクトリのプロファイルを取得
| std::vector< coil::Properties > RTC::Manager::getLoadableModules | ( | ) |
ロード可能なモジュールリストを取得する
| std::vector< coil::Properties > RTC::Manager::getLoadedModules | ( | ) |
ロード済みのモジュールリストを取得する
|
inline |
コンフィグレーションのログレベルの取得
参照先 m_config.
|
inline |
ログバッファの取得
参照先 m_logStreamBuf.
| 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 のポインタを取得する (所有権複製)
| PortableServer::POA_ptr RTC::Manager::getPOA | ( | ) |
Manager が持つ RootPOA のポインタを取得する (所有権複製)
| PortableServer::POAManager_ptr RTC::Manager::getPOAManager | ( | ) |
Manager が持つ POAManager を取得する (所有権複製)
|
protected |
|
static |
マネージャの初期化
|
protected |
|
protected |
|
protected |
ExecutionContextManager の初期化
|
protected |
ファクトリの初期化
| bool RTC::Manager::initLocalService | ( | ) |
LocalService の初期化
|
protected |
System logger の初期化
|
protected |
|
protected |
|
protected |
|
protected |
Manager の内部初期化処理
|
protected |
ManagerServant の初期化
|
protected |
NamingManager の初期化
|
protected |
CORBA ORB の初期化処理
|
protected |
起動時にrtc.confで指定したRTCをアクティベーションする
|
protected |
起動時にrtc.confで指定したポートを接続する
|
protected |
起動時にrtc.confで指定したRTCを生成する
|
static |
マネージャのインスタンスの取得
| void RTC::Manager::invoke | ( | std::function< void(void)> | fn, |
| std::chrono::nanoseconds | delay = std::chrono::seconds::zero() |
||
| ) |
Manger のメインスレッドで処理を実行
Manger のメインスレッドで指定された処理を実行する。長時間のブロッ キングを行う関数の登録は推奨しない。
| fn | 関数または関数オブジェクト |
| delay | 起動するまでの遅延時間 |
|
protected |
|
staticprotected |
giopからはじまるORBエンドポイントでの指定した場合にtrue、 それ以外(例えばホスト名:ポート番号の指定)の場合はfalseを返す。
| void RTC::Manager::join | ( | ) |
マネージャ終了処理の待ち合わせ
| ReturnCode_t RTC::Manager::load | ( | coil::Properties & | prop, |
| const std::string & | initfunc | ||
| ) |
[CORBA interface] モジュールのロード
| ReturnCode_t RTC::Manager::load | ( | const std::string & | fname, |
| const std::string & | initfunc | ||
| ) |
[CORBA interface] モジュールのロード
|
protected |
Manager メインスレッドのメイン関数
|
protected |
プロパティ情報のマージ
| void RTC::Manager::notifyFinalized | ( | RTObject_impl * | comp | ) |
RTコンポーネントの削除する
|
protected |
引数文字列からコンポーネント型名・プロパティを抽出する
|
protected |
引数文字列からExecutionContext名・プロパティを抽出する
|
protected |
| bool RTC::Manager::registerComponent | ( | RTObject_impl * | comp | ) |
RTコンポーネントを直接 Manager に登録する
| bool RTC::Manager::registerECFactory | ( | const char * | name, |
| ECNewFunc | new_func, | ||
| ECDeleteFunc | delete_func | ||
| ) |
ExecutionContext用ファクトリを登録する
| bool RTC::Manager::registerFactory | ( | coil::Properties & | profile, |
| RtcNewFunc | new_func, | ||
| RtcDeleteFunc | 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 |
マネージャ・シャットダウン
|
protected |
NamingManager に登録されている RTコンポーネントの終了処理
|
protected |
System Logger の終了処理
|
protected |
Managerサーバント の終了処理
|
protected |
NamingManager の終了処理
|
protected |
ORB の終了処理
|
protected |
|
static |
マネージャ終了処理
| CORBA::ORB_ptr RTC::Manager::theORB | ( | ) |
ORB のポインタを取得する (所有権保持)
| PortableServer::POA_ptr RTC::Manager::thePOA | ( | ) |
Manager が持つ RootPOA のポインタを取得する (所有権保持)
| PortableServer::POAManager_ptr RTC::Manager::thePOAManager | ( | ) |
Manager が持つ POAManager を取得する (所有権保持)
| void RTC::Manager::unload | ( | const char * | fname | ) |
モジュールのアンロード
モジュールをアンロードする
| fname | モジュールのファイル名 |
| void RTC::Manager::unloadAll | ( | ) |
全モジュールのアンロード
モジュールをすべてアンロードする
| bool RTC::Manager::unregisterComponent | ( | RTObject_impl * | comp | ) |
RTコンポーネントの登録を解除する
|
protected |
ORB_init に指定する引数
|
protected |
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 |
ロガーストリーム