emailservices/emailstore/base_plugin/inc/BaseMrInfoObject.h
changeset 0 8466d47a6819
child 8 e1b6206813b4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailstore/base_plugin/inc/BaseMrInfoObject.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,362 @@
+/*
+* Copyright (c) 2006 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 support.
+*
+*/
+
+
+#ifndef __BASEMRINFOOBJECT_H__
+#define __BASEMRINFOOBJECT_H__
+
+#include <e32std.h>
+#include "CFSMailCommon.h"
+#include "mmrinfoobject.h"
+#include "mmrorganizer.h"
+#include "mmrattendee.h"
+#include "mmrattachment.h"
+#include "mmrinfoprocessor.h"
+#include "mmrrecurrencerule.h"
+
+
+class CBasePlugin;
+
+
+const TUint KIcalNormalPriority = 5; 
+
+
+/**
+ * Use where you need an attendee and/or an organizer.
+ */
+class CBaseMrAttendee :
+    public CBase,
+    public MMRAttendee
+    {
+
+    public:
+        IMPORT_C static CBaseMrAttendee* NewL();
+        IMPORT_C static CBaseMrAttendee* NewL(
+            const MMRAttendee& aAttendee );
+        IMPORT_C static CBaseMrAttendee* NewL(
+            const MMROrganizer& aOrganizer );
+        IMPORT_C virtual ~CBaseMrAttendee();
+
+    private:
+        CBaseMrAttendee();
+        void ConstructL();
+        void ConstructL(
+            const MMRAttendee& aAttendee );
+        void ConstructL(
+            const MMROrganizer& aOrganizer );
+
+
+    // MRAttendee //
+    public:
+
+        IMPORT_C void SetAttendeeRoleL(
+            TAttendeeRole aRole );
+     
+        IMPORT_C TAttendeeRole AttendeeRole() const;
+    
+        IMPORT_C void SetAttendeeStatusL(
+            TAttendeeStatus& aStatus );
+    
+        IMPORT_C TAttendeeStatus AttendeeStatus() const;
+    
+        IMPORT_C void SetResponseRequestedL(
+            TBool aRsvp );
+    
+        IMPORT_C TBool ResponseRequested() const;
+
+
+    // MMROrganizer //
+    public:
+        IMPORT_C void SetAddressL(  
+            const TDesC& aAddress );
+
+        IMPORT_C const TDesC& Address() const;
+    
+        IMPORT_C void SetCommonNameL(
+            const TDesC& aCommonName );
+    
+        IMPORT_C const TDesC& CommonName() const;
+        
+    protected:
+        HBufC* iAddress;
+        HBufC* iCommonName;
+        TAttendeeRole iRole;
+        TAttendeeStatus iStatus;
+        TBool iRsvp;
+    };
+
+
+/**
+ *
+ */
+class CBaseMrRecurrenceRule :
+    public CBase,
+    public MRRecurrenceRule
+    {
+
+    public:
+
+        IMPORT_C static CBaseMrRecurrenceRule* NewL();
+
+        IMPORT_C static CBaseMrRecurrenceRule* NewL(
+            const MRRecurrenceRule& aRrule );
+
+        IMPORT_C virtual ~CBaseMrRecurrenceRule();
+
+
+    private:
+        CBaseMrRecurrenceRule();
+        CBaseMrRecurrenceRule(
+            const MRRecurrenceRule& aRrule );
+        void ConstructL();
+        void ConstructL(
+            const MRRecurrenceRule& aRrule );
+
+    // MRRecurrenceRule //
+    public:
+        IMPORT_C void SetRecurrenceTypeL(
+            TMRRecurrenceType aType );
+
+        IMPORT_C TMRRecurrenceType Type() const;
+
+        IMPORT_C void SetRecurrenceStartTimeL(
+            TTime aStartTime );
+
+        IMPORT_C TTime RecurrenceStartTime() const;
+
+        IMPORT_C void SetRecurrenceUntilL(
+            TTime aUntilTime );
+
+        IMPORT_C TTime RecurrentUntil() const;
+    
+        IMPORT_C void SetRecurrentInterval(
+            TInt aInterval );
+    
+        IMPORT_C TInt RecurrentInterval() const;
+    
+        IMPORT_C void SetRecurrentCountL(
+            TInt aCount );
+    
+        IMPORT_C TUint RecurrentCount() const;
+    
+        IMPORT_C void SetRecurrentWeekDaysL(
+            RArray<TMRRecurrentDay>& aDays );
+    
+        IMPORT_C const RArray<TMRRecurrentDay>& RecurrentWeekDays() const;
+    
+        IMPORT_C void SetRecurrentMonthDaysL(
+            RArray<TInt>& aDays );
+    
+        IMPORT_C const RArray<TInt>& RecurrentMonthDays() const;
+
+	    IMPORT_C void SetRecurrentDaysofMonthL(
+	        RArray<TRecurrentDaysofMonth>& aDaysosMonth );
+		
+	    IMPORT_C const RArray<TRecurrentDaysofMonth>& RecurrentDaysofMonth() const;
+
+        IMPORT_C void SetRecurrentMonthsL(
+            RArray<TMRRecurrenceMonth>& aMonths );
+    
+        IMPORT_C const RArray<TMRRecurrenceMonth>& RecurrentMonths() const;
+        
+    protected:
+        RArray<TRecurrentDaysofMonth> iDaysofMonth;
+        RArray<TMRRecurrentDay> iWeekDays;
+        RArray<TInt> iMonthDays;
+        RArray<TMRRecurrenceMonth> iMonths;
+        TTime iStartTime;
+        TTime iUntilTime;
+        TMRRecurrenceType iType;
+        TInt iInterval;
+        TInt iCount;
+    };
+
+
+/**
+ *
+ */
+class CBaseMrInfoObject :
+    public CBase,
+    public MMRInfoObject
+
+    {
+    
+    public:
+        IMPORT_C static CBaseMrInfoObject* NewL();
+        IMPORT_C static CBaseMrInfoObject* NewL(
+            MMRInfoObject& aMrInfo );
+        IMPORT_C virtual ~CBaseMrInfoObject();
+
+    private:
+        CBaseMrInfoObject();
+        void ConstructL();
+        void ConstructL(
+            MMRInfoObject& aMrInfo );
+
+    public:
+        IMPORT_C void SetUidL(
+            const TDesC& aUid );
+        IMPORT_C void SetUidL(
+            HBufC* aUid );
+        IMPORT_C void SetMethod(
+            TMRMethod aMethod );
+        IMPORT_C void SetMRSequenceNumber(
+        	TInt aSeqNo );
+        
+    // MMRInfoObject //
+    public:
+
+        IMPORT_C TInt SupportedFields(
+            RArray<TESMRInfoField>& aFields ) const;
+    
+        IMPORT_C const TDesC& UidL() const;
+    
+        IMPORT_C TInt MRSequenceNumberL() const;
+        
+        IMPORT_C TMRMethod MRMethodL() const;
+        
+        IMPORT_C MMROrganizer& MROrganizerL();
+        
+        IMPORT_C void AddAttendeeL(
+            MMRAttendee* aAttendee );
+        
+        IMPORT_C RPointerArray<MMRAttendee>& AttendeesL();
+    
+        IMPORT_C void SetCreationTimeInUtcL(
+            TTime aTime );
+    
+        IMPORT_C TTime CreationTimeInUtcL() const;
+        
+        IMPORT_C void SetStartTimeInUtcL(
+            TTime aTime );
+    
+        IMPORT_C TTime StartTimeInUtcL() const;
+        
+        IMPORT_C void SetEndTimeInUtcL(
+            TTime aTime );
+        
+        IMPORT_C TTime EndTimeInUtcL() const;
+        
+        IMPORT_C void SetAlarmInUtcL(
+            TTime aTime );    
+        
+        IMPORT_C TTime AlarmInUtcL() const;
+        
+        IMPORT_C void SetLocationL(
+            const TDesC& aLocation );
+        
+        IMPORT_C const TDesC& LocationL() const;
+        
+        IMPORT_C void SetDescriptionL(
+            const TDesC& aDescription );    
+        
+        IMPORT_C const TDesC& DescriptionL() const;
+        
+        IMPORT_C void SetSubjectL(
+            const TDesC& aSubject );       
+        
+        IMPORT_C const TDesC& SubjectL() const;    
+        
+        IMPORT_C void SetRecurrenceRuleL(
+            const MRRecurrenceRule& aRRule );
+        
+        IMPORT_C const MRRecurrenceRule& RecurrenceRuleL() const;
+
+        IMPORT_C void AddRecurrenceExceptionL(
+            MMRInfoObject* aException );
+        
+        IMPORT_C const RPointerArray<MMRInfoObject>& RecurrenceExceptionsL() const;
+        
+        IMPORT_C void SetPriorityL(
+            TUint aPriority );
+            
+        IMPORT_C TUint PriorityL() const;
+        
+        IMPORT_C const RPointerArray<MMRAttachment>& AttachmentsL() const;
+        
+        IMPORT_C void AddAttachmentsL(
+            MMRAttachment* aAttachment );
+        
+        IMPORT_C TAny* ExtensionL(
+            TUid aExtensionUid );
+
+        IMPORT_C void SetMRResponseL(
+            TResponse aResponse );
+    
+        IMPORT_C TResponse MRResponse() const;
+
+        IMPORT_C void SetMRRecurrenceIdL(
+            TTime aRecId );
+        
+        IMPORT_C TTime MRRecurrenceId() const;
+
+
+    protected:
+        RPointerArray<MMRInfoObject> iExceptions;
+        RPointerArray<MMRAttachment> iAttachments;
+        RPointerArray<MMRAttendee> iAttendees;
+        MMRAttendee* iOrganizer;
+        const MRRecurrenceRule* /*ref*/ iRrule;
+        HBufC* iUid;
+        HBufC* iLocation;
+        HBufC* iSubject;
+        HBufC* iDescription;        
+        TTime iCreationTime;
+        TTime iStartTime;
+        TTime iEndTime;
+        TTime iAlarmTime;
+        TTime iRecurrenceId;
+        TInt iSequenceNumber;
+        TUint iPriority;
+        TMRMethod iMethod;
+        TResponse iResponse;
+    };
+
+
+/**
+ *
+ */
+class CBaseMrInfoProcessor :
+    public CBase,
+    public MMRInfoProcessor
+    {
+
+    public:
+        IMPORT_C static CBaseMrInfoProcessor* NewL(
+            CBasePlugin& aPlugin );
+        IMPORT_C virtual ~CBaseMrInfoProcessor();
+
+    private:
+        CBaseMrInfoProcessor(
+            CBasePlugin& aPlugin );
+        void ConstructL();
+
+
+    public:
+        IMPORT_C virtual void ReplyToMeetingRequestL(
+            const TFSMailMsgId& aMailBoxId,
+            const TFSMailMsgId& aMessageId,
+            MMRInfoObject& aMeetingRequest,
+            TMRInfoResponseMode& aResponseMode,
+            const TDesC& aResponseText = KNullDesC() );
+            
+    private:
+        CBasePlugin& iPlugin;
+    };
+
+
+#endif // __BASEMRINFOOBJECT_H__