機能 #2267
n-ando さんが約13年前に更新
現在の実装では、onUpdateParamコールバックが呼ばれないが、これを個々のパラメータが変更された際に呼ばれるようにする。
C++ではr2231/2232にてこの変更を行った。 C++ではr2231にてこの変更を行った。
C++における実装方法は以下のとおり。
* unbindParameter() の実装 (コールバックとは直接関係ない)
* changedParameters() の追加
* RTObject::getConfigService() の追加
* ConfigBaseにConfigAdminのポインタとメンバー関数ポインタを渡すsetCallback関数を実装
* ConfigBaseクラスメンバ変数としてConfigAdminのポインタとメンバー関数ポインタを追加
* bindParameter関数内でsetCallbackにてConfigAdminとメンバ関数onUpdateParamを渡す
* 実際にコールバックを呼ぶConfigBase::nofityUpdateを実装
* Configクラスでは、update()関数内で変数の値の変更があった場合にnotifyUpdateを呼ぶ
なお、ConfigAdmin::update() が呼ばれて初めて変数の値が変更されるため、特に意図的にコールしなければこのコールバックはRTCがactive状態の時にのみコールされる。
戻る