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 00011 class KMPopHeaders; 00012 class KMMessage; 00013 class QDataStream; 00014 namespace KIO { 00015 class MetaData; 00016 class Slave; 00017 class SimpleJob; 00018 class Job; 00019 } 00020 00024 class KMAcctExpPop: public KMail::NetworkAccount { 00025 Q_OBJECT 00026 00027 public: 00028 virtual ~KMAcctExpPop(); 00029 virtual void init(void); 00030 00031 virtual KIO::MetaData slaveConfig() const; 00032 00034 virtual void pseudoAssign( const KMAccount * a ); 00035 00036 virtual QString protocol() const; 00037 virtual unsigned short int defaultPort() const; 00038 00042 bool usePipelining(void) const { return mUsePipelining; } 00043 virtual void setUsePipelining(bool); 00044 00049 bool leaveOnServer(void) const { return mLeaveOnServer; } 00050 virtual void setLeaveOnServer(bool); 00051 00056 bool filterOnServer(void) const { return mFilterOnServer; } 00057 virtual void setFilterOnServer(bool); 00058 00063 unsigned int filterOnServerCheckSize(void) const { return mFilterOnServerCheckSize; } 00064 virtual void setFilterOnServerCheckSize(unsigned int); 00065 00069 virtual QString type(void) const; 00070 virtual void readConfig(KConfig&); 00071 virtual void writeConfig(KConfig&); 00072 virtual void processNewMail(bool _interactive); 00073 00074 virtual void killAllJobs( bool disconnectSlave=false ); // NOOP currently 00075 00076 protected: 00077 enum Stage { Idle, List, Uidl, Head, Retr, Dele, Quit }; 00078 friend class KMAcctMgr; 00079 friend class KMPasswdDialog; 00080 KMAcctExpPop(KMAcctMgr* owner, const QString& accountName); 00081 00085 void startJob(); 00086 00090 void connectJob(); 00091 00096 void processRemainingQueuedMessagesAndSaveUidList(); 00097 00098 bool mUsePipelining; 00099 bool mLeaveOnServer; 00100 bool gotMsgs; 00101 bool mFilterOnServer; 00102 unsigned int mFilterOnServerCheckSize; 00103 00104 KIO::SimpleJob *job; 00105 QStringList idsOfMsgsPendingDownload; //ID of messages which should be downloaded 00106 QValueList<int> lensOfMsgsPendingDownload; //length of messages which should be downloaded 00107 00108 QPtrList<KMPopHeaders> headersOnServer; 00109 QPtrListIterator<KMPopHeaders> headerIt; 00110 bool headers; 00111 QStringList headerDeleteUids; 00112 QStringList headerDownUids; 00113 QStringList headerLaterUids; 00114 00115 00116 QStringList idsOfMsgs; //used for ids and for count 00117 QValueList<int> lensOfMsgs; 00118 QStringList uidsOfMsgs; 00119 QStringList uidsOfSeenMsgs; //UIDS of seen messages, saved in config 00120 QStringList uidsOfNextSeenMsgs; //UIDS of new seen messages, for writing in the config file 00121 QStringList idsOfMsgsToDelete; 00122 int indexOfCurrentMsg; 00123 00124 QValueList<KMMessage*> msgsAwaitingProcessing; 00125 QStringList msgIdsAwaitingProcessing; 00126 QStringList msgUidsAwaitingProcessing; 00127 00128 QByteArray curMsgData; 00129 QDataStream *curMsgStrm; 00130 00131 int curMsgLen; 00132 int stage; 00133 QTimer processMsgsTimer; 00134 QTimer *ss; 00135 int processingDelay; 00136 int numMsgs, numBytes, numBytesToRead, numBytesRead, numMsgBytesRead; 00137 bool interactive; 00138 bool mProcessing; 00139 bool mUidlFinished; 00140 int dataCounter; 00141 00142 protected slots: 00153 void slotProcessPendingMsgs(); 00154 00159 void slotGetNextMsg(); 00160 00165 void slotMsgRetrieved(KIO::Job*, const QString &); 00166 00170 void slotData( KIO::Job*, const QByteArray &); 00171 00177 void slotResult( KIO::Job* ); 00178 00182 void slotCancel(); 00183 00187 void slotAbortRequested(); 00188 00193 void slotJobFinished(); 00194 00198 void slotSlaveError(KIO::Slave *, int, const QString &); 00199 00204 void slotGetNextHdr(); 00205 }; 00206 00207 00208 00209 #endif /*KMAcctExpPop_h*/
KDE Logo
This file is part of the documentation for kmail Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Jul 28 23:57:58 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003