00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef SBUILD_AUTH_PAM_CONV_H
00020 #define SBUILD_AUTH_PAM_CONV_H
00021
00022 #include <sbuild/sbuild-auth-pam-message.h>
00023 #include <sbuild/sbuild-error.h>
00024 #include <sbuild/sbuild-tr1types.h>
00025
00026 #include <vector>
00027
00028 #include <security/pam_appl.h>
00029
00030 namespace sbuild
00031 {
00032
00033 class auth_pam;
00034
00057 class auth_pam_conv
00058 {
00059 public:
00061 typedef std::vector<auth_pam_message> message_list;
00063 typedef std::tr1::shared_ptr<auth_pam> auth_ptr;
00065 typedef std::tr1::weak_ptr<auth_pam> weak_auth_ptr;
00067 typedef std::tr1::shared_ptr<auth_pam_conv> ptr;
00068
00069 protected:
00071 auth_pam_conv ();
00072
00073 public:
00075 virtual ~auth_pam_conv ();
00076
00082 virtual auth_ptr
00083 get_auth () = 0;
00084
00090 virtual void
00091 set_auth (auth_ptr auth) = 0;
00092
00098 virtual time_t
00099 get_warning_timeout () = 0;
00100
00106 virtual void
00107 set_warning_timeout (time_t timeout) = 0;
00108
00115 virtual time_t
00116 get_fatal_timeout () = 0;
00117
00124 virtual void
00125 set_fatal_timeout (time_t timeout) = 0;
00126
00141 virtual void
00142 conversation (message_list& messages) = 0;
00143 };
00144
00145 }
00146
00147 #endif
00148
00149
00150
00151
00152
00153