[rygel] media-export: Infer SystemUpdateID



commit d163a27a2fbdcad87215cd2cb485d878f3f0bd9b
Author: Jens Georg <jensg openismus com>
Date:   Tue Dec 11 20:42:43 2012 +0100

    media-export: Infer SystemUpdateID

 .../rygel-media-export-media-cache.vala            |    8 ++++++++
 .../rygel-media-export-sql-factory.vala            |    8 +++++++-
 .../rygel-media-export-trackable-db-container.vala |    5 +++++
 3 files changed, 20 insertions(+), 1 deletions(-)
---
diff --git a/src/plugins/media-export/rygel-media-export-media-cache.vala b/src/plugins/media-export/rygel-media-export-media-cache.vala
index 62737b4..8ba7c7d 100644
--- a/src/plugins/media-export/rygel-media-export-media-cache.vala
+++ b/src/plugins/media-export/rygel-media-export-media-cache.vala
@@ -155,6 +155,14 @@ public class Rygel.MediaExport.MediaCache : Object {
         return this.query_value (SQLString.CHILD_COUNT, values);
     }
 
+    public uint32 get_update_id () {
+        try {
+            return this.query_value (SQLString.MAX_UPDATE_ID);
+        } catch (Error error) { }
+
+        return 0;
+    }
+
 
     public bool exists (File      file,
                         out int64 timestamp,
diff --git a/src/plugins/media-export/rygel-media-export-sql-factory.vala b/src/plugins/media-export/rygel-media-export-sql-factory.vala
index 4b3f94a..272cc3e 100644
--- a/src/plugins/media-export/rygel-media-export-sql-factory.vala
+++ b/src/plugins/media-export/rygel-media-export-sql-factory.vala
@@ -72,7 +72,8 @@ internal enum Rygel.MediaExport.SQLString {
     SCHEMA,
     EXISTS_CACHE,
     STATISTICS,
-    RESET_TOKEN
+    RESET_TOKEN,
+    MAX_UPDATE_ID
 }
 
 internal class Rygel.MediaExport.SQLFactory : Object {
@@ -268,6 +269,9 @@ internal class Rygel.MediaExport.SQLFactory : Object {
     private const string RESET_TOKEN_STRING =
     "SELECT reset_token FROM schema_info";
 
+    private const string MAX_UPDATE_ID_STRING =
+    "SELECT MAX(MAX(object_update_id), MAX(container_update_id)) FROM Object";
+
     public unowned string make (SQLString query) {
         switch (query) {
             case SQLString.SAVE_METADATA:
@@ -314,6 +318,8 @@ internal class Rygel.MediaExport.SQLFactory : Object {
                 return STATISTICS_STRING;
             case SQLString.RESET_TOKEN:
                 return RESET_TOKEN_STRING;
+            case SQLString.MAX_UPDATE_ID:
+                return MAX_UPDATE_ID_STRING;
             default:
                 assert_not_reached ();
         }
diff --git a/src/plugins/media-export/rygel-media-export-trackable-db-container.vala b/src/plugins/media-export/rygel-media-export-trackable-db-container.vala
index dd6ee28..f110ae2 100644
--- a/src/plugins/media-export/rygel-media-export-trackable-db-container.vala
+++ b/src/plugins/media-export/rygel-media-export-trackable-db-container.vala
@@ -57,4 +57,9 @@ public class Rygel.MediaExport.TrackableDbContainer : TrackableContainer,
     public virtual void set_service_reset_token (string token) {
         this.media_db.save_reset_token (token);
     }
+
+    public virtual uint32 get_system_update_id () {
+        var id = this.media_db.get_update_id ();
+        return id;
+    }
 }



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