def _remove(self, ps, rmap, reg_type): """ Remove L{_TopicImpl} instance from rmap @param ps: a pub/sub impl instance @type ps: L{_TopicImpl} @param rmap: topic->_TopicImpl rmap to remove instance in @type rmap: dict @param reg_type: L{rospy.registration.Registration.PUB} or L{rospy.registration.Registration.SUB} @type reg_type: str """ resolved_name = ps.resolved_name _logger.debug("tm._remove: %s, %s, %s", resolved_name, ps.type, reg_type) with self.lock: del rmap[resolved_name] self. _recalculate_topics() # NOTE: this call can take a lengthy amount of time (at # least until its reimplemented to use queues) get_registration_listeners().notify_removed(resolved_name, ps.type, reg_type)
def _add(self, ps, rmap, reg_type): """ Add L{_TopicImpl} instance to rmap @param ps: a pub/sub impl instance @type ps: L{_TopicImpl} @param rmap: { topic: _TopicImpl} rmap to record instance in @type rmap: dict @param reg_type: L{rospy.registration.Registration.PUB} or L{rospy.registration.Registration.SUB} @type reg_type: str """ resolved_name = ps.resolved_name _logger.debug("tm._add: %s, %s, %s", resolved_name, ps.type, reg_type) with self.lock: rmap[resolved_name] = ps self.topics.add(resolved_name) # NOTE: this call can take a lengthy amount of time (at # least until its reimplemented to use queues) get_registration_listeners().notify_added(resolved_name, ps.type, reg_type)
def _remove(self, ps, rmap, reg_type): """ Remove L{_TopicImpl} instance from rmap @param ps: a pub/sub impl instance @type ps: L{_TopicImpl} @param rmap: topic->_TopicImpl rmap to remove instance in @type rmap: dict @param reg_type: L{rospy.registration.Registration.PUB} or L{rospy.registration.Registration.SUB} @type reg_type: str """ resolved_name = ps.resolved_name _logger.debug("tm._remove: %s, %s, %s", resolved_name, ps.type, reg_type) with self.lock: del rmap[resolved_name] self._recalculate_topics() # NOTE: this call can take a lengthy amount of time (at # least until its reimplemented to use queues) get_registration_listeners().notify_removed(resolved_name, ps.type, reg_type)
def __init__(self, registration_listeners=None): """ ctor @param registration_listeners: override default registration listener. @type registration_listeners: RegistrationListeners """ self.map = {} # {name : Service} self.lock = threading.RLock() if registration_listeners is None: self.registration_listeners = get_registration_listeners() else: self.registration_listeners = registration_listeners
def test_get_registration_listeners(self): from rospy.impl.registration import RegistrationListeners, get_registration_listeners r = get_registration_listeners() self.assert_(isinstance(r, RegistrationListeners))