OpenRTM-aist 2.0.2
|
LocalService 基底クラス [詳解]
#include <LocalServiceBase.h>
公開メンバ関数 | |
virtual | ~LocalServiceBase ()=default |
仮想デストラクタ | |
virtual bool | init (const coil::Properties &props)=0 |
LocalServiceクラスの初期化関数 | |
virtual bool | reinit (const coil::Properties &props)=0 |
LocalServiceクラスの再初期化関数 | |
virtual const LocalServiceProfile & | getProfile () const =0 |
LocalServiceProfile を返す | |
virtual void | finalize ()=0 |
終了処理 | |
LocalService 基底クラス
Local Service とは RT-Middlewareのマネージャデーモン内で各種サービ スを提供するための仕組みである。Local Serviceにはいくつかのユース ケースが考えられる。
Local Service はモジュールとしてロードされ、通常唯一のインスタンス が生成される。すなわち、LocalService はシングルトンとして実装され る。インスタンス化されたサービスはサービスリストに登録され、RTC等 からは名前やUUIDによってインスタンスの参照を入手することができる。
このオブジェクトのライフサイクルは以下の通り。
このクラスの実装に当たっては、少なくとも以下の純粋仮想関数を実装す る必要がある。
LocalService は通常共有オブジェクトとしてコンパイル・リンク される。共有オブジェクトのエントリポイントは通常コンパイルされたファ イル名の basename + "Init" にしておく。以下に、クラス名、ファイル 名、エントリポイント関数名の推奨例を示す。
エントリポイント関数は通常以下のように、LocalServiceFactory に当該コンシューマのファクトリ (と解体ファンクタ) を登録する以下の ような関数になる。
extern "C" { void MyLocalServiceInit() { RTC::LocalServiceFactory& factory = RTC::LocalServiceFactory::instance(); factory.addFactory(::RTC::MyLocalSerivce::name, ::coil::Creator< ::RTC::LocalServiceBase, ::RTC::MyLocalService>, ::coil::Destructor< ::RTC::LocalServiceBase, ::RTC::MyLocalService>); } };
|
virtualdefault |
仮想デストラクタ
|
pure virtual |
終了処理
LocalService が終了する際に呼び出される終了処理用関数。当該オブ ジェクトが保持するリソースを解放するなどの処理を行う。
|
pure virtual |
init()/reinit()で与えられた LocalServiceProfile は通常オブジェク ト内で保持される。この関数では保持されている ServiceProfile を返 す。
|
pure virtual |
LocalServiceクラスの初期化関数
このオブジェクトの初期化を行う。LocalService を実装する場合、外 部からの設定情報は、このinit()関数により与えられる。
profile | 外部から与えられた LocalServiceProfile |
|
pure virtual |
LocalServiceクラスの再初期化関数
TODO: ドキュメント作成
profile | 新たに与えられた LocalServiceProfile |