]> ToastFreeware Gitweb - gregoa/zavai.git/blobdiff - src/registry.vala
Notes about remotising devices
[gregoa/zavai.git] / src / registry.vala
index a95e16045a60647b9c2f9398be90affdd7f5bcd1..3d549da1d0ec0f6ad484a2ec760549c2c9054f06 100644 (file)
  */
 
 using GLib;
-using Gee;
 
 namespace zavai {
 
 public class Registry : Object, Resource
 {
-    HashMap<string, Resource> memb_resources;
-    HashMap<string, Service> memb_services;
-    HashMap<string, Applet> memb_applets;
-    HashMap<string, Menu> memb_menus;
-    protected ArrayList<Resource> registration_order;
+    List<Resource> resources;
     public DBus.Connection sbus;
     public string bus_name;
 
     public Registry()
     {
-        memb_resources = new HashMap<string, Resource>(str_hash, str_equal);
-        memb_services = new HashMap<string, Service>(str_hash, str_equal);
-        memb_applets = new HashMap<string, Applet>(str_hash, str_equal);
-        memb_menus = new HashMap<string, Menu>(str_hash, str_equal);
-        registration_order = new ArrayList<Resource>();
+        resources = new List<Resource>();
         try {
             sbus = DBus.Bus.get(DBus.BusType.SYSTEM);
         } catch (DBus.Error e) {
@@ -76,77 +67,13 @@ public class Registry : Object, Resource
     public void shutdown()
     {
         // Shutdown in reverse registration order
-        for (int i = registration_order.size - 1; i >= 0; --i) 
-            registration_order[i].shutdown();
+        for (weak List<Resource> i = resources; i != null; i = i.next)
+            i.data.shutdown();
     }
 
-    public void register_resource(string name, Resource obj)
+    public void register(Resource obj)
     {
-        memb_resources[name] = obj;
-        registration_order.add(obj);
-    }
-
-    public void register_service(Service obj)
-    {
-        memb_services[obj.name] = obj;
-        registration_order.add(obj);
-    }
-
-    public void register_applet(string name, Applet obj)
-    {
-        memb_applets[name] = obj;
-        registration_order.add(obj);
-    }
-
-    public void register_menu(string name, Menu obj)
-    {
-        memb_applets[name] = obj;
-        memb_menus[name] = obj;
-        registration_order.add(obj);
-    }
-
-    public Resource? getr(string name)
-    {
-        if (name in memb_resources)
-            return memb_resources[name];
-        else
-        {
-            log.error("getr: no resource found: " + name);
-            return null;
-        }
-    }
-
-    public Service? gets(string name)
-    {
-        if (name in memb_services)
-            return memb_services[name];
-        else
-        {
-            log.error("gets: no service found: " + name);
-            return null;
-        }
-    }
-
-    public Applet? geta(string name)
-    {
-        if (name in memb_applets)
-            return memb_applets[name];
-        else
-        {
-            log.error("geta: no applet found: " + name);
-            return null;
-        }
-    }
-
-    public Menu? getmenu(string name)
-    {
-        if (name in memb_menus)
-            return memb_menus[name];
-        else
-        {
-            log.error("getmenu: no menu found: " + name);
-            return null;
-        }
+        resources.prepend(obj);
     }
 }