email/imum/Mtms/Inc/ImumDeleteMessagesLocally.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Mtms/Inc/ImumDeleteMessagesLocally.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,121 @@
+/*
+* 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: 
+*     Operation to delete mail messages locally i.e. just remove body and
+*     attachments from the flash but leave header. So don't delete message
+*     from mail server. After operation user is able to fetch message again.
+*
+*
+*/
+
+
+#ifndef IMUMDELETEMESSAGESLOCALLY_H
+#define IMUMDELETEMESSAGESLOCALLY_H
+
+//  INCLUDES
+#include <e32base.h>                    // Basic Symbian Includes
+#include <cacheman.h>                   // CImCacheManager
+#include <MsvPrgReporter.h>             // MMsvProgressDecoder
+#include <centralrepository.h>          // CRepository
+#include <ImumInternalApi.h>            // CImumInternalApi
+
+// CONSTANTS
+// MACROS
+// DATA TYPES
+// FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+// CLASS DECLARATION
+
+/**
+*  Operation to delete mail messages locally i.e. just remove body and
+*  attachments from the flash but leave header. So don't delete message
+*  from mail server. After operation user is able to fetch message again.
+*/
+class CImumDeleteMessagesLocally :
+    public CImCacheManager,
+    public MMsvProgressDecoder
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        * @param aMessageSelection array of message ids to be purged
+        * @param aMsvSession
+        * @param aObserverRequestStatus
+        * @param aDiskSpaceRequest: If ETrue, request disk space
+        * @return pointer to created CImumDeleteMessagesLocally object.
+        */
+        static CImumDeleteMessagesLocally* NewL(
+            CMsvEntrySelection& aMessageSelection,
+            CImumInternalApi& aMailboxApi,
+            TRequestStatus& aObserverRequestStatus,
+            TBool aDiskSpaceRequest = ETrue);
+
+        /**
+        * destructor
+        */
+        virtual ~CImumDeleteMessagesLocally();
+
+    public: // Functions from base classes
+        /**
+        * From MMsvProgressDecoder
+        */
+        virtual TInt DecodeProgress (
+            const TDesC8& aProgress,
+            TBuf<CBaseMtmUi::EProgressStringMaxLen>& aReturnString,
+            TInt& aTotalEntryCount,
+            TInt& aEntriesDone,
+            TInt& aCurrentEntrySize,
+            TInt& aCurrentBytesTrans,
+            TBool aInternal);
+
+
+    protected: // Constructors
+        /**
+        * Symbian OS constructor.
+        * @param aMessageSelection array of message ids to be purged
+        */
+        void ConstructL(CMsvEntrySelection& aMessageSelection );
+
+    private:
+        /**
+        * from CImCacheManager
+        */
+        TBool Filter() const;
+
+    private: // Constructors
+        /**
+        * C++ constructor
+        */
+        CImumDeleteMessagesLocally(
+            CImumInternalApi& aMailboxApi,
+            TRequestStatus& aObserverRequestStatus,
+            TBool aDiskSpaceRequest);
+
+    private: // data
+
+        CMsvEntrySelection*                 iMessageSelection;
+        // File session
+        RFs                                 iFileSession;
+        // Flag to inform of reserved disk space
+        TBool                               iDiskSpaceRequest;
+        // Currently used drive for deletion
+        TInt                                iDriveNo;
+        // Text buffer for progress note
+        HBufC*                              iProgressText;
+    };
+
+#endif      // IMUMDELETEMESSAGESLOCALLY_H
+
+// End of File