--- /dev/null
-
- struct MirSessionPrivate
- {
- /* Mir server information */
- MirServer *mir_server;
- };
+/*
+ * Copyright (C) 2010-2011 Robert Ancell.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+#include "mir-session.h"
- mir_session_new (MirServer *mir_server)
++#include "mir-server.h"
+
+G_DEFINE_TYPE (MirSession, mir_session, SESSION_TYPE);
+
+MirSession *
- session->priv->mir_server = g_object_ref (mir_server);
++mir_session_new (void)
+{
+ MirSession *session;
+
+ session = g_object_new (MIR_SESSION_TYPE, NULL);
- mir_session_init (MirSession *session)
++ session_set_log_file (SESSION (session), ".session-errors");
+
+ return session;
+}
+
+static void
- session->priv = G_TYPE_INSTANCE_GET_PRIVATE (session, MIR_SESSION_TYPE, MirSessionPrivate);
++mir_session_set_display_server (Session *session, DisplayServer *display_server)
+{
- mir_session_finalize (GObject *object)
++ MirServer *mir_server;
++
++ mir_server = MIR_SERVER (display_server);
++
++ SESSION_CLASS (mir_session_parent_class)->set_display_server (session, display_server);
+}
+
+static void
- MirSession *self;
-
- self = MIR_SESSION (object);
-
- if (self->priv->mir_server)
- g_object_unref (self->priv->mir_server);
-
- G_OBJECT_CLASS (mir_session_parent_class)->finalize (object);
++mir_session_init (MirSession *session)
+{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- object_class->finalize = mir_session_finalize;
+}
+
+static void
+mir_session_class_init (MirSessionClass *klass)
+{
- g_type_class_add_private (klass, sizeof (MirSessionPrivate));
++ SessionClass *session_class = SESSION_CLASS (klass);
+
++ session_class->set_display_server = mir_session_set_display_server;
+}
--- /dev/null
- #include "mir-server.h"
+/*
+ * Copyright (C) 2010-2011 Robert Ancell.
+ * Author: Robert Ancell <robert.ancell@canonical.com>
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+#ifndef MIR_SESSION_H_
+#define MIR_SESSION_H_
+
+#include "session.h"
- MirSession *mir_session_new (MirServer *mir_server);
+
+G_BEGIN_DECLS
+
+#define MIR_SESSION_TYPE (mir_session_get_type())
+#define MIR_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MIR_SESSION_TYPE, MirSession))
+
+typedef struct MirSessionPrivate MirSessionPrivate;
+
+typedef struct
+{
+ Session parent_instance;
+ MirSessionPrivate *priv;
+} MirSession;
+
+typedef struct
+{
+ SessionClass parent_class;
+} MirSessionClass;
+
+GType mir_session_get_type (void);
+
++MirSession *mir_session_new (void);
+
+G_END_DECLS
+
+#endif /* MIR_SESSION_H_ */