Symbian
Symbian OS Library

SYMBIAN OS V9.3

[Index] [Spacer] [Previous] [Next]



Location: VERSIT.H
Link against: versit.lib

Class CVersitParser

class CVersitParser : public CBase;

Description

A generic Versit parser.

Provides generic functions which implement behaviour common to both vCalendar and vCard parsers. For instance:

Although this is not an abstract class, in practice you would create and use objects of a derived class instead (CParserVCal or CParserVCard), as these provide additional functionality needed for parsing vCalendars and vCards.

Note: a flag used in the class constructor indicates whether the entity needs a version property. The version property will be inserted at the start of the array of properties for the entity, and specifies the version of the vCard/vCalendar specification used by the data of this particular vCard/vCalendar. The versions that are currently supported are vCard v2.1 and vCalendar v1.0.

A typical vCard looks like this:

BEGIN VCARD

VERSION 2.1 ...

END VCARD

Note: if you are sequentially creating and destroying multiple parsers, a major performance improvement may be achieved by using thread local storage to store an instance of CVersitUnicodeUtils which persists and can be used by all of the parsers.

See CVersitTlsData for more details.

Derivation

Members

Defined in CVersitParser:
AddEntityL(), AddPropertyL(), AdjustAllPropertyDateTimesToMachineLocalL(), AnalysesEncodingCharset(), AppendBeginL(), AppendEndL(), ArrayOfEntities(), ArrayOfProperties(), BufPtr(), CVersitParser(), ClearSupportsVersion(), ConstructL(), ConvertAllPropertyDateTimesToMachineLocalL(), ConvertFromUnicodeToISOL(), ConvertToUnicodeFromISOL(), DecodeDateTimeL(), DecodePropertyValueL(), DecodePropertyValueL(), DecodeTimePeriodL(), DecodeTimeZoneL(), DefaultCharSet(), DefaultCharSetId(), DefaultEncoding(), DoAddPropertyL(), ECarriageReturn, ECharSetIdentified, EHTab, EImportSyncML, ELineFeed, ENoVersionProperty, ESpace, ESupportsVersion, EUseAutoDetection, EUseDefaultCharSetForAllProperties, EntityL(), EntityName(), ExternalizeL(), ExternalizeL(), FindFirstField(), FindRemainingField(), GetNumberL(), GetPropertyParamsLC(), InternalizeL(), InternalizeL(), InternalizeL(), IsValidLabel(), IsValidParameterValue(), LineCharSet(), LineCharSetId(), LineEncoding(), LineEncodingId(), LoadBinaryValuesFromFilesL(), LoadBinaryValuesFromFilesL(), MakeEntityL(), MakePropertyL(), MakePropertyValueCDesCArrayL(), MakePropertyValueDaylightL(), MakePropertyValueL(), MakePropertyValueMultiDateTimeL(), Observer(), ParseBeginL(), ParseEndL(), ParseEntityL(), ParseParamL(), ParsePropertiesL(), ParsePropertyL(), PlugIn(), PropertyL(), ReadLineAndDecodeParamsLC(), ReadMultiLineValueL(), RecognizeEntityName(), RecognizeToken(), Reserved1(), Reserved2(), ResetAndDestroyArrayOfDateTimes(), ResetAndDestroyArrayOfEntities(), ResetAndDestroyArrayOfParams(), ResetAndDestroyArrayOfProperties(), RestoreLineCodingDetailsToDefault(), SaveBinaryValuesToFilesL(), SaveBinaryValuesToFilesL(), SetAutoDetect(), SetCharacterConverter(), SetDefaultCharSet(), SetDefaultCharSetId(), SetDefaultEncoding(), SetEntityNameL(), SetFlags(), SetLineCharacterSet(), SetLineCharacterSetId(), SetLineCoding(), SetLineEncoding(), SetLineEncoding(), SetObserver(), SetPlugIn(), SetSupportsVersion(), SupportsVersion(), TCharCodes, TParserCodingDetails, TVersitParserFlags, UnicodeUtils(), Val(), iArrayOfEntities, iArrayOfProperties, iAutoDetectCharSets, iCurrentProperty, iCurrentPropertyCodingDetails, iDecodedValue, iDefaultCodingDetails, iDefaultVersion, iEntityName, iFlags, iLargeDataBuf, iLineReader, iObserver, iOwnedLineReader, iPlugIn, iStaticUtils, iWriteStream, ~CVersitParser()

Inherited from CBase:
Delete(), Extension_(), operator new()


Construction and destruction


CVersitParser()

IMPORT_C CVersitParser(TUint aFlags);

Description

The first phase constructor for a Versit parser.

Sets the default encoding to Versit::ENoEncoding and the default character set to Versit::EUSAsciiCharSet.

