summaryrefslogtreecommitdiffabout
path: root/kmicromail/libmailwrapper/abstractmail.h
Unidiff
Diffstat (limited to 'kmicromail/libmailwrapper/abstractmail.h') (more/less context) (show whitespace changes)
-rw-r--r--kmicromail/libmailwrapper/abstractmail.h72
1 files changed, 72 insertions, 0 deletions
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 @@
1#ifndef __abstract_mail_
2#define __abstract_mail_
3
4#include "maildefines.h"
5
6#include "settings.h"
7
8#include <qobject.h>
9#include <opie2/osmartpointer.h>
10#include "mailtypes.h"
11
12class IMAPwrapper;
13class POP3wrapper;
14class Folder;
15class encodedString;
16struct folderStat;
17
18class AbstractMail:public QObject
19{
20 Q_OBJECT
21public:
22 AbstractMail(){};
23 virtual ~AbstractMail(){}
24 virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders()=0;
25 virtual void listMessages(const QString & mailbox,QValueList<RecMailP>&target )=0;
26 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX")=0;
27 virtual RecBodyP fetchBody(const RecMailP&mail)=0;
28 virtual QString fetchTextPart(const RecMailP&mail,const RecPartP&part)=0;
29 virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPartP&part)=0;
30 virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPartP&part)=0;
31 virtual encodedString* fetchRawBody(const RecMailP&mail)=0;
32
33 virtual void deleteMail(const RecMailP&mail)=0;
34 virtual void answeredMail(const RecMailP&mail)=0;
35 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&)=0;
36 virtual void deleteMails(const QString & FolderName,const QValueList<Opie::Core::OSmartPointer<RecMail> >&target);
37 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&)=0;
38 virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0;
39
40 virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,
41 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
42 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
43
44 virtual void cleanMimeCache(){};
45 /* mail box methods */
46 /* parameter is the box to create.
47 * if the implementing subclass has prefixes,
48 * them has to be appended automatic.
49 */
50 virtual int createMbox(const QString&,const Opie::Core::OSmartPointer<Folder>&parentfolder=0,
51 const QString& delemiter="/",bool getsubfolder=false);
52 virtual void logout()=0;
53
54 static AbstractMail* getWrapper(IMAPaccount *a);
55 static AbstractMail* getWrapper(POP3account *a);
56 static AbstractMail* getWrapper(NNTPaccount *a);
57 /* mbox only! */
58 static AbstractMail* getWrapper(const QString&a,const QString&name="Local Folders");
59 static AbstractMail* getWrapper(Account*a);
60
61 static QString defaultLocalfolder();
62 static QString draftFolder();
63
64 virtual MAILLIB::ATYPE getType()const=0;
65 virtual const QString&getName()const=0;
66
67protected:
68 static encodedString*decode_String(const encodedString*text,const QString&enc);
69 static QString convert_String(const char*text);
70 static QString gen_attachment_id();
71};
72#endif