KIMAP::ImapStreamParser

Search for usage in LXR

KIMAP::ImapStreamParser Class Reference

#include <imapstreamparser.h>

Public Member Functions

 ImapStreamParser (QIODevice *socket, bool serverModeEnabled=false)
 
bool atCommandEnd ()
 
bool atListEnd ()
 
bool atLiteralEnd () const
 
bool atResponseCodeEnd ()
 
int availableDataSize () const
 
bool hasList ()
 
bool hasLiteral ()
 
bool hasResponseCode ()
 
bool hasString ()
 
QByteArray readLiteralPart ()
 
qint64 readNumber (bool *ok=nullptr)
 
QList< QByteArrayreadParenthesizedList ()
 
QByteArray readRemainingData ()
 
QByteArray readString ()
 
QByteArray readUntilCommandEnd ()
 
QString readUtf8String ()
 
void setData (const QByteArray &data)
 

Detailed Description

Parser for IMAP messages that operates on a local socket stream.

Definition at line 61 of file imapstreamparser.h.

Constructor & Destructor Documentation

◆ ImapStreamParser()

ImapStreamParser::ImapStreamParser ( QIODevice * socket,
bool serverModeEnabled = false )
explicit

Construct the parser.

Parameters
socketthe local socket to work with.
serverModeEnabledtrue if the parser has to assume we're writing a server (e.g. sends continuation message automatically)

Definition at line 18 of file imapstreamparser.cpp.

Member Function Documentation

◆ atCommandEnd()

bool ImapStreamParser::atCommandEnd ( )

Check if the command end was reached.

Returns
true if the end of command is reached

Definition at line 460 of file imapstreamparser.cpp.

◆ atListEnd()

bool ImapStreamParser::atListEnd ( )

Check if the next data is a parenthesized list end.

This call might block.

Returns
true if a parenthesized list end.

Definition at line 163 of file imapstreamparser.cpp.

◆ atLiteralEnd()

bool ImapStreamParser::atLiteralEnd ( ) const

Check if the literal data end was reached.

See hasLiteral and readLiteralPart .

Returns
true if the literal was completely read.

Definition at line 120 of file imapstreamparser.cpp.

◆ atResponseCodeEnd()

bool ImapStreamParser::atResponseCodeEnd ( )

Check if the next data is a response code end.

This call might block.

Returns
true if a response code end.

Definition at line 293 of file imapstreamparser.cpp.

◆ availableDataSize()

int ImapStreamParser::availableDataSize ( ) const

Definition at line 455 of file imapstreamparser.cpp.

◆ hasList()

bool ImapStreamParser::hasList ( )

Check if the next data is a parenthesized list.

This call might block.

Returns
true if a parenthesized list comes.

Definition at line 148 of file imapstreamparser.cpp.

◆ hasLiteral()

bool ImapStreamParser::hasLiteral ( )

Check if the next data is a literal data or not.

If a literal is found, the internal position pointer is set to the beginning of the literal data. This call might block.

Returns
true if a literal follows

Definition at line 79 of file imapstreamparser.cpp.

◆ hasResponseCode()

bool ImapStreamParser::hasResponseCode ( )

Check if the next data is a response code.

This call might block.

Returns
true if a response code comes.

Definition at line 277 of file imapstreamparser.cpp.

◆ hasString()

bool ImapStreamParser::hasString ( )

Check if the next data is a string or not.

This call might block.

Returns
true if a string follows

Definition at line 58 of file imapstreamparser.cpp.

◆ readLiteralPart()

QByteArray ImapStreamParser::readLiteralPart ( )

Read the next literal sequence.

This might or might not be the full data. Example code to read a literal would be:

...
if (parser.hasLiteral())
{
while (!parser.atLiteralEnd())
{
QByteArray data = parser.readLiteralPart();
// do something with the data
}
}
Parser for IMAP messages that operates on a local socket stream.
bool atLiteralEnd() const
Check if the literal data end was reached.
bool hasLiteral()
Check if the next data is a literal data or not.
QByteArray readLiteralPart()
Read the next literal sequence.

This call might block.

Returns
part of a literal data

Definition at line 125 of file imapstreamparser.cpp.

◆ readNumber()

qint64 ImapStreamParser::readNumber ( bool * ok = nullptr)

Get the next data as a number.

This call might block.

Parameters
oktrue if the data found was a number
Returns
the number

Definition at line 389 of file imapstreamparser.cpp.

◆ readParenthesizedList()

QList< QByteArray > ImapStreamParser::readParenthesizedList ( )

Get he next parenthesized list.

If the upcoming data is not a parenthesized list, the behavior is undefined. Use hasList to be sure a string comes. This call might block.

Returns
the next parenthesized list.

Definition at line 179 of file imapstreamparser.cpp.

◆ readRemainingData()

QByteArray ImapStreamParser::readRemainingData ( )

Return all the data that was read from the socket, but not processed yet.

Returns
the remaining unprocessed data

Definition at line 450 of file imapstreamparser.cpp.

◆ readString()

QByteArray ImapStreamParser::readString ( )

Same as above, but without decoding it to utf8.

Returns
the next string from the message

Definition at line 34 of file imapstreamparser.cpp.

◆ readUntilCommandEnd()

QByteArray ImapStreamParser::readUntilCommandEnd ( )

Return everything that remained from the command.

Returns
the remaining command data

Definition at line 487 of file imapstreamparser.cpp.

◆ readUtf8String()

QString ImapStreamParser::readUtf8String ( )

Get a string from the message.

If the upcoming data is not a quoted string, unquoted string or a literal, the behavior is undefined. Use hasString to be sure a string comes. This call might block.

Returns
the next string from the message as an utf8 string

Definition at line 26 of file imapstreamparser.cpp.

◆ setData()

void ImapStreamParser::setData ( const QByteArray & data)

Definition at line 445 of file imapstreamparser.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:14:37 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.