kioslaves

IMAP4Protocol Class Reference

IOSlave derived class. More...

#include <imap4.h>

Inheritance diagram for IMAP4Protocol:

List of all members.


Public Member Functions

virtual void closeConnection ()
virtual void copy (const KURL &src, const KURL &dest, int permissions, bool overwrite)
virtual void del (const KURL &_url, bool isFile)
virtual void dispatch (int command, const QByteArray &data)
virtual void flushOutput (QString contentEncoding=QString::null)
virtual void get (const KURL &_url)
 IMAP4Protocol (const QCString &pool, const QCString &app, bool isSSL)
virtual void listDir (const KURL &_url)
virtual void mkdir (const KURL &url, int permissions)
virtual void openConnection ()
virtual int outputLine (const QCString &_str, int len=-1)
virtual bool parseRead (QByteArray &buffer, ulong len, ulong relay=0)
virtual bool parseReadLine (QByteArray &buffer, ulong relay=0)
virtual void parseRelay (ulong)
virtual void parseRelay (const QByteArray &buffer)
virtual void parseWriteLine (const QString &)
virtual void put (const KURL &url, int permissions, bool overwrite, bool resume)
virtual void rename (const KURL &src, const KURL &dest, bool overwrite)
virtual void setHost (const QString &_host, int _port, const QString &_user, const QString &_pass)
virtual void setSubURL (const KURL &_url)
virtual void slave_status ()
virtual void special (const QByteArray &data)
virtual void stat (const KURL &_url)
virtual ~IMAP4Protocol ()

Protected Member Functions

bool assureBox (const QString &aBox, bool readonly)
void doListEntry (const KURL &url, const QString &myBox, const imapList &item, bool appendPath=true)
void doListEntry (const KURL &_url, int stretch, imapCache *cache=NULL, bool withFlags=FALSE, bool withSubject=FALSE)
QString getMimeType (enum IMAP_TYPE)
bool makeLogin ()
ssize_t myRead (void *data, ssize_t len)
void outputLineStr (const QString &_str)
enum IMAP_TYPE parseURL (const KURL &_url, QString &_box, QString &_section, QString &_type, QString &_uid, QString &_validity, QString &_hierarchyDelimiter, QString &_info, bool cache=false)
void specialACLCommand (int command, QDataStream &stream)
void specialAnnotateMoreCommand (int command, QDataStream &stream)
void specialCustomCommand (QDataStream &)
void specialQuotaCommand (int command, QDataStream &stream)
void specialSearchCommand (QDataStream &)

Detailed Description

IOSlave derived class.

Note:
References:
  • RFC 2060 - Internet Message Access Protocol - Version 4rev1 - December 1996
  • RFC 2192 - IMAP URL Scheme - September 1997
  • RFC 1731 - IMAP Authentication Mechanisms - December 1994 (Discusses KERBEROSv4, GSSAPI, and S/Key)
  • RFC 2195 - IMAP/POP AUTHorize Extension for Simple Challenge/Response
    • September 1997 (CRAM-MD5 authentication method)
  • RFC 2104 - HMAC: Keyed-Hashing for Message Authentication - February 1997
  • RFC 2086 - IMAP4 ACL extension - January 1997
  • http://www.ietf.org/internet-drafts/draft-daboo-imap-annotatemore-05.txt IMAP ANNOTATEMORE draft - April 2004.
Supported URLs:
imap://server/
imap://user:pass@server/
imap://user;AUTH=method:pass@server/
imap://server/folder/
 * 
These URLs cause the following actions (in order):
  • Prompt for user/pass, list all folders in home directory
  • Uses LOGIN to log in
  • Uses AUTHENTICATE to log in
  • List messages in folder

Note:
API notes: Not receiving the required write access for a folder means ERR_CANNOT_OPEN_FOR_WRITING. ERR_DOES_NOT_EXIST is reserved for folders.

Definition at line 47 of file imap4.h.


Constructor & Destructor Documentation

IMAP4Protocol::IMAP4Protocol ( const QCString pool,
const QCString app,
bool  isSSL 
)

Definition at line 164 of file imap4.cc.

IMAP4Protocol::~IMAP4Protocol (  )  [virtual]

Definition at line 178 of file imap4.cc.


Member Function Documentation

bool IMAP4Protocol::assureBox ( const QString aBox,
bool  readonly 
) [protected]

Definition at line 2657 of file imap4.cc.

void IMAP4Protocol::closeConnection (  )  [virtual]

Definition at line 1992 of file imap4.cc.

void IMAP4Protocol::copy ( const KURL &  src,
const KURL &  dest,
int  permissions,
bool  overwrite 
) [virtual]

Definition at line 961 of file imap4.cc.

void IMAP4Protocol::del ( const KURL &  _url,
bool  isFile 
) [virtual]

delete a mailbox

Definition at line 1071 of file imap4.cc.

void IMAP4Protocol::dispatch ( int  command,
const QByteArray data 
) [virtual]

Definition at line 1822 of file imap4.cc.

void IMAP4Protocol::doListEntry ( const KURL &  url,
const QString myBox,
const imapList item,
bool  appendPath = true 
) [protected]

Send a list entry (folder) to the application If appendPath is true the foldername will be appended to the path of url.

Definition at line 2325 of file imap4.cc.

void IMAP4Protocol::doListEntry ( const KURL &  _url,
int  stretch,
imapCache cache = NULL,
bool  withFlags = FALSE,
bool  withSubject = FALSE 
) [protected]