Note: this function is called by the CParserVCal and CParserVCard constructors. It should only be called directly by a user if creating a new parser

Parameters

TUint aFlags

The flag to indicate whether this entity needs a version property. The possible values for this flag are given in the TVersitParserFlags enumeration. If a version property is needed, one will be created and appended to the start of the array of properties.


ConstructL()

IMPORT_C void ConstructL();

Description

The second phase constructor for a Versit parser.

Stores a pointer to a CVersitTlsData (thread local storage data class). This is used to allow an instance of CVersitUnicodeUtils to be shared by all co-existing parsers, which provides a major performance improvement.

Called by the CParserVCal and CParserVCard constructors.

Should only be called directly by a user if creating a new parser.


~CVersitParser()

IMPORT_C ~CVersitParser();

Description

Frees all resources owned by the object, prior to its destruction.

[Top]


Member functions


InternalizeL()

IMPORT_C void InternalizeL(RFile &aInputFile, TInt &aBytesThroughFile);

Description

Internalises a versit entity (vCard or vCalendar) and all of its sub-entities and properties from a file.

Stores all date/time in same format as received

Parameters

RFile &aInputFile

The file from which to internalise the entity.

TInt &aBytesThroughFile

The number of bytes into the file at which to begin reading. On return, is updated to contain the last position in the file which was read.

Leave codes

KErrEof

The file position specified is beyond the end of the file.


InternalizeL()

virtual IMPORT_C void InternalizeL(RReadStream &aStream);

Description

Internalises a Versit entity (vCard or vCalendar) contained in the incoming stream and parses it, breaking it down into its constituent sub-entities (e.g. to-dos, events, and nested vCards) and properties.

The presence of this function means that the standard templated operator>>() (defined in s32strm.h) is available to internalise objects of this class.

This virtual function serves as a base function for derived classes to internalise an entity.

Parameters

RReadStream &aStream

Stream from which the vCalendar should be internalised.


InternalizeL()

virtual IMPORT_C void InternalizeL(HBufC *aEntityName, CLineReader *aLineReader);

Description

Internalises a vCalendar or vCard sub-entity.

(Assumes "BEGIN : <EntityName> CRLF" has been parsed).

This virtual function serves as a base function for derived classes to parse a sub-entity.

Parameters

HBufC *aEntityName

The entity name to be parsed. Ownership of aEntityName is taken by the parser.

CLineReader *aLineReader

Pointer to a line reader which is used by the super-entity.


ExternalizeL()

IMPORT_C void ExternalizeL(RFile &aOutputFile);

Description

Externalises a Versit entity (vCard or vCalendar) and all of its sub-entities and properties to a file.

Adds a version property to the start of the current entity's array of properties if the entity supports this.

This is a thin layer over the CVersitParser::ExternalizeL(RWriteStream& aStream) function to enable a versit entity to be externalised into an RFile.

Parameters

RFile &aOutputFile

The file to which to write the entity.


ExternalizeL()

virtual IMPORT_C void ExternalizeL(RWriteStream &aStream);

Description

Externalises a Versit entity (vCard or vCalendar) and all of its sub-entities and properties to a write stream.

Adds a version property to the start of the current entity's array of properties if the entity supports this. (If there isn't an array of properties then one is made).

The presence of this function means that the standard templated operator<<() (defined in s32strm.h) is available to externalise objects of this class.

This virtual function serves as a base function for derived classes to externalise an entity.

Parameters

RWriteStream &aStream

Stream to which the entity should be externalised.


AddEntityL()

IMPORT_C void AddEntityL(CVersitParser *aEntity);

Description

Adds a sub-entity (e.g. a to-do, event or a nested vCard) to the current entity.

Sets the default encoding and character set to the default ones of the current Versit parser, then adds the entity to the array of entities owned by the parser.

Note: This function may be used when building up a Versit parser object from a client application.

Called by ParseEntityL().

Parameters

CVersitParser *aEntity

The entity to be added into the array of entities. Ownership of aEntity is taken at beginning of the function.


AddPropertyL()

IMPORT_C void AddPropertyL(CParserProperty *aProperty, TBool aInternalizing=EFalse);

Description

Appends a property to the current entity's array of properties.

This function may be used when building up a Versit parser object from a client application. It is not called internally.

Parameters

CParserProperty *aProperty

Pointer to the property to add to the entity.

TBool aInternalizing

This parameter is used to distinguish between reading an entity from a stream or file (i.e. internalising), in which case the argument should have a value of ETrue, and building an entity "by hand" (e.g. creating a vCard in the Contacts application), in which case the argument should have a value of EFalse.


EntityL()

IMPORT_C CArrayPtr< CVersitParser > *EntityL(const TDesC &aEntityName, TBool aTakeOwnership=ETrue);

Description

