[gnome-session] Implement GsmSystem in GsmConsolekit
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-session] Implement GsmSystem in GsmConsolekit
- Date: Mon, 30 Jan 2012 17:46:26 +0000 (UTC)
commit 7e8dd200bdbf3c5c4ef25c55816f7ac2ed62616e
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Jan 24 18:17:20 2012 -0500
Implement GsmSystem in GsmConsolekit
https://bugzilla.gnome.org/show_bug.cgi?id=666891
gnome-session/gsm-consolekit.c | 140 +++++++++++++++++-----------------------
gnome-session/gsm-consolekit.h | 29 --------
2 files changed, 59 insertions(+), 110 deletions(-)
---
diff --git a/gnome-session/gsm-consolekit.c b/gnome-session/gsm-consolekit.c
index f20828e..b45f56a 100644
--- a/gnome-session/gsm-consolekit.c
+++ b/gnome-session/gsm-consolekit.c
@@ -31,7 +31,7 @@
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
-#include "gsm-marshal.h"
+#include "gsm-system.h"
#include "gsm-consolekit.h"
#define CK_NAME "org.freedesktop.ConsoleKit"
@@ -55,13 +55,6 @@ struct _GsmConsolekitPrivate
DBusGProxy *ck_proxy;
};
-enum {
- REQUEST_COMPLETED = 0,
- LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
static void gsm_consolekit_class_init (GsmConsolekitClass *klass);
static void gsm_consolekit_init (GsmConsolekit *ck);
static void gsm_consolekit_finalize (GObject *object);
@@ -78,7 +71,11 @@ static void gsm_consolekit_on_name_owner_changed (DBusGProxy *bus_pro
const char *new_owner,
GsmConsolekit *manager);
-G_DEFINE_TYPE (GsmConsolekit, gsm_consolekit, G_TYPE_OBJECT);
+static void gsm_consolekit_system_init (GsmSystemInterface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GsmConsolekit, gsm_consolekit, G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE (GSM_TYPE_SYSTEM,
+ gsm_consolekit_system_init))
static void
gsm_consolekit_class_init (GsmConsolekitClass *manager_class)
@@ -89,17 +86,6 @@ gsm_consolekit_class_init (GsmConsolekitClass *manager_class)
object_class->finalize = gsm_consolekit_finalize;
- signals [REQUEST_COMPLETED] =
- g_signal_new ("request-completed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GsmConsolekitClass, request_completed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE,
- 1, G_TYPE_POINTER);
-
g_type_class_add_private (manager_class, sizeof (GsmConsolekitPrivate));
}
@@ -295,28 +281,6 @@ gsm_consolekit_finalize (GObject *object)
}
}
-GQuark
-gsm_consolekit_error_quark (void)
-{
- static GQuark error_quark = 0;
-
- if (error_quark == 0) {
- error_quark = g_quark_from_static_string ("gsm-consolekit-error");
- }
-
- return error_quark;
-}
-
-GsmConsolekit *
-gsm_consolekit_new (void)
-{
- GsmConsolekit *manager;
-
- manager = g_object_new (GSM_TYPE_CONSOLEKIT, NULL);
-
- return manager;
-}
-
static void
emit_restart_complete (GsmConsolekit *manager,
GError *error)
@@ -326,14 +290,13 @@ emit_restart_complete (GsmConsolekit *manager,
call_error = NULL;
if (error != NULL) {
- call_error = g_error_new_literal (GSM_CONSOLEKIT_ERROR,
- GSM_CONSOLEKIT_ERROR_RESTARTING,
+ call_error = g_error_new_literal (GSM_SYSTEM_ERROR,
+ GSM_SYSTEM_ERROR_RESTARTING,
error->message);
}
- g_signal_emit (G_OBJECT (manager),
- signals [REQUEST_COMPLETED],
- 0, call_error);
+ g_signal_emit_by_name (G_OBJECT (manager),
+ "request_completed", call_error);
if (call_error != NULL) {
g_error_free (call_error);
@@ -349,23 +312,23 @@ emit_stop_complete (GsmConsolekit *manager,
call_error = NULL;
if (error != NULL) {
- call_error = g_error_new_literal (GSM_CONSOLEKIT_ERROR,
- GSM_CONSOLEKIT_ERROR_STOPPING,
+ call_error = g_error_new_literal (GSM_SYSTEM_ERROR,
+ GSM_SYSTEM_ERROR_STOPPING,
error->message);
}
- g_signal_emit (G_OBJECT (manager),
- signals [REQUEST_COMPLETED],
- 0, call_error);
+ g_signal_emit_by_name (G_OBJECT (manager),
+ "request_completed", call_error);
if (call_error != NULL) {
g_error_free (call_error);
}
}
-void
-gsm_consolekit_attempt_restart (GsmConsolekit *manager)
+static void
+gsm_consolekit_attempt_restart (GsmSystem *system)
{
+ GsmConsolekit *manager = GSM_CONSOLEKIT (system);
gboolean res;
GError *error;
@@ -395,9 +358,10 @@ gsm_consolekit_attempt_restart (GsmConsolekit *manager)
}
}
-void
-gsm_consolekit_attempt_stop (GsmConsolekit *manager)
+static void
+gsm_consolekit_attempt_stop (GsmSystem *system)
{
+ GsmConsolekit *manager = GSM_CONSOLEKIT (system);
gboolean res;
GError *error;
@@ -555,10 +519,11 @@ get_current_seat_id (DBusConnection *connection)
return seat_id;
}
-void
-gsm_consolekit_set_session_idle (GsmConsolekit *manager,
- gboolean is_idle)
+static void
+gsm_consolekit_set_session_idle (GsmSystem *system,
+ gboolean is_idle)
{
+ GsmConsolekit *manager = GSM_CONSOLEKIT (system);
gboolean res;
GError *error;
char *session_id;
@@ -667,9 +632,10 @@ seat_can_activate_sessions (DBusConnection *connection,
return can_activate;
}
-gboolean
-gsm_consolekit_can_switch_user (GsmConsolekit *manager)
+static gboolean
+gsm_consolekit_can_switch_user (GsmSystem *system)
{
+ GsmConsolekit *manager = GSM_CONSOLEKIT (system);
GError *error;
char *seat_id;
gboolean ret;
@@ -696,9 +662,10 @@ gsm_consolekit_can_switch_user (GsmConsolekit *manager)
return ret;
}
-gboolean
-gsm_consolekit_can_restart (GsmConsolekit *manager)
+static gboolean
+gsm_consolekit_can_restart (GsmSystem *system)
{
+ GsmConsolekit *manager = GSM_CONSOLEKIT (system);
gboolean res;
gboolean can_restart;
GError *error;
@@ -730,9 +697,10 @@ gsm_consolekit_can_restart (GsmConsolekit *manager)
return can_restart;
}
-gboolean
-gsm_consolekit_can_stop (GsmConsolekit *manager)
+static gboolean
+gsm_consolekit_can_stop (GsmSystem *system)
{
+ GsmConsolekit *manager = GSM_CONSOLEKIT (system);
gboolean res;
gboolean can_stop;
GError *error;
@@ -830,26 +798,14 @@ out:
return ret;
}
-
-GsmConsolekit *
-gsm_get_consolekit (void)
-{
- static GsmConsolekit *manager = NULL;
-
- if (manager == NULL) {
- manager = gsm_consolekit_new ();
- }
-
- return g_object_ref (manager);
-}
-
-gboolean
-gsm_consolekit_is_login_session (GsmConsolekit *manager)
+static gboolean
+gsm_consolekit_is_login_session (GsmSystem *system)
{
+ GsmConsolekit *consolekit = GSM_CONSOLEKIT (system);
char *session_type;
gboolean ret;
- session_type = gsm_consolekit_get_current_session_type (manager);
+ session_type = gsm_consolekit_get_current_session_type (consolekit);
ret = (g_strcmp0 (session_type, GSM_CONSOLEKIT_SESSION_TYPE_LOGIN_WINDOW) == 0);
@@ -857,3 +813,25 @@ gsm_consolekit_is_login_session (GsmConsolekit *manager)
return ret;
}
+
+static void
+gsm_consolekit_system_init (GsmSystemInterface *iface)
+{
+ iface->can_switch_user = gsm_consolekit_can_switch_user;
+ iface->can_stop = gsm_consolekit_can_stop;
+ iface->can_restart = gsm_consolekit_can_restart;
+ iface->attempt_stop = gsm_consolekit_attempt_stop;
+ iface->attempt_restart = gsm_consolekit_attempt_restart;
+ iface->set_session_idle = gsm_consolekit_set_session_idle;
+ iface->is_login_session = gsm_consolekit_is_login_session;
+}
+
+GsmConsolekit *
+gsm_consolekit_new (void)
+{
+ GsmConsolekit *manager;
+
+ manager = g_object_new (GSM_TYPE_CONSOLEKIT, NULL);
+
+ return manager;
+}
diff --git a/gnome-session/gsm-consolekit.h b/gnome-session/gsm-consolekit.h
index 25beb86..b202095 100644
--- a/gnome-session/gsm-consolekit.h
+++ b/gnome-session/gsm-consolekit.h
@@ -35,12 +35,10 @@ G_BEGIN_DECLS
#define GSM_IS_CONSOLEKIT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_CONSOLEKIT))
#define GSM_IS_CONSOLEKIT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_CONSOLEKIT))
#define GSM_CONSOLEKIT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GSM_TYPE_CONSOLEKIT, GsmConsolekitClass))
-#define GSM_CONSOLEKIT_ERROR (gsm_consolekit_error_quark ())
typedef struct _GsmConsolekit GsmConsolekit;
typedef struct _GsmConsolekitClass GsmConsolekitClass;
typedef struct _GsmConsolekitPrivate GsmConsolekitPrivate;
-typedef enum _GsmConsolekitError GsmConsolekitError;
struct _GsmConsolekit
{
@@ -52,39 +50,12 @@ struct _GsmConsolekit
struct _GsmConsolekitClass
{
GObjectClass parent_class;
-
- void (* request_completed) (GsmConsolekit *manager,
- GError *error);
-};
-
-enum _GsmConsolekitError {
- GSM_CONSOLEKIT_ERROR_RESTARTING = 0,
- GSM_CONSOLEKIT_ERROR_STOPPING
};
GType gsm_consolekit_get_type (void);
-GQuark gsm_consolekit_error_quark (void);
-
GsmConsolekit *gsm_consolekit_new (void) G_GNUC_MALLOC;
-gboolean gsm_consolekit_can_switch_user (GsmConsolekit *manager);
-
-gboolean gsm_consolekit_can_stop (GsmConsolekit *manager);
-
-gboolean gsm_consolekit_can_restart (GsmConsolekit *manager);
-
-void gsm_consolekit_attempt_stop (GsmConsolekit *manager);
-
-void gsm_consolekit_attempt_restart (GsmConsolekit *manager);
-
-void gsm_consolekit_set_session_idle (GsmConsolekit *manager,
- gboolean is_idle);
-
-GsmConsolekit *gsm_get_consolekit (void);
-
-gboolean gsm_consolekit_is_login_session (GsmConsolekit *manager);
-
G_END_DECLS
#endif /* __GSM_CONSOLEKIT_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]