kmail Library API Documentation

compactionjob.h

00001 
00028 #ifndef COMPACTIONJOB_H
00029 #define COMPACTIONJOB_H
00030 
00031 #include "jobscheduler.h"
00032 #include <qstringlist.h>
00033 
00034 namespace KMail {
00035 
00039 class MboxCompactionJob : public ScheduledJob
00040 {
00041   Q_OBJECT
00042 public:
00044   MboxCompactionJob( KMFolder* folder, bool immediate );
00045   virtual ~MboxCompactionJob();
00046 
00047   int executeNow( bool silent );
00048   virtual void execute() { executeNow( false ); }
00049   virtual void kill();
00050 
00051 private slots:
00052   void slotDoWork();
00053 
00054 private:
00055   // Real folder location, != location in case of symlinks
00056   QString realLocation() const;
00057   void done( int rc );
00058 
00059 private:
00060   QTimer mTimer;
00061   QString mTempName;
00062   FILE *mTmpFile;
00063   off_t mOffset;
00064   int mCurrentIndex;
00065   bool mFolderOpen;
00066   bool mSilent;
00067 };
00068 
00072 class MaildirCompactionJob : public ScheduledJob
00073 {
00074   Q_OBJECT
00075 public:
00077   MaildirCompactionJob( KMFolder* folder, bool immediate );
00078   virtual ~MaildirCompactionJob();
00079 
00080   int executeNow( bool silent );
00081   virtual void execute() { executeNow( false ); }
00082   virtual void kill();
00083 
00084 private slots:
00085   void slotDoWork();
00086 
00087 private:
00088   void done( int rc );
00089 
00090 private:
00091   QTimer mTimer;
00092   QStringList mEntryList;
00093   int mCurrentIndex;
00094   bool mFolderOpen;
00095   bool mSilent;
00096 };
00097 
00099 class ScheduledCompactionTask : public ScheduledTask
00100 {
00101 public:
00104   ScheduledCompactionTask( KMFolder* folder, bool immediate )
00105     : ScheduledTask( folder, immediate ) {}
00106   virtual ~ScheduledCompactionTask() {}
00107   virtual ScheduledJob* run();
00108   virtual int taskTypeId() const { return 2; }
00109 };
00110 
00111 } // namespace
00112 
00113 #endif /* COMPACTIONJOB_H */
00114 
KDE Logo
This file is part of the documentation for kmail Library Version 3.3.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Aug 23 18:21:05 2007 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003