--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sapi_calendar/calendarservice/inc/entryattributes.h Mon Mar 30 12:51:10 2009 +0300
@@ -0,0 +1,800 @@
+/*
+* 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 <calentry.h>
+#include <calrrule.h>
+
+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<TDay>& 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<TInt>& 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<TCalRRule::TDayOfMonth>& 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<TCalRRule::TDayOfMonth> iMonthDays;
+
+ /**
+ * Array of month dates for the monthly repeat rule
+ */
+ RArray<TInt> iMonthDates;
+
+ /**
+ * Array of weekdays for the weekly repeat rule
+ */
+ RArray<TDay> 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<CCalAttendee>&
+ */
+ IMPORT_C RPointerArray<CCalAttendee>& AttendeeList();
+
+ /**
+ * Gets the list of repeat dates for the calendar entry.
+ * @return void
+ */
+ IMPORT_C RArray<TCalTime>& RepeatDates();
+
+ /**
+ * Gets the exception dates for the calendar entry.
+ * @return void
+ */
+ IMPORT_C RArray<TCalTime>& 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<TCalTime> 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<TCalTime> iExDates;
+
+ /**
+ * Array of attendees of an appointment entry
+ */
+ RPointerArray<CCalAttendee> 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