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


The following commit has been merged in the debian branch:
commit 6c8ebc1ffa4837d3c28bc46565d4f0eb2f81b75e
Author: Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
Date:   Sat Aug 1 17:20:14 2009 +0200

    opimd: GenericDomain: implement EntryAdded signal in queries

diff --git a/framework/subsystems/opimd/pimd_generic.py b/framework/subsystems/opimd/pimd_generic.py
index 930820f..c61e297 100644
--- a/framework/subsystems/opimd/pimd_generic.py
+++ b/framework/subsystems/opimd/pimd_generic.py
@@ -57,6 +57,13 @@ class QueryMatcher(object):
 
         self.query_obj = query
 
+    def single_entry_matches(self, entry):
+        assert(self.query_obj, "Query object is empty, cannot match!")
+
+        if entry:
+            return entry.match_query(self.query_obj)
+        else:
+            return False
 
     def match(self, entries):
         """Tries to match a given set of entries to the current query
@@ -71,10 +78,9 @@ class QueryMatcher(object):
 
         # Match all entires
         for (entry_id, entry) in enumerate(entries):
-            if entry:
-                match = entry.match_query(self.query_obj)
-                if match > 0.0:
-                    matches.append((match, entry_id))
+            match = self.single_call_matches(entry)
+            if match:
+                matches.append((match, entry_id))
 
         result_count = len(matches)
         # Sort matches by relevance and return the best hits
@@ -576,7 +582,7 @@ class SingleQueryHandler(object):
         result = False
 
         matcher = QueryMatcher(self.query)
-        if matcher.single_entry_matches():
+        if matcher.single_entry_matches(self._calls[call_id]):
             self.entries = matcher.match(self._entries)
 
             # TODO Register with the new entry to receive changes
@@ -645,8 +651,7 @@ class QueryManager(DBusFBObject):
             if query_handler.check_new_entry(entry_id):
                 entry = self._entries[entry_id]
                 entry_path = entry['Path']
-                # TODO: make it working! :)
-                # self.entryAdded(query_id, entry_path)
+                self.EntryAdded(entry_path, rel_path='/' + str(query_id))
 
     def check_query_id_ok( self, num_id ):
         """
@@ -655,6 +660,10 @@ class QueryManager(DBusFBObject):
         if not num_id in self._queries:
             raise InvalidQueryID( "Existing query IDs: %s" % self._queries.keys() )
 
+    @dbus_signal(_DIN_QUERY, "s", rel_path_keyword="rel_path")
+    def EntryAdded(self, path, rel_path=None):
+        pass
+
     @dbus_method(_DIN_QUERY, "", "i", rel_path_keyword="rel_path")
     def GetResultCount(self, rel_path):
         num_id = int(rel_path[1:])
@@ -829,9 +838,7 @@ class GenericDomain(Domain):
         result = entry['Path']
 
         # As we just added a new entry, we check it against all queries to see if it matches
-        # XXX: I comment this out because it doesn't work : Charlie
-        # TODO: uncomment it
-        # self.query_manager.check_new_entry(entry_id)
+        self.query_manager.check_new_entry(entry_id)
 
         return result
 

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list