diff frontends/sat_bridge_frontend/DBus.py @ 165:8a2053de6f8c

Frontends: management of unlaunched SàT Backend (information message and exit) DBus Bridge Frontend: added an exception to manage unlaunched SàT Backend (BridgeExceptionNoService) Quick App, jp: a message is print when the previous exception is launched
author Goffi <goffi@goffi.org>
date Mon, 09 Aug 2010 21:36:31 +0800
parents d6c0fe7489af
children 96af1bec2e68
line wrap: on
line diff
--- a/frontends/sat_bridge_frontend/DBus.py	Mon Aug 09 19:09:43 2010 +0800
+++ b/frontends/sat_bridge_frontend/DBus.py	Mon Aug 09 21:36:31 2010 +0800
@@ -22,16 +22,24 @@
 from bridge_frontend import BridgeFrontend
 import dbus, dbus.glib
 
+class BridgeExceptionNoService(Exception):
+    pass
 
 class DBusBridgeFrontend(BridgeFrontend):
     def __init__(self):
-        self.sessions_bus = dbus.SessionBus()
-        self.db_object = self.sessions_bus.get_object('org.goffi.SAT',
-                              '/org/goffi/SAT/bridge')
-        self.db_comm_iface = dbus.Interface(self.db_object,
-                            dbus_interface='org.goffi.SAT.communication')
-        self.db_req_iface = dbus.Interface(self.db_object,
-                            dbus_interface='org.goffi.SAT.request')
+        try:
+            self.sessions_bus = dbus.SessionBus()
+            self.db_object = self.sessions_bus.get_object('org.goffi.SAT',
+                                '/org/goffi/SAT/bridge')
+            self.db_comm_iface = dbus.Interface(self.db_object,
+                                dbus_interface='org.goffi.SAT.communication')
+            self.db_req_iface = dbus.Interface(self.db_object,
+                                dbus_interface='org.goffi.SAT.request')
+        except dbus.exceptions.DBusException,e:
+            if e._dbus_error_name=='org.freedesktop.DBus.Error.ServiceUnknown':
+                raise BridgeExceptionNoService
+            else:
+                raise e
         #props = self.db_comm_iface.getProperties()
 
     def register(self, functionName, handler, iface="communication"):