Gets all sub-entities in the current entity, whose name matches the name specified.

Parameters

const TDesC &aEntityName

The sub-entity name of interest, e.g. KVersitVarTokenVEVENT or KVersitVarTokenVTODO. All sub-entities which match this name are returned in the array of pointers.

TBool aTakeOwnership

If ETrue, the calling code takes ownership of each matching sub-entity, in which case the sub-entities are deleted from the current object's array of entities. If EFalse, ownership remains with the Versit parser.

Return value

CArrayPtr< CVersitParser > *

An array of pointers to all sub-entities with the specified name. (Ownership is taken by the calling code).


ArrayOfEntities()

IMPORT_C CArrayPtr< CVersitParser > *ArrayOfEntities(TBool aTakeOwnership=ETrue);

Description

Gets the current entity's array of sub-entities.

Note: the current entity may be a top level entity, or may itself be a sub-entity.

Parameters

TBool aTakeOwnership

If ETrue, the calling code takes ownership of the array; the array of entities owned by the current entity is then deleted. If EFalse, ownership remains with the Versit parser.

Return value

CArrayPtr< CVersitParser > *

Array of pointers to the current entity's array of sub-entities.


PropertyL()

IMPORT_C CArrayPtr< CParserProperty > *PropertyL(const TDesC8 &aPropertyName, const TUid &aPropertyUid, TBool aTakeOwnership=ETrue) const;

Description

Gets all properties in the current entity's array of properties whose name and value match the name and value specified.

Parameters

const TDesC8 &aPropertyName

The property name of interest. Property names are defined in vtoken.h.

const TUid &aPropertyUid

The ID of the property value of interest (which has the format "K<Versit/Card/Cal>Property<Type>Uid"). The values are defined in file vuid.h.

TBool aTakeOwnership

If ETrue, the calling code takes ownership of each matching property; the property is then deleted from the current entity's array. If EFalse, ownership remains with the entity.

Return value

CArrayPtr< CParserProperty > *

An array of pointers to all properties with the name and value specified, or NULL if there are none.


ArrayOfProperties()

IMPORT_C CArrayPtr< CParserProperty > *ArrayOfProperties(TBool aTakeOwnership=ETrue);

Description

Gets the current entity's array of properties.

Parameters

TBool aTakeOwnership

If ETrue, the calling code takes ownership of the array; the entity's array of properties is then deleted . If EFalse, ownership remains with the entity.

Return value

CArrayPtr< CParserProperty > *

Array of pointers to the entity's properties.


ConvertAllPropertyDateTimesToMachineLocalL()

virtual IMPORT_C void ConvertAllPropertyDateTimesToMachineLocalL(const TTimeIntervalSeconds &aIncrement, const CVersitDaylight *aDaylight);

Description

Converts all date/time property values contained in the current entity's array of properties into machine local values.

This conversion is needed because of differences in universal and local times due to time zones and daylight savings (seasonal time shifts).

First, all of the date/times are converted to universal time, if they are not already:

If daylight saving is in effect then the daylight savings rule (held in the aDaylight parameter) will be used to compensate for differences between universal and local times due to both time zones and the daylight saving. Otherwise, the aIncrement parameter is used to compensate for any difference due to time zones alone.

Then, these universal time values are converted into machine local times by adding the universal time offset for the machine's locale.

Parameters

const TTimeIntervalSeconds &aIncrement

A time interval in seconds which represents the negative of the time zone of the originating machine. For instance, if the time zone is +04:30, aIncrement should be set to -04:30.

const CVersitDaylight *aDaylight

Pointer to the specification for daylight saving. If the date/time value is within the period for daylight saving, the value is modified by the daylight saving offset (which accounts for both the time zone and daylight saving rule).


AdjustAllPropertyDateTimesToMachineLocalL()

IMPORT_C void AdjustAllPropertyDateTimesToMachineLocalL();

Description


IsValidParameterValue()

static IMPORT_C TBool IsValidParameterValue(TInt &aPos, const TDesC &aParamValue);

Description

Tests whether a property parameter name or value is valid.

If the string aParamValue contains any punctuation characters, the string is invalid. Otherwise, it is valid. Punctuation characters are defined as any of the following:-

[] (left or right square bracket)

= (equals sign)

: (colon)

; (semi colon)

. (dot)

, (comma)

Parameters

TInt &aPos

On return, contains the character position of the first invalid character in the property parameter name or value.

const TDesC &aParamValue

The property parameter name or value to test.

Return value

TBool

ETrue if valid, EFalse if invalid.


SetEntityNameL()

IMPORT_C void SetEntityNameL(const TDesC &aEntityName);

Description

Sets the name for the current entity to one of: VCARD, VCALENDAR, VEVENT or VTODO.

Parameters

const TDesC &aEntityName

