diff -r e7aa27f58ae1 -r 578830873419 emailservices/emailcommon/inc/mmrinfoobject.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/emailcommon/inc/mmrinfoobject.h Fri Apr 16 14:51:52 2010 +0300 @@ -0,0 +1,352 @@ +/* +* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: Meeting Request Info object processor +* +*/ + + +#ifndef M_MRINFOOBJECT_H +#define M_MRINFOOBJECT_H + +#include +// +#include "mmrattachment.h" +// + +// Forward declaration +class MMROrganizer; +class MMRAttendee; +class MRRecurrenceRule; + +/** + * MMRInfoObject defines meeting request interface. + * + * MMRInfoObject can be fetched from ES Email framework, when + * meeting request is received in flattened format. + * + * @lib FSFWCommonLib + * @since S60 v3.1 + */ +class MMRInfoObject + { + +public: // Datatypes and definitions + + /** Meeting request fields */ + enum TESMRInfoField + { + /** Meeting request ID field */ + EESMRInfoFieldId, + /** Meeting request sequence number field */ + EESMRInfoFieldSeqNo, + /** Meeting request method field */ + EESMRInfoFieldMethod, + /** Meeting request status field */ + EESMRInfoFieldMStatus, + /** Meeting request creation time field */ + EESMRInfoFieldCreationDateTime, + /** Meeting request organizer field */ + EESMRInfoFieldOrganizer, + /** Meeting request attendee field */ + EESMRInfoFieldAttendee, + /** Meeting request optional attendee field */ + EESMRInfoFieldOptAttendee, + /** Meeting request start time field */ + EESMRInfoFieldStartDateTime, + /** Meeting request end time field */ + EESMRInfoFieldStopDateTime, + /** Meeting request location field */ + EESMRInfoFieldLocation, + /** Meeting request alarm field */ + EESMRInfoFieldAlarm, + /** Meeting request subject field */ + EESMRInfoFieldSubject, + /** Meeting request description field */ + EESMRInfoFieldDescription, + /** Meeting request recurrence */ + EESMRInfoFieldRecurrence, + /** Priority field */ + EESMRInfoFieldPriority, + }; + + /** Definition for meeting request method */ + enum TMRMethod + { + /** Meeting request request method */ + EMRMethodRequest, + /** Meeting request cancel method */ + EMRMethodCancel, + /** Meeting request response method */ + EMRMethodResponse + }; + + enum TResponse + { + EMrCmdResponseAccept, + EMrCmdResponseTentative, + EMrCmdResponseDecline + }; + +public: // Destruction + + /** + * Virtual destructor. + */ + virtual ~MMRInfoObject() { } + +public: // Interface + + /** + * Fetches the supported fields. Supported fields are stored to array + * given as parameter. Array defines the fields that can be fetched + * from meeting request info object + * + * @param aFields Reference to fields table. + * @return KErrNone if successful, otherwise system wide error code. + */ + virtual TInt SupportedFields( RArray& aFields ) const = 0; + + /** + * Fetches meeting request id. + * @return Meeting request id. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual const TDesC& UidL() const = 0; + + /** + * Fetches meeting request sequence number. + * @return Meeting request sequence number. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual TInt MRSequenceNumberL() const = 0; + + /** + * Fetches meeting request method. + * @return Meeting request method. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual TMRMethod MRMethodL() const = 0; + + /** + * Fetches reference to MR Organizer. + * @return Reference to MR Organizer. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual MMROrganizer& MROrganizerL() = 0; + + /** + * Adds attendee to meeting request. Ownership is transferred + * from caller. + * @param aAttandee Pointer to added attendee. + * @exception System wide error code. + */ + virtual void AddAttendeeL( MMRAttendee* aAttendee ) = 0; + + /** + * Fetches Meeting request attendees. + * @return Reference to MR attendees. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual RPointerArray& AttendeesL() = 0; + + /** + * Sets creation time. + * @param aTime MR creation time in utc format. + * @exception System wide error code. + */ + virtual void SetCreationTimeInUtcL( TTime aTime ) = 0; + + /** + * Fetches meeting request utc creation time. + * @return MR creation time in utc format. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual TTime CreationTimeInUtcL() const = 0; + + /** + * Sets start time. + * @param aTime MR start time in utc format. + * @exception System wide error code. + */ + virtual void SetStartTimeInUtcL( TTime aTime ) = 0; + + /** + * Fetches meeting request utc start time. + * @return MR start time in utc format. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual TTime StartTimeInUtcL() const = 0; + + /** + * Sets end time. + * @param aTime MR end time in utc format. + * @exception System wide error code. + */ + virtual void SetEndTimeInUtcL( TTime aTime ) = 0; + + /** + * Fetches meeting request utc end time. + * @return MR end time in utc format. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual TTime EndTimeInUtcL() const = 0; + + /** + * Sets alarm time. + * @param aTime MR alarm time in utc format. + * @exception System wide error code. + */ + virtual void SetAlarmInUtcL( TTime aTime ) = 0; + + /* + * Fetches meeting request utc alarm time. + * @return MR alarm time in utc format. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual TTime AlarmInUtcL() const = 0; + + /** + * Sets meeting request location. + * @param aLocation Reference to location. + * @exception System wide error code. + */ + virtual void SetLocationL( const TDesC& aLocation ) = 0; + + /** + * Fetches meeting request location. + * @return Reference to MR location. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual const TDesC& LocationL() const = 0; + + /** + * Sets meeting request description. + * @param aLocation Reference to description. + * @exception System wide error code. + */ + virtual void SetDescriptionL( const TDesC& aDescription ) = 0; + + /** + * Fetches meeting request description. + * @return Reference to MR description. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual const TDesC& DescriptionL() const = 0; + + /** + * Sets meeting request subject. + * @param aLocation Reference to subject. + * @exception System wide error code. + */ + virtual void SetSubjectL( const TDesC& aSubject ) = 0; + + /** + * Fetches meeting request subject. + * @return Reference to MR subject. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual const TDesC& SubjectL() const = 0; + + /** + * meeting request response mutator + * + */ + virtual void SetMRResponseL( TResponse aResponse ) = 0; + + /** + * meeting request response accessor + * + */ + virtual TResponse MRResponse() const = 0; + + /** + * meeting request recurrence start time mutator + * + */ + virtual void SetMRRecurrenceIdL( TTime aRecId ) = 0; + + /** + * meeting request recurrence start time accessor + * + */ + virtual TTime MRRecurrenceId() const = 0; + + /** + * Sets recurrence rule information. + * @return Reference to MR recurrence information. + * @exception System wide error code. + */ + virtual void SetRecurrenceRuleL(const MRRecurrenceRule& aRRule) = 0; + + /** + * Fetches recurrence rule information. + * @return Reference to MR recurrence information. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual const MRRecurrenceRule& RecurrenceRuleL() const = 0; + + /** + * Adds recurrence exception to this meeting request. Ownership is transferred + * from caller. + * @param aRule Reference to MR recurrence exception information. + * @exception System wide error code. + */ + virtual void AddRecurrenceExceptionL( MMRInfoObject* aException ) = 0; + + /** + * Fetches recurrence exception information. + * @return Reference to MR recurrence exception information. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual const RPointerArray& RecurrenceExceptionsL() const = 0; + + /** + * Sets MR priority. + * @param aPriority MR priority. + * @exception System wide error code. + */ + virtual void SetPriorityL( TUint aPriority ) = 0; + + /** + * Fetches MR priority. + * @return MR priority. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual TUint PriorityL() const = 0; + + /** + * Fetches meeting request attachments. + * @return MR attachments. + * @exception KErrNotFound, if field cannot be fetched. + */ + virtual const RPointerArray& AttachmentsL() const = 0; + + /** + * Adds meeting request attachment. Ownership is transferred. + * @param aAttachment Attacment to be added. + * @exception System wide error code. + */ + virtual void AddAttachmentsL(MMRAttachment* aAttachment) = 0; + + /** + * Fetches MMRInfoObject extension interface. Caller is responsible + * for casting returned parameter. Ownership is not transferred to + * caller. + * @param aExtensionUid + * @return Pointer to MMRInfoObject extension interface. + */ + virtual TAny* ExtensionL( TUid aExtensionUid ) = 0; + }; + +#endif // M_MRINFOOBJECT_H