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



Author: mccann
Date: Mon Jul 28 16:25:08 2008
New Revision: 4867
URL: http://svn.gnome.org/viewvc/gnome-session?rev=4867&view=rev

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

	* gnome-session/gsm-manager.c (inhibitor_has_flag),
	(gsm_manager_is_logout_inhibited), (gsm_manager_start),
	(gsm_manager_setenv), (gsm_manager_initialization_error),
	(gsm_manager_is_switch_user_inhibited),
	(gsm_manager_is_suspend_inhibited), (gsm_manager_shutdown),
	(gsm_manager_logout), (gsm_manager_register_client),
	(gsm_manager_unregister_client), (gsm_manager_inhibit),
	(gsm_manager_uninhibit), (gsm_manager_is_inhibited):
	* gnome-session/gsm-manager.h:
	* gnome-session/gsm-manager.xml:
	Export an IsInhibited method to the bus.



Modified:
   branches/dbus_based/ChangeLog
   branches/dbus_based/gnome-session/gsm-manager.c
   branches/dbus_based/gnome-session/gsm-manager.h
   branches/dbus_based/gnome-session/gsm-manager.xml

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	Mon Jul 28 16:25:08 2008
@@ -543,10 +543,11 @@
                     GsmInhibitor *inhibitor,
                     gpointer      data)
 {
-        int flag;
-        int flags;
+        guint flag;
+        guint flags;
+
+        flag = GPOINTER_TO_UINT (data);
 
-        flag = GPOINTER_TO_INT (data);
         flags = gsm_inhibitor_get_flags (inhibitor);
 
         return (flags & flag);
@@ -563,7 +564,7 @@
 
         inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
                                                     (GsmStoreFunc)inhibitor_has_flag,
-                                                    GINT_TO_POINTER (GSM_INHIBITOR_FLAG_LOGOUT));
+                                                    GUINT_TO_POINTER (GSM_INHIBITOR_FLAG_LOGOUT));
         if (inhibitor == NULL) {
                 return FALSE;
         }