The new name for the current parser entity. Any existing name is first deleted.

Leave codes

KErrNoMemory

Memory is allocated for the new entity name on the heap, so it can leave if there is insufficient memory available.


EntityName()

IMPORT_C TPtrC EntityName() const;

Description

Gets the current entity's name.

If no name has been set, returns an empty descriptor.

Return value

TPtrC

The current entity's name.


IsValidLabel()

static IMPORT_C TBool IsValidLabel(const TDesC &aLabel, TInt &aPos);

Description

Tests whether a property name is valid.

The property name is invalid if it contains any of the following characters:-

[] (left or right square bracket)

= (equals sign)

: (colon)

. (dot)

, (comma)

Parameters

const TDesC &aLabel

The property name to test.

TInt &aPos

On return, contains the character position within the property name of the first invalid character found.

Return value

TBool

ETrue if valid, EFalse if invalid.


Val()

static IMPORT_C TInt Val(const TDesC &aString, TInt &aNumber);

Description

Converts a string into an integer, for example, it converts "438" to 438.

Parameters

const TDesC &aString

The string to be converted. Every character contained in the string needs to be number presentable, i.e. between '0' and '9'.

TInt &aNumber

On return, the integer corresponding to aString.

Return value

TInt

KErrNone if the number has been converted from the string; KVersitErrNumberExpected otherwise.


SetCharacterConverter()

IMPORT_C void SetCharacterConverter(Versit::TEncodingAndCharset &encodingAndCharset);

Description

Sets a character converter suitable for converting strings between Unicode and the specified character set.

The function finds a suitable converter for the character set specified in aEncodingAndCharset.iCharSetId, if one is available, and assigns it to aEncodingAndCharset.iConverter.

If there is no converter available for the specified character set then iConverter is set to NULL.

This function is only of use if executing a major change to the externalisation behaviour, particularly if overriding CParserProperty::ExternalizeL() - the function from which this function is called.

Parameters

Versit::TEncodingAndCharset &encodingAndCharset

A utility class from which the character set information is extracted (from its member iCharSetId) and to which the suitable character converter is set (to its member iConverter).


DefaultEncoding()

IMPORT_C Versit::TVersitEncoding DefaultEncoding() const;

Description

Gets the parser's default encoding.

This value is initialised on construction, to ENoEncoding.

Return value

Versit::TVersitEncoding

The parser's default encoding.


SetDefaultEncoding()

IMPORT_C void SetDefaultEncoding(const Versit::TVersitEncoding aEncoding);

Description

Sets the parser's default encoding to aEncoding.

Parameters

const Versit::TVersitEncoding aEncoding

An encoding. Cannot be 8-bit.

Panic codes

Versit-Parser

7 aEncoding is Versit::EEightBitEncoding.


DefaultCharSet()

IMPORT_C Versit::TVersitCharSet DefaultCharSet() const;

Description

Gets the default character set or transformation format. This may be used to represent property values in Versit objects.

Return value

Versit::TVersitCharSet

The default character set.


DefaultCharSetId()

IMPORT_C TUint DefaultCharSetId() const;

Description

Gets the default character set or transformation format.

This may be used to represent property values in Versit objects.

Return value

TUint

The default character set identifier. Possible values are defined in charconv.h.


SetDefaultCharSet()

IMPORT_C void SetDefaultCharSet(const Versit::TVersitCharSet aCharSet);

Description

Sets the default character set or transformation format.

This may be used to represent property values in Versit objects.

Parameters

const Versit::TVersitCharSet aCharSet

The default character set.


SetDefaultCharSetId()

IMPORT_C void SetDefaultCharSetId(TUint aCharSetId);

Description

Sets the default character set or transformation format.

This may be used to represent property values in Versit objects.

Parameters

TUint aCharSetId

The UID for the character set. These are defined in charconv.h.


SetAutoDetect()

IMPORT_C void SetAutoDetect(TBool aOn, const CArrayFix< CCnvCharacterSetConverter::SCharacterSet > *aAutoDetectCharSets=0);

Description

Turns auto detection of character sets on or off.

If a property does not specify a character set, then it is possible to guess its character set. This function turns this behaviour on or off. When the behaviour is on, it also lets the caller specify a restricted set of character sets to be considered.

Auto-detection of character sets is used (if auto detection is on) when converting a property value to Unicode while internalising a stream.

Parameters

TBool aOn

If ETrue, auto detection is turned on; if EFalse (the default value), auto detection is turned off

const CArrayFix< CCnvCharacterSetConverter::SCharacterSet > *aAutoDetectCharSets

If specified then auto detection will only consider the character sets listed. If NULL, all available character sets are considered.


SetObserver()

inline void SetObserver(MVersitObserver *aObserver);

Description

Sets the Versit observer.

Parameters

