OpenRTM-aist  1.2.1
クラス | 公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
RTC::ConfigAdmin クラス

ConfigAdmin クラス [詳解]

#include <ConfigAdmin.h>

公開メンバ関数

 ConfigAdmin (coil::Properties &prop)
 コンストラクタ [詳解]
 
 ~ConfigAdmin (void)
 仮想デストラクタ [詳解]
 
template<typename VarType >
bool bindParameter (const char *param_name, VarType &var, const char *def_val, bool(*trans)(VarType &, const char *)=coil::stringTo)
 コンフィギュレーションパラメータの設定 [詳解]
 
bool unbindParameter (const char *param_name)
 コンフィギュレーションパラメータの解除 [詳解]
 
void update (void)
 コンフィギュレーションパラメータの更新 (アクティブコンフィギュレーションセット) [詳解]
 
void update (const char *config_set)
 コンフィギュレーションパラメータの更新(ID指定) [詳解]
 
void update (const char *config_set, const char *config_param)
 コンフィギュレーションパラメータの更新(名称指定) [詳解]
 
bool isExist (const char *name)
 コンフィギュレーションパラメータの存在確認 [詳解]
 
bool isChanged (void)
 コンフィギュレーションパラメータの変更確認 [詳解]
 
coil::vstringchangedParameters ()
 変更されたパラメータのリスト [詳解]
 
const char * getActiveId (void)
 アクティブ・コンフィギュレーションセットIDの取得 [詳解]
 
bool haveConfig (const char *config_id)
 コンフィギュレーションセットの存在確認 [詳解]
 
bool isActive (void)
 コンフィギュレーションセットのアクティブ化確認 [詳解]
 
const std::vector< coil::Properties * > & getConfigurationSets (void)
 全コンフィギュレーションセットの取得 [詳解]
 
const coil::PropertiesgetConfigurationSet (const char *config_id)
 指定したIDのコンフィギュレーションセットの取得 [詳解]
 
bool setConfigurationSetValues (const coil::Properties &configuration_set)
 指定したプロパティのコンフィギュレーションセットへの追加 [詳解]
 
const coil::PropertiesgetActiveConfigurationSet (void)
 アクティブ・コンフィギュレーションセットを取得 [詳解]
 
bool addConfigurationSet (const coil::Properties &configuration_set)
 コンフィギュレーションセットに設定値を追加 [詳解]
 
bool removeConfigurationSet (const char *config_id)
 コンフィギュレーションセットの削除 [詳解]
 
bool activateConfigurationSet (const char *config_id)
 コンフィギュレーションセットのアクティブ化 [詳解]
 
void setOnUpdate (OnUpdateCallback *cb)
 
void setOnUpdateParam (OnUpdateParamCallback *cb)
 
void setOnSetConfigurationSet (OnSetConfigurationSetCallback *cb)
 
void setOnAddConfigurationSet (OnAddConfigurationAddCallback *cb)
 
void setOnRemoveConfigurationSet (OnRemoveConfigurationSetCallback *cb)
 
void setOnActivateSet (OnActivateSetCallback *cb)
 
void addConfigurationParamListener (ConfigurationParamListenerType type, ConfigurationParamListener *listener, bool autoclean=true)
 ConfigurationParamListener を追加する [詳解]
 
void removeConfigurationParamListener (ConfigurationParamListenerType type, ConfigurationParamListener *listener)
 ConfigurationParamListener を削除する [詳解]
 
void addConfigurationSetListener (ConfigurationSetListenerType type, ConfigurationSetListener *listener, bool autoclean=true)
 ConfigurationSetListener を追加する [詳解]
 
void removeConfigurationSetListener (ConfigurationSetListenerType type, ConfigurationSetListener *listener)
 ConfigurationSetListener を削除する [詳解]
 
void addConfigurationSetNameListener (ConfigurationSetNameListenerType type, ConfigurationSetNameListener *listener, bool autoclean=true)
 ConfigurationSetNameListener を追加する [詳解]
 