Definition at line 2250 of file imap4.cc.

void IMAP4Protocol::flushOutput ( QString  contentEncoding = QString::null  )  [virtual]

send out cached data to the application

Definition at line 2608 of file imap4.cc.

void IMAP4Protocol::get ( const KURL &  _url  )  [virtual]

get a message or part of a message the data is normally send as we get it from the server if you want the slave to decode the content (e.g.

for attachments) then append an additional INFO=DECODE to the URL

Definition at line 185 of file imap4.cc.

QString IMAP4Protocol::getMimeType ( enum IMAP_TYPE  aType  )  [protected]

Definition at line 2216 of file imap4.cc.

void IMAP4Protocol::listDir ( const KURL &  _url  )  [virtual]

list a directory/mailbox

Definition at line 397 of file imap4.cc.

bool IMAP4Protocol::makeLogin (  )  [protected]

Definition at line 2014 of file imap4.cc.

void IMAP4Protocol::mkdir ( const KURL &  url,
int  permissions 
) [virtual]

create a mailbox

Definition at line 911 of file imap4.cc.

ssize_t IMAP4Protocol::myRead ( void *  data,
ssize_t  len 
) [protected]

Definition at line 2641 of file imap4.cc.

void IMAP4Protocol::openConnection (  )  [virtual]

Definition at line 1987 of file imap4.cc.

int IMAP4Protocol::outputLine ( const QCString _str,
int  len = -1 
) [virtual]

reimplement the mimeIO

Reimplemented from mimeIO.

Definition at line 2579 of file imap4.cc.

void IMAP4Protocol::outputLineStr ( const QString _str  )  [inline, protected]

Definition at line 154 of file imap4.h.

bool IMAP4Protocol::parseRead ( QByteArray buffer,
ulong  len,
ulong  relay = 0 
) [virtual]

reimplement the parser read at least len bytes

Reimplemented from imapParser.

Definition at line 668 of file imap4.cc.

bool IMAP4Protocol::parseReadLine ( QByteArray buffer,
ulong  relay = 0 
) [virtual]

reimplement the parser

read at least a line (up to CRLF)

Reimplemented from imapParser.

Definition at line 703 of file imap4.cc.

void IMAP4Protocol::parseRelay ( ulong  len  )  [virtual]

reimplement the parser relay hook to announce the fetched data directly to an upper level

Reimplemented from imapParser.

Definition at line 661 of file imap4.cc.

void IMAP4Protocol::parseRelay ( const QByteArray buffer  )  [virtual]

reimplement the parser relay hook to send the fetched data directly to an upper level

Reimplemented from imapParser.

Definition at line 641 of file imap4.cc.

enum IMAP_TYPE IMAP4Protocol::parseURL ( const KURL &  _url,
QString _box,
QString _section,
QString _type,
QString _uid,
QString _validity,
QString _hierarchyDelimiter,
QString _info,
bool  cache = false 
) [protected]

Parses the given URL The return values are set by parsing the URL and querying the server.

If you set caching to true the server is not queried but the type is always set to ITYPE_DIR_AND_BOX

Definition at line 2449 of file imap4.cc.

void IMAP4Protocol::parseWriteLine ( const QString aStr  )  [virtual]

reimplement the parser

write argument to the server

Reimplemented from imapParser.

Definition at line 2199 of file imap4.cc.

void IMAP4Protocol::put ( const KURL &  url,
int  permissions,
bool  overwrite,
bool  resume 
) [virtual]

Definition at line 775 of file imap4.cc.

void IMAP4Protocol::rename ( const KURL &  src,
const KURL &  dest,
bool  overwrite 
) [virtual]

Definition at line 1756 of file imap4.cc.

void IMAP4Protocol::setHost ( const QString _host,
int  _port,
const QString _user,
const QString _pass 
) [virtual]

Definition at line 625 of file imap4.cc.

void IMAP4Protocol::setSubURL ( const KURL &  _url  )  [virtual]

Definition at line 768 of file imap4.cc.

void IMAP4Protocol::slave_status (  )  [virtual]

Definition at line 1814 of file imap4.cc.

void IMAP4Protocol::special ( const QByteArray data  )  [virtual]

Capabilites, NOOP, (Un)subscribe, Change status, Change ACL.

Definition at line 1212 of file imap4.cc.

void IMAP4Protocol::specialACLCommand ( int  command,
QDataStream stream 
) [protected]

Send an ACL command which is identified by command.

Definition at line 1435 of file imap4.cc.

void IMAP4Protocol::specialAnnotateMoreCommand ( int  command,
QDataStream stream 
) [protected]

Send an annotation command which is identified by command.

Definition at line 1644 of file imap4.cc.

void IMAP4Protocol::specialCustomCommand ( QDataStream stream  )  [protected]

Send a custom command to the server.

In 'normal' mode we send the command with all information in one go and retrieve the result.

In 'extended' mode we send a first header and push the data of the request in streaming mode.

Definition at line 1565 of file imap4.cc.

void IMAP4Protocol::specialQuotaCommand ( int  command,
QDataStream stream 
) [protected]

Definition at line 1712 of file imap4.cc.

void IMAP4Protocol::specialSearchCommand ( QDataStream stream  )  [protected]

Search current folder, the search string is passed as SECTION.

Definition at line 1537 of file imap4.cc.

void IMAP4Protocol::stat ( const KURL &  _url  )  [virtual]

stat a mailbox, message, attachment

Definition at line 1829 of file imap4.cc.


The documentation for this class was generated from the following files: