summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksandar Kanchev <kanchev@itestra.com>2013-04-15 11:44:51 +0200
committerAleksandar Kanchev <kanchev@itestra.com>2013-04-15 11:44:51 +0200
commit70174fd0301e42bc89e2afaf99f0f550bd678088 (patch)
treeb7f2b9274923b89ec4deab4f61ef9aa2beb26566
parent2998a60b1c1d40f078a0daf9d4b5ae58bd96d7bd (diff)
downloadgenivi-common-api-dbus-runtime-70174fd0301e42bc89e2afaf99f0f550bd678088.tar.gz
properly deregister DBusObjectManager
-rw-r--r--src/CommonAPI/DBus/DBusObjectManager.cpp8
-rw-r--r--src/CommonAPI/DBus/DBusObjectManager.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/CommonAPI/DBus/DBusObjectManager.cpp b/src/CommonAPI/DBus/DBusObjectManager.cpp
index 8f05dda..fcfa9f8 100644
--- a/src/CommonAPI/DBus/DBusObjectManager.cpp
+++ b/src/CommonAPI/DBus/DBusObjectManager.cpp
@@ -27,6 +27,14 @@ DBusObjectManager::DBusObjectManager(const std::shared_ptr<DBusProxyConnection>&
dbusConnection->registerObjectPath("/");
}
+DBusObjectManager::~DBusObjectManager() {
+ std::shared_ptr<DBusProxyConnection> dbusConnection = dbusConnection_.lock();
+ if (dbusConnection) {
+ dbusConnection->unregisterObjectPath("/");
+ dbusConnection->setObjectPathMessageHandler(DBusProxyConnection::DBusObjectPathMessageHandler());
+ }
+}
+
DBusInterfaceHandlerToken DBusObjectManager::registerDBusStubAdapter(const std::string& objectPath,
const std::string& interfaceName,
DBusStubAdapter* dbusStubAdapter) {
diff --git a/src/CommonAPI/DBus/DBusObjectManager.h b/src/CommonAPI/DBus/DBusObjectManager.h
index 6d6dff9..cb60948 100644
--- a/src/CommonAPI/DBus/DBusObjectManager.h
+++ b/src/CommonAPI/DBus/DBusObjectManager.h
@@ -22,6 +22,7 @@ class DBusStubAdapter;
class DBusObjectManager {
public:
DBusObjectManager(const std::shared_ptr<DBusProxyConnection>&);
+ ~DBusObjectManager();
void init();