void removeConfigurationSetNameListener (ConfigurationSetNameListenerType type, ConfigurationSetNameListener *listener)
 ConfigurationSetNameListener を削除する [詳解]
 

限定公開メンバ関数

void onUpdate (const char *config_set)
 コンフィギュレーションパラメータの更新(ID指定)時にコールされる [詳解]
 
void onUpdateParam (const char *config_set, const char *config_param)
 コンフィギュレーションパラメータの更新(名称指定)時にコールされる [詳解]
 
void onSetConfigurationSet (const coil::Properties &config_set)
 コンフィギュレーションセットへの追加時にコールされる [詳解]
 
void onAddConfigurationSet (const coil::Properties &config_set)
 設定値が追加されたときにコールされる。 [詳解]
 
void onRemoveConfigurationSet (const char *config_id)
 セットが削除されてるときにコールされる。 [詳解]
 
void onActivateSet (const char *config_id)
 セットがアクティブ化されたときにコールされる。 [詳解]
 

詳解

ConfigAdmin クラス

各種コンフィギュレーション情報を管理するクラス。 用語を以下のように定義する。

このクラスでは、コンフィギュレーションのための以下の2つの情報を保 持している。

  1. コンフィギュレーションセットのリスト
  2. パラメータ変数のリスト

基本的には、(1) のコンフィギュレーションセットのリストのうち一つを、 (2) のパラメータ変数へ反映させる、のが本クラスの目的である。通常、 パラメータ変数の変更操作は、コンフィギュレーションセットの変更とパ ラメータ変数への反映の2段階で行われる。

コンフィギュレーションセットのリストの操作には、以下の関数を用いる。

これらの関数により、コンフィギュレーションセットの変更、追加、削除、 取得、アクティブ化を行う。これらの操作により変更されたコンフィギュ レーションセットを、RTCのアクティビティから使用するパラメータ変数 に反映させるには、以下の update() 関数を用いる。

コンフィギュレーション操作をフックするためにコールバックファンクタ を与えることができる。フックできる操作は以下の通り。

から
0.4.0

構築子と解体子

RTC::ConfigAdmin::ConfigAdmin ( coil::Properties prop)

コンストラクタ

コンストラクタ

引数
prop設定対象プロパティ名
RTC::ConfigAdmin::~ConfigAdmin ( void  )

仮想デストラクタ

仮想デストラクタ。

関数詳解

bool RTC::ConfigAdmin::activateConfigurationSet ( const char *  config_id)

コンフィギュレーションセットのアクティブ化

指定したIDのコンフィギュレーションセットをアクティブ化する。 指定したIDのコンフィギュレーションセットが存在しない場合は、 falseを返す。

引数
config_id削除対象コンフィギュレーションセットのID
戻り値
アクティブ処理結果(成功:true、失敗:false)
void RTC::ConfigAdmin::addConfigurationParamListener ( ConfigurationParamListenerType  type,
ConfigurationParamListener listener,
bool  autoclean = true 
)

ConfigurationParamListener を追加する

update(const char* config_set, const char* config_param) が呼ばれた際に コールされるリスナ ConfigurationParamListener を追加する。 type には現在のところ ON_UPDATE_CONFIG_PARAM のみが入る。

引数
typeConfigurationParamListenerType型の値。 ON_UPDATE_CONFIG_PARAM がある。
listenerConfigurationParamListener 型のリスナオブジェクト。
autocleanリスナオブジェクトを自動で削除するかどうかのフラグ
bool RTC::ConfigAdmin::addConfigurationSet ( const coil::Properties configuration_set)

コンフィギュレーションセットに設定値を追加

コンフィギュレーションセットに設定値を追加する。

引数
configuration_set追加するプロパティ
戻り値
追加処理結果(追加成功:true、追加失敗:false)
void RTC::ConfigAdmin::addConfigurationSetListener ( ConfigurationSetListenerType  type,
ConfigurationSetListener listener,
bool  autoclean = true 
)

ConfigurationSetListener を追加する

ConfigurationSet が更新されたときなどに呼ばれるリスナ ConfigurationSetListener を追加する。設定可能なイベントは以下の 2種類がある。

