tracker: Query executes itself
authorZeeshan Ali (Khattak) <zeeshanak@gnome.org>
Wed, 2 Dec 2009 01:01:38 +0000 (03:01 +0200)
committerZeeshan Ali (Khattak) <zeeshanak@gnome.org>
Wed, 2 Dec 2009 01:09:53 +0000 (03:09 +0200)
src/plugins/tracker/rygel-tracker-metadata-values.vala
src/plugins/tracker/rygel-tracker-query.vala
src/plugins/tracker/rygel-tracker-search-container.vala

index 3bf6e5d..093de97 100644 (file)
@@ -111,8 +111,7 @@ public class Rygel.TrackerMetadataValues : Rygel.SimpleContainer {
             /* FIXME: We need to hook to some tracker signals to keep
              *        this field up2date at all times
              */
-            debug ("Executing SPARQL query: %s", query.to_string ());
-            values = yield this.resources.sparql_query (query.to_string ());
+            values = yield query.execute (this.resources);
         } catch (DBus.Error error) {
             critical ("error getting all values for '%s': %s",
                       string.joinv (" -> ", this.key_chain),
index 746a842..e0b8878 100644 (file)
@@ -74,6 +74,14 @@ public class Rygel.TrackerQuery {
               query.max_count);
     }
 
+    public async string[,] execute (TrackerResourcesIface resources)
+                                    throws DBus.Error {
+        var str = this.to_string ();
+
+        debug ("Executing SPARQL query: %s", str);
+        return yield resources.sparql_query (str);
+    }
+
     public string to_string () {
         string query = "SELECT";
 
index 0646d79..57cac9c 100644 (file)
@@ -108,10 +108,7 @@ public class Rygel.TrackerSearchContainer : Rygel.MediaContainer {
             query.variables.add ("COUNT(" + ITEM_VARIABLE + ") AS x");
             query.optional = new TrackerQueryTriplets ();
 
-            var query_str = query.to_string ();
-
-            debug ("Executing SPARQL query: %s", query_str);
-            var result = yield this.resources.sparql_query (query_str);
+            var result = yield query.execute (this.resources);
 
             this.child_count = result[0,0].to_int ();
             this.updated ();
@@ -164,10 +161,7 @@ public class Rygel.TrackerSearchContainer : Rygel.MediaContainer {
             return results;
         }
 
-        var query_str = query.to_string ();
-
-        debug ("Executing SPARQL query: %s", query_str);
-        var search_result = yield this.resources.sparql_query (query_str);
+        var search_result = yield query.execute (this.resources);
 
         /* Iterate through all items */
         for (uint i = 0; i < search_result.length[0]; i++) {