From e3b89230f065c48c84b48c88edb6eb088374c487 Mon Sep 17 00:00:00 2001 From: zautrix Date: Sat, 03 Jul 2004 16:33:12 +0000 Subject: Initial revision --- (limited to 'kmicromail/libmailwrapper/abstractmail.h') diff --git a/kmicromail/libmailwrapper/abstractmail.h b/kmicromail/libmailwrapper/abstractmail.h new file mode 100644 index 0000000..e5d64a6 --- a/dev/null +++ b/kmicromail/libmailwrapper/abstractmail.h @@ -0,0 +1,72 @@ +#ifndef __abstract_mail_ +#define __abstract_mail_ + +#include "maildefines.h" + +#include "settings.h" + +#include +#include +#include "mailtypes.h" + +class IMAPwrapper; +class POP3wrapper; +class Folder; +class encodedString; +struct folderStat; + +class AbstractMail:public QObject +{ + Q_OBJECT +public: + AbstractMail(){}; + virtual ~AbstractMail(){} + virtual QValueList >* listFolders()=0; + virtual void listMessages(const QString & mailbox,QValueList&target )=0; + virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX")=0; + virtual RecBodyP fetchBody(const RecMailP&mail)=0; + virtual QString fetchTextPart(const RecMailP&mail,const RecPartP&part)=0; + virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPartP&part)=0; + virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPartP&part)=0; + virtual encodedString* fetchRawBody(const RecMailP&mail)=0; + + virtual void deleteMail(const RecMailP&mail)=0; + virtual void answeredMail(const RecMailP&mail)=0; + virtual int deleteAllMail(const Opie::Core::OSmartPointer&)=0; + virtual void deleteMails(const QString & FolderName,const QValueList >&target); + virtual int deleteMbox(const Opie::Core::OSmartPointer&)=0; + virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0; + + virtual void mvcpAllMails(const Opie::Core::OSmartPointer&fromFolder, + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); + virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); + + virtual void cleanMimeCache(){}; + /* mail box methods */ + /* parameter is the box to create. + * if the implementing subclass has prefixes, + * them has to be appended automatic. + */ + virtual int createMbox(const QString&,const Opie::Core::OSmartPointer&parentfolder=0, + const QString& delemiter="/",bool getsubfolder=false); + virtual void logout()=0; + + static AbstractMail* getWrapper(IMAPaccount *a); + static AbstractMail* getWrapper(POP3account *a); + static AbstractMail* getWrapper(NNTPaccount *a); + /* mbox only! */ + static AbstractMail* getWrapper(const QString&a,const QString&name="Local Folders"); + static AbstractMail* getWrapper(Account*a); + + static QString defaultLocalfolder(); + static QString draftFolder(); + + virtual MAILLIB::ATYPE getType()const=0; + virtual const QString&getName()const=0; + +protected: + static encodedString*decode_String(const encodedString*text,const QString&enc); + static QString convert_String(const char*text); + static QString gen_attachment_id(); +}; +#endif -- cgit v0.9.0.2