27 #include "imap4-config.h"
28 #include "imapparser.h"
31 #include <kio/tcpslavebase.h>
36 #define IMAP_BUFFER 8192
60 IMAP4Protocol (
const QByteArray & pool,
const QByteArray & app,
bool isSSL);
63 virtual void openConnection();
64 virtual void closeConnection();
66 virtual void setHost (
const QString & _host, quint16 _port,
const QString & _user,
67 const QString & _pass);
74 virtual void get (
const KUrl & _url);
78 virtual void stat (
const KUrl & _url);
79 virtual void slave_status ();
83 virtual void del (
const KUrl & _url,
bool isFile);
88 virtual void special (
const QByteArray & data);
92 virtual void listDir (
const KUrl & _url);
93 virtual void setSubURL (
const KUrl & _url);
94 virtual void dispatch (
int command,
const QByteArray & data);
98 virtual void mkdir (
const KUrl & url,
int permissions);
99 virtual void put (
const KUrl & url,
int permissions, KIO::JobFlags flags);
100 virtual void rename (
const KUrl & src,
const KUrl & dest, KIO::JobFlags flags);
101 virtual void copy (
const KUrl & src,
const KUrl & dest,
int permissions,
102 KIO::JobFlags flags);
107 virtual void parseRelay (
const QByteArray & buffer);
116 virtual bool parseRead (QByteArray &buffer,
long len,
long relay=0);
120 virtual bool parseReadLine (QByteArray & buffer,
long relay = 0);
127 virtual int outputLine (
const QByteArray & _str,
int len = -1);
130 virtual void flushOutput(
const QString &contentEncoding = QString());
135 bool assureBox (
const QString & aBox,
bool readonly);
137 ssize_t myRead(
void *data, ssize_t len);
147 parseURL (
const KUrl & _url, QString & _box, QString & _section,
148 QString & _type, QString & _uid, QString & _validity,
149 QString & _hierarchyDelimiter, QString & _info,
151 QString getMimeType (
enum IMAP_TYPE);
155 void outputLineStr (
const QString & _str)
157 outputLine( _str.toLatin1 (), _str.length() );
159 void doListEntry (
const KUrl & _url,
int stretch, imapCache * cache = NULL,
160 bool withFlags =
false,
bool withSubject =
false);
167 void doListEntry (
const KUrl & url,
const QString & myBox,
168 const imapList & item,
bool appendPath =
true);
175 void specialQuotaCommand(
int command, QDataStream& stream );
187 void doListEntry (
const QString & encodedUrl,
int stretch, imapCache * cache = NULL,
188 bool withFlags =
false,
bool withSubject =
false);
190 QString myHost, myUser, myPass, myAuth, myTLS;
194 bool relayEnabled, cacheOutput, decodeContent;
195 QByteArray outputCache;
196 QBuffer outputBuffer;
197 int outputBufferIndex;
198 KIO::filesize_t mProcessedSize;
200 char readBuffer[IMAP_BUFFER];
201 ssize_t readBufferLen;
203 QDateTime mTimeOfLastNoop;