00001 #ifndef IMAPHANDLER_H
00002 #define IMAPHANDLER_H
00003
00004 #include <qobject.h>
00005
00006 #include "configfile.h"
00007
00008 class IMAPBase;
00009 class IMAPResponse;
00010
00011 class IMAPHandler : public QObject
00012 {
00013 Q_OBJECT
00014
00015 public:
00016 IMAPHandler(const Account &account);
00017
00018 QString iCapability();
00019 QString iNoop();
00020 QString iLogout();
00021
00022 QString iAuthenticate(const QString &mechanism);
00023 QString iLogin(const QString &user, const QString &pass);
00024
00025 QString iSelect(const QString &mailbox);
00026 QString iExamine(const QString &mailbox);
00027 QString iCreate(const QString &mailbox);
00028 QString iDelete(const QString &mailbox);
00029 QString iRename(const QString &mailbox, const QString &newMailbox);
00030
00031 QString iSubscribe(const QString &mailbox);
00032 QString iUnsubscribe(const QString &mailbox);
00033
00034 QString iList(const QString &reference, const QString &mailbox);
00035 QString iLsub(const QString &reference, const QString &mailbox);
00036
00037 QString iStatus(const QString &mailbox, const QString &items);
00038
00039 QString iAppend(const QString &mailbox, const QString &literal, const QString &flags = 0, const QString &datetime = 0);
00040
00041 QString iCheck();
00042 QString iClose();
00043 QString iExpunge();
00044
00045 QString iSearch(const QString &search, const QString &charset = 0);
00046
00047 QString iFetch(const QString &message, const QString &items);
00048
00049 QString iStore(const QString &message, const QString &items);
00050 QString iCopy(const QString &message, const QString &mailbox);
00051
00052 QString iUid(const QString &command, const QString &arguments);
00053
00054 QString iX(const QString &commandAtom, const QString &arguments);
00055
00056 signals:
00057 void gotResponse(IMAPResponse &response);
00058
00059 void IMAPLookingUpHost();
00060 void IMAPHostFound();
00061 void IMAPConnected();
00062 void IMAPDisconnected();
00063 void IMAPError(int err);
00064
00065 protected:
00066 void doLogin();
00067 QString escape(const QString &in);
00068 QString tag(bool count = true);
00069
00070 protected slots:
00071 void slotDataReceived(const QString &data);
00072 void slotLookingUpHost();
00073 void slotHostFound();
00074 void slotConnected();
00075 void slotDisconnected();
00076 void slotError(int err);
00077
00078 private:
00079 Account _account;
00080 IMAPBase *_ibase;
00081 unsigned int _tag;
00082 bool _ready, _loggingin, _loggedin;
00083
00084 };
00085
00086 #endif