summaryrefslogtreecommitdiff
path: root/daemon/gdm-session.h
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2007-10-30 03:52:16 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2007-10-30 03:52:16 +0000
commitbecfcf5d1e774031b2091c100d3a5f508360789f (patch)
tree2de527ba903064de8405fa6e262a4559278201c6 /daemon/gdm-session.h
parent613d29b63282b97e0a7a35514e1989a854e8566f (diff)
downloadgdm-becfcf5d1e774031b2091c100d3a5f508360789f.tar.gz
Make SessionRelay and SessionDirect (was Session) implement a common
2007-10-29 William Jon McCann <mccann@jhu.edu> * daemon/Makefile.am: * daemon/gdm-factory-slave.c: (on_session_info), (on_session_problem), (on_session_info_query), (on_session_secret_info_query), (on_session_opened), (on_session_user_verified), (on_session_user_verification_error), (on_session_session_started), (create_product_display), (on_session_relay_disconnected), (on_session_relay_connected), (on_greeter_begin_verification), (on_greeter_begin_verification_for_user), (on_greeter_answer), (on_greeter_session_selected), (on_greeter_language_selected), (on_greeter_user_selected), (on_greeter_cancel), (gdm_factory_slave_start), (gdm_factory_slave_stop): * daemon/gdm-product-slave.c: (setup_server), (add_user_authorization), (setup_session), (on_session_user_verified), (on_relay_start_session), (on_relay_begin_verification), (on_relay_begin_verification_for_user), (on_relay_answer), (reset_session), (on_relay_open), (create_new_session), (on_relay_cancelled), (connect_to_session_relay), (gdm_product_slave_stop): * daemon/gdm-session-direct.c: (on_user_verification_error), (on_session_started), (on_session_startup_error), (on_session_exited), (gdm_session_direct_handle_verified), (gdm_session_direct_handle_verification_failed), (gdm_session_direct_handle_username_changed), (gdm_session_direct_handle_info_query), (gdm_session_direct_handle_secret_info_query), (gdm_session_direct_handle_info), (gdm_session_direct_handle_problem), (gdm_session_direct_handle_session_started), (gdm_session_direct_handle_startup_failed), (gdm_session_direct_handle_session_exited), (gdm_session_direct_handle_session_died), (handle_connection), (gdm_session_direct_init), (worker_exited), (worker_died), (gdm_session_direct_open), (send_begin_verification), (send_begin_verification_for_user), (gdm_session_direct_begin_verification), (gdm_session_direct_begin_verification_for_user), (is_prog_in_path), (get_session_command_for_file), (get_session_command), (open_ck_session), (setup_session_environment), (gdm_session_direct_start_session), (gdm_session_direct_close), (gdm_session_direct_answer_query), (gdm_session_direct_cancel), (gdm_session_direct_get_username), (gdm_session_direct_select_session), (gdm_session_direct_select_language), (gdm_session_direct_select_user), (_gdm_session_direct_set_display_name), (_gdm_session_direct_set_display_hostname), (_gdm_session_direct_set_display_device), (_gdm_session_direct_set_user_x11_authority_file), (_gdm_session_direct_set_display_is_local), (gdm_session_direct_set_property), (gdm_session_direct_get_property), (gdm_session_direct_dispose), (gdm_session_direct_finalize), (gdm_session_iface_init), (gdm_session_direct_class_init), (gdm_session_direct_new): * daemon/gdm-session-direct.h: * daemon/gdm-session-private.h: * daemon/gdm-session-relay.c: (gdm_session_relay_open), (gdm_session_relay_close), (gdm_session_relay_begin_verification), (gdm_session_relay_begin_verification_for_user), (gdm_session_relay_answer_query), (gdm_session_relay_select_session), (gdm_session_relay_select_language), (gdm_session_relay_select_user), (gdm_session_relay_cancel), (gdm_session_relay_start_session), (handle_info_query), (handle_secret_info_query), (handle_info), (handle_problem), (handle_user_verified), (handle_user_verification_error), (handle_session_started), (handle_session_stopped), (handle_opened), (handle_reset), (do_introspect), (handle_connection), (gdm_session_iface_init), (gdm_session_relay_class_init): * daemon/gdm-session-relay.h: * daemon/gdm-session.c: (gdm_session_get_type), (gdm_session_open), (gdm_session_close), (gdm_session_begin_verification), (gdm_session_begin_verification_for_user), (gdm_session_answer_query), (gdm_session_select_session), (gdm_session_select_language), (gdm_session_select_user), (gdm_session_cancel), (gdm_session_start_session), (gdm_session_class_init), (_gdm_session_user_verified), (_gdm_session_user_verification_error), (_gdm_session_info_query), (_gdm_session_secret_info_query), (_gdm_session_info), (_gdm_session_problem), (_gdm_session_session_started), (_gdm_session_session_startup_error), (_gdm_session_session_exited), (_gdm_session_session_died), (_gdm_session_opened), (_gdm_session_closed), (_gdm_session_selected_user_changed): * daemon/gdm-session.h: * daemon/gdm-simple-slave.c: (on_session_started), (on_session_exited), (on_session_died), (on_session_user_verified), (on_session_user_verification_error), (on_session_info), (on_session_problem), (on_session_info_query), (on_session_secret_info_query), (on_session_opened), (on_session_selected_user_changed), (create_new_session), (on_greeter_begin_verification), (on_greeter_begin_verification_for_user), (on_greeter_answer), (on_greeter_session_selected), (on_greeter_language_selected), (on_greeter_cancel), (on_greeter_connected), (gdm_simple_slave_stop), (gdm_simple_slave_init): * daemon/test-session.c: (on_open), (on_session_started), (on_session_exited), (on_session_died), (on_user_verified), (on_user_verification_error), (on_info_query), (on_info), (on_problem), (on_secret_info_query), (import_environment), (main): Make SessionRelay and SessionDirect (was Session) implement a common interface GdmSession. Push some code that lived in the simple and product slaves into the SessionDirect class. Using an interface has a few advantages besides ensuring consistency: makes it easier to do some abstraction in the slave classes, makes it possible to more easily implement other non-pam backends. Add a stub for a selected-user-changed signal from the session interface. This will be used to update the user selection in the greeter when the user is set from the backend. svn path=/trunk/; revision=5452
Diffstat (limited to 'daemon/gdm-session.h')
-rw-r--r--daemon/gdm-session.h105
1 files changed, 105 insertions, 0 deletions
diff --git a/daemon/gdm-session.h b/daemon/gdm-session.h
new file mode 100644
index 00000000..5a14f54b
--- /dev/null
+++ b/daemon/gdm-session.h
@@ -0,0 +1,105 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 William Jon McCann <mccann@jhu.edu>
+ *
+ * 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+
+#ifndef __GDM_SESSION_H
+#define __GDM_SESSION_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define GDM_TYPE_SESSION (gdm_session_get_type ())
+#define GDM_SESSION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_SESSION, GdmSession))
+#define GDM_SESSION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_SESSION, GdmSessionClass))
+#define GDM_IS_SESSION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_SESSION))
+#define GDM_SESSION_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GDM_TYPE_SESSION, GdmSessionIface))
+
+typedef struct _GdmSession GdmSession; /* Dummy typedef */
+typedef struct _GdmSessionIface GdmSessionIface;
+
+struct _GdmSessionIface
+{
+ GTypeInterface base_iface;
+
+ /* Methods */
+ void (* begin_verification) (GdmSession *session);
+ void (* begin_verification_for_user) (GdmSession *session,
+ const char *username);
+ void (* answer_query) (GdmSession *session,
+ const char *text);
+ void (* select_language) (GdmSession *session,
+ const char *text);
+ void (* select_session) (GdmSession *session,
+ const char *text);
+ void (* select_user) (GdmSession *session,
+ const char *text);
+ void (* open) (GdmSession *session);
+ void (* close) (GdmSession *session);
+ void (* cancel) (GdmSession *session);
+ void (* start_session) (GdmSession *session);
+
+ /* Signals */
+ void (* user_verified) (GdmSession *session);
+ void (* user_verification_error) (GdmSession *session,
+ const char *message);
+ void (* info_query) (GdmSession *session,
+ const char *query_text);
+ void (* secret_info_query) (GdmSession *session,
+ const char *query_text);
+ void (* info) (GdmSession *session,
+ const char *info);
+ void (* problem) (GdmSession *session,
+ const char *problem);
+ void (* session_started) (GdmSession *session);
+ void (* session_startup_error) (GdmSession *session,
+ const char *message);
+ void (* session_exited) (GdmSession *session,
+ int exit_code);
+ void (* session_died) (GdmSession *session,
+ int signal_number);
+ void (* opened) (GdmSession *session);
+ void (* closed) (GdmSession *session);
+ void (* selected_user_changed) (GdmSession *session,
+ const char *text);
+
+};
+
+GType gdm_session_get_type (void) G_GNUC_CONST;
+
+void gdm_session_begin_verification (GdmSession *session);
+void gdm_session_begin_verification_for_user (GdmSession *session,
+ const char *username);
+void gdm_session_answer_query (GdmSession *session,
+ const char *text);
+void gdm_session_select_session (GdmSession *session,
+ const char *session_name);
+void gdm_session_select_language (GdmSession *session,
+ const char *language);
+void gdm_session_select_user (GdmSession *session,
+ const char *username);
+void gdm_session_open (GdmSession *session);
+void gdm_session_close (GdmSession *session);
+void gdm_session_cancel (GdmSession *session);
+void gdm_session_start_session (GdmSession *session);
+
+G_END_DECLS
+
+#endif /* __GDM_SESSION_H */