def clearFutureCallbacks(self): """ cancel callbacks, event registrations """ for cb in self._calllaters: self._eventmanager.cancelCallLater(cb) for cb, event in self._registered: self._eventmanager.unregister(cb, event) if self.verbose and (len(self._calllaters) > 0 or len(self._registered) > 0): print "BEM.clearFutureCallbacks: removing CL [%s], E [%s]" % ( ','.join(func_name(cb) for cb in self._calllaters), ','.join('%s->%s' % (event_name(e), func_name(cb)) for cb, e in self._registered)) del self._calllaters[:] self._registered.clear() self._cb_to_wrapper.clear()
def _onSeen(self, obj, event): self._report("Searcher: seeing %s" % obj.name) # print "\nSearcher seeing ball?: (ball seen %s, ball recently seen %s, dist: %3.3f, distSmoothed: %3.3f, ball bearing: %3.3f)" % ( # self._world.ball.seen, self._world.ball.recently_seen, self._world.ball.dist, self._world.ball.distSmoothed, self._world.ball.bearing) #if len(self._eventToCallbackMapping) == 0: return if not obj in self.seen_objects: self._report("Searcher: first time seen %s" % obj.name) #self._eventmanager.unregister(self._onSeen, event) if event in self._eventToCallbackMapping: self._report("Searcher: unregistering %s (%s)" % (event, burst_events.event_name(event))) cb = self._eventToCallbackMapping[event] self._eventmanager.unregister(cb, event) del self._eventToCallbackMapping[event] self.seen_objects.append(obj) if self._center_on_targets: self._report("Next, I'll center on %s" % obj.name) self._searchPlanner.feedNext(obj)
def register(self, callback, event): """ set a callback on an event. """ # add to _callbacks assert(callable(callback)) if callback not in self._callbacks: self._callbacks[callback] = set() if event in self._callbacks[callback]: if burst.options.verbose_reregister: info( "WARNING: harmless re-register of %s to %s" % (func_name(callback), event_name(event))) return self._callbacks[callback].add(event) # add to _events self._events[event].add(callback) if self.verbose: info( "EventManager: #_events[%d] = %s" % (event, len(self._events[event])))