diff --git a/src/ros_subscribe.cpp b/src/ros_subscribe.cpp index 36791596de20c3469e18c817db94f756abd5ba8c..4c1f02c84d00335f8973e9aa93120e757fd56572 100644 --- a/src/ros_subscribe.cpp +++ b/src/ros_subscribe.cpp @@ -183,7 +183,16 @@ namespace dynamicgraph void RosSubscribe::rm (const std::string& signal) { + std::string signalTs = signal+"Timestamp"; + + signalDeregistration(signal); bindedSignal_.erase (signal); + + if(bindedSignal_.find(signalTs) != bindedSignal_.end()) + { + signalDeregistration(signalTs); + bindedSignal_.erase(signalTs); + } } std::string RosSubscribe::list () @@ -199,7 +208,12 @@ namespace dynamicgraph void RosSubscribe::clear () { - bindedSignal_.clear (); + std::map<std::string, bindedSignal_t>::iterator it = bindedSignal_.begin(); + for(; it!= bindedSignal_.end(); ) + { + rm(it->first); + it = bindedSignal_.begin(); + } } std::string RosSubscribe::getDocString () const