meetingrequest/mricalviewer/inc/mesmricalviewer.h
branchRCL_3
changeset 64 3533d4323edc
parent 0 8466d47a6819
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mricalviewer/inc/mesmricalviewer.h	Wed Sep 01 12:28:57 2010 +0100
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2007-2009 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:  Interface definition for ESMR calendar entry
+*
+*/
+
+
+#ifndef MESMRICALVIEWER_H
+#define MESMRICALVIEWER_H
+
+// INCLUDES
+//<cmail>
+#include "esmricalviewerdefs.hrh"  // tesmrattendeestatus
+//</cmail>
+
+// FORWARD DECLARATIONS
+class MESMRIcalViewerObserver;
+class CFSMailMessage;
+
+// CLASS DECLARATIONS
+/**
+ * MESMRIcalViewer defines interface for processing
+ * FS email messages possibly containing meeting request.
+ * ical viewer extension plugin implements this interface and
+ * handles the involved command processing
+ */
+class MESMRIcalViewer
+    {
+    public: // Destruction
+        /**
+        * C++ destructror
+        */
+        virtual ~MESMRIcalViewer() { }
+
+    public: // Interface
+
+        /**
+        * Tests, if message can be viewed.
+        * @param aMessage Referece to FS email message.
+        * @return ETrue, if message can be viewed
+        */
+        virtual TBool CanViewMessage(
+              CFSMailMessage& aMessage ) = 0;
+
+        /**
+        * Launches viewer for the message asynchronously.
+        *
+        * @param aMessage Reference to FS email message.
+        * @param aObserver Observer for this operation.
+        * @exception KErrInUse If another asynchronous operation
+        *            is already in progress.
+        */
+        virtual void ExecuteViewL(
+              CFSMailMessage& aMessage,
+              MESMRIcalViewerObserver& aObserver ) = 0;
+
+        /**
+        * Responses to meeting request asynchronously.
+        * @param aAttendeeStatus Attendee's response
+        * @param aMessage Reference to FS email message
+        * @param aObserver Observer for this operation.
+        * @exception KErrNotSupported if Meeting Requests are not enabled
+        *            KErrInUse if request is already ongoing
+        */
+        virtual void ResponseToMeetingRequestL(
+              TESMRAttendeeStatus aAttendeeStatus,
+              CFSMailMessage& aMessage,
+              MESMRIcalViewerObserver& aObserver ) = 0;
+
+        /**
+        * Removes meeting request from calendar asynchronously. Method resolves
+        * meeting request information from the email message and
+        * removes it from calendar.
+        *
+        * Meeting request needs to be cancellation meeting request.
+        *
+        * @param aMessage Reference to FS Email message
+        * @param aObserver Observer for this operation.
+        * @exception KErrInUse If another asynchronous operation
+        *            is already in progress.
+        */
+        virtual void RemoveMeetingRequestFromCalendarL(
+              CFSMailMessage& aMessage,
+              MESMRIcalViewerObserver& aObserver ) = 0;
+
+        /**
+        * Resolves meeting request method asynchronously. Method extracts
+        * meeting request information from the email message and fetches the MR
+        * method information.
+        *
+        * @param aMessage Reference to mail message
+        * @param aObserver Observer for this operation.
+        *                  TESMRMeetingRequestMethod MR method information will
+        *                  be returned through the observer.
+        * @exception KErrInUse If another asynchronous operation
+        *            is already in progress.
+        */
+        virtual void ResolveMeetingRequestMethodL(
+              CFSMailMessage& aMessage,
+              MESMRIcalViewerObserver& aObserver ) = 0;
+
+        /**
+        * Resolves meeting request method synchronously. Method locates the MRINFO
+        * data from the mail message and tries to find out current meeting request
+        * method. If message does not contain MRINFO data, MR method cannot be
+        * solved out.
+        *
+        * @param aMessage Reference to mail message.
+        * @return TESMRMeetingRequestMethod type
+        */
+        virtual TESMRMeetingRequestMethod ResolveMeetingRequestMethodL(
+              CFSMailMessage& aMessage ) = 0;
+
+        /**
+        * Cancels any outstanding asynchronous request.
+        */
+        virtual void CancelOperation() = 0;
+
+        /**
+        * Returns an extension point for this interface or NULL.
+        * @param aExtensionUid Uid of extension.
+        * @return Extension point or NULL.
+        */
+        virtual TAny* MRIcalViewerExtension(
+              TUid /*aExtensionUid*/) { return NULL; }
+    };
+
+#endif // MESMRICALVIEWER_H
+
+// EOF