kmail Library API Documentation

kmacctexppop.h

00001 // -*- c++ -*- 00002 #ifndef KMAcctExpPop_h 00003 #define KMAcctExpPop_h 00004 00005 #include "networkaccount.h" 00006 00007 #include <qvaluelist.h> 00008 #include <qstringlist.h> 00009 #include <qtimer.h> 00010 #include <qdict.h> 00011 00012 class KMPopHeaders; 00013 class KMMessage; 00014 class QDataStream; 00015 namespace KIO { 00016 class MetaData; 00017 class Slave; 00018 class SimpleJob; 00019 class Job; 00020 } 00021 00026 class KMAcctExpPop: public KMail::NetworkAccount { 00027 Q_OBJECT 00028 00029 public: 00030 virtual ~KMAcctExpPop(); 00031 virtual void init(void); 00032 00033 virtual KIO::MetaData slaveConfig() const; 00034 00036 virtual void pseudoAssign( const KMAccount * a ); 00037 00038 virtual QString protocol() const; 00039 virtual unsigned short int defaultPort() const; 00040 00044 bool usePipelining(void) const { return mUsePipelining; } 00045 virtual void setUsePipelining(bool); 00046 00051 bool leaveOnServer(void) const { return mLeaveOnServer; } 00052 virtual void setLeaveOnServer(bool); 00053 00058 bool filterOnServer(void) const { return mFilterOnServer; } 00059 virtual void setFilterOnServer(bool); 00060 00065 unsigned int filterOnServerCheckSize(void) const { return mFilterOnServerCheckSize; } 00066 virtual void setFilterOnServerCheckSize(unsigned int); 00067 00071 virtual QString type(void) const; 00072 virtual void readConfig(KConfig&); 00073 virtual void writeConfig(KConfig&); 00074 virtual void processNewMail(bool _interactive); 00075 00076 virtual void killAllJobs( bool disconnectSlave=false ); // NOOP currently 00077 00078 protected: 00079 enum Stage { Idle, List, Uidl, Head, Retr, Dele, Quit }; 00080 friend class KMAcctMgr; 00081 friend class KMPasswdDialog; 00082 KMAcctExpPop(KMAcctMgr* owner, const QString& accountName, uint id); 00083 00087 void startJob(); 00088 00092 void connectJob(); 00093 00097 void processRemainingQueuedMessages(); 00098 00102 void saveUidList(); 00103 00104 bool mUsePipelining; 00105 bool mLeaveOnServer; 00106 bool gotMsgs; 00107 bool mFilterOnServer; 00108 unsigned int mFilterOnServerCheckSize; 00109 00110 KIO::SimpleJob *job; 00111 //Map of ID's vs. sizes of messages which should be downloaded 00112 QMap<QString, int> mMsgsPendingDownload; 00113 00114 QPtrList<KMPopHeaders> headersOnServer; 00115 QPtrListIterator<KMPopHeaders> headerIt; 00116 bool headers; 00117 00118 QMap<QString, bool> mHeaderDeleteUids; 00119 QMap<QString, bool> mHeaderDownUids; 00120 QMap<QString, bool> mHeaderLaterUids; 00121 00122 00123 QStringList idsOfMsgs; //used for ids and for count 00124 QValueList<int> lensOfMsgs; 00125 QMap<QString, QString> mUidForIdMap; // maps message ID (i.e. index on the server) to UID 00126 QDict<int> mUidsOfSeenMsgsDict; // set of UIDs of previously seen messages (for fast lookup) 00127 QDict<int> mUidsOfNextSeenMsgsDict; // set of UIDs of seen messages (for the next check) 00128 QStringList idsOfMsgsToDelete; 00129 int indexOfCurrentMsg; 00130 00131 QValueList<KMMessage*> msgsAwaitingProcessing; 00132 QStringList msgIdsAwaitingProcessing; 00133 QStringList msgUidsAwaitingProcessing; 00134 00135 QByteArray curMsgData; 00136 QDataStream *curMsgStrm; 00137 00138 int curMsgLen; 00139 int stage; 00140 QTimer processMsgsTimer; 00141 int processingDelay; 00142 int numMsgs, numBytes, numBytesToRead, numBytesRead, numMsgBytesRead; 00143 bool interactive; 00144 bool mProcessing; 00145 bool mUidlFinished; 00146 int dataCounter; 00147 00148 protected slots: 00159 void slotProcessPendingMsgs(); 00160 00165 void slotGetNextMsg(); 00166 00171 void slotMsgRetrieved(KIO::Job*, const QString &); 00172 00176 void slotData( KIO::Job*, const QByteArray &); 00177 00183 void slotResult( KIO::Job* ); 00184 00188 void slotCancel(); 00189 00193 void slotAbortRequested(); 00194 00199 void slotJobFinished(); 00200 00204 void slotSlaveError(KIO::Slave *, int, const QString &); 00205 00210 void slotGetNextHdr(); 00211 }; 00212 00213 00214 00215 #endif /*KMAcctExpPop_h*/
KDE Logo
This file is part of the documentation for kmail Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Oct 1 15:19:17 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003