1 /* 2 ** Copyright 2003, Double Precision Inc. 3 ** 4 ** See COPYING for distribution information. 5 */ 6 #ifndef libmail_nntplogin_H 7 #define libmail_nntplogin_H 8 9 #include "libmail_config.h" 10 11 #include "nntp.H" 12 #include "logininfo.H" 13 14 LIBMAIL_START 15 16 // 17 // Superclass of all NNTP tasks that must have a logged in connection 18 // 19 20 class mail::nntp::LoggedInTask : public mail::nntp::Task, 21 private loginInfo::callbackTarget { 22 23 void (mail::nntp::LoggedInTask::*responseFunc)(const char *); 24 25 bool loggingIn; 26 27 public: 28 LoggedInTask(callback *callbackArg, nntp &myserverArg); 29 ~LoggedInTask(); 30 31 void serverResponse(const char *message); 32 void installedTask(); 33 34 virtual void loggedIn()=0; 35 virtual void processLine(const char *message)=0; 36 37 void fail(std::string); 38 private: 39 void doFwdResponse(const char *); 40 41 void doGreeting(const char *); 42 43 void authinfoUser(); 44 void authinfoPwd(); 45 46 void authCompleted(); 47 48 void doAuthUser(const char *); 49 void doAuthPwd(const char *); 50 void doModeReader1(const char *); 51 void doModeReader2(const char *); 52 53 void gotPassword(std::string); 54 55 void loginInfoCallback(std::string); 56 void loginInfoCallbackCancel(); 57 58 59 void doTryAgain(const char *); 60 61 void loginCompleted(); 62 void loginCompleted2(); 63 }; 64 65 LIBMAIL_END 66 #endif 67