diff options
author | Philip Withnall <pwithnall@endlessos.org> | 2021-11-15 11:42:02 +0000 |
---|---|---|
committer | Ray Strode <halfline@gmail.com> | 2021-12-10 14:53:40 +0000 |
commit | 6b6871a7cd6e89136ddc54cfae9841474ce985e9 (patch) | |
tree | 7a9a1bddf601ab7d55d5fd48fc06c58b95e28d26 | |
parent | 62f0292f7ce2d7ffd893a7ba07f4dccb04dec5e2 (diff) | |
download | gnome-session-6b6871a7cd6e89136ddc54cfae9841474ce985e9.tar.gz |
client: Modernise GObject private data handling
Use `G_DECLARE_DERIVABLE_TYPE` and
`G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE`.
This introduces no functional changes, but removes a few GLib
deprecation warnings.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
-rw-r--r-- | gnome-session/gsm-client.c | 115 | ||||
-rw-r--r-- | gnome-session/gsm-client.h | 16 |
2 files changed, 69 insertions, 62 deletions
diff --git a/gnome-session/gsm-client.c b/gnome-session/gsm-client.c index f50a86a3..ca1f6ca3 100644 --- a/gnome-session/gsm-client.c +++ b/gnome-session/gsm-client.c @@ -24,9 +24,7 @@ static guint32 client_serial = 1; -#define GSM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_CLIENT, GsmClientPrivate)) - -struct GsmClientPrivate +typedef struct { char *id; char *startup_id; @@ -34,7 +32,7 @@ struct GsmClientPrivate guint status; GsmExportedClient *skeleton; GDBusConnection *connection; -}; +} GsmClientPrivate; enum { PROP_0, @@ -51,7 +49,7 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; -G_DEFINE_ABSTRACT_TYPE (GsmClient, gsm_client, G_TYPE_OBJECT) +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GsmClient, gsm_client, G_TYPE_OBJECT) #define GSM_CLIENT_DBUS_IFACE "org.gnome.SessionManager.Client" @@ -91,7 +89,9 @@ gsm_client_get_startup_id (GsmExportedClient *skeleton, GDBusMethodInvocation *invocation, GsmClient *client) { - gsm_exported_client_complete_get_startup_id (skeleton, invocation, client->priv->startup_id); + GsmClientPrivate *priv = gsm_client_get_instance_private (client); + + gsm_exported_client_complete_get_startup_id (skeleton, invocation, priv->startup_id); return TRUE; } @@ -100,7 +100,9 @@ gsm_client_get_app_id (GsmExportedClient *skeleton, GDBusMethodInvocation *invocation, GsmClient *client) { - gsm_exported_client_complete_get_app_id (skeleton, invocation, client->priv->app_id); + GsmClientPrivate *priv = gsm_client_get_instance_private (client); + + gsm_exported_client_complete_get_app_id (skeleton, invocation, priv->app_id); return TRUE; } @@ -121,7 +123,9 @@ gsm_client_get_status (GsmExportedClient *skeleton, GDBusMethodInvocation *invocation, GsmClient *client) { - gsm_exported_client_complete_get_status (skeleton, invocation, client->priv->status); + GsmClientPrivate *priv = gsm_client_get_instance_private (client); + + gsm_exported_client_complete_get_status (skeleton, invocation, priv->status); return TRUE; } @@ -157,22 +161,23 @@ gsm_client_stop_dbus (GsmExportedClient *skeleton, static gboolean register_client (GsmClient *client) { + GsmClientPrivate *priv = gsm_client_get_instance_private (client); GError *error = NULL; GsmExportedClient *skeleton; - client->priv->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); - if (client->priv->connection == NULL) { + priv->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); + if (priv->connection == NULL) { g_critical ("error getting session bus: %s", error->message); g_error_free (error); return FALSE; } skeleton = gsm_exported_client_skeleton_new (); - client->priv->skeleton = skeleton; - g_debug ("exporting client to object path: %s", client->priv->id); + priv->skeleton = skeleton; + g_debug ("exporting client to object path: %s", priv->id); g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (skeleton), - client->priv->connection, - client->priv->id, &error); + priv->connection, + priv->id, &error); if (error != NULL) { g_critical ("error exporting client on session bus: %s", error->message); @@ -201,15 +206,17 @@ gsm_client_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) { + GsmClientPrivate *priv; GsmClient *client; gboolean res; client = GSM_CLIENT (G_OBJECT_CLASS (gsm_client_parent_class)->constructor (type, n_construct_properties, construct_properties)); + priv = gsm_client_get_instance_private (client); - g_free (client->priv->id); - client->priv->id = g_strdup_printf ("/org/gnome/SessionManager/Client%u", get_next_client_serial ()); + g_free (priv->id); + priv->id = g_strdup_printf ("/org/gnome/SessionManager/Client%u", get_next_client_serial ()); res = register_client (client); if (! res) { @@ -222,32 +229,33 @@ gsm_client_constructor (GType type, static void gsm_client_init (GsmClient *client) { - client->priv = GSM_CLIENT_GET_PRIVATE (client); } static void gsm_client_finalize (GObject *object) { GsmClient *client; + GsmClientPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GSM_IS_CLIENT (object)); client = GSM_CLIENT (object); + priv = gsm_client_get_instance_private (client); - g_return_if_fail (client->priv != NULL); + g_return_if_fail (priv != NULL); - g_free (client->priv->id); - g_free (client->priv->startup_id); - g_free (client->priv->app_id); + g_free (priv->id); + g_free (priv->startup_id); + g_free (priv->app_id); - if (client->priv->skeleton != NULL) { - g_dbus_interface_skeleton_unexport_from_connection (G_DBUS_INTERFACE_SKELETON (client->priv->skeleton), - client->priv->connection); - g_clear_object (&client->priv->skeleton); + if (priv->skeleton != NULL) { + g_dbus_interface_skeleton_unexport_from_connection (G_DBUS_INTERFACE_SKELETON (priv->skeleton), + priv->connection); + g_clear_object (&priv->skeleton); } - g_clear_object (&client->priv->connection); + g_clear_object (&priv->connection); G_OBJECT_CLASS (gsm_client_parent_class)->finalize (object); } @@ -256,9 +264,11 @@ void gsm_client_set_status (GsmClient *client, guint status) { + GsmClientPrivate *priv = gsm_client_get_instance_private (client); + g_return_if_fail (GSM_IS_CLIENT (client)); - if (client->priv->status != status) { - client->priv->status = status; + if (priv->status != status) { + priv->status = status; g_object_notify (G_OBJECT (client), "status"); } } @@ -267,14 +277,16 @@ static void gsm_client_set_startup_id (GsmClient *client, const char *startup_id) { + GsmClientPrivate *priv = gsm_client_get_instance_private (client); + g_return_if_fail (GSM_IS_CLIENT (client)); - g_free (client->priv->startup_id); + g_free (priv->startup_id); if (startup_id != NULL) { - client->priv->startup_id = g_strdup (startup_id); + priv->startup_id = g_strdup (startup_id); } else { - client->priv->startup_id = g_strdup (""); + priv->startup_id = g_strdup (""); } g_object_notify (G_OBJECT (client), "startup-id"); } @@ -283,14 +295,16 @@ void gsm_client_set_app_id (GsmClient *client, const char *app_id) { + GsmClientPrivate *priv = gsm_client_get_instance_private (client); + g_return_if_fail (GSM_IS_CLIENT (client)); - g_free (client->priv->app_id); + g_free (priv->app_id); if (app_id != NULL) { - client->priv->app_id = g_strdup (app_id); + priv->app_id = g_strdup (app_id); } else { - client->priv->app_id = g_strdup (""); + priv->app_id = g_strdup (""); } g_object_notify (G_OBJECT (client), "app-id"); } @@ -327,19 +341,18 @@ gsm_client_get_property (GObject *object, GValue *value, GParamSpec *pspec) { - GsmClient *self; - - self = GSM_CLIENT (object); + GsmClient *self = GSM_CLIENT (object); + GsmClientPrivate *priv = gsm_client_get_instance_private (self); switch (prop_id) { case PROP_STARTUP_ID: - g_value_set_string (value, self->priv->startup_id); + g_value_set_string (value, priv->startup_id); break; case PROP_APP_ID: - g_value_set_string (value, self->priv->app_id); + g_value_set_string (value, priv->app_id); break; case PROP_STATUS: - g_value_set_uint (value, self->priv->status); + g_value_set_uint (value, priv->status); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -362,13 +375,15 @@ static void gsm_client_dispose (GObject *object) { GsmClient *client; + GsmClientPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GSM_IS_CLIENT (object)); client = GSM_CLIENT (object); + priv = gsm_client_get_instance_private (client); - g_debug ("GsmClient: disposing %s", client->priv->id); + g_debug ("GsmClient: disposing %s", priv->id); G_OBJECT_CLASS (gsm_client_parent_class)->dispose (object); } @@ -426,16 +441,16 @@ gsm_client_class_init (GsmClientClass *klass) G_MAXINT, GSM_CLIENT_UNREGISTERED, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_type_class_add_private (klass, sizeof (GsmClientPrivate)); } const char * gsm_client_peek_id (GsmClient *client) { + GsmClientPrivate *priv = gsm_client_get_instance_private (client); + g_return_val_if_fail (GSM_IS_CLIENT (client), NULL); - return client->priv->id; + return priv->id; } /** @@ -451,25 +466,31 @@ gsm_client_peek_id (GsmClient *client) const char * gsm_client_peek_app_id (GsmClient *client) { + GsmClientPrivate *priv = gsm_client_get_instance_private (client); + g_return_val_if_fail (GSM_IS_CLIENT (client), NULL); - return client->priv->app_id; + return priv->app_id; } const char * gsm_client_peek_startup_id (GsmClient *client) { + GsmClientPrivate *priv = gsm_client_get_instance_private (client); + g_return_val_if_fail (GSM_IS_CLIENT (client), NULL); - return client->priv->startup_id; + return priv->startup_id; } guint gsm_client_peek_status (GsmClient *client) { + GsmClientPrivate *priv = gsm_client_get_instance_private (client); + g_return_val_if_fail (GSM_IS_CLIENT (client), GSM_CLIENT_UNREGISTERED); - return client->priv->status; + return priv->status; } guint diff --git a/gnome-session/gsm-client.h b/gnome-session/gsm-client.h index 78cb15d8..d3feba90 100644 --- a/gnome-session/gsm-client.h +++ b/gnome-session/gsm-client.h @@ -27,18 +27,12 @@ G_BEGIN_DECLS #define GSM_TYPE_CLIENT (gsm_client_get_type ()) -#define GSM_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_CLIENT, GsmClient)) -#define GSM_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_CLIENT, GsmClientClass)) -#define GSM_IS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_CLIENT)) -#define GSM_IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_CLIENT)) -#define GSM_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_CLIENT, GsmClientClass)) +G_DECLARE_DERIVABLE_TYPE (GsmClient, gsm_client, GSM, CLIENT, GObject) typedef struct _GsmApp GsmApp; typedef struct _GsmClient GsmClient; typedef struct _GsmClientClass GsmClientClass; -typedef struct GsmClientPrivate GsmClientPrivate; - typedef enum { GSM_CLIENT_UNREGISTERED = 0, GSM_CLIENT_REGISTERED, @@ -59,12 +53,6 @@ typedef enum { GSM_CLIENT_END_SESSION_FLAG_LAST = 1 << 2 } GsmClientEndSessionFlag; -struct _GsmClient -{ - GObject parent; - GsmClientPrivate *priv; -}; - struct _GsmClientClass { GObjectClass parent_class; @@ -106,8 +94,6 @@ typedef enum #define GSM_CLIENT_ERROR gsm_client_error_quark () GQuark gsm_client_error_quark (void); -GType gsm_client_get_type (void) G_GNUC_CONST; - const char *gsm_client_peek_id (GsmClient *client); |