[openrtm-commit:00574] r634 - branches/work/ConfigurationCallback/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC
openrtm @ openrtm.org
openrtm @ openrtm.org
2012年 1月 12日 (木) 11:52:14 JST
Author: fsi-katami
Date: 2012-01-12 11:52:14 +0900 (Thu, 12 Jan 2012)
New Revision: 634
Modified:
branches/work/ConfigurationCallback/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigAdmin.java
branches/work/ConfigurationCallback/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RTObject_impl.java
Log:
ConfigAdmin::changedParameters() has been added. RTObject::getConfigService() has been added. refs #2267
Modified: branches/work/ConfigurationCallback/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigAdmin.java
===================================================================
--- branches/work/ConfigurationCallback/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigAdmin.java 2012-01-11 08:24:49 UTC (rev 633)
+++ branches/work/ConfigurationCallback/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigAdmin.java 2012-01-12 02:52:14 UTC (rev 634)
@@ -438,15 +438,19 @@
*
*/
public void update(final String config_set) {
- if( m_configsets.hasKey(config_set) == null) return;
+ if( m_configsets.hasKey(config_set) == null) {
+ return;
+ }
+ // clear changed parameter list
+ m_changedParam.clear();
Properties prop = new Properties(m_configsets.getNode(config_set));
for(int intIdx=0; intIdx<m_params.size(); ++intIdx) {
if( prop.hasKey(m_params.get(intIdx).name) != null ) {
m_params.get(intIdx).update(prop.getProperty(m_params.get(intIdx).name));
- onUpdate(config_set);
}
}
+ onUpdate(config_set);
}
/**
@@ -517,7 +521,6 @@
ConfigBase configbase = iterator.next();
if( new find_conf(config_param).equalof(configbase) ) {
configbase.update(m_configsets.getProperty(key));
- onUpdateParam(config_set, config_param);
return;
}
}
@@ -569,6 +572,21 @@
public boolean isChanged() {
return m_changed;
}
+ /**
+ * {@.ja 変更されたパラメータのリスト}
+ * {@.en Changed parameters list}
+ * <p>
+ * {@.ja コンフィギュレーションパラメータのうち変更されたもののリストを返す。}
+ *
+ * {@.en This operation returns parameter list which are changed.}
+ * @return
+ * {@.ja 変更されたパラメータ名リスト}
+ * {@.en Changed parameters list}
+ *
+ */
+ public Vector<String> changedParameters() {
+ return new Vector<String>(m_changedParam);
+ }
/**
* {@.ja アクティブ・コンフィギュレーションセットIDの取得。}
@@ -1010,6 +1028,7 @@
*
*/
public void onUpdateParam(String config_set, String config_param) {
+ m_changedParam.add(config_param);
m_listeners.configparam_[ConfigurationParamListenerType.ON_UPDATE_CONFIG_PARAM].notify(config_set, config_param);
}
@@ -1437,6 +1456,7 @@
* 新規追加分コンフィギュレーションセット
*/
private Vector<String> m_newConfig = new Vector<String>();
+ private ArrayList<String> m_changedParam = new ArrayList<String>();
private ConfigurationListeners m_listeners = new ConfigurationListeners();
/*
Modified: branches/work/ConfigurationCallback/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RTObject_impl.java
===================================================================
--- branches/work/ConfigurationCallback/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RTObject_impl.java 2012-01-11 08:24:49 UTC (rev 633)
+++ branches/work/ConfigurationCallback/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RTObject_impl.java 2012-01-12 02:52:14 UTC (rev 634)
@@ -2626,6 +2626,69 @@
}
/**
+ * {@.ja コンフィギュレーションサービスを取得する}
+ * {@.en Getting configuration service}
+ * <p>
+ * {@.ja コンフィギュレーションサービスオブジェクトを取得する。このサービ
+ * スオブジェクトを利用して、コンフィギュレーションパラメータの操作
+ * を行うことができる。主な操作としては、
+ *
+ * - unbindParameter(): パラメータのアンバインド
+ * - update(): パラメータの更新
+ * - update(set_name): 特定のセットの更新
+ * - update(set_name, param_name): 特定のセットのパラメータの更新
+ * - isExist(): パラメータの存在確認
+ * - isChanged(): パラメータが変更されたかの確認
+ * - changedParameters(): 変更されたパラメータのリスト
+ * - getActiveId(): アクティブセット名の取得
+ * - haveConfig(config_id): コンフィグセットを持っているかどうか
+ * - getConfigurationSets(): 全コンフィギュレーションセットの取得
+ * - getConfigurationSet(set_id): 特定セットを取得
+ *
+ * コールバック関連
+ * - addConfigurationParamListener(): リスナの追加
+ * - removeConfigurationParamListener(): リスナの削除
+ * - addConfigurationSetListener(): リスナの追加
+ * - removeConfigurationSetListener(): リスナの削除
+ * - addConfigurationSetNameListener(): リスナの追加
+ * - removeConfigurationSetNameListener(): リスナの削除
+ *
+ * 詳細はConfigAdminクラスリファレンスを参照のこと。}
+ * {@.en This operation returns configuration service object. By using
+ * this service, user can manipulate configuration
+ * parameters. Mainly the following operations are supported.
+ *
+ * - unbindParameter(): Unbinding parameters
+ * - update(): Updateing parameters
+ * - update(set_name): Updating a specific configuration set
+ * - update(set_name, param_name): Updating specific parameter in a set
+ * - isExist(): Checking existence of a parameter
+ * - isChanged(): Check if a parameter was updated
+ * - changedParameters(): Getting changed parameter list
+ * - getActiveId(): Getting active configuration set name
+ * - haveConfig(config_id): Checking if having a specified configuration set
+ * - getConfigurationSets(): getting all the configuration sets
+ * - getConfigurationSet(set_id): Getting a configuration set
+ *
+ * Callback related member functions
+ * - addConfigurationParamListener(): Adding listener
+ * - removeConfigurationParamListener(): Removing listener
+ * - addConfigurationSetListener(): Adding listener
+ * - removeConfigurationSetListener(): Removing listener
+ * - addConfigurationSetNameListener(): Adding listener
+ * - removeConfigurationSetNameListener(): Removing listener
+ *
+ * See details in the ConfigAdmin class reference}
+ *
+ * @return
+ * {@.ja ConfigAdmin object}
+ * {@.en ConfigAdmin object}
+ *
+ */
+ public ConfigAdmin getConfigService() {
+ return m_configsets;
+ }
+ /**
* {@.ja コンフィギュレーションパラメータの更新。}
* {@.en Update configuration parameters}
*
openrtm-commit メーリングリストの案内