MVersitObserver *aObserver

A pointer to the observer.


Observer()

inline MVersitObserver *Observer();

Description

Gets a pointer to the Versit observer.

Return value

MVersitObserver *

A pointer to the observer.


SetPlugIn()

inline void SetPlugIn(MVersitPlugIn *aPlugIn);

Description

Sets the Versit plug-in.

If there is one, the Versit plug-in needs to be set before any properties are added to the parser. This is done for you when internalising (using InternalizeL()) or adding properties (using AddPropertyL()).

Parameters

MVersitPlugIn *aPlugIn

A pointer to the plug in.


PlugIn()

inline MVersitPlugIn *PlugIn();

Description

Gets a pointer to the Versit plug-in.

Return value

MVersitPlugIn *

A pointer to the plug-in.


LoadBinaryValuesFromFilesL()

IMPORT_C TInt LoadBinaryValuesFromFilesL();

Description

Loads all files represented by URI property values and sets the binary data contained in the files to be the property values instead of the URIs.

For every property in the parser, if its value is a URI containing file:// followed by a path and filename, then the file is opened and the binary data it contains is read into a CParserPropertyValueBinary object. This replaces the URI as the property value. The function also operates on any agents in the vCard that contain URI property values.

The function creates its own file server session, which is needed to open the files. It leaves if there is a problem opening any of the files.

Return value

TInt

The number of files that were read.


LoadBinaryValuesFromFilesL()

IMPORT_C TInt LoadBinaryValuesFromFilesL(RFs &aFileSession);

Description

Loads all files represented by URI property values and sets the binary data contained in the files to be the property values instead of the URIs.

For every property in the parser, if its value is a URI containing file:// followed by a path and filename, then the file is opened and the binary data it contains is read into a CParserPropertyValueBinary object. This replaces the URI as the property value. The function also operates on any agents in the vCard that contain URI property values.

The function uses the file server session supplied, which is needed to open the files. It leaves if there is a problem opening any of the files.

Parameters

RFs &aFileSession

The file server session used to open the files.

Return value

TInt

The number of files that were read.


SaveBinaryValuesToFilesL()

IMPORT_C TInt SaveBinaryValuesToFilesL(TInt aSizeThreshold, const TDesC &aPath);

Description

Saves all binary property values larger than a specified threshold to files, and sets each property value to be a URI representing the file, rather than the binary data iself.

The files are created in the folder identified by aPath, and are assigned unique filenames that consist of the property name and some random numbers.

Each new URI property value is prefixed with file:// and contains the path and filename of the file created.

If a vCard contains any agent property values and if they contain binary data whose size exceeds the threshold, these property values are replaced with URI property values.

The function sets up its own file server session, which is needed to create the files. It leaves if there is a problem creating any of the files.

Parameters

TInt aSizeThreshold

The threshold number of bytes for the binary data, above which the binary data is stored in a file.

const TDesC &aPath

The path identifying the location in which the files are created. This must not be greater than 240 characters long or the function leaves with KErrArgument. If it doesn't end in a slash, then one is appended.

Return value

TInt

The number of files created.


SaveBinaryValuesToFilesL()

IMPORT_C TInt SaveBinaryValuesToFilesL(TInt aSizeThreshold, const TDesC &aPath, RFs &aFileSession);

Description

Saves all binary property values larger than a specified threshold to files, and sets each property value to be a URI representing the file rather than the binary data iself.

The files are created in the folder identified by aPath, and are assigned unique filenames that consist of the property name and some random numbers.

Each new URI property value is prefixed with file:// and contains the path and filename of the file created.

If a vCard contains any agent property values and if they contain binary data whose size exceeds the threshold, these property values are replaced with URI property values.

The function uses the file server session supplied, which is needed to create the files. It leaves if there is a problem creating any of the files.

Parameters

TInt aSizeThreshold

The threshold number of bytes for the binary data, above which the binary data is stored in a file.

const TDesC &aPath

The path identifying the location in which the files are created. This must not be greater than 240 characters long or the function leaves with KErrArgument. If it doesn't end in a slash, then one is appended.

RFs &aFileSession

The file server session used to create the files.

Return value

TInt

The number of files created.


ConvertFromUnicodeToISOL()

static IMPORT_C TInt ConvertFromUnicodeToISOL(TDes8 &aIso, const TDesC16 &aUnicode, CCnvCharacterSetConverter *aConverter);

Description

Converts text in the Unicode character set (UCS-2) into a non-unicode (International Standards Organisation) character set.

Which ISO character set the string is converted to is determined by the value of the character set identifier in the aConverter parameter.

Parameters

TDes8 &aIso

On return, the converted text string in the specified ISO character set.

const TDesC16 &aUnicode

The Unicode text string to be converted.

CCnvCharacterSetConverter *aConverter

