cachedimapjob.h
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
This file is part of the documentation for kmail Library Version 3.2.2.