From c0f9874cef1c8c0d37a8ba819d2dafe99009caed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Potokar?= Date: Fri, 14 Apr 2023 14:37:40 +0200 Subject: [PATCH] Add unsubscribe support --- CHANGELOG.md | 2 ++ src/ros_tcp_endpoint/server.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f6aa8d..acb72ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ### Fixed +Implement missing `__remove_subscriber` sys. command to unsubscribe TCP-connector from a topic + ## [0.7.0] - 2022-02-01 ### Added diff --git a/src/ros_tcp_endpoint/server.py b/src/ros_tcp_endpoint/server.py index ed82f79..1a5b317 100644 --- a/src/ros_tcp_endpoint/server.py +++ b/src/ros_tcp_endpoint/server.py @@ -160,6 +160,12 @@ def subscribe(self, topic, message_name): self.tcp_server.loginfo("RegisterSubscriber({}, {}) OK".format(topic, message_class)) + def remove_subscriber(self, topic): + node = self.tcp_server.subscribers_table.get(topic) + if node is not None: + self.tcp_server.unregister_node(node) + self.tcp_server.subscribers_table.pop(topic) + def publish(self, topic, message_name, queue_size=10, latch=False): if topic == "": self.tcp_server.send_unity_error(