epoc32/include/offop.h
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
--- a/epoc32/include/offop.h	Wed Mar 31 12:27:01 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,272 +0,0 @@
-// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
-// which accompanies this distribution, and is available
-// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#if !defined(__OFFOP_H__)
-#define __OFFOP_H__
-
-#if !defined (__MSVIDS_H__)
-#include <msvids.h>
-#endif
-
-#if !defined (__MSVUIDS_H__)
-#include <msvuids.h>
-#endif
-
-#if !defined(__MSVSTORE_H__)
-#include <msvstore.h>
-#endif
-
-#include <miut_err.h>
-
-const TInt KCurrentOfflineOperationArrayVersion = 2;
-_LIT(KImcmPanic, "IMCM");
-
-class CMsvEntry;
-
-///////////////////////////////////////////////////////////////////////////////
-// CImOffLineOperation container for cached off line operation, to be performed
-// on next connection to remote server.
-class CImOffLineOperation : public CBase
-/**
-@internalTechnology
-@released
-*/
-	{
-    public: 
-        enum TOffLineOpType
-        {
-            EOffLineOpNone               = 0x0000,
-//
-            EOffLineOpCopyToLocal        = 0x0001,
-            EOffLineOpCopyFromLocal,
-            EOffLineOpCopyWithinService,
-//
-            EOffLineOpMoveToLocal        = 0x0010,
-            EOffLineOpMoveFromLocal,
-            EOffLineOpMoveWithinService,
-//
-            EOffLineOpDelete             = 0x0020,
-//
-            EOffLineOpChange             = 0x0030,
-            EOffLineOpCreate,
-//
-            EOffLineOpMtmSpecific        = 0x0100, 
-        };
-    
-    public: // Constructor of a null operation
-        IMPORT_C CImOffLineOperation(); 
-        IMPORT_C ~CImOffLineOperation(); 
-    public: // Set this operation to a specific type.
-        inline   void SetCopyToLocal(TMsvId aMessageId, TMsvId aTargetFolderId);
-        inline   void SetCopyFromLocal(TMsvId aMessageId, TMsvId aTargetFolderId);
-        inline   void SetCopyWithinService(TMsvId aMessageId, TMsvId aTargetFolderId);
-//
-        inline   void SetMoveToLocal(TMsvId aMessageId, TMsvId aTargetFolderId);
-        inline   void SetMoveFromLocal(TMsvId aMessageId, TMsvId aTargetFolderId);
-        inline   void SetMoveWithinService(TMsvId aMessageId, TMsvId aTargetFolderId);
-        
-        inline   void SetDelete(TMsvId aMessageId);
-        inline   void SetChange(TMsvId aMessageId);
-        inline   void SetCreate(TMsvId aMessageId);
-        IMPORT_C void SetMtmSpecificCommandL(TMsvId aMessageId, TMsvId aTargetFolderId, TInt aMtmFunctionId, const TDesC8& aParameters);
-    public: // Access to parameters of operation
-        inline TOffLineOpType OpType()const ;
-        inline TMsvId  MessageId()const ;
-        inline TMsvId  TargetMessageId()const ;
-        inline TInt    MtmFunctionId() const ;
-        inline TPtrC8  MtmParameters() const ;
-
-    public: 
-        IMPORT_C void    DetachMtmParameters() ;
-          // Need this detach because the copy constructor will not be called when appending this class to an array!
-        IMPORT_C void DeleteBuffer();
-          // Need this because destructor will not be called when item is removed from an array
-    public: 
-        IMPORT_C TBool Equals(const CImOffLineOperation& aOperation) const;
-        IMPORT_C void CopyL(const CImOffLineOperation& aOperation);
-          // Copy-constructor that can leave
-    public: 
-        IMPORT_C void ExternalizeL( RMsvWriteStream& aWriteStream ) const;
-        IMPORT_C void InternalizeL( RMsvReadStream& aReadStream );
-	public:
-		IMPORT_C int operator ==(const CImOffLineOperation& otherOperation) const;
-    private:
-        IMPORT_C void SetOperation(TOffLineOpType aOpType, TMsvId aMessageId, TMsvId aTargetFolderId, TInt aMtmFunctionId, HBufC8* aParameters);
-        IMPORT_C void SetOperation(TOffLineOpType aOpType, TMsvId aMessageId, TMsvId aTargetFolderId);
-    private:
-        TOffLineOpType iOpType;
-        TMsvId  iMessageId;
-        TMsvId  iTargetMessageId;
-        TInt    iMtmFunctionId;
-        HBufC8*  iMtmParameters; // Mtm-specifics
-	};
-
-///////////////////////////////////////////////////////////////////////////////
-// MOffLineOperationArray : generic mixin for accessing arrays of Off line operations. 
-class MImOffLineOperationArray
-/**
-@internalTechnology
-@released
-*/
-    {
-    public:
-        virtual TInt CountOperations() const = 0;
-        virtual const CImOffLineOperation& Operation(TInt aIndex) const = 0;
-        virtual void AppendOperationL(const CImOffLineOperation& aOperation) = 0;
-        virtual void Delete(TInt aIndex) = 0;
-    };
-
-///////////////////////////////////////////////////////////////////////////////
-// CImOffLineArrayStore : storing and restoring MImOffLineOperationArray
-// derived classes
-class CImOffLineArrayStore : public CBase
-/**
-@internalTechnology
-@released
-*/
-    {
-    public:
-        inline CImOffLineArrayStore(MImOffLineOperationArray& aArray);
-        inline void SetVersion(TUint16 aVersion);
-        inline TUint16 Version();
-        IMPORT_C void StoreL(CMsvStore& aMsvStore) const;
-        IMPORT_C void RestoreL(const CMsvStore& aMessageStore );
-        IMPORT_C void ExternalizeL(RMsvWriteStream& aWriteStream) const;
-        IMPORT_C void InternalizeL(RMsvReadStream& aReadStream);
-    private:
-        TUint16 iVersion;
-        MImOffLineOperationArray* iArray;
-    };
-
-///////////////////////////////////////////////////////////////////////////////
-// CImOffLineOperationArray : implementation of MImOffLineOperationArray
-class CImOffLineOperationArray : public  CBase, public MImOffLineOperationArray
-/**
-@internalTechnology
-@released
-*/
-    {
-    public:
-        IMPORT_C static CImOffLineOperationArray* NewL();
-        IMPORT_C virtual ~CImOffLineOperationArray();
-    public: // derived from MImOffLineOperationArray
-        TInt CountOperations() const;
-        const CImOffLineOperation& Operation(TInt aIndex) const;
-        void AppendOperationL(const CImOffLineOperation& aOperation);
-        void Delete(TInt aIndex);
-    public: // Not derived from MImOffLineOperationArray
-        IMPORT_C void InsertOperationL(CImOffLineOperation& aOperation, TInt aPosition);
-    protected:
-        CImOffLineOperationArray();
-        IMPORT_C void ConstructL();
-    protected:
-        CArrayFixFlat<CImOffLineOperation> *iArray;
-    };
-
-
-class TQueuedOperation 
-/**
-@internalComponent
-@released
-*/
-	{
-	public:
-        IMPORT_C static TQueuedOperation* NewL(TMsvId aFolderId,TInt aOperationIndex, const CImOffLineOperation& aStoredOperation);
-        IMPORT_C TQueuedOperation();
-	    IMPORT_C TBool operator!=(const TQueuedOperation& aOp);
-		inline TMsvId FolderId() const;
-		inline TInt OperationIndex() const;
-		inline CImOffLineOperation& Operation() ;
-        IMPORT_C void CopyL(const TQueuedOperation& aOperation);
-	private:
-        TQueuedOperation(TMsvId aFolderId,TInt aOperationIndex);
-	private:
-		TMsvId iFolderId;
-		TInt   iOperationIndex;
-		CImOffLineOperation iStoredOperation;
-	};
-
-class CImQueuedList : public  CBase, public MImOffLineOperationArray
-/**
-@internalComponent
-@released
-*/
-    {
-    public:
-        IMPORT_C static CImQueuedList* NewL();
-        IMPORT_C virtual ~CImQueuedList() ;
-        IMPORT_C void SetFolder(TMsvId  aFolderId);
-        IMPORT_C void ResetLineCounter();
-		IMPORT_C TQueuedOperation& operator[](TInt anIndex);
-        IMPORT_C void Delete(TInt aIndex);
-        IMPORT_C void Reset();
-        IMPORT_C void AppendL(TQueuedOperation& aOperation);
-    public: // From MOffLineOperationArrayStore
-        IMPORT_C virtual TInt CountOperations() const;
-        IMPORT_C virtual const CImOffLineOperation& Operation(TInt aIndex) const;
-        IMPORT_C virtual void AppendOperationL(const CImOffLineOperation& aOperation);
-    private:
-        CImQueuedList() ;
-    private:
-        TMsvId  iFolderId;
-        TInt    iLine;
-        CArrayFixFlat<TQueuedOperation> *iArray;
-    };
-
-class MImUndoOffLineOperation
-/**
-@internalTechnology
-@released
-*/
-    {
-    public:
-        virtual void UndoOffLineChangesL(const CImOffLineOperation& aDeleted, TMsvId aFolderId) = 0; 
-    };
-
-class CImOperationQueueList : public CBase
-/**
-@internalComponent
-@released
-*/
-	{
-	public:
-		IMPORT_C static CImOperationQueueList* NewL(CMsvEntry& aServiceEntry, MImUndoOffLineOperation *aImUndoOffLineOperation);
-		    // Create new list of queued operations for service entry aServiceEntry is set to.
-		IMPORT_C ~CImOperationQueueList();
-		inline const TInt Count() const;
-			// Current number of queued operations in list
-		inline TQueuedOperation& operator[](TInt anIndex);
-			// Access to array of queued operations.
-		IMPORT_C void DeleteL(TInt aLine);
-			// Remove operation from list of queued operations locally.
-		IMPORT_C void ExpungeDeletedOperationsL();
-			// Enforce removal of queued operations from the stores of the folders.
-	protected:
-		void ConstructL();
-		CImOperationQueueList(CMsvEntry& aServiceEntry,MImUndoOffLineOperation *aImUndoOffLineOperation);
-		void RestoreQueuedListL(CImQueuedList &/*aList*/);
-		void StoreQueuedListL(CImQueuedList &/*aList*/);
-		void ProcessFoldersL();
-	private:
-		CImQueuedList *iQueuedList;
-		CImQueuedList *iDeletedList;
-		CMsvEntry*  iServiceEntry;
-		TMsvId	    iServiceId;
-        MImUndoOffLineOperation *iUndoOffline;
-    };
-
-#include <offop.inl>
-
-#endif