Class ImapUrlParser.

Inherits ImapParser

Provides functions used to parse RFC 2192 productions.

This class inherits from ImapParser, is used internally by ImapUrl to parse various components of an IMAP URL as defined in RFC 2192, which relies on the IMAP grammar in RFC 2060 (hence the derivation from ImapParser).

bool ImapUrlParser::escape( char * c )

If a %xx escape occurs at the current position in this URL, this function sets the character pointed to by c to the value of the escaped character, steps past the escape sequence, and returns true. Otherwise it returns false without affecting either the position or whatever c points to.

bool ImapUrlParser::hasIuserauth()

This function returns true if an (optional) iuserauth component is present in the iserver specification. It expects the cursor to be just after the "//" following the scheme on entry, and leaves its position unchanged.

bool ImapUrlParser::hasUid()

Returns true only if the cursor points to "/;uid=", and false otherwise. It does not affect the position of the cursor in either case.

bool ImapUrlParser::hostport( EString & host, uint * port )

Parses and steps over an RFC 1738 hostport production at the current position in the URL we're parsing. Returns true if it encountered a valid hostport, and false otherwise. Stores the extracted values in host and port.

Date * ImapUrlParser::isoTimestamp()

Extracts an RFC 3339 format date-time string, advances the cursor past its end, and returns a pointer to a Date representing it. It is an error if no valid date-time is found, and 0 is returned.

bool ImapUrlParser::unreserved( char c )

Returns true only if c is acceptable to the unreserved production in RFC 1738, and false otherwise.

EString ImapUrlParser::urlauth()

Extracts and returns a sequence of at least 32 hexadecimal digits, advancing the cursor past its end. It is an error if fewer than 32 digits are available at the cursor.

EString ImapUrlParser::xchars( bool b )

Steps over and returns a (possibly empty) sequence of characters at the current position in this URL. If b is false, which it is by default, characters matching achar are accepted; if b is true, characters matching bchar are accepted instead.

This web page based on source code belonging to The Archiveopteryx Developers. All rights reserved.