diff -r a36b1e19a461 -r 989d2f495d90 serviceproviders/sapi_calendar/tsrc/testing/tcal_providertest/inc/entryattributes.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serviceproviders/sapi_calendar/tsrc/testing/tcal_providertest/inc/entryattributes.h Fri Jul 03 15:51:24 2009 +0100 @@ -0,0 +1,801 @@ +/* +* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __CALENDARENTRY_H +#define __CALENDARENTRY_H + +#include +#include + +class CCalUser; + +class CAttendeeInfo : public CBase + { + public: + + /** + * Two-phased constructor. + * @param aAddress The address of the attendee + * @return An instance of CAttendeeInfo + */ + IMPORT_C static CAttendeeInfo* NewL( const TDesC& aAddress ); + + /** + * Destructor. + */ + ~CAttendeeInfo(); + + /** + * Sets the iCalender-defined common name of the user + * @param aName It is the common name of the user + */ + IMPORT_C void SetCommonNameL( const TDesC& aName ); + + /** + * Set the role of this attendee + * @param aRole The role + */ + IMPORT_C void SetRoleL( const TDesC& aRole ); + + /** + * Set the status of this attendee + * @param aStatus The status + */ + IMPORT_C void SetStatusL( const TDesC& aStatus ); + + /** + * Sets whether or not a response was requested for this attendee + * @param aResponse ETrue if a response was requested, EFalse if not + */ + IMPORT_C void SetRsvp( const TBool aResponse ); + + /** + * Gets the address of the attendee. + * @return The address of the attendee. + */ + IMPORT_C TPtrC Address(); + + /** + * Gets the iCalender-defined common name of the user. + * @return The common name of the user. + */ + IMPORT_C TPtrC CommonName(); + + /** + * Get the role of this attendee + * @return The role + */ + IMPORT_C TPtrC Role(); + + /** + * Get the status of this attendee + * @return The status + */ + IMPORT_C TPtrC Status(); + + /** + * Gets whether or not a response was requested for this attendee. + * @return ETrue if a response was requested, EFalse if not. + */ + IMPORT_C TBool ResponseRequested(); + + + private: + + /** + * Constructor + */ + CAttendeeInfo(); + + /** + * Constructor + */ + void ConstructL( const TDesC& aAddress ); + + private: + + + /** + * Repeat type: can be daily, weekly, monthly or yearly + */ + HBufC* iAddress; + + /** + * Repeat type: can be daily, weekly, monthly or yearly + */ + HBufC* iRole; + + /** + * Until time of the repeat rule + */ + HBufC* iStatus; + + /** + * Start time of the repeat rule + */ + HBufC* iCommonName; + + /** + * Interval for the repeat rule + */ + TBool iResponse; + + + + }; + +class CRepeatInfo : public CBase + { + + public: + /** + * Two-phased constructor. + * @param + * @return An instance of CRepeatInfo + */ + IMPORT_C static CRepeatInfo* NewL( const TInt aType ); + + /** + * Destructor. + */ + ~CRepeatInfo(); + + /** + * Sets the until time for the repeat rule + * @param aUntilTime It is the time until which we want this rule to + * repeat + */ + IMPORT_C void SetUntilTimeL( const TTime& aUntilTime ); + + /** + * Sets the number of instances for the repeat rule + * @param aCount It is the number of instances we want this rule to + * repeat + */ + IMPORT_C void SetCount( const TUint aCount ); + + /** + * Sets the start time for the repeat rule + * @param aStartTime It is the start time for the repeat rule + */ + IMPORT_C void SetStartTimeL( const TTime& aStartTime ); + + /** + * Sets the interval for the repeat rule + * @param aInterval It is the interval between two successive repeats + */ + IMPORT_C void SetInterval( const TInt aInterval ); + + /** + * Sets all week days on which this rule is repeated, applicable only + * for weekly repeat rule + * @param aDay It specifies the day of the week on which this rule + * repeats. + */ + IMPORT_C void SetDaysInWeek( const RArray& aDays ); + + /** + * Sets all dates of the month on which this rule is repeated, applicable + * only for monthly repeat rule + * @param aDay It specifies the day of the month on which this rule + * repeats. + */ + IMPORT_C void SetMonthDates( const RArray& aMonthDates ); + + /** + * Sets all days of the month on which this rule is repeated, applicable + * only for monthly and yearly repeat rule + * @param aDay It specifies the day of the week on which this rule + * repeats. + * @param aWeekNum The week number in the month i.e.1, 2, 3, 4 for the 1st, + 2nd, 3rd and 4th week of the month, or -1 for the last week + of the month. + */ + IMPORT_C void SetMonthDays( const RArray& aDays ); + + /** + * Sets the month of the year for this repeat rule + * @param aMonthNum It is the month number in which we want the rule to repeat + */ + IMPORT_C void SetMonth( const TInt aMonthNum ); + + + /** + * Sets the first day of the week for this repeat rule. + * @param aDay The weekday to be the first + */ + IMPORT_C void SetWeekStart( const TInt aDay ); + + /** + * Gets the month of the year for this repeat rule + * @return The month of the yearly repeat + */ + IMPORT_C TMonth Month(); + + /** + * Gets all weekdays on which this rule is repeated + * @return Array containing all weekdays that are to be set + */ + IMPORT_C RArray< TDay >& DaysInWeek(); + + /** + * Gets all days in the month on which this rule is repeated + * @return Array containing all days in the month that are to be set + */ + IMPORT_C RArray< TCalRRule::TDayOfMonth >& DaysInMonth(); + + /** + * Gets all dates in the month on which this rule is repeated + * @return Array containing all dates in the month that are to be set + */ + IMPORT_C RArray< TInt >& DatesInMonth(); + + /** + * Gets the repeat interval. + * @return The repeat interval + */ + IMPORT_C TInt Interval(); + + /** + * Gets the repeat interval. + * @return The end date, as a TCalTime so it may be accessed in utc or system local time + */ + IMPORT_C TCalTime& UntilDate(); + + /** + * Gets the repeat definition's type. + * @return The repeat definition's type + */ + IMPORT_C TCalRRule::TType Type(); + + /** + * Gets the first day of the week for this repeat rule. + * @return The first day of the week for this repeat rule. + */ + IMPORT_C TDay WeekStart(); + + /** + * Gets the repeat rule + * @return The repeat rule. + */ + IMPORT_C TCalRRule& GetRepeatRule(); + private: + + /** + * Constructor + */ + CRepeatInfo(); + + /** + * Constructor + */ + void ConstructL( const TInt aType ); + private: + + + /** + * Repeat type: can be daily, weekly, monthly or yearly + */ + TCalRRule::TType iType; + + /** + * Until time of the repeat rule + */ + TCalTime iUntilTime; + + /** + * Start time of the repeat rule + */ + TCalTime iStartTime; + + /** + * Interval for the repeat rule + */ + TInt iInterval; + + /** + * Month for the yearly repeat rule + */ + TMonth iMonth; + + /** + * Array of month days for the monthly/yearly repeat rule + */ + RArray iMonthDays; + + /** + * Array of month dates for the monthly repeat rule + */ + RArray iMonthDates; + + /** + * Array of weekdays for the weekly repeat rule + */ + RArray iWeekDays; + + TDay iWkSt; + + TCalRRule iRule; + + }; + +/** + * This class provides function to set and get various attributes + * associated with a calendar entry. + */ +class CEntryAttributes : public CBase + { + public: + + /** + * TModifiedParameters enum for indicating which entry fields have new values + * for modification + */ + enum TModifiedParameters + { + ESummary =0x00001, + ESeqNum =0x00002, + EStartTime =0x00004, + EEndTime =0x00008, + EReplication =0x00010, + EDescription =0x00020, + EPriority =0x00040, + EMethod =0x00080, + EAlarmTime =0x00100, + ELocation =0x00200, + EStatus =0x00400, + ERepeatRule =0x00800, + EExDates =0x01000, + ERepeatDates =0x02000, + EPhoneOwner =0x04000, + EOrganizer =0x08000, + EAttendees =0x10000, + ELocalUid =0x20000, + EEntryType =0x40000, + EInsStartTime =0x80000, + }; + + public: + + /** + * Two-phased constructor. + * @param aType It is the type of calendar entry and can be an appointment, + * to-do item, reminder, event or anniversary + * @return An instance of CEntryAttributes + */ + IMPORT_C static CEntryAttributes* NewL( const TDesC& aType ); + + /** + * Two-phased constructor. + * @return An instance of CEntryAttributes + */ + IMPORT_C static CEntryAttributes* CEntryAttributes::NewL(); + /** + * Destructor. + */ + ~CEntryAttributes(); + + /** + * Sets the start time for the calendar entry + * @param aStartTime It is the start time that we want to set to the + * calendar entry. + * @return void + */ + IMPORT_C void SetTypeL( const TDesC& aType ); + + /** + * Sets the start time for the calendar entry + * @param aStartTime It is the start time that we want to set to the + * calendar entry. + * @return void + */ + IMPORT_C void SetStartTimeL( const TTime& aStartTime ); + + /** + * Sets the end time for the calendar entry + * @param aEndTime It is the start time that we want to set to the + * calendar entry. + * @return void + */ + IMPORT_C void SetEndTimeL( const TTime& aEndTime ); + + /** + * Sets the instance start time for the calendar entry, valid for "Update" + * opration + * @param aEndTime It is the start time that we want to set to the + * calendar entry. + * @return void + */ + IMPORT_C void SetInstanceStartTimeL( const TTime& aStartTime ); + + /** + * Sets the sequence number for the calendar entry + * @param aSeqNum It is the sequence number that we want to set to the + * calendar entry. + * @return void + */ + IMPORT_C void SetSequenceNumber( const TInt aSeqNum ); + + /** + * Sets the status of the calendar entry + * @param aStatus It specifies the current status of the calendar entry. + * @return void + */ + IMPORT_C void SetEntryStatusL( const TDesC& aStatus ); + + /** + * Sets the phone owner for a calendar entry + * @param aCommonName It is the common name of the calendar user + * @param aEmailAddress It is the email address of the calendar user + * @return void + */ + IMPORT_C void SetPhoneOwnerDataL( const TDesC& aPhoneOwner ); + /** + + * Sets the organizer of a calendar entry of type appointment + * @param aCommonName It is the common name of the group to which + * this user belongs. + * @param aEmailAddress It is the email address of the meeting organizer + * @return void + */ + IMPORT_C void SetOrganizerDataL( CAttendeeInfo* aPhoneOwner ); + + /** + * Adds the attendees of a calendar entry of type appointment + * @param aAttendee attendee for the appointment. Ownership is transfered + * @return void + */ + IMPORT_C void AddAttendeeL( CAttendeeInfo* aAttendee ); + + /** + * Adds the out-of-sequence dates on which this entry occurs. + * @param aRepeatDate date that we want to add to the original schedule. + * @return void + */ + IMPORT_C void AddRepeatDateL( const TTime& aRepeatDate ); + + /** + * Adds the date that is to be exceptioned in the original schedule. + * @param aExDate It is the date that we want to remove + * from the original schedule. + * @return void + */ + IMPORT_C void AddExceptionDateL( const TTime& aExDate ); + + /** + * Sets the summary for the calendar entry. + * @param aSummary It is the summary that we want to set for the + * calendar entry. + * @return void + */ + IMPORT_C void SetSummaryL( const TDesC& aSummary ); + + /** + * Sets the description for the calendar entry. + * @param aDescription It is the description that we want to set for the + * calendar entry. + * @return void + */ + IMPORT_C void SetDescriptionL( const TDesC& aDescription ); + + /** + * Sets the location for the calendar entry. + * @param aLocation It is the location that we want to set for the + * meeting entry. + * @return void + */ + IMPORT_C void SetLocationL( const TDesC& aLocation ); + + /** + * Sets the method for the calendar entry. + * @param aMethod It is the method that we want to set for the + * meeting entry. + * @return void + */ + IMPORT_C void SetMethodL( const TDesC& aMethod ); + + /** + * Sets the replication for the calendar entry. + * @param aLocation It is the location that we want to set for the + * meeting entry. + * @return void + */ + IMPORT_C void SetReplicationL( const TDesC& aRepStatus ); + + /** + * Sets the priority for the calendar entry. + * @param aLocation It is the location that we want to set for the + * meeting entry. + * @return Error code + */ + IMPORT_C int SetPriority(const TInt aPriority ); + + /** + * Sets the alarm for the calendar entry. + * @param aAlarmTime It is the time that we want to set for the + * entry alarm. + * @return void + */ + IMPORT_C void SetAlarm( const TTime& aAlarmTime); + + /** + * Sets the local uid for the calendar entry. + * @param aLocation It is the location that we want to set for the + * meeting entry. + * @return void + */ + IMPORT_C void SetLocalUid( const TCalLocalUid aLUid); + + /** + * Gets the start time for the calendar entry. + * @param aLocation It is the location that we want to set for the + * meeting entry. + * @return void + */ + + + IMPORT_C TCalTime& StartTime(); + + /** + * Sets the entry's repeat rule + * @param aRptInfo It is the repeat rule information for this entry + */ + IMPORT_C void SetRepeatRule( CRepeatInfo* aRptInfo); + + /** + * Gets the end time for the calendar entry. + * @return The end time for the calendar entry. + */ + IMPORT_C TCalTime& EndTime(); + + /** + * Gets the instance start time. + * @return void The instance start time. + */ + IMPORT_C TCalTime& InstanceStartTime(); + + /** + * Gets the entry type for the calendar entry. + * @return void The entry type for the calendar entry. + */ + IMPORT_C CCalEntry::TType EntryType(); + + /** + * Gets the sequence number for the calendar entry. + * @return void The sequence number for the calendar entry. + */ + IMPORT_C TInt SequenceNumber(); + + /** + * Gets the entry status for the calendar entry. + * @return void The entry status for the calendar entry. + */ + IMPORT_C CCalEntry::TStatus EntryStatus(); + + /** + * Gets the alarm time for the calendar entry. + * @return void The alarm time for the calendar entry. + */ + IMPORT_C TTime AlarmTime(); + + /** + * Gets the phone owner for the calendar entry. + * @return void The phone owner for the calendar entry. + */ + IMPORT_C TPtrC PhoneOwner(); + + /** + * Gets the method for the calendar entry. + * @return void The method for the calendar entry + */ + IMPORT_C CCalEntry::TMethod Method(); + + /** + * Gets the organizer for the calendar entry. + * @return void The organizer for the calendar entry. + */ + IMPORT_C CCalUser* Organizer(); + + /** + * Gets the list of attendees for the calendar entry. + * @return RPointerArray& + */ + IMPORT_C RPointerArray& AttendeeList(); + + /** + * Gets the list of repeat dates for the calendar entry. + * @return void + */ + IMPORT_C RArray& RepeatDates(); + + /** + * Gets the exception dates for the calendar entry. + * @return void + */ + IMPORT_C RArray& ExceptionDates(); + + /** + * Gets the summary for the calendar entry. + * @return void + */ + IMPORT_C TPtrC Summary(); + + /** + * Gets the description for the calendar entry. + * @return void + */ + IMPORT_C TPtrC Description(); + + /** + * Gets the location for the calendar entry. + * @return void + */ + IMPORT_C TPtrC Location(); + + /** + * Gets the priority for the calendar entry. + * @return void + */ + IMPORT_C TInt Priority(); + + /** + * Gets the replication status for the calendar entry. + * @return void + */ + IMPORT_C CCalEntry::TReplicationStatus ReplicationStatus(); + + /** + * Gets the repeat rule for the calendar entry. + * @return void + */ + IMPORT_C TCalRRule& RepeatRuleL(); + + /** + * Gets the local uid for the calendar entry. + * @return void + */ + IMPORT_C TCalLocalUid LocalUid(); + + /** + * Gets the attributes that have changed for the calendar entry. + * @return A 32-bit integer indicating which attributes have been modified. + */ + IMPORT_C TInt32 ModifiedAttributes(); + + private: + + /** + * Constructor + */ + CEntryAttributes(); + + /** + * Constructor + */ + void ConstructL( const TDesC& aType ); + private: + + + /** + * Entry type: can be an appointment, to-do item, reminder, event or anniversary + */ + CCalEntry::TType iType; + + /** + * Start time of the entry + */ + TCalTime iStartTime; + + /** + * End time of the entry + */ + TCalTime iEndTime; + + /** + * Start time of the instance to be modified + */ + TCalTime iInstanceStartTime; + + /** + * Sequence number for the entry + */ + TInt iSequenceNum; + + /** + * Summary for the entry + */ + HBufC* iSummary; + + /** + * Description for the entry + */ + HBufC* iDescription; + + /** + * Location for entry of appointment type + */ + HBufC* iLocation; + + /** + * Alarm time for the entry + */ + TTime iAlarmTime; + + /** + * Status of the entry: valid for entries of "appointment" and "todo" type + */ + CCalEntry::TStatus iEntryStatus; + + /** + * Entry's method property for group scheduling + */ + CCalEntry::TMethod iMethod; + + /** + * Replication status of the entry + */ + CCalEntry::TReplicationStatus iRepStatus; + + /** + * Phone owner data for the entry: applicable only for entries of "appointment" type + */ + HBufC* iPhoneOwner; + + /** + * Organizer of an appointment entry + */ + CCalUser* iOrganizer; + + /** + * An array of out-of-sequence dates on which this entry repeats + */ + RArray iRepeatDates; + + /** + * An array of exception dates i.e occurrences in the original schedule that + * have been removed and may be replaced with a different occurrence + */ + RArray iExDates; + + /** + * Array of attendees of an appointment entry + */ + RPointerArray iAttendees; + + /** + * The entry's repeat definition: valid for repeating entries of "appointment" type + */ + TCalRRule iRepeatRule; + + /** + * Priority of the entry + */ + TInt iPriority; + + /** + * Local Uid of an entry which can uniquely identify entries having the same Global Uid + */ + TCalLocalUid iLocal; + + /** + * Indicates which entries have new values for the update operation + */ + TInt32 iSetAttributes; + }; + +#endif __CALENDARENTRY_H \ No newline at end of file