[rygel] enumerate children asynchronously



commit 646739b4cad693d3478afdc120124f4d28e35afc
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Mon May 4 16:36:31 2009 +0300

    enumerate children asynchronously
    
    First step towards async plugin loading.
---
 src/rygel/rygel-plugin-loader.vala |   21 +++++++++++++++------
 1 files 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 (),



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]