summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper
authoralwin <alwin>2003-12-13 20:39:07 (UTC)
committer alwin <alwin>2003-12-13 20:39:07 (UTC)
commit85444223acfafd9d7955032b2cbdad3279ba27ad (patch) (unidiff)
tree444063490a58ffc7ca085219827a577ad6213442 /noncore/net/mail/libmailwrapper
parentd161cb46c21ae6a9e9f74dc60fb6ac6ac8e62f1b (diff)
downloadopie-85444223acfafd9d7955032b2cbdad3279ba27ad.zip
opie-85444223acfafd9d7955032b2cbdad3279ba27ad.tar.gz
opie-85444223acfafd9d7955032b2cbdad3279ba27ad.tar.bz2
imap/pop3 wrapper uses base virtual class so we can forward the pointer
independend of its later use. ToDo: find a more general interface for it
Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/abstractmail.cpp13
-rw-r--r--noncore/net/mail/libmailwrapper/abstractmail.h30
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.cpp5
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.h17
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.cpp21
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.h11
6 files changed, 81 insertions, 16 deletions
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.cpp b/noncore/net/mail/libmailwrapper/abstractmail.cpp
new file mode 100644
index 0000000..7380c31
--- a/dev/null
+++ b/noncore/net/mail/libmailwrapper/abstractmail.cpp
@@ -0,0 +1,13 @@
1#include "abstractmail.h"
2#include "imapwrapper.h"
3#include "pop3wrapper.h"
4
5AbstractMail* AbstractMail::getWrapper(IMAPaccount *a)
6{
7 return new IMAPwrapper(a);
8}
9
10AbstractMail* AbstractMail::getWrapper(POP3account *a)
11{
12 return new POP3wrapper(a);
13}
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.h b/noncore/net/mail/libmailwrapper/abstractmail.h
new file mode 100644
index 0000000..bc8938f
--- a/dev/null
+++ b/noncore/net/mail/libmailwrapper/abstractmail.h
@@ -0,0 +1,30 @@
1#ifndef __abstract_mail_
2#define __abstract_mail_
3
4#include <qobject.h>
5#include "settings.h"
6
7class RecMail;
8class RecBody;
9class RecPart;
10class IMAPwrapper;
11class POP3wrapper;
12class Folder;
13
14class AbstractMail:public QObject
15{
16 Q_OBJECT
17public:
18 AbstractMail(){};
19 virtual ~AbstractMail(){}
20 virtual QList<Folder>* listFolders()=0;
21 virtual void listMessages(const QString & mailbox,QList<RecMail>&target )=0;
22 virtual RecBody fetchBody(const RecMail&mail)=0;
23 virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false)=0;
24 virtual QString fetchPart(const RecMail&mail,const RecPart&part)=0;
25
26 static AbstractMail* getWrapper(IMAPaccount *a);
27 static AbstractMail* getWrapper(POP3account *a);
28};
29
30#endif
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
index 48e476b..e5eb335 100644
--- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
@@ -6,6 +6,7 @@
6#include <libetpan/mailimap.h> 6#include <libetpan/mailimap.h>
7 7
8IMAPwrapper::IMAPwrapper( IMAPaccount *a ) 8IMAPwrapper::IMAPwrapper( IMAPaccount *a )
9 : AbstractMail()
9{ 10{
10 account = a; 11 account = a;
11 m_imap = 0; 12 m_imap = 0;
@@ -139,14 +140,14 @@ void IMAPwrapper::listMessages(const QString&mailbox,QList<RecMail> &target )
139 mailimap_fetch_list_free(result); 140 mailimap_fetch_list_free(result);
140} 141}
141 142
142QList<IMAPFolder>* IMAPwrapper::listFolders() 143QList<Folder>* IMAPwrapper::listFolders()
143{ 144{
144 const char *path, *mask; 145 const char *path, *mask;
145 int err = MAILIMAP_NO_ERROR; 146 int err = MAILIMAP_NO_ERROR;
146 clist *result; 147 clist *result;
147 clistcell *current; 148 clistcell *current;
148 149
149 QList<IMAPFolder> * folders = new QList<IMAPFolder>(); 150 QList<Folder> * folders = new QList<Folder>();
150 folders->setAutoDelete( true ); 151 folders->setAutoDelete( true );
151 login(); 152 login();
152 if (!m_imap) { 153 if (!m_imap) {
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.h b/noncore/net/mail/libmailwrapper/imapwrapper.h
index 95de215..f88457a 100644
--- a/noncore/net/mail/libmailwrapper/imapwrapper.h
+++ b/noncore/net/mail/libmailwrapper/imapwrapper.h
@@ -3,6 +3,7 @@
3 3
4#include <qlist.h> 4#include <qlist.h>
5#include "mailwrapper.h" 5#include "mailwrapper.h"
6#include "abstractmail.h"
6 7
7struct mailimap; 8struct mailimap;
8struct mailimap_body_type_1part; 9struct mailimap_body_type_1part;
@@ -12,22 +13,18 @@ struct mailimap_body_type_msg;
12struct mailimap_body_type_mpart; 13struct mailimap_body_type_mpart;
13struct mailimap_body_fields; 14struct mailimap_body_fields;
14struct mailimap_msg_att; 15struct mailimap_msg_att;
15class RecMail;
16class RecBody;
17class RecPart;
18 16
19class IMAPwrapper : public QObject 17class IMAPwrapper : public AbstractMail
20{ 18{
21 Q_OBJECT 19 Q_OBJECT
22
23public: 20public:
24 IMAPwrapper( IMAPaccount *a ); 21 IMAPwrapper( IMAPaccount *a );
25 virtual ~IMAPwrapper(); 22 virtual ~IMAPwrapper();
26 QList<IMAPFolder>* listFolders(); 23 virtual QList<Folder>* listFolders();
27 void listMessages(const QString & mailbox,QList<RecMail>&target ); 24 virtual void listMessages(const QString & mailbox,QList<RecMail>&target );
28 RecBody fetchBody(const RecMail&mail); 25 virtual RecBody fetchBody(const RecMail&mail);
29 QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false); 26 virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false);
30 QString fetchPart(const RecMail&mail,const RecPart&part); 27 virtual QString fetchPart(const RecMail&mail,const RecPart&part);
31 static void imap_progress( size_t current, size_t maximum ); 28 static void imap_progress( size_t current, size_t maximum );
32 29
33protected: 30protected:
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
index abb5a42..49c3b7a 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
@@ -59,7 +59,7 @@ RecBody POP3wrapper::parseBody( const char *message )
59 return body; 59 return body;
60} 60}
61 61
62void POP3wrapper::listMessages( QList<RecMail> &target ) 62void POP3wrapper::listMessages(const QString &, QList<RecMail> &target )
63{ 63{
64 int err = MAILPOP3_NO_ERROR; 64 int err = MAILPOP3_NO_ERROR;
65 char *header; 65 char *header;
@@ -268,3 +268,22 @@ void POP3wrapper::logout()
268 m_pop3 = NULL; 268 m_pop3 = NULL;
269} 269}
270 270
271
272QList<Folder>* POP3wrapper::listFolders()
273{
274 QList<Folder> * folders = new QList<Folder>();
275 folders->setAutoDelete( true );
276 Folder*inb=new Folder("INBOX");
277 folders->append(inb);
278 return folders;
279}
280
281QString POP3wrapper::fetchPart(const RecMail&,const QValueList<int>&,bool)
282{
283 return "";
284}
285
286QString POP3wrapper::fetchPart(const RecMail&,const RecPart&)
287{
288 return "";
289}
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.h b/noncore/net/mail/libmailwrapper/pop3wrapper.h
index 995bed0..3b24564 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.h
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.h
@@ -2,19 +2,25 @@
2#define __POP3WRAPPER 2#define __POP3WRAPPER
3 3
4#include "mailwrapper.h" 4#include "mailwrapper.h"
5#include "abstractmail.h"
5 6
6class RecMail; 7class RecMail;
7class RecBody; 8class RecBody;
8struct mailpop3; 9struct mailpop3;
9 10
10class POP3wrapper : public QObject 11class POP3wrapper : public AbstractMail
11{ 12{
12 Q_OBJECT 13 Q_OBJECT
13 14
14public: 15public:
15 POP3wrapper( POP3account *a ); 16 POP3wrapper( POP3account *a );
16 virtual ~POP3wrapper(); 17 virtual ~POP3wrapper();
17 void listMessages( QList<RecMail> &target ); 18 /* mailbox will be ignored */
19 virtual void listMessages(const QString & mailbox, QList<RecMail> &target );
20 virtual QList<Folder>* listFolders();
21 virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false);
22 virtual QString fetchPart(const RecMail&mail,const RecPart&part);
23
18 RecBody fetchBody( const RecMail &mail ); 24 RecBody fetchBody( const RecMail &mail );
19 static void pop3_progress( size_t current, size_t maximum ); 25 static void pop3_progress( size_t current, size_t maximum );
20 26
@@ -32,7 +38,6 @@ private:
32 QString parseDateTime( mailimf_date_time *date ); 38 QString parseDateTime( mailimf_date_time *date );
33 POP3account *account; 39 POP3account *account;
34 mailpop3 *m_pop3; 40 mailpop3 *m_pop3;
35
36}; 41};
37 42
38#endif 43#endif