summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--daemon/gdm-session-auditor.c59
-rw-r--r--daemon/gdm-session-auditor.h20
2 files changed, 40 insertions, 39 deletions
diff --git a/daemon/gdm-session-auditor.c b/daemon/gdm-session-auditor.c
index c4927094..548e54b9 100644
--- a/daemon/gdm-session-auditor.c
+++ b/daemon/gdm-session-auditor.c
@@ -34,12 +34,12 @@
#include <glib-object.h>
#include <glib/gi18n.h>
-struct _GdmSessionAuditorPrivate
+typedef struct _GdmSessionAuditorPrivate
{
char *username;
char *hostname;
char *display_device;
-};
+} GdmSessionAuditorPrivate;
static void gdm_session_auditor_finalize (GObject *object);
static void gdm_session_auditor_class_install_properties (GdmSessionAuditorClass *
@@ -61,7 +61,7 @@ enum {
PROP_DISPLAY_DEVICE
};
-G_DEFINE_TYPE (GdmSessionAuditor, gdm_session_auditor, G_TYPE_OBJECT)
+G_DEFINE_TYPE_WITH_PRIVATE (GdmSessionAuditor, gdm_session_auditor, G_TYPE_OBJECT)
static void
gdm_session_auditor_class_init (GdmSessionAuditorClass *auditor_class)
@@ -73,8 +73,6 @@ gdm_session_auditor_class_init (GdmSessionAuditorClass *auditor_class)
object_class->finalize = gdm_session_auditor_finalize;
gdm_session_auditor_class_install_properties (auditor_class);
-
- g_type_class_add_private (auditor_class, sizeof (GdmSessionAuditorPrivate));
}
static void
@@ -108,23 +106,21 @@ gdm_session_auditor_class_install_properties (GdmSessionAuditorClass *auditor_cl
static void
gdm_session_auditor_init (GdmSessionAuditor *auditor)
{
- auditor->priv = G_TYPE_INSTANCE_GET_PRIVATE (auditor,
- GDM_TYPE_SESSION_AUDITOR,
- GdmSessionAuditorPrivate);
-
}
static void
gdm_session_auditor_finalize (GObject *object)
{
GdmSessionAuditor *auditor;
+ GdmSessionAuditorPrivate *priv;
GObjectClass *parent_class;
auditor = GDM_SESSION_AUDITOR (object);
+ priv = gdm_session_auditor_get_instance_private (auditor);
- g_free (auditor->priv->username);
- g_free (auditor->priv->hostname);
- g_free (auditor->priv->display_device);
+ g_free (priv->username);
+ g_free (priv->hostname);
+ g_free (priv->display_device);
parent_class = G_OBJECT_CLASS (gdm_session_auditor_parent_class);
@@ -137,15 +133,19 @@ void
gdm_session_auditor_set_username (GdmSessionAuditor *auditor,
const char *username)
{
+ GdmSessionAuditorPrivate *priv;
+
g_return_if_fail (GDM_IS_SESSION_AUDITOR (auditor));
- if (username == auditor->priv->username) {
+ priv = gdm_session_auditor_get_instance_private (auditor);
+
+ if (username == priv->username) {
return;
}
- if ((username == NULL || auditor->priv->username == NULL) ||
- strcmp (username, auditor->priv->username) != 0) {
- auditor->priv->username = g_strdup (username);
+ if ((username == NULL || priv->username == NULL) ||
+ strcmp (username, priv->username) != 0) {
+ priv->username = g_strdup (username);
g_object_notify (G_OBJECT (auditor), "username");
}
}
@@ -154,34 +154,51 @@ static void
gdm_session_auditor_set_hostname (GdmSessionAuditor *auditor,
const char *hostname)
{
+ GdmSessionAuditorPrivate *priv;
+
g_return_if_fail (GDM_IS_SESSION_AUDITOR (auditor));
- auditor->priv->hostname = g_strdup (hostname);
+
+ priv = gdm_session_auditor_get_instance_private (auditor);
+ priv->hostname = g_strdup (hostname);
}
static void
gdm_session_auditor_set_display_device (GdmSessionAuditor *auditor,
const char *display_device)
{
+ GdmSessionAuditorPrivate *priv;
+
g_return_if_fail (GDM_IS_SESSION_AUDITOR (auditor));
- auditor->priv->display_device = g_strdup (display_device);
+
+ priv = gdm_session_auditor_get_instance_private (auditor);
+ priv->display_device = g_strdup (display_device);
}
static char *
gdm_session_auditor_get_username (GdmSessionAuditor *auditor)
{
- return g_strdup (auditor->priv->username);
+ GdmSessionAuditorPrivate *priv;
+
+ priv = gdm_session_auditor_get_instance_private (auditor);
+ return g_strdup (priv->username);
}
static char *
gdm_session_auditor_get_hostname (GdmSessionAuditor *auditor)
{
- return g_strdup (auditor->priv->hostname);
+ GdmSessionAuditorPrivate *priv;
+
+ priv = gdm_session_auditor_get_instance_private (auditor);
+ return g_strdup (priv->hostname);
}
static char *
gdm_session_auditor_get_display_device (GdmSessionAuditor *auditor)
{
- return g_strdup (auditor->priv->display_device);
+ GdmSessionAuditorPrivate *priv;
+
+ priv = gdm_session_auditor_get_instance_private (auditor);
+ return g_strdup (priv->display_device);
}
static void
diff --git a/daemon/gdm-session-auditor.h b/daemon/gdm-session-auditor.h
index 1ebf390f..dde00f68 100644
--- a/daemon/gdm-session-auditor.h
+++ b/daemon/gdm-session-auditor.h
@@ -30,24 +30,9 @@
#include <glib-object.h>
G_BEGIN_DECLS
-#define GDM_TYPE_SESSION_AUDITOR (gdm_session_auditor_get_type ())
-#define GDM_SESSION_AUDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDM_TYPE_SESSION_AUDITOR, GdmSessionAuditor))
-#define GDM_SESSION_AUDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDM_TYPE_SESSION_AUDITOR, GdmSessionAuditorClass))
-#define GDM_IS_SESSION_AUDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDM_TYPE_SESSION_AUDITOR))
-#define GDM_IS_SESSION_AUDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDM_TYPE_SESSION_AUDITOR))
-#define GDM_SESSION_AUDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GDM_TYPE_SESSION_AUDITOR, GdmSessionAuditorClass))
-#define GDM_SESSION_AUDITOR_ERROR (gdm_session_auditor_error_quark ())
-typedef struct _GdmSessionAuditor GdmSessionAuditor;
-typedef struct _GdmSessionAuditorClass GdmSessionAuditorClass;
-typedef struct _GdmSessionAuditorPrivate GdmSessionAuditorPrivate;
-
-struct _GdmSessionAuditor
-{
- GObject parent;
- /*< private > */
- GdmSessionAuditorPrivate *priv;
-};
+#define GDM_TYPE_SESSION_AUDITOR (gdm_session_auditor_get_type ())
+G_DECLARE_DERIVABLE_TYPE (GdmSessionAuditor, gdm_session_auditor, GDM, SESSION_AUDITOR, GObject)
struct _GdmSessionAuditorClass
{
@@ -63,7 +48,6 @@ struct _GdmSessionAuditorClass
void (* report_logout) (GdmSessionAuditor *auditor);
};
-GType gdm_session_auditor_get_type (void);
GdmSessionAuditor *gdm_session_auditor_new (const char *hostname,
const char *display_device);
void gdm_session_auditor_set_username (GdmSessionAuditor *auditor,