[rygel] core,plugins: Correctly handle wildcard in search
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel] core,plugins: Correctly handle wildcard in search
- Date: Wed, 4 Aug 2010 15:10:36 +0000 (UTC)
commit 4d90a401c71ef08d22ec88b11c24a4304cd0001b
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date: Wed Aug 4 18:07:09 2010 +0300
core,plugins: Correctly handle wildcard in search
src/plugins/external/rygel-external-container.vala | 14 +++++++-------
.../rygel-media-export-db-container.vala | 17 ++++++++++++-----
.../rygel-media-export-query-container.vala | 18 +++++++++++++-----
.../rygel-media-export-root-container.vala | 18 +++++++++++++-----
.../tracker/rygel-tracker-search-container.vala | 16 ++++++++--------
src/rygel/rygel-media-container.vala | 10 +++++-----
6 files changed, 58 insertions(+), 35 deletions(-)
---
diff --git a/src/plugins/external/rygel-external-container.vala b/src/plugins/external/rygel-external-container.vala
index 014cbc2..4a5bd4f 100644
--- a/src/plugins/external/rygel-external-container.vala
+++ b/src/plugins/external/rygel-external-container.vala
@@ -93,14 +93,14 @@ public class Rygel.External.Container : Rygel.MediaContainer {
return yield this.create_media_objects (children_props, this);
}
- public override async MediaObjects? search (SearchExpression expression,
- uint offset,
- uint max_count,
- out uint total_matches,
- Cancellable? cancellable)
+ public override async MediaObjects? search (SearchExpression? expression,
+ uint offset,
+ uint max_count,
+ out uint total_matches,
+ Cancellable? cancellable)
throws GLib.Error {
- if (!this.searchable) {
- // Backend doesn't implement search :(
+ if (expression == null || !this.searchable) {
+ // Either its wildcard or backend doesn't implement search :(
return yield base.search (expression,
offset,
max_count,
diff --git a/src/plugins/media-export/rygel-media-export-db-container.vala b/src/plugins/media-export/rygel-media-export-db-container.vala
index 0b06dfc..54bd5a9 100644
--- a/src/plugins/media-export/rygel-media-export-db-container.vala
+++ b/src/plugins/media-export/rygel-media-export-db-container.vala
@@ -64,12 +64,19 @@ public class Rygel.MediaExport.DBContainer : MediaContainer {
return children;
}
- public override async MediaObjects? search (SearchExpression expression,
- uint offset,
- uint max_count,
- out uint total_matches,
- Cancellable? cancellable)
+ public override async MediaObjects? search (SearchExpression? expression,
+ uint offset,
+ uint max_count,
+ out uint total_matches,
+ Cancellable? cancellable)
throws GLib.Error {
+ if (expression == null) {
+ return yield base.search (expression,
+ offset,
+ max_count,
+ out total_matches,
+ cancellable);
+ }
MediaObjects children = null;
var max_objects = max_count;
diff --git a/src/plugins/media-export/rygel-media-export-query-container.vala b/src/plugins/media-export/rygel-media-export-query-container.vala
index 3166173..8edec7c 100644
--- a/src/plugins/media-export/rygel-media-export-query-container.vala
+++ b/src/plugins/media-export/rygel-media-export-query-container.vala
@@ -146,12 +146,20 @@ internal class Rygel.MediaExport.QueryContainer : DBContainer {
}
}
- public override async MediaObjects? search (SearchExpression expression,
- uint offset,
- uint max_count,
- out uint total_matches,
- Cancellable? cancellable)
+ public override async MediaObjects? search (SearchExpression? expression,
+ uint offset,
+ uint max_count,
+ out uint total_matches,
+ Cancellable? cancellable)
throws GLib.Error {
+ if (expression == null) {
+ return yield base.search (expression,
+ offset,
+ max_count,
+ out total_matches,
+ cancellable);
+ }
+
MediaObjects children = null;
var combined_expression = new LogicalExpression ();
diff --git a/src/plugins/media-export/rygel-media-export-root-container.vala b/src/plugins/media-export/rygel-media-export-root-container.vala
index 582ae80..1464419 100644
--- a/src/plugins/media-export/rygel-media-export-root-container.vala
+++ b/src/plugins/media-export/rygel-media-export-root-container.vala
@@ -189,12 +189,20 @@ public class Rygel.MediaExport.RootContainer : Rygel.MediaExport.DBContainer {
return object;
}
- public override async MediaObjects? search (SearchExpression expression,
- uint offset,
- uint max_count,
- out uint total_matches,
- Cancellable? cancellable)
+ public override async MediaObjects? search (SearchExpression? expression,
+ uint offset,
+ uint max_count,
+ out uint total_matches,
+ Cancellable? cancellable)
throws GLib.Error {
+ if (expression == null) {
+ return yield base.search (expression,
+ offset,
+ max_count,
+ out total_matches,
+ cancellable);
+ }
+
MediaObjects list;
MediaContainer query_container = null;
string upnp_class = null;
diff --git a/src/plugins/tracker/rygel-tracker-search-container.vala b/src/plugins/tracker/rygel-tracker-search-container.vala
index feb1114..4c462cb 100644
--- a/src/plugins/tracker/rygel-tracker-search-container.vala
+++ b/src/plugins/tracker/rygel-tracker-search-container.vala
@@ -117,11 +117,11 @@ public class Rygel.Tracker.SearchContainer : Rygel.MediaContainer {
cancellable);
}
- public override async MediaObjects? search (SearchExpression expression,
- uint offset,
- uint max_count,
- out uint total_matches,
- Cancellable? cancellable)
+ public override async MediaObjects? search (SearchExpression? expression,
+ uint offset,
+ uint max_count,
+ out uint total_matches,
+ Cancellable? cancellable)
throws GLib.Error {
var results = new MediaObjects ();
var query = this.create_query (expression,
@@ -176,9 +176,9 @@ public class Rygel.Tracker.SearchContainer : Rygel.MediaContainer {
}
}
- private SelectionQuery? create_query (SearchExpression expression,
- int offset,
- int max_count) {
+ private SelectionQuery? create_query (SearchExpression? expression,
+ int offset,
+ int max_count) {
if (expression == null || !(expression is RelationalExpression)) {
return null;
}
diff --git a/src/rygel/rygel-media-container.vala b/src/rygel/rygel-media-container.vala
index 7df24e9..065542f 100644
--- a/src/rygel/rygel-media-container.vala
+++ b/src/rygel/rygel-media-container.vala
@@ -92,11 +92,11 @@ public abstract class Rygel.MediaContainer : MediaObject {
*
* return A list of media objects.
*/
- public virtual async MediaObjects? search (SearchExpression expression,
- uint offset,
- uint max_count,
- out uint total_matches,
- Cancellable? cancellable)
+ public virtual async MediaObjects? search (SearchExpression? expression,
+ uint offset,
+ uint max_count,
+ out uint total_matches,
+ Cancellable? cancellable)
throws Error {
var result = new MediaObjects ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]