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

imapwrapper.h

Go to the documentation of this file.
00001 #ifndef __IMAPWRAPPER
00002 #define __IMAPWRAPPER
00003 
00004 #include <qlist.h>
00005 #include "mailwrapper.h"
00006 #include "abstractmail.h"
00007 #include "mailstatics.h"
00008 #include <libetpan/clist.h>
00009 
00010 struct mailimap;
00011 struct mailimap_body;
00012 struct mailimap_body_type_1part;
00013 struct mailimap_body_type_text;
00014 struct mailimap_body_type_basic;
00015 struct mailimap_body_type_msg;
00016 struct mailimap_body_type_mpart;
00017 struct mailimap_body_fields;
00018 struct mailimap_msg_att;
00019 class encodedString;
00020 
00021 class IMAPwrapper : public AbstractMail,public MailStatics
00022 {
00023     Q_OBJECT
00024 public:
00025     IMAPwrapper( IMAPaccount *a );
00026     virtual ~IMAPwrapper();
00027     virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders();
00028     virtual void listMessages(const QString & mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> >&target );
00029     virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
00030 
00031     virtual void deleteMail(const RecMailP&mail);
00032     virtual void answeredMail(const RecMailP&mail);
00033     virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&folder);
00034     virtual void storeMessage(const char*msg,size_t length, const QString&folder);
00035     virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,
00036         const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
00037     virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
00038 
00039     virtual RecBodyP fetchBody(const RecMailP&mail);
00040     virtual QString fetchTextPart(const RecMailP&mail,const RecPartP&part);
00041     virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPartP&part);
00042     virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPartP&part);
00043     virtual encodedString* fetchRawBody(const RecMailP&mail);
00044 
00045     virtual int createMbox(const QString&,const Opie::Core::OSmartPointer<Folder>&parentfolder=0,
00046         const QString& delemiter="/",bool getsubfolder=false);
00047     virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&folder);
00048 
00049     static void imap_progress( size_t current, size_t maximum );
00050 
00051     virtual void logout();
00052     virtual MAILLIB::ATYPE getType()const;
00053     virtual const QString&getName()const;
00054 
00055 protected:
00056     RecMail*parse_list_result(mailimap_msg_att*);
00057     void login();
00058     bool start_tls(bool force=true);
00059 
00060     virtual QString fetchTextPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call=false,const QString&enc="");
00061     virtual encodedString*fetchRawPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call);
00062     int selectMbox(const QString&mbox);
00063 
00064     void fillSinglePart(RecPartP&target_part,mailimap_body_type_1part*Description);
00065     void fillSingleTextPart(RecPartP&target_part,mailimap_body_type_text*which);
00066     void fillSingleBasicPart(RecPartP&target_part,mailimap_body_type_basic*which);
00067     void fillSingleMsgPart(RecPartP&target_part,mailimap_body_type_msg*which);
00068     void fillMultiPart(RecPartP&target_part,mailimap_body_type_mpart*which);
00069     void traverseBody(const RecMailP&mail,mailimap_body*body,RecBodyP&target_body,int current_recursion,QValueList<int>recList,int current_count=1);
00070 
00071     /* just helpers */
00072     static void fillBodyFields(RecPartP&target_part,mailimap_body_fields*which);
00073     static QStringList address_list_to_stringlist(clist*list);
00074 
00075 
00076     IMAPaccount *account;
00077     mailimap *m_imap;
00078     QString m_Lastmbox;
00079 };
00080 
00081 #endif

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