summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2012-08-18 00:38:29 +0200
committerJens Georg <mail@jensge.org>2012-08-18 12:51:27 +0200
commit2cfaacf57bf3c3af79719a2d2ec7c2a766fe3a82 (patch)
tree0c2955db431f162541b1935875d0cf32ba8579b0
parent8977dbabb5e78e97aacf39f6590ce72fc339844b (diff)
downloadrygel-2cfaacf57bf3c3af79719a2d2ec7c2a766fe3a82.tar.gz
all: Simplify sort criteria default fallback
-rw-r--r--src/librygel-server/rygel-browse.vala4
-rw-r--r--src/librygel-server/rygel-media-container.vala2
-rw-r--r--src/librygel-server/rygel-search.vala6
-rw-r--r--src/librygel-server/rygel-searchable-container.vala2
-rw-r--r--src/librygel-server/rygel-simple-container.vala8
-rw-r--r--src/plugins/external/rygel-external-container.vala11
-rw-r--r--src/plugins/external/rygel-external-dummy-container.vala2
-rw-r--r--src/plugins/media-export/rygel-media-export-db-container.vala11
-rw-r--r--src/plugins/media-export/rygel-media-export-leaf-query-container.vala4
-rw-r--r--src/plugins/media-export/rygel-media-export-media-cache.vala12
-rw-r--r--src/plugins/media-export/rygel-media-export-node-query-container.vala2
-rw-r--r--src/plugins/media-export/rygel-media-export-null-container.vala2
-rw-r--r--src/plugins/media-export/rygel-media-export-query-container.vala4
-rw-r--r--src/plugins/media-export/rygel-media-export-root-container.vala5
-rw-r--r--src/plugins/tracker/rygel-tracker-category-all-container.vala4
-rw-r--r--src/plugins/tracker/rygel-tracker-search-container.vala8
-rw-r--r--tests/rygel-searchable-container-test.vala2
17 files changed, 43 insertions, 46 deletions
diff --git a/src/librygel-server/rygel-browse.vala b/src/librygel-server/rygel-browse.vala
index b9319d41..a3cadfaa 100644
--- a/src/librygel-server/rygel-browse.vala
+++ b/src/librygel-server/rygel-browse.vala
@@ -111,9 +111,11 @@ internal class Rygel.Browse: Rygel.MediaQueryAction {
this.object_id,
this.index);
+ var sort_criteria = this.sort_criteria ?? container.sort_criteria;
+
var children = yield container.get_children (this.index,
this.requested_count,
- this.sort_criteria,
+ sort_criteria,
this.cancellable);
debug ("Fetched %u children of container '%s' from index %u.",
diff --git a/src/librygel-server/rygel-media-container.vala b/src/librygel-server/rygel-media-container.vala
index 5780c311..535f6288 100644
--- a/src/librygel-server/rygel-media-container.vala
+++ b/src/librygel-server/rygel-media-container.vala
@@ -121,7 +121,7 @@ public abstract class Rygel.MediaContainer : MediaObject {
*/
public async abstract MediaObjects? get_children (uint offset,
uint max_count,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws Error;
diff --git a/src/librygel-server/rygel-search.vala b/src/librygel-server/rygel-search.vala
index d35be7ec..4ae99b5b 100644
--- a/src/librygel-server/rygel-search.vala
+++ b/src/librygel-server/rygel-search.vala
@@ -69,20 +69,22 @@ internal class Rygel.Search: Rygel.MediaQueryAction {
throw parser.err;
}
+ var sort_criteria = this.sort_criteria ?? container.sort_criteria;
+
if (this.hacks != null) {
return yield this.hacks.search (container,
parser.expression,
this.index,
this.requested_count,
out this.total_matches,
- this.sort_criteria,
+ sort_criteria,
this.cancellable);
} else {
return yield container.search (parser.expression,
this.index,
this.requested_count,
out this.total_matches,
- this.sort_criteria,
+ sort_criteria,
this.cancellable);
}
}
diff --git a/src/librygel-server/rygel-searchable-container.vala b/src/librygel-server/rygel-searchable-container.vala
index 8dd5e5da..469dad4c 100644
--- a/src/librygel-server/rygel-searchable-container.vala
+++ b/src/librygel-server/rygel-searchable-container.vala
@@ -45,7 +45,7 @@ public interface Rygel.SearchableContainer : MediaContainer {
uint offset,
uint max_count,
out uint total_matches,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws Error;
diff --git a/src/librygel-server/rygel-simple-container.vala b/src/librygel-server/rygel-simple-container.vala
index dcb006bc..bb7d18b7 100644
--- a/src/librygel-server/rygel-simple-container.vala
+++ b/src/librygel-server/rygel-simple-container.vala
@@ -124,7 +124,7 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
public override async MediaObjects? get_children (
uint offset,
uint max_count,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws Error {
uint stop = offset + max_count;
@@ -132,7 +132,7 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
var sorted_children = this.children.slice (0, this.child_count)
as MediaObjects;
- sorted_children.sort_by_criteria (sort_criteria ?? this.sort_criteria);
+ sorted_children.sort_by_criteria (sort_criteria);
return sorted_children.slice ((int) offset, (int) stop)
as MediaObjects;
@@ -195,14 +195,14 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
uint offset,
uint max_count,
out uint total_matches,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws Error {
return yield this.simple_search (expression,
offset,
max_count,
out total_matches,
- sort_criteria ?? this.sort_criteria,
+ sort_criteria,
cancellable);
}
diff --git a/src/plugins/external/rygel-external-container.vala b/src/plugins/external/rygel-external-container.vala
index 40970369..128068fa 100644
--- a/src/plugins/external/rygel-external-container.vala
+++ b/src/plugins/external/rygel-external-container.vala
@@ -77,7 +77,7 @@ public class Rygel.External.Container : Rygel.MediaContainer,
public override async MediaObjects? get_children (
uint offset,
uint max_count,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws GLib.Error {
string[] filter = {};
@@ -98,7 +98,7 @@ public class Rygel.External.Container : Rygel.MediaContainer,
(offset, max_count, filter);
var result = yield this.create_media_objects (children_props, this);
- result.sort_by_criteria (sort_criteria ?? this.sort_criteria);
+ result.sort_by_criteria (sort_criteria);
return result;
}
@@ -107,17 +107,16 @@ public class Rygel.External.Container : Rygel.MediaContainer,
uint offset,
uint max_count,
out uint total_matches,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws GLib.Error {
- var real_sort_criteria = sort_criteria ?? this.sort_criteria;
if (expression == null || !this.searchable) {
// Either its wildcard or backend doesn't implement search :(
return yield this.simple_search (expression,
offset,
max_count,
out total_matches,
- real_sort_criteria,
+ sort_criteria,
cancellable);
}
@@ -145,7 +144,7 @@ public class Rygel.External.Container : Rygel.MediaContainer,
var objects = yield this.create_media_objects (result);
// FIXME: Delegate sorting to remote peer
- objects.sort_by_criteria (real_sort_criteria);
+ objects.sort_by_criteria (sort_criteria);
return objects;
}
diff --git a/src/plugins/external/rygel-external-dummy-container.vala b/src/plugins/external/rygel-external-dummy-container.vala
index ae0d0fd5..b1ba3793 100644
--- a/src/plugins/external/rygel-external-dummy-container.vala
+++ b/src/plugins/external/rygel-external-dummy-container.vala
@@ -41,7 +41,7 @@ internal class Rygel.External.DummyContainer : MediaContainer {
public override async MediaObjects? get_children (
uint offset,
uint max_count,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws Error {
return new MediaObjects ();
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 5db2a613..61141a20 100644
--- a/src/plugins/media-export/rygel-media-export-db-container.vala
+++ b/src/plugins/media-export/rygel-media-export-db-container.vala
@@ -50,11 +50,11 @@ public class Rygel.MediaExport.DBContainer : MediaContainer,
public override async MediaObjects? get_children (
uint offset,
uint max_count,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws GLib.Error {
return this.media_db.get_children (this,
- sort_criteria ?? this.sort_criteria,
+ sort_criteria,
offset,
max_count);
}
@@ -63,16 +63,15 @@ public class Rygel.MediaExport.DBContainer : MediaContainer,
uint offset,
uint max_count,
out uint total_matches,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws GLib.Error {
MediaObjects children = null;
- var real_sort_criteria = sort_criteria ?? this.sort_criteria;
try {
children = this.media_db.get_objects_by_search_expression
(expression,
- real_sort_criteria,
+ sort_criteria,
this.id,
offset,
max_count,
@@ -83,7 +82,7 @@ public class Rygel.MediaExport.DBContainer : MediaContainer,
offset,
max_count,
out total_matches,
- real_sort_criteria,
+ sort_criteria,
cancellable);
} else {
throw error;
diff --git a/src/plugins/media-export/rygel-media-export-leaf-query-container.vala b/src/plugins/media-export/rygel-media-export-leaf-query-container.vala
index cb88e7b9..bd82a882 100644
--- a/src/plugins/media-export/rygel-media-export-leaf-query-container.vala
+++ b/src/plugins/media-export/rygel-media-export-leaf-query-container.vala
@@ -29,7 +29,7 @@ internal class Rygel.MediaExport.LeafQueryContainer : QueryContainer {
public override async MediaObjects? get_children
(uint offset,
uint max_count,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws GLib.Error {
uint total_matches;
@@ -37,7 +37,7 @@ internal class Rygel.MediaExport.LeafQueryContainer : QueryContainer {
offset,
max_count,
out total_matches,
- sort_criteria ?? this.sort_criteria,
+ sort_criteria,
cancellable);
foreach (var child in children) {
child.parent = this;
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 b8265b5a..4d02c175 100644
--- a/src/plugins/media-export/rygel-media-export-media-cache.vala
+++ b/src/plugins/media-export/rygel-media-export-media-cache.vala
@@ -180,7 +180,7 @@ public class Rygel.MediaExport.MediaCache : Object {
}
public MediaObjects get_children (MediaContainer container,
- string? sort_criteria,
+ string sort_criteria,
long offset,
long max_count)
throws Error {
@@ -206,7 +206,7 @@ public class Rygel.MediaExport.MediaCache : Object {
public MediaObjects get_objects_by_search_expression
(SearchExpression? expression,
string? container_id,
- string? sort_criteria,
+ string sort_criteria,
uint offset,
uint max_count,
out uint total_matches)
@@ -282,7 +282,7 @@ public class Rygel.MediaExport.MediaCache : Object {
public MediaObjects get_objects_by_filter (string filter,
GLib.ValueArray args,
string? container_id,
- string? sort_criteria,
+ string sort_criteria,
long offset,
long max_count)
throws Error {
@@ -867,11 +867,7 @@ public class Rygel.MediaExport.MediaCache : Object {
return this.db.query_value (this.sql.make (id), values);
}
- private string translate_sort_criteria (string? sort_criteria) {
- if (sort_criteria == null) {
- return "ORDER BY o.title COLLATE CASEFOLD ASC ";
- }
-
+ private string translate_sort_criteria (string sort_criteria) {
string? collate;
var builder = new StringBuilder("ORDER BY ");
var fields = sort_criteria.split (",");
diff --git a/src/plugins/media-export/rygel-media-export-node-query-container.vala b/src/plugins/media-export/rygel-media-export-node-query-container.vala
index c181fdb2..1d400846 100644
--- a/src/plugins/media-export/rygel-media-export-node-query-container.vala
+++ b/src/plugins/media-export/rygel-media-export-node-query-container.vala
@@ -46,7 +46,7 @@ internal class Rygel.MediaExport.NodeQueryContainer : QueryContainer {
public override async MediaObjects? get_children
(uint offset,
uint max_count,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws GLib.Error {
var children = new MediaObjects ();
diff --git a/src/plugins/media-export/rygel-media-export-null-container.vala b/src/plugins/media-export/rygel-media-export-null-container.vala
index 60149e3b..6309fbc1 100644
--- a/src/plugins/media-export/rygel-media-export-null-container.vala
+++ b/src/plugins/media-export/rygel-media-export-null-container.vala
@@ -33,7 +33,7 @@ internal class Rygel.NullContainer : MediaContainer {
public override async MediaObjects? get_children (
uint offset,
uint max_count,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws Error {
return new MediaObjects ();
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 abe635e8..99f77cdd 100644
--- a/src/plugins/media-export/rygel-media-export-query-container.vala
+++ b/src/plugins/media-export/rygel-media-export-query-container.vala
@@ -49,7 +49,7 @@ internal abstract class Rygel.MediaExport.QueryContainer : DBContainer {
uint offset,
uint max_count,
out uint total_matches,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws GLib.Error {
MediaObjects children = null;
@@ -70,7 +70,7 @@ internal abstract class Rygel.MediaExport.QueryContainer : DBContainer {
children = this.media_db.get_objects_by_search_expression
(combined_expression,
null,
- sort_criteria ?? this.sort_criteria,
+ sort_criteria,
offset,
max_count,
out total_matches);
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 04a286cb..235d3e73 100644
--- a/src/plugins/media-export/rygel-media-export-root-container.vala
+++ b/src/plugins/media-export/rygel-media-export-root-container.vala
@@ -139,7 +139,7 @@ public class Rygel.MediaExport.RootContainer : Rygel.MediaExport.DBContainer {
uint offset,
uint max_count,
out uint total_matches,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws GLib.Error {
if (expression == null) {
@@ -167,10 +167,9 @@ public class Rygel.MediaExport.RootContainer : Rygel.MediaExport.DBContainer {
}
if (query_container != null) {
- var real_sort_criteria = sort_criteria ?? this.sort_criteria;
list = yield query_container.get_children (offset,
max_count,
- real_sort_criteria,
+ sort_criteria,
cancellable);
total_matches = query_container.child_count;
diff --git a/src/plugins/tracker/rygel-tracker-category-all-container.vala b/src/plugins/tracker/rygel-tracker-category-all-container.vala
index d3d0e366..a1a11850 100644
--- a/src/plugins/tracker/rygel-tracker-category-all-container.vala
+++ b/src/plugins/tracker/rygel-tracker-category-all-container.vala
@@ -103,14 +103,14 @@ public class Rygel.Tracker.CategoryAllContainer : SearchContainer,
uint offset,
uint max_count,
out uint total_matches,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws Error {
return yield this.simple_search (expression,
offset,
max_count,
out total_matches,
- sort_criteria ?? this.sort_criteria,
+ sort_criteria,
cancellable);
}
diff --git a/src/plugins/tracker/rygel-tracker-search-container.vala b/src/plugins/tracker/rygel-tracker-search-container.vala
index ea3e3c07..6d2048c9 100644
--- a/src/plugins/tracker/rygel-tracker-search-container.vala
+++ b/src/plugins/tracker/rygel-tracker-search-container.vala
@@ -107,7 +107,7 @@ public class Rygel.Tracker.SearchContainer : SimpleContainer {
public override async MediaObjects? get_children (uint offset,
uint max_count,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws GLib.Error {
var expression = new RelationalExpression ();
@@ -118,7 +118,7 @@ public class Rygel.Tracker.SearchContainer : SimpleContainer {
uint total_matches;
return yield this.execute_query (expression,
- sort_criteria ?? this.sort_criteria,
+ sort_criteria,
offset,
max_count,
out total_matches,
@@ -126,7 +126,7 @@ public class Rygel.Tracker.SearchContainer : SimpleContainer {
}
public async MediaObjects? execute_query (SearchExpression? expression,
- string? sort_criteria,
+ string sort_criteria,
uint offset,
uint max_count,
out uint total_matches,
@@ -175,7 +175,7 @@ public class Rygel.Tracker.SearchContainer : SimpleContainer {
uint total_matches;
var results = yield this.execute_query (expression,
- null,
+ "",
0,
1,
out total_matches,
diff --git a/tests/rygel-searchable-container-test.vala b/tests/rygel-searchable-container-test.vala
index 8268edf6..f803c4c3 100644
--- a/tests/rygel-searchable-container-test.vala
+++ b/tests/rygel-searchable-container-test.vala
@@ -113,7 +113,7 @@ public class TestContainer : MediaContainer, Rygel.SearchableContainer {
uint offset,
uint max_count,
out uint total_matches,
- string? sort_criteria,
+ string sort_criteria,
Cancellable? cancellable)
throws Error {
return yield this.simple_search (expression,