Diffstat (limited to 'noncore/comm/keypebble/krfblogin.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/comm/keypebble/krfblogin.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/noncore/comm/keypebble/krfblogin.h b/noncore/comm/keypebble/krfblogin.h new file mode 100644 index 0000000..5208210 --- a/dev/null +++ b/noncore/comm/keypebble/krfblogin.h @@ -0,0 +1,62 @@ +// -*- c++ -*- + +#ifndef KRFBLOGIN_H +#define KRFBLOGIN_H + +#include <qobject.h> + +class KRFBConnection; + +/** + * Handles logging into the RFB server. + * + * @version $Id$ + * @author Richard Moore, rich@kde.org + */ +class KRFBLogin : QObject +{ + Q_OBJECT + +public: + enum State { + AwaitingServerVersion, + AwaitingAuthScheme, + AwaitingChallenge, + WaitingForResponse, + Authenticated, + Ready, + Failed, + Error + }; + + KRFBLogin( KRFBConnection *con ); + ~KRFBLogin(); + + KRFBLogin::State state() const; + +protected: + void sendClientVersion(); + +protected slots: + void getPassword(); + void gotServerVersion(); + void gotAuthScheme(); + void gotChallenge(); + void gotAuthResult(); + void gotFailureReasonSize(); + +signals: + void passwordRequired( KRFBConnection * ); + void error( const QString & ); + void status( const QString & ); + +private: + KRFBConnection *con; + State currentState; + QCString versionString; + int serverMajor; + int serverMinor; +}; + +#endif // KRFBLOGIN_H + |