CParserPropertyValueRecurrence Class Reference

class CParserPropertyValueRecurrence : public CParserTimePropertyValue

A recurrence property value parser.

This is used to store and retrieve the recurrence information for a repeating vEvent or vTodo. This information is stored as a CVersitRecurrence object.

The UID for a recurrence property value is KVCalPropertyRecurrenceUid.

Inherits from

Public Member Functions
CParserPropertyValueRecurrence ( CVersitRecurrence *)
~CParserPropertyValueRecurrence ()
IMPORT_C void ConvertAllDateTimesToUTCL (const TTimeIntervalSeconds &, const CVersitDaylight *)
IMPORT_C void ConvertAllUTCDateTimesToMachineLocalL (const TTimeIntervalSeconds &)
IMPORT_C void ExternalizeL ( RWriteStream &, const Versit::TEncodingAndCharset &, TInt )
CVersitRecurrence * Value ()
Inherited Functions
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CParserPropertyValue::Append(TDes16 &,TDesC8 &)
CParserPropertyValue::CParserPropertyValue(const TUid &)
CParserPropertyValue::EncodeL(CBufBase *,const TDesC8 &,const TUid &)const
CParserPropertyValue::FoldAndWriteValueToStreamL(RWriteStream &,const TDesC &,const Versit::TEncodingAndCharset &,TInt &)const
CParserPropertyValue::FoldEncodeAndWriteValueToStreamL(RWriteStream &,const CDesCArray *,const Versit::TEncodingAndCharset &,TInt &)const
CParserPropertyValue::FoldEncodeAndWriteValueToStreamL(RWriteStream &,const TDesC &,const Versit::TEncodingAndCharset &,TInt &)const
CParserPropertyValue::SetPlugIn(MVersitPlugIn *)
CParserTimePropertyValue::CParserTimePropertyValue(const TUid &)
CParserTimePropertyValue::ConvertDateTime(TDateTime &,const TTimeIntervalSeconds &,const CVersitDaylight *,TBool)
CParserTimePropertyValue::ConvertDateTime(TDateTime *,const TTimeIntervalSeconds &,const CVersitDaylight *)
CParserTimePropertyValue::EncodeTimePeriodL(TDes8 &,const TTime &)const
CParserTimePropertyValue::EncodeVersitDateTimeL(TDes8 &,const TVersitDateTime &,TBool)const
CParserTimePropertyValue::SupportsInterface(const TUid &)const
Protected Attributes
CVersitRecurrence * iValue

Constructor & Destructor Documentation

CParserPropertyValueRecurrence(CVersitRecurrence *)

IMPORT_C CParserPropertyValueRecurrence ( CVersitRecurrence * aValue )

Constructs a recurrence property value.

Sets the property value's UID to KVCalPropertyRecurrenceUid.


CVersitRecurrence * aValue A pointer to the recurrence value to assign to the property value parser. The property value parser takes ownership of the pointer.


IMPORT_C ~CParserPropertyValueRecurrence ( )

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

Member Functions Documentation

ConvertAllDateTimesToUTCL(const TTimeIntervalSeconds &, const CVersitDaylight *)

IMPORT_C void ConvertAllDateTimesToUTCL ( const TTimeIntervalSeconds & aIncrement,
const CVersitDaylight * aDaylight
) [virtual]

Converts the end time of the recurrence value into universal time.

The date/time is checked against the daylight saving information provided in aDaylight. If it falls inside the daylight saving period then the daylight saving offset is subtracted from the time to convert it to universal time. Otherwise the time is modified by aIncrement to convert it to universal time.

Note that the daylight savings offset will adjust the time both for the daylight saving and for the time zone.

The function has no effect if the value is already stored in universal time.

If aDaylight is a NULL pointer then aIncrement is used.

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 (that is 4hr 30mins ahead of UTC), aIncrement should be set to minus the number of seconds in 4hr 30mins..
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).

ConvertAllUTCDateTimesToMachineLocalL(const TTimeIntervalSeconds &)

IMPORT_C void ConvertAllUTCDateTimesToMachineLocalL ( const TTimeIntervalSeconds & aIncrement ) [virtual]

Converts the end time of the recurrence value into machine-local time.

This process involves adjusting the date/time value by the offset in aIncrement.

The function has no effect if the value is already stored in machine-local time.

since 9.1


const TTimeIntervalSeconds & aIncrement A time interval which represents the number of seconds which is to be added to the date/time value. This should normally be the universal time offset for the machine's locale.

ExternalizeL(RWriteStream &, const Versit::TEncodingAndCharset &, TInt)

IMPORT_C void ExternalizeL ( RWriteStream & aStream,
const Versit::TEncodingAndCharset & ,
) [virtual]

Externalises the recurrence property value into aStream.

The property is written to the stream in the following order:

  • Repeat type, e.g. "D" is written for a daily repeat (see KVersitRecurrenceDaily).

  • Repeat interval, e.g. "2" for a weekly repeat type that occurs fortnightly.

  • Occurrence list (optional), e.g. the string "MO TH" is written for a weekly repeat type that recurs on Mondays and Thursdays.

  • End date (optional) - the date on which the event should stop recurring.

  • Duration, e.g. "#10" for a weekly repeat type that should last for 10 weeks.

For example, "W2 TU TH #10", means a repeat every second Tuesday and Thursday for 10 weeks


RWriteStream & aStream Stream to which the value is to be externalised.
const Versit::TEncodingAndCharset &


CVersitRecurrence * Value ( ) const [inline]

Gets the recurrence value.

Member Data Documentation

CVersitRecurrence * iValue

CVersitRecurrence * iValue [protected]