OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
RTC::ConfigAdmin クラス

ConfigAdmin クラス [詳解]

#include <ConfigAdmin.h>

公開メンバ関数

 ConfigAdmin (coil::Properties &configsets)
 コンストラクタ
 
 ~ConfigAdmin ()
 仮想デストラクタ
 
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 update (const char *config_set)
 コンフィギュレーションパラメータの更新(ID指定)
 
void update (const char *config_set, const char *config_param)
 コンフィギュレーションパラメータの更新(名称指定)
 
bool isExist (const char *param_name)
 コンフィギュレーションパラメータの存在確認
 
bool isChanged ()
 コンフィギュレーションパラメータの変更確認
 
coil::vstring & changedParameters ()
 変更されたパラメータのリスト
 
const char * getActiveId ()
 アクティブ・コンフィギュレーションセットIDの取得
 
bool haveConfig (const char *config_id)
 コンフィギュレーションセットの存在確認
 
bool isActive ()
 コンフィギュレーションセットのアクティブ化確認
 
const std::vector< coil::Properties * > & getConfigurationSets ()
 全コンフィギュレーションセットの取得
 
const coil::Properties & getConfigurationSet (const char *config_id)
 指定したIDのコンフィギュレーションセットの取得
 
bool setConfigurationSetValues (const coil::Properties &config_set)
 指定したプロパティのコンフィギュレーションセットへの追加
 
const coil::Properties & getActiveConfigurationSet ()
 アクティブ・コンフィギュレーションセットを取得
 
bool addConfigurationSet (const coil::Properties &config_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_param, const char *config_value)
 コンフィギュレーションパラメータの更新(名称指定)時にコールされる
 
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 クラス

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

  • コンフィギュレーション: コンポーネントの設定情報。
  • (コンフィギュレーション)パラメータ: key-value からなる設定情報。 coil::Properties 変数として扱われ、key、value 共に文字列として保 持される。key をコンフィギュレーションパラメータ名、value をコン フィギュレーションパラメータ値と呼ぶ。
  • コンフィギュレーションセット: コンフィギュレーションパラメータ のリストで、名前 (ID) によって区別される。IDをコンフィギュレーショ ンセットIDと呼ぶ。
  • (コンフィギュレーション)パラメータ変数:コンフィギュレーションパ ラメータをRTCのアクティビティ内で実際に利用する際に参照される変 数。パラメータごとに固有の型を持つ。
  • アクティブ(コンフィギュレーション)セット:現在有効なコンフィギュ レーションセットのことであり、唯一つ存在する。原則として、アクティ ブコンフィギュレーションセットのパラメータがコンフィギュレーショ ンパラメータ変数に反映される。

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

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

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

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

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

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

から
0.4.0

構築子と解体子

◆ ConfigAdmin()

RTC::ConfigAdmin::ConfigAdmin ( coil::Properties & configsets)
explicit

コンストラクタ

コンストラクタ

引数
prop設定対象プロパティ名

◆ ~ConfigAdmin()

RTC::ConfigAdmin::~ConfigAdmin ( )

仮想デストラクタ

仮想デストラクタ。

関数詳解

◆ activateConfigurationSet()

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

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

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

引数
config_id削除対象コンフィギュレーションセットのID
戻り値
アクティブ処理結果(成功:true、失敗:false)

◆ addConfigurationParamListener()

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リスナオブジェクトを自動で削除するかどうかのフラグ

◆ addConfigurationSet()

bool RTC::ConfigAdmin::addConfigurationSet ( const coil::Properties & config_set)

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

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

引数
configuration_set追加するプロパティ
戻り値
追加処理結果(追加成功:true、追加失敗:false)

◆ addConfigurationSetListener()

void RTC::ConfigAdmin::addConfigurationSetListener ( ConfigurationSetListenerType type,
ConfigurationSetListener * listener,
bool autoclean = true )

ConfigurationSetListener を追加する

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

引数
typeConfigurationSetListenerType型の値。
listenerConfigurationSetListener 型のリスナオブジェクト。
autocleanリスナオブジェクトを自動で削除するかどうかのフラグ

◆ addConfigurationSetNameListener()

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リスナオブジェクトを自動で削除するかどうかのフラグ

◆ bindParameter()

template<typename VarType >
bool RTC::ConfigAdmin::bindParameter ( const char * param_name,
VarType & var,
const char * def_val,
bool(* trans )(VarType &, const char *) = coil::stringTo )
inline

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

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

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

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

参照元 RTC::RTObject_impl::bindParameter().

◆ changedParameters()

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

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

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

戻り値
変更されたパラメータ名リスト

◆ getActiveConfigurationSet()

const coil::Properties & RTC::ConfigAdmin::getActiveConfigurationSet ( )

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

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

戻り値
アクティブ・コンフィギュレーションセット

