gnome-session r4859 - in branches/dbus_based: . gnome-session



Author: mccann
Date: Sun Jul 27 19:25:58 2008
New Revision: 4859
URL: http://svn.gnome.org/viewvc/gnome-session?rev=4859&view=rev

Log:
2008-07-27  William Jon McCann  <jmccann redhat com>

	* gnome-session/Makefile.am:
	* gnome-session/gsm-client-store.c:
	* gnome-session/gsm-client-store.h:
	* gnome-session/gsm-inhibit-dialog.c (find_inhibitor),
	(add_inhibitor), (on_store_inhibitor_added),
	(on_store_inhibitor_removed),
	(gsm_inhibit_dialog_set_inhibitor_store), (add_to_model),
	(populate_model), (gsm_inhibit_dialog_class_init),
	(gsm_inhibit_dialog_new):
	* gnome-session/gsm-inhibit-dialog.h:
	* gnome-session/gsm-inhibitor-store.c:
	* gnome-session/gsm-inhibitor-store.h:
	* gnome-session/gsm-inhibitor.c (get_next_inhibitor_serial),
	(gsm_inhibitor_constructor), (gsm_inhibitor_get_id),
	(gsm_inhibitor_finalize):
	* gnome-session/gsm-inhibitor.h:
	* gnome-session/gsm-manager.c (_debug_client), (debug_clients),
	(debug_inhibitors), (_find_by_cookie), (app_condition_changed),
	(do_phase_end_session), (gsm_manager_is_logout_inhibited),
	(cancel_end_session), (_generate_unique_cookie),
	(on_query_end_session_timeout), (do_phase_query_end_session),
	(disconnect_client), (remove_clients_for_connection),
	(remove_inhibitors_for_connection),
	(on_xsmp_client_register_request),
	(on_client_end_session_response), (on_store_client_added),
	(gsm_manager_set_client_store), (gsm_manager_get_property),
	(gsm_manager_class_init), (gsm_manager_init),
	(gsm_manager_finalize), (gsm_manager_new),
	(gsm_manager_is_switch_user_inhibited),
	(gsm_manager_is_suspend_inhibited), (gsm_manager_register_client),
	(gsm_manager_unregister_client), (gsm_manager_inhibit),
	(gsm_manager_uninhibit):
	* gnome-session/gsm-manager.h:
	* gnome-session/gsm-store.c (gsm_store_error_quark),
	(gsm_store_size), (gsm_store_remove), (gsm_store_foreach),
	(gsm_store_find), (gsm_store_lookup), (foreach_remove_wrapper),
	(gsm_store_foreach_remove), (_remove_all), (gsm_store_clear),
	(gsm_store_add), (gsm_store_set_locked), (gsm_store_get_locked),
	(gsm_store_set_property), (gsm_store_get_property),
	(gsm_store_class_init), (_destroy_object), (gsm_store_init),
	(gsm_store_finalize), (gsm_store_new):
	* gnome-session/gsm-store.h:
	* gnome-session/gsm-xsmp-server.c (accept_ice_connection),
	(gsm_xsmp_server_set_client_store), (gsm_xsmp_server_class_init),
	(gsm_xsmp_server_new):
	* gnome-session/gsm-xsmp-server.h:
	* gnome-session/main.c (main):
	Unify the InhibitorStore and ClientStore classes.



Added:
   branches/dbus_based/gnome-session/gsm-store.c
   branches/dbus_based/gnome-session/gsm-store.h
Removed:
   branches/dbus_based/gnome-session/gsm-client-store.c
   branches/dbus_based/gnome-session/gsm-client-store.h
   branches/dbus_based/gnome-session/gsm-inhibitor-store.c
   branches/dbus_based/gnome-session/gsm-inhibitor-store.h
Modified:
   branches/dbus_based/ChangeLog
   branches/dbus_based/gnome-session/Makefile.am
   branches/dbus_based/gnome-session/gsm-inhibit-dialog.c
   branches/dbus_based/gnome-session/gsm-inhibit-dialog.h
   branches/dbus_based/gnome-session/gsm-inhibitor.c
   branches/dbus_based/gnome-session/gsm-inhibitor.h
   branches/dbus_based/gnome-session/gsm-manager.c
   branches/dbus_based/gnome-session/gsm-manager.h
   branches/dbus_based/gnome-session/gsm-xsmp-server.c
   branches/dbus_based/gnome-session/gsm-xsmp-server.h
   branches/dbus_based/gnome-session/main.c

Modified: branches/dbus_based/gnome-session/Makefile.am
==============================================================================
--- branches/dbus_based/gnome-session/Makefile.am	(original)
+++ branches/dbus_based/gnome-session/Makefile.am	Sun Jul 27 19:25:58 2008
@@ -83,12 +83,10 @@
 	gdm.h					\
 	gdm.c					\
 	main.c					\
-	gsm-client-store.h			\
-	gsm-client-store.c			\
+	gsm-store.h				\
+	gsm-store.c				\
 	gsm-inhibitor.h				\
 	gsm-inhibitor.c				\
-	gsm-inhibitor-store.h			\
-	gsm-inhibitor-store.c			\
 	gsm-manager.c				\
 	gsm-manager.h				\
 	gsm-xsmp-server.c			\

Modified: branches/dbus_based/gnome-session/gsm-inhibit-dialog.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-inhibit-dialog.c	(original)
+++ branches/dbus_based/gnome-session/gsm-inhibit-dialog.c	Sun Jul 27 19:25:58 2008
@@ -35,6 +35,8 @@
 #include <gconf/gconf-client.h>
 
 #include "gsm-inhibit-dialog.h"
+#include "gsm-store.h"
+#include "gsm-inhibitor.h"
 #include "eggdesktopfile.h"
 #include "util.h"
 
@@ -60,7 +62,7 @@
 {
         GladeXML          *xml;
         int                action;
-        GsmInhibitorStore *inhibitors;
+        GsmStore          *inhibitors;
         GtkListStore      *list_store;
         gboolean           have_xrender;
         int                xrender_event_base;
@@ -77,7 +79,7 @@
         INHIBIT_IMAGE_COLUMN = 0,
         INHIBIT_NAME_COLUMN,
         INHIBIT_REASON_COLUMN,
-        INHIBIT_COOKIE_COLUMN,
+        INHIBIT_ID_COLUMN,
         NUMBER_OF_COLUMNS
 };
 
