From c82024c3ba450787be7875f24b5729a6dbf9176b Mon Sep 17 00:00:00 2001 From: Jens Georg Date: Mon, 22 Oct 2012 14:48:25 +0200 Subject: [PATCH] server: Implement search for upnp:*UpdateID --- src/librygel-server/rygel-content-directory.vala | 8 ++++ .../rygel-relational-expression.vala | 48 ++++++++++++++++++++++ tests/rygel-item-creator-test.vala | 8 ++++ 3 files changed, 64 insertions(+) diff --git a/src/librygel-server/rygel-content-directory.vala b/src/librygel-server/rygel-content-directory.vala index df4db64..0826c18 100644 --- a/src/librygel-server/rygel-content-directory.vala +++ b/src/librygel-server/rygel-content-directory.vala @@ -76,6 +76,8 @@ internal class Rygel.ContentDirectory: Service { private string service_reset_token; + private string search_caps; + public override void constructed () { this.cancellable = new Cancellable (); @@ -94,6 +96,12 @@ internal class Rygel.ContentDirectory: Service { this.last_change = new LastChange (); + this.search_caps = RelationalExpression.CAPS; + + if (PluginCapabilities.TRACK_CHANGES in plugin.capabilities) { + this.search_caps += ",upnp:objectUpdateID,upnp:containerUpdateID"; + } + this.feature_list = "" + " operand2; + case SearchCriteriaOp.GEQ: + return integer >= operand2; + default: + return false; + } + } } diff --git a/tests/rygel-item-creator-test.vala b/tests/rygel-item-creator-test.vala index cf41b92..973a7f0 100644 --- a/tests/rygel-item-creator-test.vala +++ b/tests/rygel-item-creator-test.vala @@ -114,12 +114,19 @@ public class Rygel.MediaObject : GLib.Object { public string title; public GUPnP.OCMFlags ocm_flags; public Gee.ArrayList uris; + public uint object_update_id; public void add_uri (string uri) { this.uris.add (uri); } } +public interface Rygel.TrackableContainer : Rygel.MediaContainer { +} + +public interface Rygel.TrackableItem : Rygel.MediaItem { +} + public class Rygel.MediaItem : Rygel.MediaObject { public string dlna_profile; public string mime_type; @@ -186,6 +193,7 @@ public class Rygel.MediaContainer : Rygel.MediaObject { public Gee.ArrayList create_classes = new Gee.ArrayList (); public int child_count; public string sort_criteria = "+dc:title"; + public uint update_id; // mockable elements public MediaObject found_object = null; -- 2.7.4