kmail Library API Documentation

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   // Called by KMMsgBase::setStatus when status of a message has changed
00051   // required to keep the number unread messages variable current.
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 /*kmfoldermaildir_h*/
KDE Logo
This file is part of the documentation for kmail Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat May 1 11:37:27 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003