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 #ifndef COMPACTIONJOB_H
00029 #define COMPACTIONJOB_H
00030
00031 #include "jobscheduler.h"
00032 #include <tqstringlist.h>
00033
00034 namespace KMail {
00035
00039 class MboxCompactionJob : public ScheduledJob
00040 {
00041 Q_OBJECT
00042
00043 public:
00045 MboxCompactionJob( KMFolder* folder, bool immediate );
00046 virtual ~MboxCompactionJob();
00047
00048 int executeNow( bool silent );
00049 virtual void execute() { executeNow( false ); }
00050 virtual void kill();
00051
00052 private slots:
00053 void slotDoWork();
00054
00055 private:
00056
00057 TQString realLocation() const;
00058 void done( int rc );
00059
00060 private:
00061 TQTimer mTimer;
00062 TQString mTempName;
00063 FILE *mTmpFile;
00064 off_t mOffset;
00065 int mCurrentIndex;
00066 bool mFolderOpen;
00067 bool mSilent;
00068 };
00069
00073 class MaildirCompactionJob : public ScheduledJob
00074 {
00075 Q_OBJECT
00076
00077 public:
00079 MaildirCompactionJob( KMFolder* folder, bool immediate );
00080 virtual ~MaildirCompactionJob();
00081
00082 int executeNow( bool silent );
00083 virtual void execute() { executeNow( false ); }
00084 virtual void kill();
00085
00086 private slots:
00087 void slotDoWork();
00088
00089 private:
00090 void done( int rc );
00091
00092 private:
00093 TQTimer mTimer;
00094 TQStringList mEntryList;
00095 int mCurrentIndex;
00096 bool mFolderOpen;
00097 bool mSilent;
00098 };
00099
00101 class ScheduledCompactionTask : public ScheduledTask
00102 {
00103 public:
00106 ScheduledCompactionTask( KMFolder* folder, bool immediate )
00107 : ScheduledTask( folder, immediate ) {}
00108 virtual ~ScheduledCompactionTask() {}
00109 virtual ScheduledJob* run();
00110 virtual int taskTypeId() const { return 2; }
00111 };
00112
00113 }
00114
00115 #endif
00116