[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