[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:05 UTC 2011
The following commit has been merged in the debian branch:
commit 99e07ef2f0ee436483fe04ce771be3cb4e039cde
Author: Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
Date: Wed Aug 26 01:24:09 2009 +0200
opimd: remove entries from cache when disabling backend
diff --git a/framework/subsystems/opimd/backend_manager.py b/framework/subsystems/opimd/backend_manager.py
index bd59793..a963f60 100644
--- a/framework/subsystems/opimd/backend_manager.py
+++ b/framework/subsystems/opimd/backend_manager.py
@@ -312,11 +312,9 @@ class BackendManager(DBusFBObject):
config.setValue('opimd', key, 1)
config.sync()
- #for domain_name in backend.get_supported_domains():
- # domain = DomainManager._domains[domain_name]
- # for item in domain.enumerate_items(backend): #add generic enumerate items
- # del item
- # wrong and bad by design... ;x
+ for domain_name in backend.get_supported_domains():
+ domain = DomainManager._domains[domain_name]
+ domain.remove_entries_from_backend(backend.name)
@dbus_method(_DIN_SOURCE, "s", "", rel_path_keyword="rel_path")
def SetAsDefault(self, domain, rel_path):
diff --git a/framework/subsystems/opimd/docs/TODO b/framework/subsystems/opimd/docs/TODO
index 35c8186..7a712df 100644
--- a/framework/subsystems/opimd/docs/TODO
+++ b/framework/subsystems/opimd/docs/TODO
@@ -3,7 +3,6 @@ Near future:
* sorting
In mean-time:
* Initialized, GetInitialized
-* removing entries from cache when disabling backend
After that:
* finished inteligent queries (ContactDeleted, ConactUpdated)
* updating with SIM-Messages-FSO
diff --git a/framework/subsystems/opimd/pimd_generic.py b/framework/subsystems/opimd/pimd_generic.py
index 9308fee..c0e8848 100644
--- a/framework/subsystems/opimd/pimd_generic.py
+++ b/framework/subsystems/opimd/pimd_generic.py
@@ -629,6 +629,21 @@ class GenericDomain():
if entry.incorporates_data_from(backend.name):
yield entry.export_fields(backend.name)
+ def remove_entries_from_backend(self, backend):
+ i = 0
+ for entry in self._entries:
+ if entry:
+ if entry._used_backends == [backend]:
+ self._entries[i]=None
+ elif backend in entry._used_backends:
+ j = 0
+ for field in entry._fields:
+ if field[3]==backend:
+ del entry._fields[j]
+ j+=1
+ entry.rebuild_index()
+ i += 1
+
def check_entry_id( self, num_id ):
"""
Checks whether the given entry id is valid. Raises InvalidEntryID, if not.
diff --git a/framework/subsystems/opimd/pimd_messages.py b/framework/subsystems/opimd/pimd_messages.py
index 74e6b0b..cc21a2e 100644
--- a/framework/subsystems/opimd/pimd_messages.py
+++ b/framework/subsystems/opimd/pimd_messages.py
@@ -949,6 +949,9 @@ class MessageDomain(Domain):
self.IncomingMessage(_DBUS_PATH_MESSAGES+ '/' + str(message_id))
return message_id
+ def remove_entries_from_backend(self, backend):
+ pass
+
def enumerate_items(self, backend):
"""Enumerates all message data belonging to a specific backend
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list