The character set converter.

Return value

TInt

If no error occurs, this is the number of unconverted characters left at the end of the input descriptor. This is zero if the whole string is converted, but may be greater than zero (e.g. because the output descriptor is not long enough to hold all the text). Otherwise, one of the error values defined in TError in the CCnvCharacterSetConverter class, or KErrNotFound if aConverter does not point to a valid character set converter object.


DecodeDateTimeL()

IMPORT_C TVersitDateTime *DecodeDateTimeL(TDes &aToken) const;

Description

Parameters

TDes &aToken

Return value

TVersitDateTime *


ConvertToUnicodeFromISOL()

protected: IMPORT_C TInt ConvertToUnicodeFromISOL(TDes16 &aUnicode, const TDesC8 &aIso, TUint aCharacterSet);

Description

Converts text in a non-Unicode character set into Unicode (UCS-2).

Parameters

TDes16 &aUnicode

On return, the converted text string in the Unicode character set.

const TDesC8 &aIso

The non-Unicode text string to be converted.

TUint aCharacterSet

The non-Unicode character set in which aIso is encoded.

Return value

TInt

If no error occurs, the number of unconverted bytes left at the end of the input descriptor. This is zero if the whole string is converted; but it may be greater than zero, e.g. because the output descriptor is not long enough to hold all the text. Otherwise, one of the error values defined in TError in the CCnvCharacterSetConverter class, or KErrNotFound if aCharacterSet cannot be converted.


ParsePropertiesL()

protected: IMPORT_C void ParsePropertiesL();

Description


ParseBeginL()

protected: IMPORT_C void ParseBeginL();

Description


ParseEndL()

protected: IMPORT_C void ParseEndL();

Description


ParseEntityL()

protected: IMPORT_C TBool ParseEntityL();

Description

Return value

TBool


ParsePropertyL()

protected: virtual IMPORT_C void ParsePropertyL();

Description


ReadLineAndDecodeParamsLC()

protected: IMPORT_C CArrayPtr< CParserParam > *ReadLineAndDecodeParamsLC(TInt &aValueStart, TInt &aNameLen);

Description

Parameters

TInt &aValueStart

TInt &aNameLen

Return value

CArrayPtr< CParserParam > *


MakePropertyL()

protected: IMPORT_C void MakePropertyL(TPtr8 &aPropName, TInt aValueStart);

Description

Ignore junk lines between vCal entities. Skip readMultiLine within ParseBegin.

Parameters

TPtr8 &aPropName

TInt aValueStart


GetPropertyParamsLC()

protected: IMPORT_C CArrayPtr< CParserParam > *GetPropertyParamsLC(TPtr8 aParams);

Description

Parameters

TPtr8 aParams

Return value

CArrayPtr< CParserParam > *


ParseParamL()

protected: IMPORT_C void ParseParamL(CArrayPtr< CParserParam > *aArray, TPtr8 aParam);

Description

Parameters

CArrayPtr< CParserParam > *aArray

TPtr8 aParam


AnalysesEncodingCharset()

protected: IMPORT_C void AnalysesEncodingCharset(CArrayPtr< CParserParam > *aArrayOfParams);

Description

Parameters

CArrayPtr< CParserParam > *aArrayOfParams


ReadMultiLineValueL()

protected: IMPORT_C void ReadMultiLineValueL(TPtr8 &aValue, TInt aValueStart, TBool aBinaryData);

Description

Parameters

TPtr8 &aValue

TInt aValueStart

TBool aBinaryData


BufPtr()

protected: inline TPtr8 &BufPtr();

Description

Return value

TPtr8 &


AppendBeginL()

protected: IMPORT_C void AppendBeginL();

Description


AppendEndL()

protected: IMPORT_C void AppendEndL();

Description


DoAddPropertyL()

protected: IMPORT_C void DoAddPropertyL(CParserProperty *aProperty);

Description

Parameters

CParserProperty *aProperty


MakeEntityL()

protected: virtual IMPORT_C CVersitParser *MakeEntityL(TInt aEntityUid, HBufC *aEntityName);

Description

Parameters

TInt aEntityUid

HBufC *aEntityName

Return value

CVersitParser *


MakePropertyValueL()

protected: virtual IMPORT_C CParserPropertyValue *MakePropertyValueL(const TUid &aPropertyUid, HBufC16 *&aValue);

Description

Parameters

const TUid &aPropertyUid

HBufC16 *&aValue

Return value

CParserPropertyValue *


DecodePropertyValueL()

protected: IMPORT_C HBufC *DecodePropertyValueL(const TDesC8 &aValue);

Description

Parameters

const TDesC8 &aValue

Return value

HBufC *


DecodePropertyValueL()

protected: IMPORT_C void DecodePropertyValueL(const TDesC8 &aValue, const TUid &aEncodingUid);

