diff --git a/ipaacalib/python/src/ipaaca/buffer.py b/ipaacalib/python/src/ipaaca/buffer.py index bcbf5fd16dadd4ebd3b4febb359a73b63fb884ea..7283039300dcf9dfa482e9c3fb557a930997ae45 100644 --- a/ipaacalib/python/src/ipaaca/buffer.py +++ b/ipaacalib/python/src/ipaaca/buffer.py @@ -222,6 +222,13 @@ class InputBuffer(Buffer): self._category_interests.append(iu_category) LOGGER.info("Added listener in scope /ipaaca/channel/" + str(self._channel) + "/category/" + iu_category) + def _remove_category_listener(self, iu_category): + '''Remove the listener for a specific category.''' + if iu_category in self._listener_store and iu_category in self._category_interests: + del self._listener_store[iu_category] + self._category_interests.remove(iu_category) + LOGGER.info("Removed listener in scope /ipaaca/channel/" + str(self._channel) + "/category/ " + iu_category) + def _handle_iu_events(self, event): '''Dispatch incoming IU events. @@ -301,6 +308,13 @@ class InputBuffer(Buffer): else: self._add_category_listener(category_interests) + def remove_category_interests(self, category_interests): + if hasattr(category_interests, '__iter__'): + for interest in category_interests: + self._remove_category_listener(interest) + else: + self._remove_category_listener(category_interests) + def _request_remote_resend(self, iu): remote_server = self._get_remote_server(iu) resend_request = ipaaca_pb2.IUResendRequest() diff --git a/ipaacatools/scripts/ipaaca-iu-sniffer b/ipaacatools/scripts/ipaaca-iu-sniffer index 5d954cc11e958f053d2fe9882882998e5bf67800..3a98cee88183694874b56776dd8312458b5ce43b 100755 --- a/ipaacatools/scripts/ipaaca-iu-sniffer +++ b/ipaacatools/scripts/ipaaca-iu-sniffer @@ -64,8 +64,8 @@ def pretty_printed_dict(d): v = str(v) v2 = v if len(v) <= arguments.max_size else v[:arguments.max_size] + '<excess length omitted>' v2.replace('\\','\\\\').replace('\n', highlight_if_color('\\n')) - s += "\t '%s': '%s'," % (highlight_if_color(unicode(k),'1'), unicode(v2)) - s+='\n}' + s += "\t '%s': '%s',\n" % (highlight_if_color(unicode(k),'1'), unicode(v2)) + s+='}' return s def pretty_printed_iu_event(iu, event_type, local):