00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef QXMPPINCOMINGCLIENT_H
00025 #define QXMPPINCOMINGCLIENT_H
00026
00027 #include "QXmppStream.h"
00028
00029 class QXmppIncomingClientPrivate;
00030
00033
00034 class QXmppPasswordChecker
00035 {
00036 public:
00038 enum Error {
00039 NoError = 0,
00040 AuthorizationError,
00041 TemporaryError,
00042 };
00043
00048 virtual Error checkPassword(const QString &username, const QString &password) = 0;
00049 virtual bool getPassword(const QString &username, QString &password);
00050 virtual bool hasGetPassword() const;
00051 };
00052
00056
00057 class QXmppIncomingClient : public QXmppStream
00058 {
00059 Q_OBJECT
00060
00061 public:
00062 QXmppIncomingClient(QSslSocket *socket, const QString &domain, QObject *parent = 0);
00063 ~QXmppIncomingClient();
00064
00065 bool isConnected() const;
00066 QString jid() const;
00067
00068 void setInactivityTimeout(int secs);
00069 void setPasswordChecker(QXmppPasswordChecker *checker);
00070
00071 signals:
00073 void elementReceived(const QDomElement &element);
00074
00075 protected:
00077 void handleStream(const QDomElement &element);
00078 void handleStanza(const QDomElement &element);
00080
00081 private slots:
00082 void slotTimeout();
00083
00084 private:
00085 Q_DISABLE_COPY(QXmppIncomingClient)
00086 QXmppIncomingClientPrivate* const d;
00087 };
00088
00089 #endif