[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, debian, updated. upstream/0.9.5.5-717-g0f98819

Sebastian Krzyszkowiak seba.dos1 at gmail.com
Sat Aug 6 08:18:17 UTC 2011


The following commit has been merged in the debian branch:
commit 832fdfd684584312aa0e62a92934a177911fce5e
Author: Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
Date:   Mon Aug 31 23:57:50 2009 +0200

    opimd: implement disabling handlers

diff --git a/framework/subsystems/opimd/backend_manager.py b/framework/subsystems/opimd/backend_manager.py
index f0a2441..2d39b4f 100644
--- a/framework/subsystems/opimd/backend_manager.py
+++ b/framework/subsystems/opimd/backend_manager.py
@@ -312,6 +312,11 @@ class BackendManager(DBusFBObject):
         config.setValue('opimd', key, 1)
         config.sync()
 
+        try:
+            backend.disable()
+        except AttributeError:
+            pass
+
         for domain_name in backend.get_supported_domains():
             domain = DomainManager._domains[domain_name]
             domain.remove_entries_from_backend(backend.name)
diff --git a/framework/subsystems/opimd/docs/TODO b/framework/subsystems/opimd/docs/TODO
index 189285d..3a89d56 100644
--- a/framework/subsystems/opimd/docs/TODO
+++ b/framework/subsystems/opimd/docs/TODO
@@ -1,12 +1,11 @@
 Near future:
 * UnfinishedTasks
-* disabling handlers
 * Initialized signal in source
 In mean-time:
 * write documentation
 After that:
-* backends configuration, status
 * sorting by multiple fields (_sortby:['Surname','Name'])
+* backends configuration, status
 * finished inteligent queries (ContactDeleted, ContactUpdated)
 * updating with SIM-Messages-FSO
 * adding new fields to for example SIM entry (by merging)
diff --git a/framework/subsystems/opimd/pimb_ogsmd_calls.py b/framework/subsystems/opimd/pimb_ogsmd_calls.py
index 7863a8c..d3bfb5b 100644
--- a/framework/subsystems/opimd/pimb_ogsmd_calls.py
+++ b/framework/subsystems/opimd/pimb_ogsmd_calls.py
@@ -114,11 +114,16 @@ class OgsmdCallsBackend(Backend):
 
             del self.props[line]
 
+    def disable(self):
+        if self.handler:
+            self.signal.remove()
+            self.handler = False
+
     @tasklet.tasklet
     def load_entries(self):
         bus = SystemBus()
         if not self.handler:
-            bus.add_signal_receiver(self.handle_call_status, signal_name='CallStatus', dbus_interface='org.freesmartphone.GSM.Call', bus_name='org.freesmartphone.ogsmd')
+            self.signal = bus.add_signal_receiver(self.handle_call_status, signal_name='CallStatus', dbus_interface='org.freesmartphone.GSM.Call', bus_name='org.freesmartphone.ogsmd')
             self.handler = True
         self._initialized = True
         yield True
diff --git a/framework/subsystems/opimd/pimb_sim_messages_fso.py b/framework/subsystems/opimd/pimb_sim_messages_fso.py
index d39809b..bf664ef 100644
--- a/framework/subsystems/opimd/pimb_sim_messages_fso.py
+++ b/framework/subsystems/opimd/pimb_sim_messages_fso.py
@@ -260,6 +260,17 @@ class SIMMessageBackendFSO(Backend):
             entry_id = int(entry_id)
             self.gsm_sim_iface.DeleteMessage(entry_id, reply_handler=self.dbus_ok, error_handler=self.dbus_err )
 
+    def disable(self):
+        if self.ready_signal:
+            self.readysignal.remove()
+            self.authsignal.remove()
+            self.ready_signal = False
+        if self.signals:
+            self.imsignal.remove()
+            self.ismsignal.remove()
+            self.imrsignal.remove()
+            self.signals = False
+
     @tasklet.tasklet
     def load_entries(self):
         self.bus = SystemBus()
@@ -282,8 +293,8 @@ class SIMMessageBackendFSO(Backend):
             logger.info("%s: Waiting for SIM being ready...", self.name)
             if not self.ready_signal:
                 try:
-                    self.bus.add_signal_receiver(self.handle_sim_ready, signal_name='ReadyStatus', dbus_interface='org.freesmartphone.GSM.SIM', bus_name='org.freesmartphone.ogsmd')
-                    self.bus.add_signal_receiver(self.handle_auth_status, signal_name='AuthStatus', dbus_interface='org.freesmartphone.GSM.SIM', bus_name='org.freesmartphone.ogsmd')
+                    self.readysignal = self.bus.add_signal_receiver(self.handle_sim_ready, signal_name='ReadyStatus', dbus_interface='org.freesmartphone.GSM.SIM', bus_name='org.freesmartphone.ogsmd')
+                    self.authsignal = self.bus.add_signal_receiver(self.handle_auth_status, signal_name='AuthStatus', dbus_interface='org.freesmartphone.GSM.SIM', bus_name='org.freesmartphone.ogsmd')
                     logger.info('%s: Signal listeners about SIM status installed', self.name)
                     #self.gsm_sim_iface.connect_to_signal("ReadyStatus", self.handle_sim_ready)
                     self.ready_signal = True
@@ -323,9 +334,9 @@ class SIMMessageBackendFSO(Backend):
         """Hooks to some d-bus signals that are of interest to us"""
         if not self.signals:
             try:
-                self.gsm_sms_iface.connect_to_signal("IncomingMessage", self.handle_incoming_message)
-                self.gsm_sim_iface.connect_to_signal("IncomingStoredMessage", self.handle_incoming_stored_message)
-                self.gsm_sms_iface.connect_to_signal("IncomingMessageReceipt", self.handle_incoming_message_receipt)
+                self.imsignal = self.gsm_sms_iface.connect_to_signal("IncomingMessage", self.handle_incoming_message)
+                self.ismsignal = self.gsm_sim_iface.connect_to_signal("IncomingStoredMessage", self.handle_incoming_stored_message)
+                self.imrsignal = self.gsm_sms_iface.connect_to_signal("IncomingMessageReceipt", self.handle_incoming_message_receipt)
                 logger.info("%s: Installed signal handlers", self.name)
                 self.signals = True
                 self.gsm_device_iface.SetSimBuffersSms(self.am_i_default(), reply_handler=self.dbus_ok, error_handler=self.dbus_err)

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list