引数
typeConfigurationSetListenerType型の値。
listenerConfigurationSetListener 型のリスナオブジェクト。
autocleanリスナオブジェクトを自動で削除するかどうかのフラグ
void RTC::ConfigAdmin::addConfigurationSetNameListener ( ConfigurationSetNameListenerType  type,
ConfigurationSetNameListener listener,
bool  autoclean = true 
)

ConfigurationSetNameListener を追加する

ConfigurationSetName が更新されたときなどに呼ばれるリスナ ConfigurationSetNameListener を追加する。設定可能なイベントは以下の 3種類がある。

  • ON_UPDATE_CONFIG_SET: ある ConfigurationSet がアップデートされた
  • ON_REMOVE_CONFIG_SET: ある ConfigurationSet が削除された
  • ON_ACTIVATE_CONFIG_SET: ある ConfigurationSet がアクティブ化された
引数
typeConfigurationSetNameListenerType型の値。
listenerConfigurationSetNameListener 型のリスナオブジェクト。
autocleanリスナオブジェクトを自動で削除するかどうかのフラグ
template<typename VarType >
bool RTC::ConfigAdmin::bindParameter ( const char *  param_name,
VarType &  var,
const char *  def_val,
bool(*)(VarType &, const char *)  trans = coil::stringTo 
)
inline

コンフィギュレーションパラメータの設定

コンフィギュレーションパラメータと変数をバインドする 指定した名称のコンフィギュレーションパラメータが既に存在する場合は falseを返す。 <VarType>としてコンフィギュレーションパラメータのデータ型を指定する。 なお、このメンバ関数が呼ばれた後、現在アクティブなコンフィギュレー ションセットの値が変数にセットされる。

引数
param_nameコンフィギュレーションパラメータ名
varコンフィギュレーションパラメータ格納用変数
def_valコンフィギュレーションパラメータデフォルト値
transコンフィギュレーションパラメータ文字列変換用関数
戻り値
設定結果(設定成功:true,設定失敗:false)

参照先 RTC::ConfigBase::name, onUpdateParam(), RTC::ConfigBase::setCallback(), RTC::ConfigBase::update().

coil::vstring& RTC::ConfigAdmin::changedParameters ( )
inline

変更されたパラメータのリスト

コンフィギュレーションパラメータのうち変更されたもののリストを返す。

戻り値
変更されたパラメータ名リスト
const coil::Properties& RTC::ConfigAdmin::getActiveConfigurationSet ( void  )

アクティブ・コンフィギュレーションセットを取得

現在アクティブとなっているコンフィギュレーションセットを取得する。 アクティブとなっているコンフィギュレーションセットが存在しない場合は、 空のコンフィギュレーションセット を返す。

戻り値
アクティブ・コンフィギュレーションセット
const char* RTC::ConfigAdmin::getActiveId ( void  )
inline

アクティブ・コンフィギュレーションセットIDの取得

現在アクティブなコンフィギュレーションセットのIDを取得する。

戻り値
アクティブ・コンフィギュレーションセットID
const coil::Properties& RTC::ConfigAdmin::getConfigurationSet ( const char *  config_id)

指定したIDのコンフィギュレーションセットの取得

IDで指定したコンフィギュレーションセットを取得する。 指定したコンフィギュレーションセットが存在しない場合は、 空のコンフィギュレーションセットを返す。

引数
config_id取得対象コンフィギュレーションセットのID
戻り値
コンフィギュレーションセット
const std::vector<coil::Properties*>& RTC::ConfigAdmin::getConfigurationSets ( void  )

全コンフィギュレーションセットの取得

設定されている全コンフィギュレーションセットを取得する。

戻り値
全コンフィギュレーションセット
bool RTC::ConfigAdmin::haveConfig ( const char *  config_id)
inline

コンフィギュレーションセットの存在確認

指定したコンフィギュレーションセットが存在するか確認する。

引数
config_id確認対象コンフィギュレーションセットID
戻り値
存在確認結果(指定したConfigSetあり:true、なし:false)
bool RTC::ConfigAdmin::isActive ( void  )
inline

