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 |
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 |
ロガーストリーム