[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