diff options
Diffstat (limited to 'src/xdmcp-session.c')
-rw-r--r-- | src/xdmcp-session.c | 74 |
1 files changed, 50 insertions, 24 deletions
diff --git a/src/xdmcp-session.c b/src/xdmcp-session.c index 10724119..54b90d99 100644 --- a/src/xdmcp-session.c +++ b/src/xdmcp-session.c @@ -10,16 +10,35 @@ */ #include "xdmcp-session.h" -#include "xdmcp-session-private.h" +#include "x-authority.h" + +typedef struct +{ + guint16 id; + + GInetAddress *address; + + guint inactive_timeout; + + XAuthority *authority; + + guint16 display_number; + + gchar *display_class; +} XDMCPSessionPrivate; G_DEFINE_TYPE_WITH_PRIVATE (XDMCPSession, xdmcp_session, G_TYPE_OBJECT) XDMCPSession * -xdmcp_session_new (guint16 id) +xdmcp_session_new (guint16 id, GInetAddress *address, guint16 display_number, XAuthority *authority) { XDMCPSession *self = g_object_new (XDMCP_SESSION_TYPE, NULL); + XDMCPSessionPrivate *priv = xdmcp_session_get_instance_private (self); - self->priv->id = id; + priv->id = id; + priv->address = g_object_ref (address); + priv->display_number = display_number; + priv->authority = g_object_ref (authority); return self; } @@ -27,62 +46,69 @@ xdmcp_session_new (guint16 id) guint16 xdmcp_session_get_id (XDMCPSession *session) { + XDMCPSessionPrivate *priv = xdmcp_session_get_instance_private (session); g_return_val_if_fail (session != NULL, 0); - return session->priv->id; + return priv->id; } -const gchar * -xdmcp_session_get_manufacturer_display_id (XDMCPSession *session) +GInetAddress * +xdmcp_session_get_address (XDMCPSession *session) { + XDMCPSessionPrivate *priv = xdmcp_session_get_instance_private (session); g_return_val_if_fail (session != NULL, NULL); - return session->priv->manufacturer_display_id; + return priv->address; } -GInetAddress * -xdmcp_session_get_address (XDMCPSession *session) +guint16 +xdmcp_session_get_display_number (XDMCPSession *session) { - g_return_val_if_fail (session != NULL, NULL); - return session->priv->address; + XDMCPSessionPrivate *priv = xdmcp_session_get_instance_private (session); + g_return_val_if_fail (session != NULL, 0); + return priv->display_number; } XAuthority * xdmcp_session_get_authority (XDMCPSession *session) { + XDMCPSessionPrivate *priv = xdmcp_session_get_instance_private (session); g_return_val_if_fail (session != NULL, NULL); - return session->priv->authority; + return priv->authority; } -guint16 -xdmcp_session_get_display_number (XDMCPSession *session) +void +xdmcp_session_set_display_class (XDMCPSession *session, const gchar *display_class) { - g_return_val_if_fail (session != NULL, 0); - return session->priv->display_number; + XDMCPSessionPrivate *priv = xdmcp_session_get_instance_private (session); + g_return_if_fail (session != NULL); + g_free (priv->display_class); + priv->display_class = g_strdup (display_class); } const gchar * xdmcp_session_get_display_class (XDMCPSession *session) { + XDMCPSessionPrivate *priv = xdmcp_session_get_instance_private (session); g_return_val_if_fail (session != NULL, NULL); - return session->priv->display_class; + return priv->display_class; } static void xdmcp_session_init (XDMCPSession *session) { - session->priv = G_TYPE_INSTANCE_GET_PRIVATE (session, XDMCP_SESSION_TYPE, XDMCPSessionPrivate); - session->priv->manufacturer_display_id = g_strdup (""); - session->priv->display_class = g_strdup (""); + XDMCPSessionPrivate *priv = xdmcp_session_get_instance_private (session); + + priv->display_class = g_strdup (""); } static void xdmcp_session_finalize (GObject *object) { XDMCPSession *self = XDMCP_SESSION (object); + XDMCPSessionPrivate *priv = xdmcp_session_get_instance_private (self); - g_clear_pointer (&self->priv->manufacturer_display_id, g_free); - g_clear_object (&self->priv->address); - g_clear_object (&self->priv->authority); - g_clear_pointer (&self->priv->display_class, g_free); + g_clear_object (&priv->address); + g_clear_object (&priv->authority); + g_clear_pointer (&priv->display_class, g_free); G_OBJECT_CLASS (xdmcp_session_parent_class)->finalize (object); } |