diff -r 000000000000 -r 72b543305e3a messagingappbase/mcesettings/inc/MceSettingsMovemsgs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/mcesettings/inc/MceSettingsMovemsgs.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,143 @@ +/* +* Copyright (c) 2002 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: +* Copies/Moves message store from source drive to target drive +* +*/ + + + +#if !defined(__MCESETTINGSMOVEMSGS_H__) +#define __MCESETTINGSMOVEMSGS_H__ + +// INCLUDES +#include +#include + +// CONSTANTS + +const TInt KMsgTransHndlrPriority=0; +const TInt KMsgTransTimerPriority=0; +const TInt KCopyBufSize=0x1000; + +// FORWARD DECLARATIONS +class CMceMessageTransHandler; +class CMsvSession; +class CMsvOperation; + + +// CLASS DECLARATION + +class MMceMsgTransHandlerObserver + { +public: + + virtual void CopyCompleteL(TInt aErr) = 0; + + /** + * Called when message store transfer is complete + */ + virtual void TransferCompleteL(TInt aErr)=0; + + /** + * Called when message store transfer cannot be cancelled + */ + virtual void DisableCancelL()=0; + }; + + +// +// CMceMessageTransHandler - active object used to transfer the message store +// +class CEkmsDocument; +class CMceMessageTransHandler : public CActive + { + public: + ~CMceMessageTransHandler(); + static CMceMessageTransHandler* NewL( MMceMsgTransHandlerObserver& aOwner, + CMsvSession* aSession, + TInt aTargetDrive, + TInt aSourceDrive, + TBool aDeleteCopiedStore ); + + /** + * Sets operation + * Must only be called once during the lifetime of a CMsvSingleOpWatcher + * object. + */ + void SetOperation( CMsvOperation* aOperation ); + + /** + * Returns reference to the operation + */ + IMPORT_C CMsvOperation& Operation() const; + + /** + * Display progress in main thread + */ + TInt ProgressL() const; + + /** + * Called by the framework if RunL() leaves + */ + TInt RunError( TInt ); + + protected: + /** + * Cancels transfer thread + */ + virtual void DoCancel(); + + /** + * Calls TransferCompleteL and sets message drive on the message server + */ + virtual void RunL(); + + private: + + /** + * C++ constructor + */ + CMceMessageTransHandler( MMceMsgTransHandlerObserver& aOwner, + CMsvSession* aSession, + TInt aTargetDrive, + TInt aSourceDrive, + TBool aDeleteCopiedStore ); + + /** + * Create transfer thread and delete thread + */ + void ConstructL(); + + TInt ProgressErrorL() const; + + enum TTransHandlerState + { + EStateCopying, + EStateDeleting, + }; + + private: + MMceMsgTransHandlerObserver& iOwner; + CMsvSession* iSession; // not owed by this class. + CMsvOperation* iOperation; + TDriveUnit iTargetDrive; // The target drive for the copied message store + TDriveUnit iSourceDrive; // The source drive of the message store + TBool iDeleteCopiedStore; // True if the contents of the original store is to be deleted + TTransHandlerState iState; + }; + +#endif // __MCESETTINGSMOVEMSGS_H__ + +// End of file