コンフィギュレーションセットのアクティブ化確認

コンフィギュレーションセットがアクティブ化されているか確認する。

戻り値
状態確認結果(アクティブ状態:true、非アクティブ状態:false)

参照先 RTC::ConfigBase::name.

bool RTC::ConfigAdmin::isChanged ( void  )
inline

コンフィギュレーションパラメータの変更確認

コンフィギュレーションパラメータが変更されたか確認する。

戻り値
変更確認結果(変更あり:true、変更なし:false)
bool RTC::ConfigAdmin::isExist ( const char *  name)

コンフィギュレーションパラメータの存在確認

指定した名称を持つコンフィギュレーションパラメータ変数が存在する か確認する。ここで存在確認を行うパラメータ変数とは、 bindParameter() によって登録される、変数を持つパラメータである。

引数
nameコンフィギュレーションパラメータ名称。
戻り値
存在確認結果(パラメータあり:true,パラメータなし:false)
void RTC::ConfigAdmin::onActivateSet ( const char *  config_id)
protected

セットがアクティブ化されたときにコールされる。

設定されてるコールバックオブジェクトを呼び出す。

引数
config_idプロパティ
void RTC::ConfigAdmin::onAddConfigurationSet ( const coil::Properties config_set)
protected

設定値が追加されたときにコールされる。

設定されてるコールバックオブジェクトを呼び出す。

引数
configuration_setプロパティ
void RTC::ConfigAdmin::onRemoveConfigurationSet ( const char *  config_id)
protected

セットが削除されてるときにコールされる。

設定されてるコールバックオブジェクトを呼び出す。

引数
config_idプロパティ
void RTC::ConfigAdmin::onSetConfigurationSet ( const coil::Properties config_set)
protected

コンフィギュレーションセットへの追加時にコールされる

設定されてるコールバックオブジェクトを呼び出す。

引数
configuration_setプロパティ
void RTC::ConfigAdmin::onUpdate ( const char *  config_set)
protected

コンフィギュレーションパラメータの更新(ID指定)時にコールされる

設定されてるコールバックオブジェクトを呼び出す。

引数
config_set設定対象のコンフィギュレーションセットID
void RTC::ConfigAdmin::onUpdateParam ( const char *  config_set,
const char *  config_param 
)
protected

コンフィギュレーションパラメータの更新(名称指定)時にコールされる

設定されてるコールバックオブジェクトを呼び出す。

引数
config_setコンフィギュレーションID
config_paramコンフィギュレーションパラメータ名

参照元 bindParameter().

void RTC::ConfigAdmin::removeConfigurationParamListener ( ConfigurationParamListenerType  type,
ConfigurationParamListener listener 
)

ConfigurationParamListener を削除する

addConfigurationParamListener で追加されたリスナオブジェクトを削除する。

引数
typeConfigurationParamListenerType型の値。 ON_UPDATE_CONFIG_PARAM がある。
listener与えたリスナオブジェクトへのポインタ
bool RTC::ConfigAdmin::removeConfigurationSet ( const char *  config_id)

コンフィギュレーションセットの削除

指定したIDのコンフィギュレーションセットを削除する。

指定したIDのコンフィギュレーションセットが存在しない場合は、 falseを返す。削除可能なコンフィギュレーションセットは、 addConfigruationSet() によって追加したコンフィギュレーションセッ トのみであり、デフォルトコンフィギュレーションセット、コンポーネ ント起動時にファイルから読み込まれるコンフィギュレーションセット は削除することができない。

また、指定したコンフィギュレーションセットが現在アクティブである 場合には、いかなるコンフィギュレーションセットでも削除できない。

この関数により実際にコンフィギュレーションセットが削除された場合、 setOnRemoveConfigurationSet() でセットされたコールバック関数が呼 び出される。

引数
config_id削除対象コンフィギュレーションセットのID
戻り値
削除処理結果(削除成功:true、削除失敗:false)
void RTC::ConfigAdmin::removeConfigurationSetListener ( ConfigurationSetListenerType  type,
ConfigurationSetListener listener 
)