@@ -122,7 +124,7 @@
 
 static gboolean
 find_inhibitor (GsmInhibitDialog *dialog,
-                guint             cookie,
+                const char       *id,
                 GtkTreeIter      *iter)
 {
         GtkTreeModel *model;
@@ -138,15 +140,18 @@
         }
 
         do {
-                guint item_cookie;
+                char *item_id;
 
                 gtk_tree_model_get (model,
                                     iter,
-                                    INHIBIT_COOKIE_COLUMN, &item_cookie,
+                                    INHIBIT_ID_COLUMN, &item_id,
                                     -1);
-                if (cookie == item_cookie) {
+                if (item_id != NULL
+                    && id != NULL
+                    && strcmp (item_id, id) == 0) {
                         found_item = TRUE;
                 }
+                g_free (item_id);
         } while (!found_item && gtk_tree_model_iter_next (model, iter));
 
         return found_item;
@@ -560,7 +565,7 @@
                                            INHIBIT_IMAGE_COLUMN, pixbuf,
                                            INHIBIT_NAME_COLUMN, name,
                                            INHIBIT_REASON_COLUMN, gsm_inhibitor_get_reason (inhibitor),
-                                           INHIBIT_COOKIE_COLUMN, gsm_inhibitor_get_cookie (inhibitor),
+                                           INHIBIT_ID_COLUMN, gsm_inhibitor_get_id (inhibitor),
                                            -1);
 
         g_free (desktop_filename);
@@ -612,19 +617,19 @@
 }
 
 static void
