From 646739b4cad693d3478afdc120124f4d28e35afc Mon Sep 17 00:00:00 2001 From: "Zeeshan Ali (Khattak)" Date: Mon, 4 May 2009 16:36:31 +0300 Subject: [PATCH] enumerate children asynchronously First step towards async plugin loading. --- src/rygel/rygel-plugin-loader.vala | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/rygel/rygel-plugin-loader.vala b/src/rygel/rygel-plugin-loader.vala index abeb04e..4d1640f 100644 --- a/src/rygel/rygel-plugin-loader.vala +++ b/src/rygel/rygel-plugin-loader.vala @@ -46,15 +46,24 @@ public class Rygel.PluginLoader : Object { } private void load_plugins_from_dir (File dir) { + string attributes = FILE_ATTRIBUTE_STANDARD_NAME + "," + + FILE_ATTRIBUTE_STANDARD_TYPE + "," + + FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE; + + dir.enumerate_children_async (attributes, + FileQueryInfoFlags.NONE, + Priority.DEFAULT, + null, + on_children_enumerated); + } + + private void on_children_enumerated (GLib.Object source_object, + GLib.AsyncResult res) { + File dir = (File) source_object; FileEnumerator enumerator; try { - string attributes = FILE_ATTRIBUTE_STANDARD_NAME + "," + - FILE_ATTRIBUTE_STANDARD_TYPE + "," + - FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE; - enumerator = dir.enumerate_children (attributes, - FileQueryInfoFlags.NONE, - null); + enumerator = dir.enumerate_children_finish (res); } catch (Error error) { critical ("Error listing contents of directory '%s': %s\n", dir.get_path (), -- 2.7.4