Code cleanup
[gregoa/zavai.git] / src / registry.vala
index 83006cb7a7249ec5723cf9d6685dcb1694c2d08e..181aa509d2197cb72cc1dfbecf6e8a2e1d63a9d5 100644 (file)
@@ -23,111 +23,6 @@ using Gee;
 
 namespace zavai {
 
-public interface Resource : Object {
-        /**
-        * Shut down this resource.
-         *
-         * Normally one does nothing here, but it is important to give resources a
-         * chance to do cleanup when the program quits.
-         * 
-         * This can be used for tasks like closing the tags on a GPX track,
-         * releasing a FSO resource, restoring mixer settings and so on.
-         */
-       public abstract void shutdown();
-}
-
-public abstract class Service : Object, Resource {
-       public string name { get; construct; }
-
-       bool _started;
-       public bool started {
-               get { return _started; }
-               set { _started = value; }
-               default = false;
-       }
-
-       public signal void toggled(bool new_state);
-
-       protected HashMap<string, int> requests;
-
-       construct {
-               requests = new HashMap<string, int>(str_hash, str_equal);
-       }
-
-       public void shutdown()
-       {
-               stop();
-       }
-
-       /// Activate the service
-       protected virtual void start()
-       {
-               if (!started)
-               {
-stderr.printf("SERVICE %s started\n", name);
-                       started = true;
-                       toggled(started);
-               }
-       }
-
-       /// Deactivate the service
-       protected virtual void stop()
-       {
-               if (started)
-               {
-stderr.printf("SERVICE %s stopped\n", name);
-                       started = false;
-                       toggled(started);
-               }
-       }
-
-       /**
-         Request a resource using the given ID.
-        *
-        * If it is the first time the resource is requested, start it and
-        * return true. Else, take note of the request and return false.
-        *
-        * If a resource is requested multiple times with the same ID, it will
-        * need to be released multiple times with that ID.
-        */
-       public bool request(string id)
-       {
-               bool res = (requests.size == 0);
-               if (id in requests)
-                       requests[id] = requests[id] + 1;
-               else
-                       requests.set(id, 1);
-               if (res) start();
-               return res;
-       }
-
-       /**
-        * Release a resource using the given ID.
-        *
-        * If after the call nothing is requesting the resource, stop it and
-        * return true. Else, take note of the release and return false.
-        *
-        * If a resource is requested multiple times with the same ID, it will
-        * need to be released multiple times with that ID.
-        */
-       public bool release(string id)
-       {
-               if (id in requests)
-               {
-                       if (requests[id] > 1)
-                               requests[id] = requests[id] - 1;
-                       else
-                               requests.remove(id);
-               } else {
-                       return false;
-               }
-               if (requests.size > 0)
-                       return false;
-               stop();
-               return true;
-       }
-}
-
 public class Registry : Object, Resource
 {
        HashMap<string, Resource> memb_resources;
@@ -145,20 +40,22 @@ public class Registry : Object, Resource
                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>();
-               sbus = DBus.Bus.get(DBus.BusType.SYSTEM);
+               try {
+                       sbus = DBus.Bus.get(DBus.BusType.SYSTEM);
+               } catch (DBus.Error e) {
+                       stderr.printf("Cannot access system DBus bus: %s\n", e.message);
+                       sbus = null;
+               }
 
         bus_name = DBus.bus_get_unique_name(sbus.get_connection());
         zavai.log.info("My bus name: " + bus_name);
-/*
-stderr.printf("ZA1\n");
+
         dynamic DBus.Object tmp_dbus = sbus.get_object(
             "org.freedesktop.DBus",
             "/org/freedesktop/DBus",
             "org.freedesktop.DBus");
-stderr.printf("ZA2\n");
-        bus_name = "org.freedesktop.zavai";
+        bus_name = "org.enricozini.zavai";
         uint res = tmp_dbus.RequestName(bus_name, (uint)DBus.NameFlag.DO_NOT_QUEUE);
-        stderr.printf("RN: %u\n", res);
         switch (res)
         {
             case DBus.RequestNameReply.PRIMARY_OWNER:
@@ -174,8 +71,6 @@ stderr.printf("ZA2\n");
                 zavai.log.info("I already own the name " + bus_name + " but I do not remember asking for it");
                 break;
         }
-stderr.printf("ZA3\n");
-        */
        }
 
        public void shutdown()