struct DisplayServerPrivate
{
- /* Unique name for this display server */
- gchar *name;
-
/* TRUE when started */
gboolean is_ready;
static void display_server_logger_iface_init (LoggerInterface *iface);
G_DEFINE_TYPE_WITH_CODE (DisplayServer, display_server, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (
- LOGGER_TYPE, display_server_logger_iface_init));
-
-void
-display_server_set_name (DisplayServer *server, const gchar *name)
-{
- g_return_if_fail (server != NULL);
- g_free (server->priv->name);
- server->priv->name = g_strdup (name);
-}
-
-const gchar *
-display_server_get_name (DisplayServer *server)
-{
- g_return_val_if_fail (server != NULL, NULL);
- return server->priv->name;
-}
+ G_IMPLEMENT_INTERFACE (LOGGER_TYPE, display_server_logger_iface_init));
const gchar *
display_server_get_session_type (DisplayServer *server)
server->priv = G_TYPE_INSTANCE_GET_PRIVATE (server, DISPLAY_SERVER_TYPE, DisplayServerPrivate);
}
-static void
-display_server_finalize (GObject *object)
-{
- DisplayServer *self = DISPLAY_SERVER (object);
-
- g_free (self->priv->name);
-
- G_OBJECT_CLASS (display_server_parent_class)->finalize (object);
-}
-
static void
display_server_class_init (DisplayServerClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
klass->get_parent = display_server_real_get_parent;
klass->get_can_share = display_server_real_get_can_share;
klass->get_vt = display_server_real_get_vt;
klass->connect_session = display_server_real_connect_session;
klass->disconnect_session = display_server_real_disconnect_session;
klass->stop = display_server_real_stop;
- object_class->finalize = display_server_finalize;
g_type_class_add_private (klass, sizeof (DisplayServerPrivate));
static gint
display_server_real_logprefix (Logger *self, gchar *buf, gulong buflen)
{
- DisplayServer *server = DISPLAY_SERVER (self);
- const gchar *name = display_server_get_name (server);
- if (name)
- return g_snprintf (buf, buflen, "DisplayServer %s: ", name);
- else
- return g_snprintf (buf, buflen, "DisplayServer: ");
+ return g_snprintf (buf, buflen, "DisplayServer: ");
}
static void
GType display_server_get_type (void);
-void display_server_set_name (DisplayServer *server, const gchar *name);
-
-const gchar *display_server_get_name (DisplayServer *server);
-
const gchar *display_server_get_session_type (DisplayServer *server);
DisplayServer *display_server_get_parent (DisplayServer *server);
int next_greeter_id;
};
-G_DEFINE_TYPE (UnitySystemCompositor, unity_system_compositor, DISPLAY_SERVER_TYPE);
+static void unity_system_compositor_logger_iface_init (LoggerInterface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (UnitySystemCompositor, unity_system_compositor, DISPLAY_SERVER_TYPE,
+ G_IMPLEMENT_INTERFACE (LOGGER_TYPE, unity_system_compositor_logger_iface_init));
typedef enum
{
g_type_class_add_private (klass, sizeof (UnitySystemCompositorPrivate));
}
+
+static gint
+unity_system_compositor_real_logprefix (Logger *self, gchar *buf, gulong buflen)
+{
+ return g_snprintf (buf, buflen, "Unity System Compositor: ");
+}
+
+static void
+unity_system_compositor_logger_iface_init (LoggerInterface *iface)
+{
+ iface->logprefix = &unity_system_compositor_real_logprefix;
+}
gchar *background;
};
-G_DEFINE_TYPE (XServerLocal, x_server_local, X_SERVER_TYPE);
+static void x_server_local_logger_iface_init (LoggerInterface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (XServerLocal, x_server_local, X_SERVER_TYPE,
+ G_IMPLEMENT_INTERFACE (LOGGER_TYPE, x_server_local_logger_iface_init));
static gchar *version = NULL;
static guint version_major = 0, version_minor = 0;
XServerLocal *
x_server_local_new (void)
{
- XServerLocal *self;
- gchar *name;
-
- self = g_object_new (X_SERVER_LOCAL_TYPE, NULL);
-
- name = g_strdup_printf ("x-%d", x_server_get_display_number (X_SERVER (self)));
- display_server_set_name (DISPLAY_SERVER (self), name);
- g_free (name);
-
- return self;
+ return g_object_new (X_SERVER_LOCAL_TYPE, NULL);
}
void
g_signal_connect (server->priv->x_server_process, PROCESS_SIGNAL_STOPPED, G_CALLBACK (stopped_cb), server);
/* Setup logging */
- filename = g_strdup_printf ("%s.log", display_server_get_name (display_server));
+ filename = g_strdup_printf ("x-%d.log", x_server_get_display_number (X_SERVER (server)));
dir = config_get_string (config_get_instance (), "LightDM", "log-directory");
log_file = g_build_filename (dir, filename, NULL);
backup_logs = config_get_boolean (config_get_instance (), "LightDM", "backup-logs");
g_type_class_add_private (klass, sizeof (XServerLocalPrivate));
}
+
+static gint
+x_server_local_real_logprefix (Logger *self, gchar *buf, gulong buflen)
+{
+ XServerLocal *server = X_SERVER_LOCAL (self);
+ return g_snprintf (buf, buflen, "XServer %d: ", server->priv->display_number);
+}
+
+static void
+x_server_local_logger_iface_init (LoggerInterface *iface)
+{
+ iface->logprefix = &x_server_local_real_logprefix;
+}
XServerRemote *
x_server_remote_new (const gchar *hostname, guint number, XAuthority *authority)
{
- XServerRemote *self = g_object_new (X_SERVER_REMOTE_TYPE, NULL);
- gchar *name;
+ XServerRemote *server = g_object_new (X_SERVER_REMOTE_TYPE, NULL);
- self->priv->display_number = number;
+ server->priv->display_number = number;
- x_server_set_hostname (X_SERVER (self), hostname);
- x_server_set_authority (X_SERVER (self), authority);
+ x_server_set_hostname (X_SERVER (server), hostname);
+ x_server_set_authority (X_SERVER (server), authority);
- name = g_strdup_printf ("x-%s-%d", hostname, number);
- display_server_set_name (DISPLAY_SERVER (self), name);
- g_free (name);
-
- return self;
+ return server;
}
static guint
x_server_xmir_new (UnitySystemCompositor *compositor)
{
XServerXmir *server;
- gchar *name;
server = g_object_new (X_SERVER_XMIR_TYPE, NULL);
x_server_local_set_command (X_SERVER_LOCAL (server), "Xmir");
server->priv->compositor = g_object_ref (compositor);
g_signal_connect (compositor, DISPLAY_SERVER_SIGNAL_READY, G_CALLBACK (compositor_ready_cb), server);
g_signal_connect (compositor, DISPLAY_SERVER_SIGNAL_STOPPED, G_CALLBACK (compositor_stopped_cb), server);
-
- name = g_strdup_printf ("x-%d", x_server_get_display_number (X_SERVER (server)));
- display_server_set_name (DISPLAY_SERVER (server), name);
- g_free (name);
-
return server;
}
XServerXVNC *
x_server_xvnc_new (void)
{
- XServerXVNC *self = g_object_new (X_SERVER_XVNC_TYPE, NULL);
- gchar *name;
+ XServerXVNC *server = g_object_new (X_SERVER_XVNC_TYPE, NULL);
- name = g_strdup_printf ("xvnc-%d", x_server_get_display_number (X_SERVER (self)));
- display_server_set_name (DISPLAY_SERVER (self), name);
- g_free (name);
-
- x_server_local_set_command (X_SERVER_LOCAL (self), "Xvnc");
+ x_server_local_set_command (X_SERVER_LOCAL (server), "Xvnc");
- return self;
+ return server;
}
void
x_server_xvnc_set_socket (XServerXVNC *server, int fd)