ConfigurationSetListener を削除する

addConfigurationSetListener で追加されたリスナオブジェクトを削除する。

引数
typeConfigurationSetListenerType型の値。
listener与えたリスナオブジェクトへのポインタ
void RTC::ConfigAdmin::removeConfigurationSetNameListener ( ConfigurationSetNameListenerType  type,
ConfigurationSetNameListener listener 
)

ConfigurationSetNameListener を削除する

addConfigurationSetNameListener で追加されたリスナオブジェクトを 削除する。

引数
typeConfigurationSetNameListenerType型の値。 ON_UPDATE_CONFIG_PARAM がある。
listener与えたリスナオブジェクトへのポインタ
bool RTC::ConfigAdmin::setConfigurationSetValues ( const coil::Properties configuration_set)

指定したプロパティのコンフィギュレーションセットへの追加

指定したプロパティをIDで指定したコンフィギュレーションセットへ追加する。 指定したIDと一致するコンフィギュレーションセットが存在しない場合は、 false を返す。

引数
config_id追加対象コンフィギュレーションセットのID
configuration_set追加するプロパティ
戻り値
追加処理実行結果(追加成功:true、追加失敗:false)
void RTC::ConfigAdmin::setOnActivateSet ( OnActivateSetCallback cb)
void RTC::ConfigAdmin::setOnAddConfigurationSet ( OnAddConfigurationAddCallback cb)
void RTC::ConfigAdmin::setOnRemoveConfigurationSet ( OnRemoveConfigurationSetCallback cb)
void RTC::ConfigAdmin::setOnSetConfigurationSet ( OnSetConfigurationSetCallback cb)
void RTC::ConfigAdmin::setOnUpdate ( OnUpdateCallback cb)
void RTC::ConfigAdmin::setOnUpdateParam ( OnUpdateParamCallback cb)
bool RTC::ConfigAdmin::unbindParameter ( const char *  param_name)

コンフィギュレーションパラメータの解除

コンフィギュレーションパラメータと変数のバインドを解除する。 指定した名称のコンフィギュレーションパラメータが存在しない場合は falseを返す。

引数
param_nameコンフィギュレーションパラメータ名
戻り値
設定結果(設定成功:true,設定失敗:false)
void RTC::ConfigAdmin::update ( void  )

コンフィギュレーションパラメータの更新 (アクティブコンフィギュレーションセット)

コンフィギュレーションセットが更新されている場合に、現在アクティ ブになっているコンフィギュレーションに設定した値で、コンフィギュ レーションパラメータの値を更新する。この処理での更新は、アクティ ブとなっているコンフィギュレーションセットが存在している場合、前 回の更新からコンフィギュレーションセットの内容が更新されている場 合のみ実行される。

void RTC::ConfigAdmin::update ( const char *  config_set)

コンフィギュレーションパラメータの更新(ID指定)

コンフィギュレーション変数の値を、指定したIDを持つコンフィギュレー ションセットの値で更新する。これにより、アクティブなコンフィギュ レーションセットは変更されない。したがって、アクティブコンフィギュ レーションセットとパラメータ変数の間に矛盾が発生する可能性がある ので注意が必要である。

指定したIDのコンフィギュレーションセットが存在しない場合は、何も せずに終了する。

引数
config_set設定対象のコンフィギュレーションセットID
void RTC::ConfigAdmin::update ( const char *  config_set,
const char *  config_param 
)

コンフィギュレーションパラメータの更新(名称指定)

特定のコンフィギュレーション変数の値を、指定したIDを持つコンフィ ギュレーションセットの値で更新する。これにより、アクティブなコン フィギュレーションセットは変更されない。したがって、アクティブコ ンフィギュレーションセットとパラメータ変数の間に矛盾が発生する可 能性があるので注意が必要である。

指定したIDのコンフィギュレーションセットや、指定した名称のパラメー タが存在しない場合は、何もせずに終了する。

引数
config_setコンフィギュレーションID
config_paramコンフィギュレーションパラメータ名

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