Description

Parameters

const TDesC8 &aValue

const TUid &aEncodingUid


MakePropertyValueCDesCArrayL()

protected: IMPORT_C CDesCArray *MakePropertyValueCDesCArrayL(TPtr16 aStringValue);

Description

Parses a compound property value string.

The sub-values found are appended to an array, after removal of escape characters. The array is returned, and ownership is transferred to the caller.

Parameters

TPtr16 aStringValue

Compound property value string.

Return value

CDesCArray *

Array of property values found in the string.


MakePropertyValueMultiDateTimeL()

protected: IMPORT_C CArrayPtr< TVersitDateTime > *MakePropertyValueMultiDateTimeL(TPtr16 aDateTimeGroup);

Description

Parameters

TPtr16 aDateTimeGroup

Return value

CArrayPtr< TVersitDateTime > *


MakePropertyValueDaylightL()

protected: IMPORT_C CVersitDaylight *MakePropertyValueDaylightL(TPtr16 aDaylightValue);

Description

Parameters

TPtr16 aDaylightValue

Return value

CVersitDaylight *


FindFirstField()

protected: IMPORT_C TBool FindFirstField(TPtr16 &aField, TPtr16 &aRemaining, TBool aTrimSpace=ETrue);

Description

Parameters

TPtr16 &aField

TPtr16 &aRemaining

TBool aTrimSpace

Return value

TBool


FindRemainingField()

protected: IMPORT_C void FindRemainingField(TPtr16 &aField, TPtr16 &aRemaining);

Description

Sets up a pointer to the remaining field. Sets the original remaining field pointers length to 0.

Parameters

TPtr16 &aField

on return points to the data and length that aRemaining originally pointed to.

TPtr16 &aRemaining

as input references a location that the descriptor is to represent. On return length is set to 0.


DecodeTimeZoneL()

protected: IMPORT_C TTimeIntervalSeconds DecodeTimeZoneL(const TDesC &aToken) const;

Description

Parameters

const TDesC &aToken

Return value

TTimeIntervalSeconds


DecodeTimePeriodL()

protected: IMPORT_C TTime *DecodeTimePeriodL(const TDesC &aToken) const;

Description

Parameters

const TDesC &aToken

Return value

TTime *


GetNumberL()

protected: IMPORT_C TInt GetNumberL(const TDesC &aToken, TInt &aNumChars) const;

Description

Parameters

const TDesC &aToken

TInt &aNumChars

Return value

TInt


RecognizeToken()

virtual IMPORT_C TUid RecognizeToken(const TDesC8 &aToken) const;

Description

Returns a UID for the specified token.

This function only recognizes generic Versit tokens. For example, if aToken contains the property name KVersitTokenBEGIN, the function returns KVersitTokenBeginUid. More specific recognition should occur in derived classes which implement this function, using this as the base recogniser.

Parameters

const TDesC8 &aToken

The token to be recognized.

Return value

TUid

A defined UID value if the token has been recognized; KVersitTokenUnknownUid otherwise.


RecognizeEntityName()

virtual IMPORT_C TInt RecognizeEntityName() const;

Description

Tests the current entity to see if it is a vEvent or vTodo.

This function is virtual. Actual testing only occurs in derived classes which implement this function.

Return value

TInt

Zero. Derived classes' implementations would return a value that indicates the current entity's type.


ResetAndDestroyArrayOfParams()

static IMPORT_C void ResetAndDestroyArrayOfParams(TAny *aObject);

Description

Destroys an array of parameters.

Parameters

TAny *aObject

Pointer to the array of parameters to be destroyed.


ResetAndDestroyArrayOfProperties()

static IMPORT_C void ResetAndDestroyArrayOfProperties(TAny *aObject);

Description

Destroys an array of properties.

Parameters

TAny *aObject

Pointer to the array of properties to be destroyed.


ResetAndDestroyArrayOfEntities()

static IMPORT_C void ResetAndDestroyArrayOfEntities(TAny *aObject);

Description

Destroys an array of entities.

Parameters

TAny *aObject

Pointer to the array of entities to be destroyed.


ResetAndDestroyArrayOfDateTimes()

static IMPORT_C void ResetAndDestroyArrayOfDateTimes(TAny *aObject);

Description

Destroys an array of Versit dates and times.

Parameters

TAny *aObject

Pointer to the array of Versit dates and times to be destroyed.


SetFlags()

inline void SetFlags(TUint aFlags);

Description

Parameters

TUint aFlags


SupportsVersion()

protected: inline TBool SupportsVersion() const;

Description

Return value

TBool


SetSupportsVersion()

protected: inline void SetSupportsVersion();

Description


ClearSupportsVersion()

protected: inline void ClearSupportsVersion();

