[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:13 UTC 2011


The following commit has been merged in the debian branch:
commit 2ab8a92f3f7e208bf46f3186d4710fc20dba48cc
Author: Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
Date:   Sat Aug 29 22:26:49 2009 +0200

    opimd: Messages: backport last changes from GenericDomain

diff --git a/framework/subsystems/opimd/pimd_generic.py b/framework/subsystems/opimd/pimd_generic.py
index c8b55f9..b2d68fe 100644
--- a/framework/subsystems/opimd/pimd_generic.py
+++ b/framework/subsystems/opimd/pimd_generic.py
@@ -268,8 +268,6 @@ class GenericEntry():
         self_fields = self.get_content()
         for field_name in entry_fields:
             if entry_fields[field_name] and self_fields.get(field_name) and self_fields[field_name]!=entry_fields[field_name]:
-                print "self:  " + str(self_fields.get(field_name))
-                print "entry: " + str(entry_fields[field_name])
                 duplicated = False
                 break
 
diff --git a/framework/subsystems/opimd/pimd_messages.py b/framework/subsystems/opimd/pimd_messages.py
index cc21a2e..a7c3a81 100644
--- a/framework/subsystems/opimd/pimd_messages.py
+++ b/framework/subsystems/opimd/pimd_messages.py
@@ -145,16 +145,25 @@ class Message():
         if len(field_ids) == 1:
             # Return single result
             field = self._fields[field_ids[0]]
-            return field[1]
-
+            result = field[1]
         else:
             # Return multiple results
             result = []
+            prev = self._fields[field_ids[0]][1]
+            thesame = 1
             for n in field_ids:
                 field = self._fields[n]
                 result.append(field[1])
+                if prev!=field:
+                    thesame = 0
+
+            if thesame:
+                result = prev
 
+        if result != '':
             return result
+        else:
+            return None
 
 
     def __setitem__(self, key, value):
@@ -275,8 +284,18 @@ class Message():
                     field_value = (self._fields[field_id])[1]
                     field_values.append(field_value)
 
-                value = ','.join(field_values)
-                result[field_name] = field_values
+#                value = ','.join(field_values)
+
+                thesame = 1
+                prev = field_values[0]
+                for n in field_ids:
+                    if prev!=self._fields[n][1]:
+                        thesame = 0
+
+                if thesame:
+                    result[field_name] = field_values[0]
+                else:
+                    result[field_name] = field_values
 
             else:
                 field_value = (self._fields[field_ids[0]])[1]
@@ -300,53 +319,41 @@ class Message():
         return content
 
 
-    def attempt_merge(self, message_fields, backend_name):
+    def attempt_merge(self, entry_fields, backend_name):
         """Attempts to merge the given message into the message list and returns its ID
 
-        @param message_fields Message data; format: ((Key,Value), (Key,Value), ...)
+        @param entry_fields Message data; format: ((Key,Value), (Key,Value), ...)
         @param backend_name Backend that owns the message data
         @return True on successful merge, False otherwise"""
 
         duplicated = True
-        for field_name in message_fields:
-            try:
-                if self[field_name]!=message_fields[field_name]:
-                    duplicated = False
-                    break
-            except KeyError:
+        self_fields = self.get_content()
+        for field_name in entry_fields:
+            if entry_fields[field_name] and self_fields.get(field_name) and self_fields[field_name]!=entry_fields[field_name]:
                 duplicated = False
                 break
 
         if duplicated:
-            return True # That message exists, so we doesn't have to do anything to have it merged.
+            return True # That entry exists, so we doesn't have to do anything to have it merged.
 
-        # Don't merge if we already have data from $backend_name as one backend can't contain two mergeable messages
-        # Messages domain can store also different messages than SMSes, so merging splitten SMS messages has to be done in SMS backend.
+        # Don't merge if we already have data from $backend_name as one backend can't contain two mergeable entries
         if backend_name in self._used_backends:
             return False
 
         merge = [1, 0]
-        for field_name in message_fields:
-            if not field_name.startswith('_'):
-                if field_name!='Path':
-                    field_value=message_fields[field_name]
-                    try:
-                        if self[field_name]!=field_value:
-                            merge[0] = 0
-                            break
-                        else:
-                            merge[1] = 1
-                    except KeyError:
-                        pass
+        for field_name in entry_fields:
+            if not field_name.startswith('_') and field_name!='Path':
+                field_value=entry_fields[field_name]
+                if self_fields.get(field_name) and self_fields[field_name]!=field_value:
+                    merge[0] = 0
+                    break
+                else:
+                    merge[1] = 1
 
         if merge[0]:
             if merge[1]:
-                self.import_fields(message_fields, backend_name)
+                self.import_fields(entry_fields, backend_name)
                 return True
-            else:
-                return False
-        else:
-            return False
 
         return False
 

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list