kmfoldermaildir.h
00001 #ifndef kmfoldermaildir_h
00002 #define kmfoldermaildir_h
00003
00004 #include "kmfolderindex.h"
00005
00006
00007 class KMFolderMaildir;
00008 namespace KMail {
00009 class FolderJob;
00010 class MaildirJob;
00011 class AttachmentStrategy;
00012 }
00013 using KMail::FolderJob;
00014 using KMail::MaildirJob;
00015 using KMail::AttachmentStrategy;
00016
00017 class KMFolderMaildir : public KMFolderIndex
00018 {
00019 Q_OBJECT
00020 friend class MaildirJob;
00021 public:
00025 KMFolderMaildir(KMFolderDir* parent=0, const QString& name=QString::null);
00026 virtual ~KMFolderMaildir();
00027
00029 virtual KMFolderType folderType() const { return KMFolderTypeMaildir; }
00030
00032 virtual QCString& getMsgString(int idx, QCString& mDest);
00033 virtual DwString getDwString(int idx);
00034
00037 virtual KMMessage* take(int idx);
00038
00045 virtual int addMsg(KMMessage* msg, int* index_return = 0);
00046
00048 virtual void removeMsg(int i, bool imapQuiet = FALSE);
00049
00050
00051
00052 virtual void msgStatusChanged( const KMMsgStatus oldStatus,
00053 const KMMsgStatus newStatus,
00054 int idx);
00055
00061 virtual int open();
00062
00063 virtual int canAccess();
00064
00066 virtual void sync();
00067
00070 virtual void close(bool force=FALSE);
00071
00075 virtual int create(bool imap = FALSE);
00076
00079 virtual int compact();
00080
00082 virtual bool isReadOnly() const { return false; }
00083
00084 virtual QCString protocol() const { return "maildir"; }
00085
00086 protected:
00087 virtual FolderJob* doCreateJob( KMMessage *msg, FolderJob::JobType jt, KMFolder *folder,
00088 QString partSpecifier, const AttachmentStrategy *as ) const;
00089 virtual FolderJob* doCreateJob( QPtrList<KMMessage>& msgList, const QString& sets,
00090 FolderJob::JobType jt, KMFolder *folder ) const;
00093 virtual KMMessage* readMsg(int idx);
00094
00098 virtual int removeContents();
00099
00103 virtual int expungeContents();
00104
00108 virtual int createIndexFromContents();
00109
00110 private:
00111 void readFileHeaderIntern(const QString& dir, const QString& file, KMMsgStatus status);
00112 QString constructValidFileName(QString& file, KMMsgStatus status);
00113 QString moveInternal(const QString& oldLoc, const QString& newLoc, KMMsgInfo* mi);
00114 QString moveInternal(const QString& oldLoc, const QString& newLoc, QString& aFileName, KMMsgStatus status);
00115 bool removeFile(const QString& filename);
00116
00122 virtual IndexStatus indexStatus();
00123
00124 QStrList mIdxToFileList;
00125 int mIdxCount;
00126 };
00127 #endif
This file is part of the documentation for kmail Library Version 3.2.2.