summaryrefslogtreecommitdiff
path: root/noncore/unsupported/mail2/libmail/imapbase.h
Side-by-side diff
Diffstat (limited to 'noncore/unsupported/mail2/libmail/imapbase.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/mail2/libmail/imapbase.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/noncore/unsupported/mail2/libmail/imapbase.h b/noncore/unsupported/mail2/libmail/imapbase.h
new file mode 100644
index 0000000..e4a0b97
--- a/dev/null
+++ b/noncore/unsupported/mail2/libmail/imapbase.h
@@ -0,0 +1,52 @@
+#ifndef IMAPBASE_H
+#define IMAPBASE_H
+
+#include <qobject.h>
+
+#include "configfile.h"
+
+class QSocket;
+
+class IMAPBase : public QObject
+{
+ Q_OBJECT
+
+public:
+ IMAPBase(const Account &account);
+
+ enum Error { IMAPErrConnectionRefused, IMAPErrHostNotFound,
+ IMAPErrSocketRead, IMAPErrUnknownError,
+ IMAPErrLoginFailed };
+
+ void sendCommand(const QString &command);
+ void disconnect();
+
+signals:
+ void dataReceived(const QString &data);
+ void lookingUpHost();
+ void hostFound();
+ void connected();
+ void disconnected();
+ void error(int err);
+
+protected:
+ void makeConnect();
+
+protected slots:
+ void writeCommands();
+ void slotError(int error);
+ void slotHostFound();
+ void slotConnected();
+ void slotDisconnected();
+ void slotDataAvailiable();
+
+private:
+ Account _account;
+ QString _data;
+ QSocket *_socket;
+ QStringList _commandQueue;
+ bool _connected, _writingAllowed;
+
+};
+
+#endif