◆ getActiveId()

const char * RTC::ConfigAdmin::getActiveId ( )
inline

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

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

戻り値
アクティブ・コンフィギュレーションセットID

◆ getConfigurationSet()

const coil::Properties & RTC::ConfigAdmin::getConfigurationSet ( const char * config_id)

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

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

引数
config_id取得対象コンフィギュレーションセットのID
戻り値
コンフィギュレーションセット

◆ getConfigurationSets()

const std::vector< coil::Properties * > & RTC::ConfigAdmin::getConfigurationSets ( )

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

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

戻り値
全コンフィギュレーションセット

◆ haveConfig()

bool RTC::ConfigAdmin::haveConfig ( const char * config_id)
inline

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

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

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

◆ isActive()

bool RTC::ConfigAdmin::isActive ( )
inline

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

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

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

◆ isChanged()

bool RTC::ConfigAdmin::isChanged ( )
inline

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

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

戻り値
変更確認結果(変更あり:true、変更なし:false)

◆ isExist()

bool RTC::ConfigAdmin::isExist ( const char * param_name)

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

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

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

◆ onActivateSet()

void RTC::ConfigAdmin::onActivateSet ( const char * config_id)
protected

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

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

引数
config_idプロパティ

◆ onAddConfigurationSet()

void RTC::ConfigAdmin::onAddConfigurationSet ( const coil::Properties & config_set)
protected

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

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

引数
configuration_setプロパティ

◆ onRemoveConfigurationSet()

void RTC::ConfigAdmin::onRemoveConfigurationSet ( const char * config_id)
protected

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

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

引数
config_idプロパティ

◆ onSetConfigurationSet()

void RTC::ConfigAdmin::onSetConfigurationSet ( const coil::Properties & config_set)
protected

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

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

引数
configuration_setプロパティ

◆ onUpdate()

void RTC::ConfigAdmin::onUpdate ( const char * config_set)
protected

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

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

引数
config_set設定対象のコンフィギュレーションセットID

◆ onUpdateParam()

void RTC::ConfigAdmin::onUpdateParam ( const char * config_param,
const char * config_value )
protected

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

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

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

参照元 bindParameter().

◆ removeConfigurationParamListener()

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

ConfigurationParamListener を削除する

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

引数
typeConfigurationParamListenerType型の値。 ON_UPDATE_CONFIG_PARAM がある。
listener与えたリスナオブジェクトへのポインタ

◆ removeConfigurationSet()

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

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

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

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

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

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

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

◆ removeConfigurationSetListener()

void RTC::ConfigAdmin::removeConfigurationSetListener ( ConfigurationSetListenerType type,
ConfigurationSetListener * listener )

ConfigurationSetListener を削除する

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

引数
typeConfigurationSetListenerType型の値。
listener与えたリスナオブジェクトへのポインタ

◆ removeConfigurationSetNameListener()

void RTC::ConfigAdmin::removeConfigurationSetNameListener ( ConfigurationSetNameListenerType type,
ConfigurationSetNameListener * listener )

ConfigurationSetNameListener を削除する

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

引数
typeConfigurationSetNameListenerType型の値。 ON_UPDATE_CONFIG_PARAM がある。
listener与えたリスナオブジェクトへのポインタ

◆ setConfigurationSetValues()

bool RTC::ConfigAdmin::setConfigurationSetValues ( const coil::Properties & config_set)

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

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

引数
config_id追加対象コンフィギュレーションセットのID
configuration_set追加するプロパティ
戻り値
追加処理実行結果(追加成功:true、追加失敗:false)

◆ setOnActivateSet()

void RTC::ConfigAdmin::setOnActivateSet ( OnActivateSetCallback * cb)

◆ setOnAddConfigurationSet()

void RTC::ConfigAdmin::setOnAddConfigurationSet ( OnAddConfigurationAddCallback * cb)

◆ setOnRemoveConfigurationSet()

void RTC::ConfigAdmin::setOnRemoveConfigurationSet ( OnRemoveConfigurationSetCallback * cb)

◆ setOnSetConfigurationSet()

void RTC::ConfigAdmin::setOnSetConfigurationSet ( OnSetConfigurationSetCallback * cb)

◆ setOnUpdate()

void RTC::ConfigAdmin::setOnUpdate ( OnUpdateCallback * cb)

◆ setOnUpdateParam()

void RTC::ConfigAdmin::setOnUpdateParam ( OnUpdateParamCallback * cb)

◆ unbindParameter()

bool RTC::ConfigAdmin::unbindParameter ( const char * param_name)

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

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

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

◆ update() [1/3]

void RTC::ConfigAdmin::update ( )

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

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

◆ update() [2/3]

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

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

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

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

引数
config_set設定対象のコンフィギュレーションセットID

◆ update() [3/3]

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

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

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

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

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

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