-on_store_inhibitor_added (GsmInhibitorStore *store,
-                          guint              cookie,
+on_store_inhibitor_added (GsmStore          *store,
+                          const char        *id,
                           GsmInhibitDialog  *dialog)
 {
         GsmInhibitor *inhibitor;
         GtkTreeIter   iter;
 
-        g_debug ("GsmInhibitDialog: inhibitor added: %u", cookie);
+        g_debug ("GsmInhibitDialog: inhibitor added: %s", id);
 
-        inhibitor = gsm_inhibitor_store_lookup (store, cookie);
+        inhibitor = gsm_store_lookup (store, id);
 
         /* Add to model */
-        if (! find_inhibitor (dialog, cookie, &iter)) {
+        if (! find_inhibitor (dialog, id, &iter)) {
                 add_inhibitor (dialog, inhibitor);
                 update_dialog_text (dialog);
         }
@@ -632,16 +637,16 @@
 }
 
 static void
-on_store_inhibitor_removed (GsmInhibitorStore *store,
-                            guint              cookie,
+on_store_inhibitor_removed (GsmStore          *store,
+                            const char        *id,
                             GsmInhibitDialog  *dialog)
 {
         GtkTreeIter   iter;
 
-        g_debug ("GsmInhibitDialog: inhibitor removed: %u", cookie);
+        g_debug ("GsmInhibitDialog: inhibitor removed: %s", id);
 
         /* Remove from model */
-        if (find_inhibitor (dialog, cookie, &iter)) {
+        if (find_inhibitor (dialog, id, &iter)) {
                 gtk_list_store_remove (dialog->priv->list_store, &iter);
                 update_dialog_text (dialog);
         }
@@ -653,8 +658,8 @@
 }
 
 static void
-gsm_inhibit_dialog_set_inhibitor_store (GsmInhibitDialog  *dialog,
-                                        GsmInhibitorStore *store)
+gsm_inhibit_dialog_set_inhibitor_store (GsmInhibitDialog *dialog,
+                                        GsmStore         *store)
 {
         g_return_if_fail (GSM_IS_INHIBIT_DIALOG (dialog));
 
@@ -680,11 +685,11 @@
 
         if (dialog->priv->inhibitors != NULL) {
                 g_signal_connect (dialog->priv->inhibitors,
-                                  "inhibitor-added",
+                                  "added",
                                   G_CALLBACK (on_store_inhibitor_added),
                                   dialog);
                 g_signal_connect (dialog->priv->inhibitors,
-                                  "inhibitor-removed",
+                                  "removed",
                                   G_CALLBACK (on_store_inhibitor_removed),
                                   dialog);
         }
@@ -764,7 +769,7 @@
 }
 
 static gboolean
-add_to_model (guint             cookie,
+add_to_model (const char       *id,
               GsmInhibitor     *inhibitor,
               GsmInhibitDialog *dialog)
 {
@@ -775,9 +780,9 @@
 static void
 populate_model (GsmInhibitDialog *dialog)
 {
-        gsm_inhibitor_store_foreach_remove (dialog->priv->inhibitors,
-                                            (GsmInhibitorStoreFunc)add_to_model,
-                                            dialog);
+        gsm_store_foreach_remove (dialog->priv->inhibitors,
+                                  (GsmStoreFunc)add_to_model,
+                                  dialog);
         update_dialog_text (dialog);
 }
 
@@ -930,7 +935,7 @@
                                          g_param_spec_object ("inhibitor-store",
                                                               NULL,
                                                               NULL,
-                                                              GSM_TYPE_INHIBITOR_STORE,
+                                                              GSM_TYPE_STORE,
                                                               G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
         g_type_class_add_private (klass, sizeof (GsmInhibitDialogPrivate));
@@ -990,8 +995,8 @@
 }
 
 GtkWidget *
-gsm_inhibit_dialog_new (GsmInhibitorStore *inhibitors,
-                        int                action)
+gsm_inhibit_dialog_new (GsmStore *inhibitors,
+                        int       action)
 {
         GObject *object;
 

Modified: branches/dbus_based/gnome-session/gsm-inhibit-dialog.h
==============================================================================
--- branches/dbus_based/gnome-session/gsm-inhibit-dialog.h	(original)
+++ branches/dbus_based/gnome-session/gsm-inhibit-dialog.h	Sun Jul 27 19:25:58 2008
@@ -24,7 +24,7 @@
 #include <glib-object.h>
 #include <gtk/gtkdialog.h>
 
-#include "gsm-inhibitor-store.h"
+#include "gsm-store.h"
 
 G_BEGIN_DECLS
 
@@ -60,8 +60,8 @@
 
 GType                  gsm_inhibit_dialog_get_type           (void);
 
-GtkWidget            * gsm_inhibit_dialog_new                (GsmInhibitorStore      *inhibitors,
-                                                              int                     action);
+GtkWidget            * gsm_inhibit_dialog_new                (GsmStore         *inhibitors,
+                                                              int               action);
 GtkTreeModel         * gsm_inhibit_dialog_get_model          (GsmInhibitDialog *dialog);
 
 G_END_DECLS

Modified: branches/dbus_based/gnome-session/gsm-inhibitor.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-inhibitor.c	(original)
+++ branches/dbus_based/gnome-session/gsm-inhibitor.c	Sun Jul 27 19:25:58 2008
@@ -28,10 +28,13 @@
 
 #include "gsm-inhibitor.h"
 
+static guint32 inhibitor_serial = 1;
+
 #define GSM_INHIBITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_INHIBITOR, GsmInhibitorPrivate))
 
 struct GsmInhibitorPrivate
 {
+        char *id;
         char *bus_name;
         char *app_id;
         char *client_id;
@@ -54,6 +57,20 @@
 
 G_DEFINE_TYPE (GsmInhibitor, gsm_inhibitor, G_TYPE_OBJECT)
 
+static guint32
+get_next_inhibitor_serial (void)
+{
+        guint32 serial;
+
+        serial = inhibitor_serial++;
+
+        if ((gint32)inhibitor_serial < 0) {
+                inhibitor_serial = 1;
+        }
+
+        return serial;
+}
+
 static GObject *
 gsm_inhibitor_constructor (GType                  type,
                            guint                  n_construct_properties,
@@ -65,6 +82,9 @@
                                                                                              n_construct_properties,
                                                                                              construct_properties));
 
+        g_free (inhibitor->priv->id);
+        inhibitor->priv->id = g_strdup_printf ("/org/gnome/SessionManager/Inhibitor%u", get_next_inhibitor_serial ());
+
         return G_OBJECT (inhibitor);
 }
 
@@ -167,6 +187,14 @@
 }
 
 const char *
+gsm_inhibitor_get_id (GsmInhibitor *inhibitor)
+{
+        g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL);
+
+        return inhibitor->priv->id;
+}
+
+const char *
 gsm_inhibitor_get_app_id (GsmInhibitor  *inhibitor)
 {
         g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL);
@@ -295,6 +323,7 @@
 {
         GsmInhibitor *inhibitor = (GsmInhibitor *) object;
 
+        g_free (inhibitor->priv->id);
         g_free (inhibitor->priv->bus_name);
         g_free (inhibitor->priv->app_id);
         g_free (inhibitor->priv->client_id);

Modified: branches/dbus_based/gnome-session/gsm-inhibitor.h
==============================================================================
--- branches/dbus_based/gnome-session/gsm-inhibitor.h	(original)
+++ branches/dbus_based/gnome-session/gsm-inhibitor.h	Sun Jul 27 19:25:58 2008
@@ -70,6 +70,7 @@
                                                    const char    *bus_name,
                                                    guint          cookie);
 
+const char *   gsm_inhibitor_get_id               (GsmInhibitor  *inhibitor);
 const char *   gsm_inhibitor_get_app_id           (GsmInhibitor  *inhibitor);
 const char *   gsm_inhibitor_get_client_id        (GsmInhibitor  *inhibitor);
 const char *   gsm_inhibitor_get_reason           (GsmInhibitor  *inhibitor);

Modified: branches/dbus_based/gnome-session/gsm-manager.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-manager.c	(original)
+++ branches/dbus_based/gnome-session/gsm-manager.c	Sun Jul 27 19:25:58 2008
@@ -44,8 +44,7 @@
 #include "gsm-manager.h"
 #include "gsm-manager-glue.h"
 
-#include "gsm-client-store.h"
-#include "gsm-inhibitor-store.h"
+#include "gsm-store.h"
 #include "gsm-inhibitor.h"
 
 #include "gsm-xsmp-client.h"
@@ -77,8 +76,8 @@
 struct GsmManagerPrivate
 {
         gboolean                failsafe;
-        GsmClientStore         *store;
-        GsmInhibitorStore      *inhibitors;
+        GsmStore               *clients;
+        GsmStore               *inhibitors;
 
         /* Startup/resumed apps */
         GHashTable             *apps_by_id;
@@ -168,17 +167,16 @@
                GsmClient  *client,
                GsmManager *manager)
 {
-        g_debug ("GsmManager: Client %s",
-                 gsm_client_get_id (client));
+        g_debug ("GsmManager: Client %s", gsm_client_get_id (client));
         return FALSE;
 }
 
 static void
 debug_clients (GsmManager *manager)
 {
-        gsm_client_store_foreach (manager->priv->store,
-                                  (GsmClientStoreFunc)_debug_client,
-                                  manager);
+        gsm_store_foreach (manager->priv->clients,
+                           (GsmStoreFunc)_debug_client,
+                           manager);
 }
 
 static gboolean
@@ -197,9 +195,21 @@
 static void
 debug_inhibitors (GsmManager *manager)
 {
-        gsm_inhibitor_store_foreach (manager->priv->inhibitors,
-                                     (GsmInhibitorStoreFunc)_debug_inhibitor,
-                                     manager);
+        gsm_store_foreach (manager->priv->inhibitors,
+                           (GsmStoreFunc)_debug_inhibitor,
+                           manager);
+}
+
+static gboolean
+_find_by_cookie (const char   *id,
+                 GsmInhibitor *inhibitor,
+                 guint        *cookie_ap)
+{
+        guint cookie_b;
+
+        cookie_b = gsm_inhibitor_get_cookie (inhibitor);
+
+        return (*cookie_ap == cookie_b);
 }
 
 static gboolean
@@ -224,9 +234,9 @@
 {
         GsmClient *client;
 
-        client = gsm_client_store_find (manager->priv->store,
-                                        (GsmClientStoreFunc)_find_by_startup_id,
-                                        (char *)gsm_app_get_startup_id (app));
+        client = (GsmClient *)gsm_store_find (manager->priv->clients,
+                                              (GsmStoreFunc)_find_by_startup_id,
+                                              (char *)gsm_app_get_startup_id (app));
 
         if (condition) {
                 if (!gsm_app_is_running (app) && client == NULL) {
@@ -500,14 +510,14 @@
                 manager->priv->phase_timeout_id = 0;
         }
 
-        if (gsm_client_store_size (manager->priv->store) > 0) {
+        if (gsm_store_size (manager->priv->clients) > 0) {
                 manager->priv->phase_timeout_id = g_timeout_add_seconds (10,
                                                                          (GSourceFunc)on_phase_timeout,
                                                                          manager);
 
-                gsm_client_store_foreach (manager->priv->store,
-                                          (GsmClientStoreFunc)_client_end_session,
-                                          &data);
+                gsm_store_foreach (manager->priv->clients,
+                                   (GsmStoreFunc)_client_end_session,
+                                   &data);
         } else {
                 end_phase (manager);
         }
@@ -549,9 +559,9 @@
                 return FALSE;
         }
 
-        inhibitor = gsm_inhibitor_store_find (manager->priv->inhibitors,
-                                              (GsmInhibitorStoreFunc)inhibitor_has_flag,
-                                              GINT_TO_POINTER (GSM_INHIBITOR_FLAG_LOGOUT));
+        inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
+                                                    (GsmStoreFunc)inhibitor_has_flag,
+                                                    GINT_TO_POINTER (GSM_INHIBITOR_FLAG_LOGOUT));
         if (inhibitor == NULL) {
                 return FALSE;
         }
@@ -589,13 +599,13 @@
         /* switch back to running phase */
 
         /* clear all JIT inhibitors */
-        gsm_inhibitor_store_foreach_remove (manager->priv->inhibitors,
-                                            (GsmInhibitorStoreFunc)inhibitor_is_jit,
-                                            (gpointer)manager);
-
-        gsm_client_store_foreach (manager->priv->store,
-                                  (GsmClientStoreFunc)_client_cancel_end_session,
-                                  NULL);
+        gsm_store_foreach_remove (manager->priv->inhibitors,
+                                  (GsmStoreFunc)inhibitor_is_jit,
+                                  (gpointer)manager);
+
+        gsm_store_foreach (manager->priv->clients,
+                           (GsmStoreFunc)_client_cancel_end_session,
+                           NULL);
 
         manager->priv->phase = GSM_MANAGER_PHASE_RUNNING;
         manager->priv->forceful = FALSE;
@@ -812,7 +822,7 @@
 
         do {
                 cookie = generate_cookie ();
-        } while (gsm_inhibitor_store_lookup (manager->priv->inhibitors, cookie) != NULL);
+        } while (gsm_store_find (manager->priv->inhibitors, (GsmStoreFunc)_find_by_cookie, &cookie) != NULL);
 
         return cookie;
 }
@@ -856,7 +866,7 @@
                                                           bus_name,
                                                           cookie);
                 g_free (app_id);
-                gsm_inhibitor_store_add (manager->priv->inhibitors, inhibitor);
+                gsm_store_add (manager->priv->inhibitors, gsm_inhibitor_get_id (inhibitor), G_OBJECT (inhibitor));
                 g_object_unref (inhibitor);
         }
 
@@ -892,9 +902,9 @@
 
         debug_clients (manager);
         g_debug ("GsmManager: sending query-end-session to clients forceful:%d", manager->priv->forceful);
-        gsm_client_store_foreach (manager->priv->store,
-                                  (GsmClientStoreFunc)_client_query_end_session,
-                                  &data);
+        gsm_store_foreach (manager->priv->clients,
+                           (GsmStoreFunc)_client_query_end_session,
+                           &data);
 }
 
 static void
