[rygel] media-export: Implement recursive container removal
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel] media-export: Implement recursive container removal
- Date: Tue, 6 Aug 2013 13:17:38 +0000 (UTC)
commit 9398caa653f909de3fe7e442f713124ae9e64187
Author: Jens Georg <jensg openismus com>
Date: Mon Aug 5 13:16:28 2013 +0200
media-export: Implement recursive container removal
https://bugzilla.gnome.org/show_bug.cgi?id=703135
.../rygel-media-export-trackable-db-container.vala | 2 +-
.../rygel-media-export-writable-db-container.vala | 14 +++++++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
---
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 7f9dd5a..e96232f 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
@@ -80,7 +80,7 @@ public class Rygel.MediaExport.TrackableDbContainer : DBContainer,
}
}
- protected async void remove_child (MediaObject object) {
+ protected virtual async void remove_child (MediaObject object) {
try {
this.media_db.remove_object (object);
} catch (Error error) {
diff --git a/src/plugins/media-export/rygel-media-export-writable-db-container.vala
b/src/plugins/media-export/rygel-media-export-writable-db-container.vala
index afc7ba3..13b5f83 100644
--- a/src/plugins/media-export/rygel-media-export-writable-db-container.vala
+++ b/src/plugins/media-export/rygel-media-export-writable-db-container.vala
@@ -99,6 +99,18 @@ internal class Rygel.MediaExport.WritableDbContainer : TrackableDbContainer,
this.media_db.make_object_guarded (container);
}
+ protected override async void remove_child (MediaObject object) {
+ yield base.remove_child (object);
+ var file = File.new_for_uri (object.uris[0]);
+ try {
+ yield file.delete_async ();
+ } catch (Error error) {
+ warning (_("Failed to remove file %s: %s"),
+ file.get_path (),
+ error.message);
+ }
+ }
+
public virtual async void remove_item (string id, Cancellable? cancellable)
throws Error {
var object = this.media_db.get_object (id);
@@ -112,7 +124,7 @@ internal class Rygel.MediaExport.WritableDbContainer : TrackableDbContainer,
public virtual async void remove_container (string id,
Cancellable? cancellable)
throws Error {
- throw new WritableContainerError.NOT_IMPLEMENTED ("Not supported");
+ yield this.remove_item (id, cancellable);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]