external: Use async support for plugin loading
authorZeeshan Ali (Khattak) <zeeshanak@gnome.org>
Wed, 14 Oct 2009 16:18:05 +0000 (19:18 +0300)
committerZeeshan Ali (Khattak) <zeeshanak@gnome.org>
Fri, 16 Oct 2009 16:19:13 +0000 (19:19 +0300)
src/plugins/external/rygel-external-interfaces.vala
src/plugins/external/rygel-external-plugin-factory.vala

index 110dfcd..ec70992 100644 (file)
@@ -84,8 +84,8 @@ public interface FreeDesktop.DBusObject: DBus.Object {
                                                     string old_owner,
                                                     string new_owner);
 
-    public abstract string[] list_names () throws DBus.Error;
-    public abstract string[] list_activatable_names () throws DBus.Error;
+    public abstract async string[] list_names () throws DBus.Error;
+    public abstract async string[] list_activatable_names () throws DBus.Error;
 }
 
 [DBus (name = "org.freedesktop.DBus.Properties")]
index 82995e2..caf3dc8 100644 (file)
@@ -57,11 +57,11 @@ public class ExternalPluginFactory {
                                                as DBusObject;
         this.loader = loader;
 
-        this.load_plugins ();
+        this.load_plugins.begin ();
     }
 
-    private void load_plugins () throws DBus.Error {
-        var services = this.dbus_obj.list_names ();
+    private async void load_plugins () throws DBus.Error {
+        var services = yield this.dbus_obj.list_names ();
 
         foreach (var service in services) {
             if (service.has_prefix (SERVICE_PREFIX) &&
@@ -71,11 +71,11 @@ public class ExternalPluginFactory {
             }
         }
 
-        this.load_activatable_plugins ();
+        yield this.load_activatable_plugins ();
     }
 
-    private void load_activatable_plugins () throws DBus.Error {
-        var services = this.dbus_obj.list_activatable_names ();
+    private async void load_activatable_plugins () throws DBus.Error {
+        var services = yield this.dbus_obj.list_activatable_names ();
 
         foreach (var service in services) {
             if (service.has_prefix (SERVICE_PREFIX) &&