Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

abstractmail.h

Go to the documentation of this file.
00001 #ifndef __abstract_mail_
00002 #define __abstract_mail_
00003 
00004 #include "maildefines.h"
00005 
00006 #include "settings.h"
00007 
00008 #include <qobject.h>
00009 #include <opie2/osmartpointer.h>
00010 #include "mailtypes.h"
00011 
00012 class IMAPwrapper;
00013 class POP3wrapper;
00014 class Folder;
00015 class encodedString;
00016 struct folderStat;
00017 
00018 class AbstractMail:public QObject
00019 {
00020     Q_OBJECT
00021 public:
00022     AbstractMail(){};
00023     virtual ~AbstractMail(){}
00024     virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders()=0;
00025     virtual void listMessages(const QString & mailbox,QValueList<RecMailP>&target )=0;
00026     virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX")=0;
00027     virtual RecBodyP fetchBody(const RecMailP&mail)=0;
00028     virtual QString fetchTextPart(const RecMailP&mail,const RecPartP&part)=0;
00029     virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPartP&part)=0;
00030     virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPartP&part)=0;
00031     virtual encodedString* fetchRawBody(const RecMailP&mail)=0;
00032 
00033     virtual void deleteMail(const RecMailP&mail)=0;
00034     virtual void answeredMail(const RecMailP&mail)=0;
00035     virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&)=0;
00036     virtual void deleteMails(const QString & FolderName,const QValueList<Opie::Core::OSmartPointer<RecMail> >&target);
00037     virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&)=0;
00038     virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0;
00039 
00040     virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,
00041         const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
00042     virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
00043 
00044     virtual void cleanMimeCache(){};
00045     /* mail box methods */
00046     /* parameter is the box to create.
00047      * if the implementing subclass has prefixes,
00048      * them has to be appended automatic.
00049      */
00050     virtual int createMbox(const QString&,const Opie::Core::OSmartPointer<Folder>&parentfolder=0,
00051         const QString& delemiter="/",bool getsubfolder=false);
00052     virtual void logout()=0;
00053 
00054     static AbstractMail* getWrapper(IMAPaccount *a);
00055     static AbstractMail* getWrapper(POP3account *a);
00056     static AbstractMail* getWrapper(NNTPaccount *a);
00057     /* mbox only! */
00058     static AbstractMail* getWrapper(const QString&a,const QString&name="Local Folders");
00059     static AbstractMail* getWrapper(Account*a);
00060 
00061     static QString defaultLocalfolder();
00062     static QString draftFolder();
00063 
00064     virtual MAILLIB::ATYPE getType()const=0;
00065     virtual const QString&getName()const=0;
00066 
00067 protected:
00068     static encodedString*decode_String(const encodedString*text,const QString&enc);
00069     static QString convert_String(const char*text);
00070     static QString gen_attachment_id();
00071 };
00072 #endif

Generated on Sat Nov 5 16:17:37 2005 for OPIE by  doxygen 1.4.2