emailservices/emailframework/commonlib/inc/mmrinfoobject.h
changeset 0 8466d47a6819
child 73 c8382f7b54ef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/commonlib/inc/mmrinfoobject.h	Thu Dec 17 08:39:21 2009 +0200
@@ -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 <e32base.h>
+//<cmail>
+#include "mmrattachment.h"
+//</cmail>
+
+// 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<TESMRInfoField>& 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<MMRAttendee>& 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<MMRInfoObject>& 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<MMRAttachment>& 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