Description


RestoreLineCodingDetailsToDefault()

protected: IMPORT_C void RestoreLineCodingDetailsToDefault();

Description


SetLineEncoding()

protected: IMPORT_C void SetLineEncoding(Versit::TVersitEncoding aLineEncoding);

Description

Parameters

Versit::TVersitEncoding aLineEncoding


SetLineEncoding()

protected: IMPORT_C void SetLineEncoding(TUint aVersitEncodingUid);

Description

Parameters

TUint aVersitEncodingUid


SetLineCharacterSet()

protected: IMPORT_C void SetLineCharacterSet(Versit::TVersitCharSet aLineCharSet);

Description

Parameters

Versit::TVersitCharSet aLineCharSet


SetLineCharacterSetId()

protected: IMPORT_C void SetLineCharacterSetId(TUint aLineCharSetId);

Description

Parameters

TUint aLineCharSetId


SetLineCoding()

protected: IMPORT_C void SetLineCoding(Versit::TVersitCharSet aLineCharSet, Versit::TVersitEncoding aLineEncoding);

Description

Parameters

Versit::TVersitCharSet aLineCharSet

Versit::TVersitEncoding aLineEncoding


LineEncoding()

protected: IMPORT_C Versit::TVersitEncoding LineEncoding() const;

Description

Return value

Versit::TVersitEncoding


LineCharSet()

protected: IMPORT_C Versit::TVersitCharSet LineCharSet() const;

Description

Return value

Versit::TVersitCharSet


LineEncodingId()

protected: IMPORT_C TUint LineEncodingId() const;

Description

Return value

TUint


LineCharSetId()

protected: IMPORT_C TUint LineCharSetId() const;

Description

Return value

TUint


UnicodeUtils()

protected: inline CVersitUnicodeUtils &UnicodeUtils();

Description

Return value

CVersitUnicodeUtils &


Reserved1()

private: virtual IMPORT_C void Reserved1();

Description


Reserved2()

private: virtual IMPORT_C void Reserved2();

Description

[Top]


Member structures


Struct TParserCodingDetails

protected: struct TParserCodingDetails;

Description

Members

Defined in CVersitParser::TParserCodingDetails:
iCharSet, iCharSetUid, iEncoding, iEncodingUid

Member data


iEncoding

Versit::TVersitEncoding iEncoding;

Description


iEncodingUid

TUint iEncodingUid;

Description


iCharSet

Versit::TVersitCharSet iCharSet;

Description


iCharSetUid

TUint iCharSetUid;

Description

[Top]


Member enumerations


Enum TCharCodes

TCharCodes

Description

White space character codes: used while analysing the syntax of the received data and while externalising data.

ESpace

' '

EHTab

9

ELineFeed

10

ECarriageReturn

13


Enum TVersitParserFlags

TVersitParserFlags

Description

Flags that can be specified on construction.

ENoVersionProperty

This entity does not need a version property.

ESupportsVersion

This entity should have a version property.

EImportSyncML

EUseAutoDetection

Indicates whether the parser should use auto-detection of character sets when one has not been explicitly specified.

ECharSetIdentified

The current property has specified a character set.

EUseDefaultCharSetForAllProperties

If the charset is not explicitly specified, the default charset will be used instead of US-ASCII as required by the Versit specification .

[Top]


Member data


iFlags

protected: TInt iFlags;

Description


iDefaultCodingDetails

protected: TParserCodingDetails iDefaultCodingDetails;

Description


iCurrentPropertyCodingDetails

protected: TParserCodingDetails iCurrentPropertyCodingDetails;

Description


iDefaultVersion

protected: TBuf< 16 > iDefaultVersion;

Description


iAutoDetectCharSets

protected: const CArrayFix< CCnvCharacterSetConverter::SCharacterSet > * iAutoDetectCharSets;

Description


iEntityName

protected: HBufC * iEntityName;

Description


iArrayOfEntities

protected: CArrayPtr< CVersitParser > * iArrayOfEntities;

Description


iArrayOfProperties

protected: CArrayPtr< CParserProperty > * iArrayOfProperties;

Description


iCurrentProperty

protected: CParserProperty * iCurrentProperty;

Description


iOwnedLineReader

protected: CLineReader * iOwnedLineReader;

Description


iLineReader

protected: CLineReader * iLineReader;

Description


iDecodedValue

protected: HBufC8 * iDecodedValue;

Description


iLargeDataBuf

protected: CBufSeg * iLargeDataBuf;

Description


iWriteStream

protected: RWriteStream * iWriteStream;

Description


iStaticUtils

protected: CVersitTlsData * iStaticUtils;

Description


iObserver

protected: MVersitObserver * iObserver;

Description


iPlugIn

protected: MVersitPlugIn * iPlugIn;

Description