meetingrequest/mricalviewer/inc/cesmricalviewerresponsetomrcmd.h
changeset 0 8466d47a6819
child 12 4ce476e64c59
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mricalviewer/inc/cesmricalviewerresponsetomrcmd.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,115 @@
+/*
+* 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:  Responsing to meeting request asynchronously
+*
+*/
+
+
+#ifndef CESMRICALVIEWERRESPONSETOMRCMD_H
+#define CESMRICALVIEWERRESPONSETOMRCMD_H
+
+#include "cesmricalviewerasynccommand.h"
+#include "tesmrinputparams.h"
+//<cmail>
+#include "mesmricalviewerobserver.h"
+#include "mesmricalviewercallback.h"
+#include "esmricalviewerdefs.hrh"
+//</cmail>
+#include <MAgnEntryUi.h>
+
+class CFSMailClient;
+class CESMRUiLauncher;
+
+/**
+ * Command for responding to meeting request asynchronously
+ * Command completion is reported to caller via MESMRIcalViewerObserver
+ * interface.
+ */
+NONSHARABLE_CLASS( CESMRIcalViewerResponseToMRCmd ) :
+    public CESMRIcalViewerAsyncCommand,
+    public MESMRIcalViewerObserver,
+    public MAgnEntryUiCallback
+    {
+public: // Construction and destruction
+
+    /**
+     * Creates and initializes new CESMRIcalViewerResponseToMRCmd command.
+     * @param aCallback callback interface to MESMRIcalViewerCallback
+     * @param aCalSession Reference to calendar session.
+     * @param aMailClient Reference to FS Email mail client object
+     * @param aAttendeeStatus status of meeting request participant
+     */
+    static CESMRIcalViewerResponseToMRCmd* NewL(
+            MESMRIcalViewerCallback& aCallback,
+            CCalSession& aCalSession,
+            CFSMailClient& aMailClient,
+            TESMRAttendeeStatus aAttendeeStatus );
+
+    /**
+     * C++ Destructor
+     */
+    ~CESMRIcalViewerResponseToMRCmd();
+
+public: // From MESMRIcalViewerObserver
+    void OperationCompleted(
+            MESMRIcalViewerObserver::TIcalViewerOperationResult aResult );
+    void OperationError(
+            MESMRIcalViewerObserver::TIcalViewerOperationResult aResult );
+
+public: // From MAgnEntryUiCallback
+    void ProcessCommandL(TInt aCommandId);
+    TInt ProcessCommandWithResultL( TInt aCommandId );
+    TBool IsCommandAvailable( TInt aCommandId );
+
+private: // From MESMRIcalViewerAsyncCommand
+    void ExecuteAsyncCommandL();
+    void CancelAsyncCommand();
+
+private: // Implementation
+    CESMRIcalViewerResponseToMRCmd(
+            MESMRIcalViewerCallback& aCallback,
+            CCalSession& aCalSession,
+            CFSMailClient& aMailClient,
+            TESMRAttendeeStatus aAttendeeStatus );
+    void ConstructL();
+    void LaunchUiL();
+    void HandleOperationCompletedL(
+            MESMRIcalViewerObserver::TIcalViewerOperationResult aResult );
+
+private: // Data
+    /// Ref: Reference to ESMRIcalviewer callback
+    MESMRIcalViewerCallback& iCallback;
+    /// Ref: Reference to input parameters
+    TESMRInputParams iESMRInputParams;
+    /// Ref: Reference to mail client
+    CFSMailClient& iMailClient;
+    /// Own: MR retriever command
+    RPointerArray< MESMRIcalViewerCommand > iMRRetrieverCommands;
+    /// Own: Current command index
+    TInt iCurrentCommand;
+    /// Own: Attendee status
+    TESMRAttendeeStatus iAttendeeStatus;
+    /// Own: Current callback command
+    TESMRIcalViewerOperationType iCurrentCbCommand;
+    /// Own: Asynchronous email command
+    MESMRIcalViewerCommand* iEmailCommand;
+    /// Own: Command received via callback
+    TInt iMRViewerCommand;
+    /// Own: UI launcher
+    CESMRUiLauncher* iUILauncher;
+    };
+
+#endif
+
+// EOF