00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
#ifndef CACHEDIMAPJOB_H
00034
#define CACHEDIMAPJOB_H
00035
00036
#include "folderjob.h"
00037
#include <kio/job.h>
00038
#include <kio/global.h>
00039
00040
#include <qptrlist.h>
00041
#include <qvaluelist.h>
00042
#include <qcstring.h>
00043
00044
class KMFolderCachedImap;
00045
class KMAcctCachedImap;
00046
class KMMessage;
00047
00048
namespace KMail {
00049
00050
class CachedImapJob :
public FolderJob {
00051 Q_OBJECT
00052
public:
00054 struct MsgForDownload {
00055
MsgForDownload() : uid(0),flags(0),size(0) {}
00056
MsgForDownload( ulong _uid,
int _flags, ulong _size )
00057 : uid(_uid), flags(_flags), size(_size) {}
00058 ulong uid;
00059
int flags;
00060 ulong size;
00061 };
00062
00063
00064 CachedImapJob(
const QValueList<MsgForDownload>& msgs,
00065 JobType type = tGetMessage, KMFolderCachedImap* folder = 0 );
00066
00067 CachedImapJob(
const QPtrList<KMMessage>& msgs,
00068 JobType type, KMFolderCachedImap* folder=0 );
00069 CachedImapJob(
const QValueList<unsigned long>& msgs,
00070 JobType type, KMFolderCachedImap* folder=0 );
00071
00072 CachedImapJob(
const QValueList<KMFolderCachedImap*>& folders,
00073 JobType type = tAddSubfolders,
00074 KMFolderCachedImap* folder = 0 );
00075
00076 CachedImapJob(
const QString& string1, JobType type,
00077 KMFolderCachedImap* folder );
00078
00079 CachedImapJob(
const QStringList& folders, JobType type,
00080 KMFolderCachedImap* folder = 0 );
00081
00082 CachedImapJob( JobType type, KMFolderCachedImap* folder );
00083
00084
virtual ~CachedImapJob();
00085
00086
void setPassiveDestructor(
bool passive ) { mPassiveDestructor = passive; }
00087
bool passiveDestructor() {
return mPassiveDestructor; }
00088
00089
protected:
00090
virtual void execute();
00091
virtual void expireMessages();
00092
virtual void deleteMessages(
const QString& uids );
00093
virtual void expungeFolder();
00094
virtual void checkUidValidity();
00095
virtual void renameFolder(
const QString &newName );
00096
00097
protected slots:
00098
virtual void slotGetNextMessage( KIO::Job *job = 0 );
00099
virtual void slotAddNextSubfolder( KIO::Job *job = 0 );
00100
virtual void slotPutNextMessage();
00101
virtual void slotPutMessageDataReq( KIO::Job *job, QByteArray &data );
00102
virtual void slotPutMessageResult( KIO::Job *job );
00103
virtual void slotDeleteResult( KIO::Job *job );
00104
virtual void slotDeleteNextFolder( KIO::Job *job = 0 );
00105
virtual void slotCheckUidValidityResult( KIO::Job *job );
00106
virtual void slotRenameFolderResult( KIO::Job *job );
00107
void slotProcessedSize( KIO::Job *, KIO::filesize_t processed );
00108
00109
private:
00110
void init();
00111
00112 KMFolderCachedImap *mFolder;
00113 KMAcctCachedImap *mAccount;
00114 QValueList<KMFolderCachedImap*> mFolderList;
00115 QValueList<MsgForDownload> mMsgsForDownload;
00116 QValueList<unsigned long> mSerNumMsgList;
00117 ulong mSentBytes;
00118 ulong mTotalBytes;
00119 QStringList mFolderPathList;
00120 KMMessage* mMsg;
00121 QString mString;
00122 QByteArray mData;
00123 };
00124
00125 }
00126
00127
#endif