]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blob - src/xdmcp-session.c
Update vt ioctl usage
[sojka/lightdm.git] / src / xdmcp-session.c
1 /*
2  * Copyright (C) 2010-2011 Robert Ancell.
3  * Author: Robert Ancell <robert.ancell@canonical.com>
4  *
5  * This program is free software: you can redistribute it and/or modify it under
6  * the terms of the GNU General Public License as published by the Free Software
7  * Foundation, either version 3 of the License, or (at your option) any later
8  * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
9  * license.
10  */
11
12 #include "xdmcp-session.h"
13 #include "xdmcp-session-private.h"
14
15 G_DEFINE_TYPE (XDMCPSession, xdmcp_session, G_TYPE_OBJECT);
16
17 XDMCPSession *
18 xdmcp_session_new (guint16 id)
19 {
20     XDMCPSession *self = g_object_new (XDMCP_SESSION_TYPE, NULL);
21
22     self->priv->id = id;
23
24     return self;
25 }
26
27 guint16
28 xdmcp_session_get_id (XDMCPSession *session)
29 {
30     g_return_val_if_fail (session != NULL, 0);
31     return session->priv->id;
32 }
33
34 const gchar *
35 xdmcp_session_get_manufacturer_display_id (XDMCPSession *session)
36 {
37     g_return_val_if_fail (session != NULL, NULL);
38     return session->priv->manufacturer_display_id;
39 }
40
41 GInetAddress *
42 xdmcp_session_get_address (XDMCPSession *session)
43 {
44     g_return_val_if_fail (session != NULL, NULL);
45     return session->priv->address;
46 }
47
48 XAuthority *
49 xdmcp_session_get_authority (XDMCPSession *session)
50 {
51     g_return_val_if_fail (session != NULL, NULL);
52     return session->priv->authority;
53 }
54
55 guint16
56 xdmcp_session_get_display_number (XDMCPSession *session)
57 {
58     g_return_val_if_fail (session != NULL, 0);
59     return session->priv->display_number;
60 }
61
62 const gchar *
63 xdmcp_session_get_display_class (XDMCPSession *session)
64 {
65     g_return_val_if_fail (session != NULL, NULL);
66     return session->priv->display_class;
67 }
68
69 static void
70 xdmcp_session_init (XDMCPSession *session)
71 {
72     session->priv = G_TYPE_INSTANCE_GET_PRIVATE (session, XDMCP_SESSION_TYPE, XDMCPSessionPrivate);
73     session->priv->manufacturer_display_id = g_strdup ("");
74     session->priv->display_class = g_strdup ("");
75 }
76
77 static void
78 xdmcp_session_finalize (GObject *object)
79 {
80     XDMCPSession *self = XDMCP_SESSION (object);
81
82     g_free (self->priv->manufacturer_display_id);
83     g_clear_object (&self->priv->address);
84     g_clear_object (&self->priv->authority);
85     g_free (self->priv->display_class);
86
87     G_OBJECT_CLASS (xdmcp_session_parent_class)->finalize (object);
88 }
89
90 static void
91 xdmcp_session_class_init (XDMCPSessionClass *klass)
92 {
93     GObjectClass *object_class = G_OBJECT_CLASS (klass);
94
95     object_class->finalize = xdmcp_session_finalize;
96
97     g_type_class_add_private (klass, sizeof (XDMCPSessionPrivate));
98 }