From 9e8800a4d0bb6d10ed904557acafe661fdc294ed Mon Sep 17 00:00:00 2001
From: Joan Perez Ibarz <jperez@iri.upc.edu>
Date: Mon, 6 Jun 2011 09:31:09 +0000
Subject: [PATCH] - updating algorithm templates to include CMutex and
 reconfigure callback - adding virtual reconfigure callback in base algorithm

---
 include/iri_base_algorithm/iri_base_algorithm.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/include/iri_base_algorithm/iri_base_algorithm.h b/include/iri_base_algorithm/iri_base_algorithm.h
index ea4f3f0..c804249 100644
--- a/include/iri_base_algorithm/iri_base_algorithm.h
+++ b/include/iri_base_algorithm/iri_base_algorithm.h
@@ -228,6 +228,20 @@ class IriBaseAlgorithm : public AbstractAlgorithmNode
     */
     void reconfigureCallback(Config &config, uint32_t level);
 
+   /**
+    * \brief dynamic reconfigure server callback
+    * 
+    * This method is called whenever a new configuration is received through
+    * the dynamic reconfigure. The derivated generic algorithm class must 
+    * implement it.
+    *
+    * \param config an object with new configuration from all algorithm 
+    *               parameters defined in the config file.
+    * \param level  integer referring the level in which the configuration
+    *               has been changed.
+    */
+    virtual void node_config_update(Config &config, uint32_t level) = 0;
+   
    /**
     * \brief add diagnostics
     * 
@@ -311,6 +325,7 @@ IriBaseAlgorithm<Algorithm>::~IriBaseAlgorithm()
 template <class Algorithm>
 void IriBaseAlgorithm<Algorithm>::reconfigureCallback(Config &config, uint32_t level)
 {
+  node_config_update(config, level);
   this->alg_.config_update(config, level);
 }
 
-- 
GitLab