[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 メーリングリストの案内