ipsservices/ipssosplugin/inc/ipsplgconnectandrefreshfolderlist.h
changeset 0 8466d47a6819
child 3 a4d6f1ea0416
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsservices/ipssosplugin/inc/ipsplgconnectandrefreshfolderlist.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,141 @@
+/*
+* 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: 
+*       folder refresh operation
+*
+*/
+
+
+#if !defined(__IPSPLGCONNECTANDREFRESHFOLDERLIST_H__)
+#define __IPSPLGCONNECTANDREFRESHFOLDERLIST_H__
+
+#include <AknWaitNoteWrapper.h>
+// <cmail>
+#include <imapset.h>
+// </cmail>
+
+// Specific includes
+#include "ipsplgonlineoperation.h"
+
+
+/**
+* Superoperation which wraps a UI around going online, updating
+* an IMAP service's folder list and disconnecting again.
+*/
+class CIpsPlgConnectAndRefreshFolderList : public CIpsPlgOnlineOperation,
+                                           public MAknBackgroundProcess
+    {
+    
+public: // from MAknBackgroundProcess
+
+    /**
+     * Completes one cycle of the process.
+     */
+    virtual void StepL();
+
+    /**
+     * Return true when the process is done.
+     */
+    virtual TBool IsProcessDone() const;
+    
+    virtual void DialogDismissedL( TInt aButtonId );
+    
+public:
+
+    /**
+    * NewL()
+    * @param CMsvSession&
+    * @param TInt
+    * @param TRequestStatus&
+    * @param TMsvId
+    * @return CImapConnectAndRefreshFolderList*
+    */
+    IMPORT_C static CIpsPlgConnectAndRefreshFolderList* NewL(
+        CMsvSession& aSession, TInt aPriority, TRequestStatus& aObserverRequestStatus,
+        TMsvId aService, TFSMailMsgId& aMailboxId, CMsvEntrySelection& aMsvEntry,
+        MFSMailRequestObserver& aFSObserver, CIpsPlgTimerOperation& aTimer );
+
+    /**
+    * Destructor
+    * ~CIpsPlgConnectAndRefreshFolderList()
+    */
+    virtual ~CIpsPlgConnectAndRefreshFolderList();
+    
+    /**
+    *
+    */
+    const TDesC8& ProgressL();
+
+    /**
+    *
+    */
+    const TDesC8& GetErrorProgressL(TInt aError);
+    
+    /**
+    * 
+    */
+    TFSProgress GetFSProgressL() const;
+
+protected:
+
+
+    /**
+    * From 
+    * DoRunL()
+    */
+    virtual void DoRunL();
+
+    virtual void DoCancel();
+    
+private:
+
+    enum TIpsSetFolderRefreshStates
+        {
+        EIdle,
+        EStartConnect,
+        EConnecting,
+        ERefreshing,
+        EDisconnecting,
+        ECompleted
+        };
+
+    /**
+    * C++ constructor
+    * CIpsPlgConnectAndRefreshFolderList()
+    */
+    CIpsPlgConnectAndRefreshFolderList( CMsvSession& aSession, TInt aPriority,
+        TRequestStatus& aObserverRequestStatus, TMsvId aService, TFSMailMsgId& aMailboxId,
+        MFSMailRequestObserver& aFSObserver, CIpsPlgTimerOperation& aTimer );
+
+    /**
+    * ConstructL()
+    */
+    void ConstructL( CMsvEntrySelection& aMsvEntry );
+
+    //data
+private:
+    
+    TInt                                iState;
+    TFSMailMsgId 						iMailboxId;
+    CMsvSession&						iSession;
+    TMsvId								iService;
+    CMsvOperation* 						iOperation;
+    CIpsPlgTimerOperation*				iTimer;
+    CMsvEntrySelection*					iMsvEntry;
+    TPckgBuf<TImap4CompoundProgress>    iProgressBuf;
+    TRequestStatus						iObserverRequestStatus;
+    CAknWaitNoteWrapper*                iAsyncWaitNote;
+    };
+
+#endif