00001 #ifndef __MH_WRAPPER_H
00002 #define __MH_WRAPPER_H
00003
00004 #include "maildefines.h"
00005
00006 #include "genericwrapper.h"
00007 #include <qstring.h>
00008
00009 class encodedString;
00010 struct mailmbox_folder;
00011 namespace Opie {namespace Core {class OProcess;}}
00012
00013 class MHwrapper : public Genericwrapper
00014 {
00015 Q_OBJECT
00016 public:
00017 MHwrapper(const QString & dir,const QString&name);
00018 virtual ~MHwrapper();
00019
00020 virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target );
00021 virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders();
00022 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
00023
00024 virtual void deleteMail(const RecMailP&mail);
00025 virtual void answeredMail(const RecMailP&mail);
00026 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
00027 virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,
00028 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
00029
00030 virtual int createMbox(const QString&folder,const Opie::Core::OSmartPointer<Folder>&f=0,
00031 const QString&d="",bool s=false);
00032 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&);
00033
00034 virtual void storeMessage(const char*msg,size_t length, const QString&folder);
00035
00036 virtual RecBodyP fetchBody( const RecMailP &mail );
00037 static void mbox_progress( size_t current, size_t maximum );
00038
00039 virtual encodedString* fetchRawBody(const RecMailP&mail);
00040 virtual void deleteMails(const QString & FolderName,const QValueList<Opie::Core::OSmartPointer<RecMail> > &target);
00041 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&);
00042 virtual MAILLIB::ATYPE getType()const;
00043 virtual const QString&getName()const;
00044
00045 public slots:
00046
00047 virtual void oprocessStderr(Opie::Core::OProcess*, char *buffer, int );
00048 virtual void processEnded(Opie::Core::OProcess *);
00049 protected:
00050 QString buildPath(const QString&p);
00051 QString MHPath;
00052 QString MHName;
00053
00054 void init_storage();
00055 void clean_storage();
00056
00057 bool removeMboxfailed;
00058 };
00059
00060 #endif