From 2bb1aed8c11e81f0061dba4510bae5cc1b8d10a9 Mon Sep 17 00:00:00 2001
From: Alberto Nidasio <nidasioalberto@gmail.com>
Date: Fri, 2 Aug 2024 21:21:48 +0200
Subject: [PATCH] [OutgoingMessageViewer] Unsubscribe from message topics in
 destructor

---
 .../OutgoingMessagesViewerModule.cpp                 | 12 ++++++++++++
 .../OutgoingMessagesViewerModule.h                   |  1 +
 2 files changed, 13 insertions(+)

diff --git a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp
index c50e415d..b78f7a6b 100644
--- a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp
+++ b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.cpp
@@ -53,6 +53,18 @@ OutgoingMessagesViewerModule::OutgoingMessagesViewerModule()
             &OutgoingMessagesViewerModule::updateElapsedTime);
 }
 
+OutgoingMessagesViewerModule::~OutgoingMessagesViewerModule()
+{
+    MessageBroker::getInstance().unsubscribe(
+        Filter::fromString(SkywardHubStrings::logCommandsTopic), this);
+    MessageBroker::getInstance().unsubscribe(
+        Filter::fromString(SkywardHubStrings::mavlink_received_msg_ACK_topic),
+        this);
+    MessageBroker::getInstance().unsubscribe(
+        Filter::fromString(SkywardHubStrings::mavlink_received_msg_NACK_topic),
+        this);
+}
+
 XmlObject OutgoingMessagesViewerModule::toXmlObject()
 {
     XmlObject obj = Module::toXmlObject();
diff --git a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h
index 2a92998e..40a8740e 100644
--- a/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h
+++ b/src/shared/Modules/OutgoingMessagesViewer/OutgoingMessagesViewerModule.h
@@ -33,6 +33,7 @@ class OutgoingMessagesViewerModule : public Module
 
 public:
     OutgoingMessagesViewerModule();
+    ~OutgoingMessagesViewerModule();
 
     XmlObject toXmlObject() override;
     void fromXmlObject(const XmlObject& xmlObject) override;
-- 
GitLab