class CParserVCard : public CVersitParser |
A vCard parser.
Adds support for property groups (see CParserGroupedProperty) and agents (see CParserPropertyValueAgent) to the functionality of CVersitParser.
Provides a constructor and overrides CVersitParser::InternalizeL(), ExternalizeL(), RecognizeToken(), ConvertAllPropertyDateTimesToMachineLocalL(), ParsePropertyL() and MakePropertyValueL().
The vCard data is read from or written to a stream or file, using the InternalizeL() and ExternalizeL() functions. Most users of this class will only need to use these functions.
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 information.
Public Member Functions | |
---|---|
IMPORT_C void | ConvertAllPropertyDateTimesToMachineLocalL(const TTimeIntervalSeconds &, const CVersitDaylight *) |
IMPORT_C void | ConvertDateTimesToMachineLocalAndDeleteTZL() |
IMPORT_C void | ExternalizeL(RWriteStream &) |
IMPORT_C CArrayPtr< CParserProperty > * | GroupOfPropertiesL(const TDesC8 &) |
IMPORT_C void | InternalizeL(RReadStream &) |
IMPORT_C CParserVCard * | NewL() |
CParserVCard * | NewL(TBool) |
IMPORT_C TUid | RecognizeToken(const TDesC8 &) |
Protected Member Functions | |
---|---|
CParserVCard() | |
CParserVCard(TBool) | |
IMPORT_C CDesC8Array * | GetGroupNamesL(TPtr8 &) |
IMPORT_C CParserPropertyValue * | MakePropertyValueAgentL(TPtr16) |
IMPORT_C CParserPropertyValue * | MakePropertyValueL(const TUid &, HBufC16 *&) |
IMPORT_C CParserPropertyValue * | MakePropertyValueSoundL(HBufC16 *&) |
IMPORT_C void | ParsePropertyL() |
Private Member Functions | |
---|---|
IMPORT_C void | Reserved1() |
IMPORT_C void | Reserved2() |
Inherited Enumerations | |
---|---|
CVersitParser:TCharCodes | |
CVersitParser:TVersitParserFlags |
Private Attributes | |
---|---|
TBool | iParsingAgent |
IMPORT_C void | ConvertAllPropertyDateTimesToMachineLocalL | ( | const TTimeIntervalSeconds & | aIncrement, |
const CVersitDaylight * | aDaylight | |||
) | [virtual] |
Converts all date/time property values contained in the vCard entity into machine local values (including all date/time values contained in agent properties).
This conversion is needed because of differences in universal and local times due to time zones and daylight savings (seasonal time shifts).
If there is a daylight savings rule associated with the date/time (held in the aDaylight parameter) then this will be used to compensate for differences between universal and local times due to both time zones and the daylight savings rule. Otherwise, the aIncrement parameter is used to compensate for any difference due to time zones alone.
since 9.1
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). |
IMPORT_C void | ConvertDateTimesToMachineLocalAndDeleteTZL | ( | ) |
Converts all date/time property values contained in the vCard entity into machine local values (including all date/time values contained in agent properties).
This conversion is needed because of differences in universal and local times due to time zones.
Finds the necessary increment to compensate for the time zone, using the value given by the first time zone property (named KVersitTokenTZ) in the array of properties. This increment is passed as a parameter to ConvertAllPropertyDateTimesToMachineLocalL(). The CVersitDaylight* parameter passed to ConvertAllPropertyDateTimesToMachineLocalL() is NULL, so no compensation can be made by this function for any daylight saving (seasonal time shift). since 9.1
IMPORT_C void | ExternalizeL | ( | RWriteStream & | aStream | ) | [virtual] |
Externalises a vCard entity (and all sub-entities) to a write stream.
Sets the entity name to KVersitVarTokenVCARD if it hasn't already been set.
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.
RWriteStream & aStream | Stream to which the vCard entity should be externalised. |
IMPORT_C CDesC8Array * | GetGroupNamesL | ( | TPtr8 & | aGroupsAndName | ) | [protected] |
TPtr8 & aGroupsAndName |
IMPORT_C CArrayPtr< CParserProperty > * | GroupOfPropertiesL | ( | const TDesC8 & | aName | ) | const |
Gets an array of all properties in the named property group from the vCard entity.
A property group is a collection of related properties, identified by a group name.
Ownership of the properties is not transferred.
const TDesC8 & aName | The name of the property group of interest. |
IMPORT_C void | InternalizeL | ( | RReadStream & | aStream | ) | [virtual] |
Internalises a vCard entity from a read stream.
The presence of this function means that the standard templated operator>>() (defined in s32strm.h) is available to internalise objects of this class.
RReadStream & aStream | Stream from which the vCard entity should be internalised. |
IMPORT_C CParserPropertyValue * | MakePropertyValueAgentL | ( | TPtr16 | aValue | ) | [protected, virtual] |
TPtr16 aValue |
IMPORT_C CParserPropertyValue * | MakePropertyValueL | ( | const TUid & | aPropertyUid, |
HBufC16 *& | aValue | |||
) | [protected, virtual] |
Creates a property value, by parsing the specified descriptor.
This function overrides CVersitParser::MakePropertyValueL() to ensure that agent and sound properties are correctly recognised and constructed.
Note that aValue may be set to NULL on return from this method.
IMPORT_C CParserPropertyValue * | MakePropertyValueSoundL | ( | HBufC16 *& | aValue | ) | [protected] |
Creates a property value object from a SOUND property value.
SOUND property values can either contain a single string (using HBufC storage) or, following the addition of Japanese pronunciation support to Symbian's Versit API, an array (using CDesCArray storage). This method allocates the additional storage needed to support array-based sound properties, when necessary.
Note that aValue will be set to NULL on return from this method.
HBufC16 *& aValue | The raw property value descriptor. |
IMPORT_C TUid | RecognizeToken | ( | const TDesC8 & | aToken | ) | const [virtual] |
Returns a UID that identifies a specified token's type.
For example, if aToken contains the property name BDAY, the function returns KVersitPropertyDateUid. If the token is not recognized as vCard-specific, the function calls CVersitParser::RecognizeToken(), which recognizes generic Versit tokens.
const TDesC8 & aToken | The token to be recognized. |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.