class CLineReader : public CBase |
Line reader for a vCalendar or vCard parser.
Reads in a line at a time for the parser.
Also allows the first character of the next line to be checked to see if it is a space, which can indicate that the line is wrapped. This enables the reading of multi-line property values.
Used by CVersitParser to internalise streams.
Public Member Functions | |
---|---|
~CLineReader() | |
IMPORT_C TBool | AppendLineIfSpaceNextL() |
IMPORT_C TInt | AppendSpaceL() |
IMPORT_C TBool | IsSpaceNextL() |
IMPORT_C CLineReader * | NewL(RReadStream &) |
void | ReadBase64ValueL(TInt) |
IMPORT_C TInt | ReadLineL(TInt, TInt &) |
void | SetPlugIn(MVersitPlugIn *) |
void | SetSkipWhiteSpaceAtStart(TBool) |
Protected Member Functions | |
---|---|
CLineReader(RReadStream &) | |
IMPORT_C void | ConstructL() |
IMPORT_C void | ExpandBufferL(TInt) |
IMPORT_C TUint8 | ReadChar(TInt &) |
Private Member Functions | |
---|---|
TInt | ReadLineL(HBufC8 *&, TInt, TInt &) |
IMPORT_C void | Reserved() |
Public Member Enumerations | |
---|---|
enum | anonymous { EInitialLineSize = 96, EExpandSize = 16 } |
enum | anonymous { ELineHasContent = 0, ELineIsWhiteSpace = 1, ELineIsCRLFOnly = 2, ELineHasColon } |
Public Attributes | |
---|---|
TPtr8 | iBufPtr |
RReadStream * | iReadStream |
Protected Attributes | |
---|---|
TInt | iFirstCharNextLine |
HBufC8 * | iLineBuf |
Private Attributes | |
---|---|
CLineReaderExtension * | iExtension |
MVersitPlugIn * | iPlugIn |
TBool | iSkipWhiteSpaceAtStart |
CLineReader | ( | RReadStream & | aStream | ) | [protected, inline] |
RReadStream & aStream |
IMPORT_C void | ExpandBufferL | ( | TInt | aCurrentSize | ) | [protected] |
TInt aCurrentSize |
IMPORT_C CLineReader * | NewL | ( | RReadStream & | aStream | ) | [static] |
RReadStream & aStream |
void | SetPlugIn | ( | MVersitPlugIn * | aPlugIn | ) | [inline] |
Sets the plug-in.
Allows implemented functions of the MVersitPlugIn class to be used in specifying options for adding and deleting spaces to/from the buffer.
Specifically, the plug-in is used to determine whether an additional space should be added when appending a line to the buffer (by default a space will be added), and whether the white space at the start of a line should form part of the data (by default it will not form part of the data).
Using a plug-in is optional.
MVersitPlugIn * aPlugIn | A pointer to an MVersitPlugIn instance. |
void | SetSkipWhiteSpaceAtStart | ( | TBool | aDoSkip | ) | [inline] |
TBool aDoSkip |
Defines the initial line size of, and the size of expansions to, the buffer which stores the line being read.
EInitialLineSize = 96 |
The initial size of the buffer (pointed to by iBuf). |
EExpandSize = 16 |
The size by which the buffer (pointed to by iBuf) is expanded when it has run out of room. |
Defines values which describe the content of a line that has been read.
This is the return value from the function ReadLine().
ELineHasContent = 0 |
The line has content (not white space). |
ELineIsWhiteSpace = 1 |
The line has white space only. |
ELineIsCRLFOnly = 2 |
The line has no content, and so is just a carriage return and line feed ("/r/n"). |
ELineHasColon |
The line has a colon This is only used internally. When the line has a colon, ReadLineL will return ELineHasContent for the sake of backwards compatibility. |
TPtr8 | iBufPtr |
A pointer to a buffer which stores data read from the stream.
Its size on construction is EInitialLineSize, and it is expanded by EExpandSize when necessary.
A copy of this value should not be stored, since the buffer location may change if the buffer is expanded.
Data in the buffer is not lost when the buffer is expanded, but is copied to the new location.
RReadStream * | iReadStream |
A pointer to an RReadStream object, the ReadUint8L() function of which is used to read single characters from the stream.
This is passed into the NewL() function upon construction.