@@ -981,7 +991,7 @@
         /* take a ref so it doesn't get finalized */
         g_object_ref (client);
 
-        gsm_client_store_remove (manager->priv->store, client);
+        gsm_store_remove (manager->priv->clients, gsm_client_get_id (client));
 
         is_condition_client = FALSE;
         if (g_slist_find (manager->priv->condition_clients, client)) {
@@ -1036,7 +1046,7 @@
         g_object_unref (client);
 
         if (manager->priv->phase >= GSM_MANAGER_PHASE_QUERY_END_SESSION
-            && gsm_client_store_size (manager->priv->store) == 0) {
+            && gsm_store_size (manager->priv->clients) == 0) {
                 g_debug ("GsmManager: last client disconnected - exiting");
                 end_phase (manager);
         }
@@ -1080,9 +1090,9 @@
         data.manager = manager;
 
         /* disconnect dbus clients for name */
-        gsm_client_store_foreach (manager->priv->store,
-                                  (GsmClientStoreFunc)_disconnect_dbus_client,
-                                  &data);
+        gsm_store_foreach (manager->priv->clients,
+                           (GsmStoreFunc)_disconnect_dbus_client,
+                           &data);
 }
 
 static gboolean
@@ -1121,9 +1131,9 @@
 
         debug_inhibitors (manager);
 
-        n_removed = gsm_inhibitor_store_foreach_remove (manager->priv->inhibitors,
-                                                        (GsmInhibitorStoreFunc)inhibitor_has_bus_name,
-                                                        &data);
+        n_removed = gsm_store_foreach_remove (manager->priv->inhibitors,
+                                              (GsmStoreFunc)inhibitor_has_bus_name,
+                                              &data);
 }
 
 static gboolean
