[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    playground/base/bluedevil/src/daemon/helpers/filereceiver
From:       Eduardo Robles Elvira <edulix () gmail ! com>
Date:       2010-04-12 22:22:24
Message-ID: 20100412222224.7B8A6AC897 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1114180 by edulix:

helper now dies after a timeout when server is stopped



 M  +24 -1     service.cpp  
 M  +3 -0      service.h  


--- trunk/playground/base/bluedevil/src/daemon/helpers/filereceiver/service.cpp #1114179:1114180
@@ -26,6 +26,8 @@
 #include <solid/control/bluetoothinterface.h>
 #include <KDebug>
 
+#include <QtCore/QCoreApplication>
+
 Service::Service()
 {
     kDebug(4567);
@@ -38,7 +40,10 @@
 
 Service::~Service()
 {
-    delete m_server;
+    QDBusConnection dbus = QDBusConnection::sessionBus();
+    dbus.unregisterObject("/Service");
+    dbus.unregisterService("org.kde.BlueDevil.Service");
+    qApp->quit();
 }
 
 void Service::launchServer()
@@ -56,10 +61,28 @@
 void Service::stopServer()
 {
   kDebug() << m_server;
+  
+  if (!m_server) {
+    return;
+  }
+  
   m_server->deleteLater();
   m_server = 0;
+  
+  // After 10 seconds, if server is not restarted, terminate the helper
+  QTimer::singleShot(10000, this, SLOT(quit()));
 }
 
+void Service::quit()
+{
+  kDebug();
+  // Only quit if no server is running
+  if (!m_server) {
+    deleteLater();
+  }
+}
+
+
 QString Service::ping()
 {
     return "pong";
--- trunk/playground/base/bluedevil/src/daemon/helpers/filereceiver/service.h #1114179:1114180
@@ -37,6 +37,9 @@
     void stopServer();
     QString ping();
 
+private Q_SLOTS:
+    void quit();
+
 private:
     OpenObex::Server* m_server;
 };
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic