kioslaves/imap4

imapParser Class Reference

Inheritance diagram for imapParser:

IMAP4Protocol

List of all members.


Detailed Description

Definition at line 187 of file imapparser.h.


Public Types

enum  IMAP_STATE { ISTATE_NO, ISTATE_CONNECT, ISTATE_LOGIN, ISTATE_SELECT }

Public Member Functions

 imapParser ()
virtual ~imapParser ()
enum IMAP_STATE getState ()
void setState (enum IMAP_STATE state)
const QString getCurrentBox ()
imapCommandsendCommand (imapCommand *aCmd)
imapCommanddoCommand (imapCommand *aCmd)
bool clientLogin (const QString &aUser, const QString &aPass, QString &resultInfo)
bool clientAuthenticate (KIO::SlaveBase *slave, KIO::AuthInfo &ai, const QString &aFQDN, const QString &aAuth, bool isSSL, QString &resultInfo)
int parseLoop ()
void parseUntagged (parseString &result)
void parseRecent (ulong value, parseString &result)
void parseResult (QByteArray &result, parseString &rest, const QString &command=QString::null)
void parseCapability (parseString &result)
void parseFlags (parseString &result)
void parseList (parseString &result)
void parseLsub (parseString &result)
void parseListRights (parseString &result)
void parseMyRights (parseString &result)
void parseSearch (parseString &result)
void parseStatus (parseString &result)
void parseExists (ulong value, parseString &result)
void parseExpunge (ulong value, parseString &result)
void parseAcl (parseString &result)
void parseAnnotation (parseString &result)
void parseNamespace (parseString &result)
void parseQuotaRoot (parseString &result)
void parseQuota (parseString &result)
void parseFetch (ulong value, parseString &inWords)
mailHeaderparseEnvelope (parseString &inWords)
void parseAddressList (parseString &inWords, QPtrList< mailAddress > &list)
const mailAddressparseAddress (parseString &inWords, mailAddress &buffer)
void parseBody (parseString &inWords)
mimeHeaderparseBodyStructure (parseString &inWords, QString &section, mimeHeader *inHeader=0)
mimeHeaderparseSimplePart (parseString &inWords, QString &section, mimeHeader *localPart=0)
QAsciiDict< QString > parseParameters (parseString &inWords)
QAsciiDict< QString > parseDisposition (parseString &inWords)
virtual void parseRelay (const QByteArray &buffer)
virtual void parseRelay (ulong)
virtual bool parseRead (QByteArray &buffer, ulong len, ulong relay=0)
virtual bool parseReadLine (QByteArray &buffer, ulong relay=0)
virtual void parseWriteLine (const QString &)
void parseSentence (parseString &inWords)
QCString parseLiteralC (parseString &inWords, bool relay=false, bool stopAtBracket=false, int *outlen=0)
QByteArray parseLiteral (parseString &inWords, bool relay=false, bool stopAtBracket=false)
imapCachegetLastHandled ()
const QStringList & getResults ()
const imapInfogetStatus ()
const imapInfogetSelected ()
const QByteArray & getContinuation ()
bool hasCapability (const QString &)
void removeCapability (const QString &cap)
QString namespaceForBox (const QString &box)

Static Public Member Functions

static QCString b2c (const QByteArray &ba)
static QCString parseOneWordC (parseString &inWords, bool stopAtBracket=FALSE, int *len=0)
static bool parseOneNumber (parseString &inWords, ulong &num)
static void parseURL (const KURL &_url, QString &_box, QString &_section, QString &_type, QString &_uid, QString &_validity, QString &_info)
static void skipWS (parseString &inWords)

Protected Attributes

enum IMAP_STATE currentState
QString currentBox
imapInfo selectInfo
imapInfo lastStatus
QStringList imapCapabilities
QValueList< imapListlistResponses
QPtrList< imapCommandsentQueue
QPtrList< imapCommandcompleteQueue
QStringList unhandled
QByteArray continuation
QString seenUid
imapCachelastHandled
ulong commandCounter
QStringList lastResults
QMap< QString, QString > namespaceToDelimiter
QStringList imapNamespaces

Member Enumeration Documentation

the different states the client can be in

Enumerator:
ISTATE_NO  Not connected.
ISTATE_CONNECT  Connected but not logged in.
ISTATE_LOGIN  Logged in.
ISTATE_SELECT  A folder is currently selected.

Definition at line 193 of file imapparser.h.


Member Function Documentation

enum IMAP_STATE imapParser::getState (  )  [inline]

Get the current state

Definition at line 206 of file imapparser.h.

void imapParser::setState ( enum IMAP_STATE  state  )  [inline]

Set the current state

Definition at line 208 of file imapparser.h.

imapCommand * imapParser::sendCommand ( imapCommand aCmd  ) 

do setup and send the command to parseWriteLine

Parameters:
aCmd The command to perform
Returns:
The completed command

Definition at line 104 of file imapparser.cc.

imapCommand * imapParser::doCommand ( imapCommand aCmd  ) 

perform a command and wait to parse the result

Parameters:
aCmd The command to perform
Returns:
The completed command

Definition at line 91 of file imapparser.cc.

bool imapParser::clientLogin ( const QString &  aUser,
const QString &  aPass,
QString &  resultInfo 
)

plaintext login

Parameters:
aUser Username
aPass Password
resultInfo The resultinfo from the command
Returns:
success or failure

Definition at line 146 of file imapparser.cc.

bool imapParser::clientAuthenticate ( KIO::SlaveBase *  slave,
KIO::AuthInfo &  ai,
const QString &  aFQDN,
const QString &  aAuth,
bool  isSSL,
QString &  resultInfo 
)

non-plaintext login

Parameters:
aUser Username
aPass Password
aAuth authentication method
isSSL are we using SSL
resultInfo The resultinfo from the command
Returns:
success or failure

Definition at line 215 of file imapparser.cc.

int imapParser::parseLoop (  ) 

main loop for the parser reads one line and dispatches it to the appropriate sub parser

Definition at line 1691 of file imapparser.cc.

void imapParser::parseUntagged ( parseString result  ) 

parses all untagged responses and passes them on to the following parsers

Definition at line 338 of file imapparser.cc.

void imapParser::parseRecent ( ulong  value,
parseString result 
)

parse a RECENT line

Definition at line 1610 of file imapparser.cc.

void imapParser::parseResult ( QByteArray &  result,
parseString rest,
const QString &  command = QString::null 
)

parse a RESULT line

Definition at line 514 of file imapparser.cc.

void imapParser::parseCapability ( parseString result  ) 

parse a CAPABILITY line

Definition at line 658 of file imapparser.cc.

void imapParser::parseFlags ( parseString result  ) 

parse a FLAGS line

Definition at line 664 of file imapparser.cc.

void imapParser::parseList ( parseString result  ) 

parse a LIST line

Definition at line 669 of file imapparser.cc.

void imapParser::parseLsub ( parseString result  ) 

parse a LSUB line

Definition at line 689 of file imapparser.cc.

void imapParser::parseListRights ( parseString result  ) 

parse a LISTRIGHTS line

Definition at line 695 of file imapparser.cc.

void imapParser::parseMyRights ( parseString result  ) 

parse a MYRIGHTS line

Definition at line 777 of file imapparser.cc.

void imapParser::parseSearch ( parseString result  ) 

parse a SEARCH line

Definition at line 784 of file imapparser.cc.

void imapParser::parseStatus ( parseString result  ) 

parse a STATUS line

Definition at line 794 of file imapparser.cc.

void imapParser::parseExists ( ulong  value,
parseString result 
)

parse a EXISTS line

Definition at line 830 of file imapparser.cc.

void imapParser::parseExpunge ( ulong  value,
parseString result 
)

parse a EXPUNGE line

Definition at line 836 of file imapparser.cc.

void imapParser::parseAcl ( parseString result  ) 

parse a ACL line

Definition at line 706 of file imapparser.cc.

void imapParser::parseAnnotation ( parseString result  ) 

parse a ANNOTATION line

Definition at line 717 of file imapparser.cc.

void imapParser::parseNamespace ( parseString result  ) 

parse a NAMESPACE line

Definition at line 1616 of file imapparser.cc.

void imapParser::parseQuotaRoot ( parseString result  ) 

parse a QUOTAROOT line

Definition at line 760 of file imapparser.cc.

void imapParser::parseQuota ( parseString result  ) 

parse a QUOTA line

Definition at line 736 of file imapparser.cc.

void imapParser::parseFetch ( ulong  value,
parseString inWords 
)

parses the results of a fetch command processes it with the following sub parsers

Definition at line 1408 of file imapparser.cc.

mailHeader * imapParser::parseEnvelope ( parseString inWords  ) 

read a envelope from imap and parse the addresses

Definition at line 887 of file imapparser.cc.

void imapParser::parseAddressList ( parseString inWords,
QPtrList< mailAddress > &  list 
)

parse an address list and return a list of addresses

Definition at line 842 of file imapparser.cc.

const mailAddress & imapParser::parseAddress ( parseString inWords,
mailAddress buffer 
)

parse an address and return the ref again

Definition at line 870 of file imapparser.cc.

void imapParser::parseBody ( parseString inWords  ) 

parse the result of the body command

Definition at line 1281 of file imapparser.cc.

mimeHeader * imapParser::parseBodyStructure ( parseString inWords,
QString &  section,
mimeHeader inHeader = 0 
)

parse the body structure recursively

Definition at line 1153 of file imapparser.cc.

mimeHeader * imapParser::parseSimplePart ( parseString inWords,
QString &  section,
mimeHeader localPart = 0 
)

parse only one not nested part

Definition at line 1032 of file imapparser.cc.

QAsciiDict< QString > imapParser::parseParameters ( parseString inWords  ) 

parse a parameter list (name value pairs)

Definition at line 999 of file imapparser.cc.

QAsciiDict< QString > imapParser::parseDisposition ( parseString inWords  ) 

parse the disposition list (disposition (name value pairs)) the disposition has the key 'content-disposition'

Definition at line 962 of file imapparser.cc.

void imapParser::parseRelay ( const QByteArray &  buffer  )  [virtual]

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

Reimplemented in IMAP4Protocol.

Definition at line 1752 of file imapparser.cc.

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

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

Reimplemented in IMAP4Protocol.

Definition at line 1760 of file imapparser.cc.

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

read at least len bytes

Reimplemented in IMAP4Protocol.

Definition at line 1767 of file imapparser.cc.

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

read at least a line (up to CRLF)

Reimplemented in IMAP4Protocol.

Definition at line 1777 of file imapparser.cc.

void imapParser::parseWriteLine ( const QString &  str  )  [virtual]

write argument to server

Reimplemented in IMAP4Protocol.

Definition at line 1787 of file imapparser.cc.

void imapParser::parseSentence ( parseString inWords  ) 

parse a parenthesized list

Definition at line 1570 of file imapparser.cc.

QCString imapParser::parseLiteralC ( parseString inWords,
bool  relay = false,
bool  stopAtBracket = false,
int *  outlen = 0 
)

parse a literal or word, may require more data

Definition at line 1853 of file imapparser.cc.

QCString imapParser::parseOneWordC ( parseString inWords,
bool  stopAtBracket = FALSE,
int *  len = 0 
) [static]

parse one word (maybe quoted) upto next space " ) ] }

Definition at line 1903 of file imapparser.cc.

bool imapParser::parseOneNumber ( parseString inWords,
ulong &  num 
) [static]

parse one number using parseOneWord

Definition at line 1985 of file imapparser.cc.

void imapParser::parseURL ( const KURL &  _url,
QString &  _box,
QString &  _section,
QString &  _type,
QString &  _uid,
QString &  _validity,
QString &  _info 
) [static]

extract the box,section,list type, uid, uidvalidity,info from an url

Definition at line 1795 of file imapparser.cc.

imapCache* imapParser::getLastHandled (  )  [inline]

return the last handled foo

Todo:
work out what a foo is

Definition at line 387 of file imapparser.h.

const QStringList& imapParser::getResults (  )  [inline]

return the last results

Definition at line 393 of file imapparser.h.

const imapInfo& imapParser::getStatus (  )  [inline]

return the last status code

Definition at line 399 of file imapparser.h.

const imapInfo& imapParser::getSelected (  )  [inline]

return the select info

Definition at line 404 of file imapparser.h.

bool imapParser::hasCapability ( const QString &  cap  ) 

see if server has a capability

Definition at line 1992 of file imapparser.cc.

QString imapParser::namespaceForBox ( const QString &  box  ) 

find the namespace for the given box

Definition at line 2013 of file imapparser.cc.


Member Data Documentation

the current state we're in

Definition at line 436 of file imapparser.h.

QString imapParser::currentBox [protected]

the box selected

Definition at line 439 of file imapparser.h.

here we store the result from select/examine and unsolicited updates

Definition at line 442 of file imapparser.h.

the results from the last status command

Definition at line 445 of file imapparser.h.

QStringList imapParser::imapCapabilities [protected]

the results from the capabilities, split at ' '

Definition at line 448 of file imapparser.h.

QValueList< imapList > imapParser::listResponses [protected]

the results from list/lsub/listrights commands

Definition at line 451 of file imapparser.h.

QPtrList< imapCommand > imapParser::sentQueue [protected]

queues handling the running commands

Definition at line 454 of file imapparser.h.

QStringList imapParser::unhandled [protected]

everything we didn't handle, everything but the greeting is bogus

Definition at line 460 of file imapparser.h.

QByteArray imapParser::continuation [protected]

the last continuation request (there MUST not be more than one pending)

Definition at line 463 of file imapparser.h.

QString imapParser::seenUid [protected]

the last uid seen while a fetch

Definition at line 466 of file imapparser.h.

QStringList imapParser::lastResults [protected]

the results from search/acl commands

Definition at line 472 of file imapparser.h.

QMap<QString, QString> imapParser::namespaceToDelimiter [protected]

namespace prefix - delimiter association The namespace is cleaned before so that it does not contain the delimiter

Definition at line 478 of file imapparser.h.

QStringList imapParser::imapNamespaces [protected]

list of namespaces in the form: section=namespace=delimiter section is 0 (personal), 1 (other users) or 2 (shared)

Definition at line 484 of file imapparser.h.


The documentation for this class was generated from the following files:
KDE Home | KDE Accessibility Home | Description of Access Keys