summaryrefslogtreecommitdiff
path: root/noncore/comm/keypebble/krfblogin.h
Side-by-side diff
Diffstat (limited to 'noncore/comm/keypebble/krfblogin.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/comm/keypebble/krfblogin.h62
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
+