@@ -963,6 +964,8 @@
 {
         g_debug ("GsmManager: GSM starting to manage");
 
+        g_return_if_fail (GSM_IS_MANAGER (manager));
+
         manager->priv->phase = GSM_MANAGER_PHASE_INITIALIZATION;
 
         start_phase (manager);
@@ -2041,6 +2044,8 @@
                     const char  *value,
                     GError     **error)
 {
+        g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
         if (manager->priv->phase > GSM_MANAGER_PHASE_INITIALIZATION) {
                 g_set_error (error,
                              GSM_MANAGER_ERROR,
@@ -2060,6 +2065,8 @@
                                   gboolean     fatal,
                                   GError     **error)
 {
+        g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
         if (manager->priv->phase > GSM_MANAGER_PHASE_INITIALIZATION) {
                 g_set_error (error,
                              GSM_MANAGER_ERROR,
@@ -2084,7 +2091,7 @@
 
         inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
                                                     (GsmStoreFunc)inhibitor_has_flag,
-                                                    GINT_TO_POINTER (GSM_INHIBITOR_FLAG_SWITCH_USER));
+                                                    GUINT_TO_POINTER (GSM_INHIBITOR_FLAG_SWITCH_USER));
         if (inhibitor == NULL) {
                 return FALSE;
         }
@@ -2102,7 +2109,7 @@
 
         inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
                                                     (GsmStoreFunc)inhibitor_has_flag,
-                                                    GINT_TO_POINTER (GSM_INHIBITOR_FLAG_SUSPEND));
+                                                    GUINT_TO_POINTER (GSM_INHIBITOR_FLAG_SUSPEND));
         if (inhibitor == NULL) {
                 return FALSE;
         }
@@ -2376,6 +2383,8 @@
 {
         g_debug ("GsmManager: Shutdown called");
 
+        g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
         if (manager->priv->phase != GSM_MANAGER_PHASE_RUNNING) {
                 g_set_error (error,
                              GSM_MANAGER_ERROR,
@@ -2396,6 +2405,8 @@
 {
         g_debug ("GsmManager: Logout called");
 
+        g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
         if (manager->priv->phase != GSM_MANAGER_PHASE_RUNNING) {
                 g_set_error (error,
                              GSM_MANAGER_ERROR,
@@ -2435,6 +2446,8 @@
         GsmClient *client;
         GsmApp    *app;
 
+        g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
         g_debug ("GsmManager: RegisterClient %s", startup_id);
 
         if (manager->priv->phase >= GSM_MANAGER_PHASE_QUERY_END_SESSION) {
@@ -2533,6 +2546,8 @@
 {
         GsmClient *client;
 
+        g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
         g_debug ("GsmManager: UnregisterClient %s", client_id);
 
         client = (GsmClient *)gsm_store_lookup (manager->priv->clients, client_id);
@@ -2569,6 +2584,8 @@
         GsmInhibitor *inhibitor;
         guint         cookie;
 
+        g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
         g_debug ("GsmManager: Inhibit xid=%u app_id=%s reason=%s flags=%u",
                  toplevel_xid,
                  app_id,
@@ -2633,6 +2650,8 @@
 {
         GsmInhibitor *inhibitor;
 
+        g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
         g_debug ("GsmManager: Uninhibit %u", cookie);
 
         inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
@@ -2663,3 +2682,32 @@
 
         return TRUE;
 }
+
+gboolean
+gsm_manager_is_inhibited (GsmManager *manager,
+                          guint       flags,
+                          gboolean   *is_inhibited,
+                          GError     *error)
+{
+        GsmInhibitor *inhibitor;
+
+        g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+        if (manager->priv->inhibitors == NULL
+            || gsm_store_size (manager->priv->inhibitors) == 0) {
+                *is_inhibited = FALSE;
+                return TRUE;
+        }
+
+        inhibitor = (GsmInhibitor *)gsm_store_find (manager->priv->inhibitors,
+                                                    (GsmStoreFunc)inhibitor_has_flag,
+                                                    GUINT_TO_POINTER (flags));
+        if (inhibitor == NULL) {
+                *is_inhibited = FALSE;
+        } else {
+                *is_inhibited = TRUE;
+        }
+
+        return TRUE;
+
+}

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	Mon Jul 28 16:25:08 2008
@@ -135,6 +135,10 @@
 gboolean            gsm_manager_uninhibit            (GsmManager            *manager,
                                                       guint                  inhibit_cookie,
                                                       DBusGMethodInvocation *context);
+gboolean            gsm_manager_is_inhibited         (GsmManager            *manager,
+                                                      guint                  flags,
+                                                      gboolean              *is_inhibited,
+                                                      GError                *error);
 
 gboolean            gsm_manager_shutdown             (GsmManager     *manager,
                                                       GError        **error);

Modified: branches/dbus_based/gnome-session/gsm-manager.xml
==============================================================================
--- branches/dbus_based/gnome-session/gsm-manager.xml	(original)
+++ branches/dbus_based/gnome-session/gsm-manager.xml	Mon Jul 28 16:25:08 2008
@@ -173,6 +173,28 @@
       </doc:doc>
     </method>
 
+    <method name="IsInhibited">
+      <arg type="u" name="flags" direction="in">
+        <doc:doc>
+          <doc:summary>Flags that spefify what should be inhibited</doc:summary>
+        </doc:doc>
+      </arg>
+      <arg type="b" name="is_inhibited" direction="out">
+        <doc:doc>
+          <doc:summary>Returns TRUE if any of the operations in the bitfield flags are inhibited</doc:summary>
+        </doc:doc>
+      </arg>
+      <doc:doc>
+        <doc:description>
+          <doc:para>Determine if operation(s) specified by the flags
+            are currently inhibited.  Flags are same as those accepted
+            by the
+            <doc:ref type="method" to="org.gnome.SessionManager.Inhibit">Inhibit()</doc:ref>
+            method.</doc:para>
+        </doc:description>
+      </doc:doc>
+    </method>
+
     <method name="Shutdown">
       <doc:doc>
         <doc:description>



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