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



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

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

	* gnome-session/Makefile.am:
	* gnome-session/gsm-client.c:
	* gnome-session/gsm-inhibitor.c (register_inhibitor),
	(gsm_inhibitor_constructor):
	* gnome-session/gsm-inhibitor.xml:
	Put inhibitors on the bus.



Added:
   branches/dbus_based/gnome-session/gsm-inhibitor.xml
Modified:
   branches/dbus_based/ChangeLog
   branches/dbus_based/gnome-session/Makefile.am
   branches/dbus_based/gnome-session/gsm-client.c
   branches/dbus_based/gnome-session/gsm-inhibitor.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:42:33 2008
@@ -113,6 +113,9 @@
 gsm-client-glue.h: gsm-client.xml Makefile.am
 	dbus-binding-tool --prefix=gsm_client --mode=glib-server --output=gsm-client-glue.h $(srcdir)/gsm-client.xml
 
+gsm-inhibitor-glue.h: gsm-inhibitor.xml Makefile.am
+	dbus-binding-tool --prefix=gsm_inhibitor --mode=glib-server --output=gsm-inhibitor-glue.h $(srcdir)/gsm-inhibitor.xml
+
 gsm-dbus-client-glue.h: gsm-dbus-client.xml Makefile.am
 	dbus-binding-tool --prefix=gsm_dbus_client --mode=glib-server --output=gsm-dbus-client-glue.h $(srcdir)/gsm-dbus-client.xml
 
@@ -120,6 +123,7 @@
 	gsm-marshal.c           \
 	gsm-marshal.h           \
 	gsm-manager-glue.h	\
+	gsm-inhibitor-glue.h	\
 	gsm-client-glue.h	\
 	gsm-dbus-client-glue.h	\
 	$(NULL)
@@ -133,6 +137,7 @@
 	gsm-marshal.list        		\
 	gsm-manager.xml				\
 	gsm-client.xml				\
+	gsm-inhibitor.xml			\
 	gsm-dbus-client.xml			\
 	$(NULL)
 

Modified: branches/dbus_based/gnome-session/gsm-client.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-client.c	(original)
+++ branches/dbus_based/gnome-session/gsm-client.c	Sun Jul 27 19:42:33 2008
@@ -19,9 +19,7 @@
  * 02111-1307, USA.
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <dbus/dbus-glib.h>
 
@@ -94,7 +92,6 @@
         return TRUE;
 }
 
-
 static GObject *
 gsm_client_constructor (GType                  type,
                         guint                  n_construct_properties,

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:42:33 2008
@@ -26,7 +26,10 @@
 #include <time.h>
 #include <unistd.h>
 
+#include <dbus/dbus-glib.h>
+
 #include "gsm-inhibitor.h"
+#include "gsm-inhibitor-glue.h"
 
 static guint32 inhibitor_serial = 1;
 
@@ -42,6 +45,7 @@
         guint flags;
         guint toplevel_xid;
         guint cookie;
+        DBusGConnection *connection;
 };
 
 enum {
@@ -71,12 +75,33 @@
         return serial;
 }
 
+static gboolean
+register_inhibitor (GsmInhibitor *inhibitor)
+{
+        GError *error;
+
+        error = NULL;
+        inhibitor->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+        if (inhibitor->priv->connection == NULL) {
+                if (error != NULL) {
+                        g_critical ("error getting session bus: %s", error->message);
+                        g_error_free (error);
+                }
+                return FALSE;
+        }
+
+        dbus_g_connection_register_g_object (inhibitor->priv->connection, inhibitor->priv->id, G_OBJECT (inhibitor));
+
+        return TRUE;
+}
+
 static GObject *
 gsm_inhibitor_constructor (GType                  type,
                            guint                  n_construct_properties,
                            GObjectConstructParam *construct_properties)
 {
         GsmInhibitor *inhibitor;
+        gboolean      res;
 
         inhibitor = GSM_INHIBITOR (G_OBJECT_CLASS (gsm_inhibitor_parent_class)->constructor (type,
                                                                                              n_construct_properties,
@@ -84,6 +109,10 @@
 
         g_free (inhibitor->priv->id);
         inhibitor->priv->id = g_strdup_printf ("/org/gnome/SessionManager/Inhibitor%u", get_next_inhibitor_serial ());
+        res = register_inhibitor (inhibitor);
+        if (! res) {
+                g_warning ("Unable to register inhibitor with session bus");
+        }
 
         return G_OBJECT (inhibitor);
 }

Added: branches/dbus_based/gnome-session/gsm-inhibitor.xml
==============================================================================
--- (empty file)
+++ branches/dbus_based/gnome-session/gsm-inhibitor.xml	Sun Jul 27 19:42:33 2008
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd";>
+<node>
+  <interface name="org.gnome.SessionManager.Inhibitor">
+  </interface>
+</node>



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