@@ -1289,9 +1299,9 @@
         } else {
                 GsmClient *client;
 
-                client = gsm_client_store_find (manager->priv->store,
-                                                (GsmClientStoreFunc)_client_has_startup_id,
-                                                *id);
+                client = (GsmClient *)gsm_store_find (manager->priv->clients,
+                                                      (GsmStoreFunc)_client_has_startup_id,
+                                                      *id);
                 /* We can't have two clients with the same id. */
                 if (client != NULL) {
                         goto out;
@@ -1397,16 +1407,16 @@
                                                           bus_name,
                                                           cookie);
                 g_free (app_id);
-                gsm_inhibitor_store_add (manager->priv->inhibitors, inhibitor);
+                gsm_store_add (manager->priv->inhibitors, gsm_inhibitor_get_id (inhibitor), G_OBJECT (inhibitor));
                 g_object_unref (inhibitor);
         } else {
-                gsm_inhibitor_store_foreach_remove (manager->priv->inhibitors,
-                                                    (GsmInhibitorStoreFunc)inhibitor_has_client_id,
-                                                    (gpointer)gsm_client_get_id (client));
+                gsm_store_foreach_remove (manager->priv->inhibitors,
+                                          (GsmStoreFunc)inhibitor_has_client_id,
+                                          (gpointer)gsm_client_get_id (client));
         }
 
         if (manager->priv->query_clients == NULL
-            && gsm_inhibitor_store_size (manager->priv->inhibitors) == 0) {
+            && gsm_store_size (manager->priv->inhibitors) == 0) {
                 if (manager->priv->query_timeout_id > 0) {
                         g_source_remove (manager->priv->query_timeout_id);
                         manager->priv->query_timeout_id = 0;
@@ -1417,15 +1427,15 @@
 }
 
 static void
-on_store_client_added (GsmClientStore *store,
-                       const char     *id,
-                       GsmManager     *manager)
+on_store_client_added (GsmStore   *store,
+                       const char *id,
+                       GsmManager *manager)
 {
         GsmClient *client;
 
         g_debug ("GsmManager: Client added: %s", id);
 
-        client = gsm_client_store_lookup (store, id);
+        client = (GsmClient *)gsm_store_lookup (store, id);
 
         /* a bit hacky */
         if (GSM_IS_XSMP_CLIENT (client)) {
@@ -1444,8 +1454,8 @@
 }
 
 static void
-gsm_manager_set_client_store (GsmManager     *manager,
-                              GsmClientStore *store)
+gsm_manager_set_client_store (GsmManager *manager,
+                              GsmStore   *store)
 {
         g_return_if_fail (GSM_IS_MANAGER (manager));
 
@@ -1453,30 +1463,30 @@
                 g_object_ref (store);
         }
 
-        if (manager->priv->store != NULL) {
-                g_signal_handlers_disconnect_by_func (manager->priv->store,
+        if (manager->priv->clients != NULL) {
+                g_signal_handlers_disconnect_by_func (manager->priv->clients,
                                                       on_store_client_added,
                                                       manager);
 
-                g_object_unref (manager->priv->store);
+                g_object_unref (manager->priv->clients);
         }
 
 
-        g_debug ("GsmManager: setting store %p", store);
+        g_debug ("GsmManager: setting client store %p", store);
 
-        manager->priv->store = store;
+        manager->priv->clients = store;
 
-        if (manager->priv->store != NULL) {
-                g_signal_connect (manager->priv->store,
-                                  "client-added",
+        if (manager->priv->clients != NULL) {
+                g_signal_connect (manager->priv->clients,
+                                  "added",
                                   G_CALLBACK (on_store_client_added),
                                   manager);
         }
 }
 
 static void
-gsm_manager_set_property (GObject      *object,
-                          guint         prop_id,
+gsm_manager_set_property (GObject       *object,
+                          guint          prop_id,
                           const GValue  *value,
                           GParamSpec    *pspec)
 {
@@ -1512,7 +1522,7 @@
                 g_value_set_boolean (value, self->priv->failsafe);
                 break;
         case PROP_CLIENT_STORE:
-                g_value_set_object (value, self->priv->store);
+                g_value_set_object (value, self->priv->clients);
                 break;
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -1883,7 +1893,7 @@
                                          g_param_spec_object ("client-store",
                                                               NULL,
                                                               NULL,
-                                                              GSM_TYPE_CLIENT_STORE,
+                                                              GSM_TYPE_STORE,
                                                               G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
         g_type_class_add_private (klass, sizeof (GsmManagerPrivate));
@@ -1903,7 +1913,7 @@
                                                            g_free,
                                                            g_object_unref);
 
-        manager->priv->inhibitors = gsm_inhibitor_store_new ();
+        manager->priv->inhibitors = gsm_store_new ();
 }
 
 static void
@@ -1918,8 +1928,8 @@
 
         g_return_if_fail (manager->priv != NULL);
 
-        if (manager->priv->store != NULL) {
-                g_object_unref (manager->priv->store);
+        if (manager->priv->clients != NULL) {
+                g_object_unref (manager->priv->clients);
         }
 
         if (manager->priv->apps_by_id != NULL) {
@@ -1934,8 +1944,8 @@
 }
 
 GsmManager *
-gsm_manager_new (GsmClientStore *store,
-                 gboolean        failsafe)
+gsm_manager_new (GsmStore *client_store,
+                 gboolean  failsafe)
 {
         if (manager_object != NULL) {
                 g_object_ref (manager_object);
@@ -1943,7 +1953,7 @@
                 gboolean res;
 
                 manager_object = g_object_new (GSM_TYPE_MANAGER,
-                                               "client-store", store,
+                                               "client-store", client_store,
                                                "failsafe", failsafe,
                                                NULL);
 
@@ -2006,9 +2016,9 @@
                 return FALSE;
         }
 
-        inhibitor = gsm_inhibitor_store_find (manager->priv->inhibitors,
-                                              (GsmInhibitorStoreFunc)inhibitor_has_flag,
-                                              GINT_TO_POINTER (GSM_INHIBITOR_FLAG_SWITCH_USER));
+        inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
+                                                    (GsmStoreFunc)inhibitor_has_flag,
+                                                    GINT_TO_POINTER (GSM_INHIBITOR_FLAG_SWITCH_USER));
         if (inhibitor == NULL) {
                 return FALSE;
         }
@@ -2024,9 +2034,9 @@
                 return FALSE;
         }
 
-        inhibitor = gsm_inhibitor_store_find (manager->priv->inhibitors,
-                                              (GsmInhibitorStoreFunc)inhibitor_has_flag,
-                                              GINT_TO_POINTER (GSM_INHIBITOR_FLAG_SUSPEND));
+        inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
+                                                    (GsmStoreFunc)inhibitor_has_flag,
+                                                    GINT_TO_POINTER (GSM_INHIBITOR_FLAG_SUSPEND));
         if (inhibitor == NULL) {
                 return FALSE;
         }
@@ -2379,9 +2389,9 @@
                 new_startup_id = gsm_util_generate_startup_id ();
         } else {
 
-                client = gsm_client_store_find (manager->priv->store,
-                                                (GsmClientStoreFunc)_client_has_startup_id,
-                                                (char *)startup_id);
+                client = (GsmClient *)gsm_store_find (manager->priv->clients,
+                                                      (GsmStoreFunc)_client_has_startup_id,
+                                                      (char *)startup_id);
                 /* We can't have two clients with the same startup id. */
                 if (client != NULL) {
                         GError *new_error;
@@ -2430,7 +2440,7 @@
                 return FALSE;
         }
 
-        gsm_client_store_add (manager->priv->store, client);
+        gsm_store_add (manager->priv->clients, gsm_client_get_id (client), G_OBJECT (client));
 
         if (app != NULL) {
                 gsm_client_set_app_id (client, gsm_app_get_id (app));
@@ -2459,7 +2469,7 @@
 
         g_debug ("GsmManager: UnregisterClient %s", client_id);
 
-        client = gsm_client_store_lookup (manager->priv->store, client_id);
+        client = (GsmClient *)gsm_store_lookup (manager->priv->clients, client_id);
         if (client == NULL) {
                 GError *new_error;
 
@@ -2542,7 +2552,7 @@
                                        reason,
                                        dbus_g_method_get_sender (context),
                                        cookie);
-        gsm_inhibitor_store_add (manager->priv->inhibitors, inhibitor);
+        gsm_store_add (manager->priv->inhibitors, gsm_inhibitor_get_id (inhibitor), G_OBJECT (inhibitor));
         g_object_unref (inhibitor);
 
         dbus_g_method_return (context, cookie);
@@ -2559,7 +2569,9 @@
 
         g_debug ("GsmManager: Uninhibit %u", cookie);
 
-        inhibitor = gsm_inhibitor_store_lookup (manager->priv->inhibitors, cookie);
+        inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
+                                                    (GsmStoreFunc)_find_by_cookie,
+                                                    &cookie);
         if (inhibitor == NULL) {
                 GError *new_error;
 
@@ -2579,7 +2591,7 @@
                  gsm_inhibitor_get_flags (inhibitor),
                  gsm_inhibitor_get_bus_name (inhibitor));
 
-        gsm_inhibitor_store_remove (manager->priv->inhibitors, inhibitor);
+        gsm_store_remove (manager->priv->inhibitors, gsm_inhibitor_get_id (inhibitor));
 
         dbus_g_method_return (context);
 

Modified: branches/dbus_based/gnome-session/gsm-manager.h
==============================================================================
--- branches/dbus_based/gnome-session/gsm-manager.h	(original)
+++ branches/dbus_based/gnome-session/gsm-manager.h	Sun Jul 27 19:25:58 2008
@@ -25,7 +25,7 @@
 #include <glib-object.h>
 #include <dbus/dbus-glib.h>
 
-#include "gsm-client-store.h"
+#include "gsm-store.h"
 
 G_BEGIN_DECLS
 
@@ -106,7 +106,7 @@
 GQuark              gsm_manager_error_quark          (void);
 GType               gsm_manager_get_type             (void);
 
-GsmManager *        gsm_manager_new                  (GsmClientStore *store,
+GsmManager *        gsm_manager_new                  (GsmStore       *client_store,
                                                       gboolean        failsafe);
 
 void                gsm_manager_start                (GsmManager     *manager);

Added: branches/dbus_based/gnome-session/gsm-store.c
==============================================================================
--- (empty file)
+++ branches/dbus_based/gnome-session/gsm-store.c	Sun Jul 27 19:25:58 2008
@@ -0,0 +1,377 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2008 William Jon McCann <mccann jhu edu>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib-object.h>
+
+#include "gsm-store.h"
+
+#define GSM_STORE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_STORE, GsmStorePrivate))
+
+struct GsmStorePrivate
+{
+        GHashTable *objects;
+        gboolean    locked;
+};
+
+enum {
+        ADDED,
+        REMOVED,
+        LAST_SIGNAL
+};
+
+enum {
+        PROP_0,
+        PROP_LOCKED,
+};
+
+static guint signals [LAST_SIGNAL] = { 0, };
+
+static void     gsm_store_class_init    (GsmStoreClass *klass);
+static void     gsm_store_init          (GsmStore      *store);
+static void     gsm_store_finalize      (GObject       *object);
+
+G_DEFINE_TYPE (GsmStore, gsm_store, G_TYPE_OBJECT)
+
+GQuark
+gsm_store_error_quark (void)
+{
+        static GQuark ret = 0;
+        if (ret == 0) {
+                ret = g_quark_from_static_string ("gsm_store_error");
+        }
+
+        return ret;
+}
+
+guint
+gsm_store_size (GsmStore    *store)
+{
+        return g_hash_table_size (store->priv->objects);
+}
+
+gboolean
+gsm_store_remove (GsmStore   *store,
+                  const char *id)
+{
+        GObject *found;
+        gboolean removed;
+
+        g_return_val_if_fail (store != NULL, FALSE);
+
+        found = g_hash_table_lookup (store->priv->objects, id);
+        if (found == NULL) {
+                return FALSE;
+        }
+
+        g_signal_emit (store, signals [REMOVED], 0, id);
+
+        removed = g_hash_table_remove (store->priv->objects, id);
+        g_assert (removed);
+
+        return TRUE;
+}
+
+void
+gsm_store_foreach (GsmStore    *store,
+                   GsmStoreFunc func,
+                   gpointer     user_data)
+{
+        g_return_if_fail (store != NULL);
+        g_return_if_fail (func != NULL);
+
+        g_hash_table_find (store->priv->objects,
+                           (GHRFunc)func,
+                           user_data);
+}
+
+GObject *
+gsm_store_find (GsmStore    *store,
+                GsmStoreFunc predicate,
+                gpointer     user_data)
+{
+        GObject *object;
+
+        g_return_val_if_fail (store != NULL, NULL);
+        g_return_val_if_fail (predicate != NULL, NULL);
+
+        object = g_hash_table_find (store->priv->objects,
+                                    (GHRFunc)predicate,
+                                    user_data);
+        return object;
+}
+
+GObject *
+gsm_store_lookup (GsmStore   *store,
+                  const char *id)
+{
+        GObject *object;
+
+        g_return_val_if_fail (store != NULL, NULL);
+        g_return_val_if_fail (id != NULL, NULL);
+
+        object = g_hash_table_lookup (store->priv->objects, id);
+
+        return object;
+}
+
+
+typedef struct
+{
+        GsmStoreFunc func;
+        gpointer     user_data;
+        GsmStore    *store;
+} WrapperData;
+
+static gboolean
+foreach_remove_wrapper (const char  *id,
+                        GObject     *object,
+                        WrapperData *data)
+{
+        gboolean res;
+
+        res = (data->func) (id, object, data->user_data);
+        if (res) {
+                g_signal_emit (data->store, signals [REMOVED], 0, id);
+        }
+
+        return res;
+}
+
+guint
+gsm_store_foreach_remove (GsmStore    *store,
+                          GsmStoreFunc func,
+                          gpointer     user_data)
+{
+        guint       ret;
+        WrapperData data;
+
+        g_return_val_if_fail (store != NULL, 0);
+        g_return_val_if_fail (func != NULL, 0);
+
+        data.store = store;
+        data.user_data = user_data;
+        data.func = func;
+
+        ret = g_hash_table_foreach_remove (store->priv->objects,
+                                           (GHRFunc)foreach_remove_wrapper,
+                                           &data);
+
+        return ret;
+}
+
+static gboolean
+_remove_all (const char *id,
+             GObject    *object,
+             gpointer    data)
+{
+        return TRUE;
+}
+
+void
+gsm_store_clear (GsmStore *store)
+{
+        g_return_if_fail (store != NULL);
+
+        g_debug ("GsmStore: Clearing object store");
+
+        gsm_store_foreach_remove (store,
+                                  _remove_all,
+                                  NULL);
+}
+
+gboolean
+gsm_store_add (GsmStore   *store,
+               const char *id,
+               GObject    *object)
+{
+        g_return_val_if_fail (store != NULL, FALSE);
+        g_return_val_if_fail (id != NULL, FALSE);
+        g_return_val_if_fail (object != NULL, FALSE);
+
+        /* If we're locked, we don't accept any new session
+           objects. */
+        if (store->priv->locked) {
+                return FALSE;
+        }
+
+        g_debug ("GsmStore: Adding object id %s to store", id);
+
+        g_hash_table_insert (store->priv->objects,
+                             g_strdup (id),
+                             g_object_ref (object));
+
+        g_signal_emit (store, signals [ADDED], 0, id);
+
+        return TRUE;
+}
+
+void
+gsm_store_set_locked (GsmStore *store,
+                      gboolean  locked)
+{
+        g_return_if_fail (GSM_IS_STORE (store));
+
+        store->priv->locked = locked;
+}
+
+gboolean
+gsm_store_get_locked (GsmStore *store)
+{
+        g_return_val_if_fail (GSM_IS_STORE (store), FALSE);
+
+        return store->priv->locked;
+}
+
+static void
+gsm_store_set_property (GObject      *object,
+                        guint         prop_id,
+                        const GValue *value,
+                        GParamSpec   *pspec)
+{
+        GsmStore *self;
+
+        self = GSM_STORE (object);
+
+        switch (prop_id) {
+        case PROP_LOCKED:
+                gsm_store_set_locked (self, g_value_get_boolean (value));
+                break;
+        default:
+                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+                break;
+        }
+}
+
+static void
+gsm_store_get_property (GObject    *object,
+                        guint       prop_id,
+                        GValue     *value,
+                        GParamSpec *pspec)
+{
+        GsmStore *self;
+
+        self = GSM_STORE (object);
+
+        switch (prop_id) {
+        case PROP_LOCKED:
+                g_value_set_boolean (value, self->priv->locked);
+                break;
+        default:
+                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+                break;
+        }
+}
+
+static void
+gsm_store_class_init (GsmStoreClass *klass)
+{
+        GObjectClass   *object_class = G_OBJECT_CLASS (klass);
+
+        object_class->get_property = gsm_store_get_property;
+        object_class->set_property = gsm_store_set_property;
+        object_class->finalize = gsm_store_finalize;
+
+        signals [ADDED] =
+                g_signal_new ("added",
+                              G_TYPE_FROM_CLASS (object_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (GsmStoreClass, added),
+                              NULL,
+                              NULL,
+                              g_cclosure_marshal_VOID__STRING,
+                              G_TYPE_NONE,
+                              1, G_TYPE_STRING);
+        signals [REMOVED] =
+                g_signal_new ("removed",
+                              G_TYPE_FROM_CLASS (object_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (GsmStoreClass, removed),
+                              NULL,
+                              NULL,
+                              g_cclosure_marshal_VOID__STRING,
+                              G_TYPE_NONE,
+                              1, G_TYPE_STRING);
+        g_object_class_install_property (object_class,
+                                         PROP_LOCKED,
+                                         g_param_spec_boolean ("locked",
+                                                               NULL,
+                                                               NULL,
+                                                               FALSE,
+                                                               G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+        g_type_class_add_private (klass, sizeof (GsmStorePrivate));
+}
+
+static void
+_destroy_object (GObject *object)
+{
+        g_debug ("GsmStore: Unreffing object: %p", object);
+        g_object_unref (object);
+}
+
+static void
+gsm_store_init (GsmStore *store)
+{
+
+        store->priv = GSM_STORE_GET_PRIVATE (store);
+
+        store->priv->objects = g_hash_table_new_full (g_str_hash,
+                                                      g_str_equal,
+                                                      g_free,
+                                                      (GDestroyNotify) _destroy_object);
+}
+
+static void
+gsm_store_finalize (GObject *object)
+{
+        GsmStore *store;
+
+        g_return_if_fail (object != NULL);
+        g_return_if_fail (GSM_IS_STORE (object));
+
+        store = GSM_STORE (object);
+
+        g_return_if_fail (store->priv != NULL);
+
+        g_hash_table_destroy (store->priv->objects);
+
+        G_OBJECT_CLASS (gsm_store_parent_class)->finalize (object);
+}
+
+GsmStore *
+gsm_store_new (void)
+{
+        GObject *object;
+
+        object = g_object_new (GSM_TYPE_STORE,
+                               NULL);
+
+        return GSM_STORE (object);
+}

Added: branches/dbus_based/gnome-session/gsm-store.h
==============================================================================
--- (empty file)
+++ branches/dbus_based/gnome-session/gsm-store.h	Sun Jul 27 19:25:58 2008
@@ -0,0 +1,97 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007-2008 William Jon McCann <mccann jhu edu>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+
+#ifndef __GSM_STORE_H
+#define __GSM_STORE_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define GSM_TYPE_STORE         (gsm_store_get_type ())
+#define GSM_STORE(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_STORE, GsmStore))
+#define GSM_STORE_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_STORE, GsmStoreClass))
+#define GSM_IS_STORE(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_STORE))
+#define GSM_IS_STORE_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_STORE))
+#define GSM_STORE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_STORE, GsmStoreClass))
+
+typedef struct GsmStorePrivate GsmStorePrivate;
+
+typedef struct
+{
+        GObject          parent;
+        GsmStorePrivate *priv;
+} GsmStore;
+
+typedef struct
+{
+        GObjectClass   parent_class;
+
+        void          (* added)    (GsmStore   *store,
+                                    const char *id);
+        void          (* removed)  (GsmStore   *store,
+                                    const char *id);
+} GsmStoreClass;
+
+typedef enum
+{
+         GSM_STORE_ERROR_GENERAL
+} GsmStoreError;
+
+#define GSM_STORE_ERROR gsm_store_error_quark ()
+
+typedef gboolean (*GsmStoreFunc) (const char *id,
+                                  GObject    *object,
+                                  gpointer    user_data);
+
+GQuark              gsm_store_error_quark              (void);
+GType               gsm_store_get_type                 (void);
+
+GsmStore *          gsm_store_new                      (void);
+
+gboolean            gsm_store_get_locked               (GsmStore    *store);
+void                gsm_store_set_locked               (GsmStore    *store,
+                                                        gboolean     locked);
+
+guint               gsm_store_size                     (GsmStore    *store);
+gboolean            gsm_store_add                      (GsmStore    *store,
+                                                        const char  *id,
+                                                        GObject     *object);
+void                gsm_store_clear                    (GsmStore    *store);
+gboolean            gsm_store_remove                   (GsmStore    *store,
+                                                        const char  *id);
+
+void                gsm_store_foreach                  (GsmStore    *store,
+                                                        GsmStoreFunc func,
+                                                        gpointer     user_data);
+guint               gsm_store_foreach_remove           (GsmStore    *store,
+                                                        GsmStoreFunc func,
+                                                        gpointer     user_data);
+GObject *           gsm_store_find                     (GsmStore    *store,
+                                                        GsmStoreFunc predicate,
+                                                        gpointer     user_data);
+GObject *           gsm_store_lookup                   (GsmStore    *store,
+                                                        const char  *id);
+
+
+G_END_DECLS
+
+#endif /* __GSM_STORE_H */

Modified: branches/dbus_based/gnome-session/gsm-xsmp-server.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-xsmp-server.c	(original)
+++ branches/dbus_based/gnome-session/gsm-xsmp-server.c	Sun Jul 27 19:25:58 2008
@@ -65,7 +65,7 @@
 
 struct GsmXsmpServerPrivate
 {
-        GsmClientStore *client_store;
+        GsmStore       *client_store;
 
         IceListenObj   *xsmp_sockets;
         int             num_xsmp_sockets;
@@ -126,7 +126,7 @@
         client = gsm_xsmp_client_new (ice_conn);
         ice_conn->context = client;
 
-        gsm_client_store_add (server->priv->client_store, client);
+        gsm_store_add (server->priv->client_store, gsm_client_get_id (client), client);
 
         return TRUE;
 }
@@ -156,8 +156,8 @@
 }
 
 static void
-gsm_xsmp_server_set_client_store (GsmXsmpServer  *xsmp_server,
-                                  GsmClientStore *store)
+gsm_xsmp_server_set_client_store (GsmXsmpServer *xsmp_server,
+                                  GsmStore      *store)
 {
         g_return_if_fail (GSM_IS_XSMP_SERVER (xsmp_server));
 
@@ -579,7 +579,7 @@
                                          g_param_spec_object ("client-store",
                                                               NULL,
                                                               NULL,
-                                                              GSM_TYPE_CLIENT_STORE,
+                                                              GSM_TYPE_STORE,
                                                               G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
         g_type_class_add_private (klass, sizeof (GsmXsmpServerPrivate));
@@ -614,13 +614,13 @@
 }
 
 GsmXsmpServer *
-gsm_xsmp_server_new (GsmClientStore *store)
+gsm_xsmp_server_new (GsmStore *client_store)
 {
         if (xsmp_server_object != NULL) {
                 g_object_ref (xsmp_server_object);
         } else {
                 xsmp_server_object = g_object_new (GSM_TYPE_XSMP_SERVER,
-                                                   "client-store", store,
+                                                   "client-store", client_store,
                                                    NULL);
 
                 g_object_add_weak_pointer (xsmp_server_object,

Modified: branches/dbus_based/gnome-session/gsm-xsmp-server.h
==============================================================================
--- branches/dbus_based/gnome-session/gsm-xsmp-server.h	(original)
+++ branches/dbus_based/gnome-session/gsm-xsmp-server.h	Sun Jul 27 19:25:58 2008
@@ -24,7 +24,7 @@
 
 #include <glib-object.h>
 
-#include "gsm-client-store.h"
+#include "gsm-store.h"
 
 G_BEGIN_DECLS
 
@@ -50,8 +50,8 @@
 
 GType               gsm_xsmp_server_get_type                       (void);
 
-GsmXsmpServer *     gsm_xsmp_server_new                            (GsmClientStore *store);
-void                gsm_xsmp_server_start                          (GsmXsmpServer  *server);
+GsmXsmpServer *     gsm_xsmp_server_new                            (GsmStore      *client_store);
+void                gsm_xsmp_server_start                          (GsmXsmpServer *server);
 
 G_END_DECLS
 

Modified: branches/dbus_based/gnome-session/main.c
==============================================================================
--- branches/dbus_based/gnome-session/main.c	(original)
+++ branches/dbus_based/gnome-session/main.c	Sun Jul 27 19:25:58 2008
@@ -41,7 +41,7 @@
 #include "util.h"
 #include "gsm-manager.h"
 #include "gsm-xsmp-server.h"
-#include "gsm-client-store.h"
+#include "gsm-store.h"
 
 #define GSM_DBUS_NAME "org.gnome.SessionManager"
 
@@ -200,7 +200,7 @@
         GError          *error;
         char            *display_str;
         GsmManager      *manager;
-        GsmClientStore  *store;
+        GsmStore        *client_store;
         GsmXsmpServer   *xsmp_server;
 
         bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR);
@@ -228,7 +228,7 @@
         gsm_util_setenv ("DISPLAY", display_str);
         g_free (display_str);
 
-        store = gsm_client_store_new ();
+        client_store = gsm_store_new ();
 
 
         /* Start up gconfd and dbus-daemon (in parallel) if they're not
@@ -238,7 +238,7 @@
         maybe_start_session_bus ();
         gsm_gconf_init ();
 
-        xsmp_server = gsm_xsmp_server_new (store);
+        xsmp_server = gsm_xsmp_server_new (client_store);
 
         /* Now make sure they succeeded. (They'll call
          * gsm_util_init_error() if they failed.)
@@ -246,7 +246,7 @@
         gsm_gconf_check ();
         acquire_name ();
 
-        manager = gsm_manager_new (store, failsafe);
+        manager = gsm_manager_new (client_store, failsafe);
 
         gsm_xsmp_server_start (xsmp_server);
         gsm_manager_start (manager);



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