[rygel] core: add function to query child count from database



commit e6a72f5f88b50c9cdd0dcc3d05709c78c86fb211
Author: Jens Georg <mail jensge org>
Date:   Sun Jun 21 02:08:01 2009 +0200

    core: add function to query child count from database

 src/rygel/rygel-media-db.vala |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/src/rygel/rygel-media-db.vala b/src/rygel/rygel-media-db.vala
index 61bcf43..7be100a 100644
--- a/src/rygel/rygel-media-db.vala
+++ b/src/rygel/rygel-media-db.vala
@@ -115,6 +115,9 @@ public class Rygel.MediaDB : Object {
     private const string OBJECT_GET_URIS =
     "SELECT uri FROM Uri WHERE Uri.object_fk = ?";
 
+    private const string CHILDREN_COUNT_STRING =
+    "SELECT count(upnp_id) from Object where Object.parent = ?";
+
     private void open_db (string name) {
         var rc = Database.open (name, out this.db);
         if (rc != Sqlite.OK) {
@@ -429,6 +432,28 @@ public class Rygel.MediaDB : Object {
         item.color_depth = statement.column_int (15);
     }
 
+    public int get_child_count (string object_id) {
+        Statement statement;
+        int count = 0;
+        var rc = db.prepare_v2 (CHILDREN_COUNT_STRING,
+                                -1,
+                                out statement,
+                                null);
+        if (rc == Sqlite.OK) {
+            statement.bind_text (1, object_id);
+            while ((rc = statement.step ()) == Sqlite.ROW) {
+                count = statement.column_int (0);
+                break;
+            }
+        } else {
+            warning ("Could not get child count for object %s: %s",
+                     object_id,
+                     db.errmsg ());
+        }
+
+        return count;
+    }
+
     public Gee.ArrayList<MediaObject> get_children (string object_id,
                                                       uint offset,
                                                       uint max_count) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]