summaryrefslogtreecommitdiff
path: root/noncore/unsupported/mail2/libmail/imapbase.h
blob: 7697ffe4a2add0fe11e51e2f361f5d3eb239e0e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#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();
	void tryRead ( QString & );

private:
	Account _account;
	QString _data;
	QSocket *_socket;
	QStringList _commandQueue;
	bool _connected, _writingAllowed;
	QString _lasttag;
};

#endif