diff -r 000000000000 -r 72b543305e3a mobilemessaging/smum/simdialogplugins/defaultsimdlg/inc/simdeletecopyoperation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mobilemessaging/smum/simdialogplugins/defaultsimdlg/inc/simdeletecopyoperation.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,166 @@ +/* + * Copyright (c) 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: Operation which performs either copy or deletion of entries from the sim. + * + */ + +#ifndef __SIMMESSAGEDELETECOPYOPERATION_H__ +#define __SIMMESSAGEDELETECOPYOPERATION_H__ + + +// INCLUDES +#include // TMsvId + +// FORWARD DECLARATIONS +class CSmsMtmUi; +class CMsvSession; +class CCoeEnv; +class CAknProgressDialog; + +// CLASS DECLARATION + +/** +* CSimDeleteCopyOperation +* Operation which performs either copy or delete entries from the sim +* Gets array of messages to be copied or deleted and then performs +* copy or delete operation one by one and updates progress dialog +* after every copy or delete operation. +* Does not take ownership of progress note, it should be created +* and deleted by other components. +*/ +NONSHARABLE_CLASS( CSimDeleteCopyOperation ) : public CMsvOperation + { + public: // Constructors and destructor + + /** + * Two-phased constructor, copying operation + * @param aMsvSession: reference to object of CMsvSession + * @param aSmsMtmUi: reference to sms mtm ui object + * @param aObserverRequestStatus: TRequest of the observing object + * @param aSelection: pointer to the array of messages to be deleted or copied. + * Note! Copies array so does not take ownership for the array + * @param aDestination: if of the folder where messages are copied + * @param aProgressDialog: reference to progress dialog, which is updated + * @param aCoeEnv: pointer to CCoeEnv for StringLoader + */ + static CSimDeleteCopyOperation* NewL( + CMsvSession& aMsvSession, + CSmsMtmUi& aSmsMtmUi, + TRequestStatus& aObserverRequestStatus, + CMsvEntrySelection* aSelection, + TMsvId aDestinationId, + CAknProgressDialog& aProgressDialog, + CCoeEnv* aCoeEnv ); + + /** + * Constructor, deleting operation + * @param aMsvSession: reference to object of CMsvSession + * @param aSmsMtmUi: reference to sms mtm ui object + * @param aObserverRequestStatus: TRequest of the observing object + * @param aSelection: pointer to the array of messages to be deleted or copied. + * Note! Copies array so does not take ownership for the array + * @param aProgressDialog: reference to progress dialog, which is updated + * @param aCoeEnv: pointer to CCoeEnv for StringLoader + */ + static CSimDeleteCopyOperation* NewL( + CMsvSession& aMsvSession, + CSmsMtmUi& aSmsMtmUi, + TRequestStatus& aObserverRequestStatus, + CMsvEntrySelection* aSelection, + CAknProgressDialog& aProgressDialog, + CCoeEnv* aCoeEnv ); + + /** + * Destructor. + */ + virtual ~CSimDeleteCopyOperation(); + + public: // New functions + + /** + * Sets operation to be cancelled after next copy or delete + * operation is completed. + */ + void CancelAfterCurrentCompleted(); + + public: // Functions from base classes + + /** + * from CMsvOperation + */ + virtual const TDesC8& ProgressL(); + + public: // New functions + + /** + * Starts next copy or move operation, traps MakeNextDeleteCopyL + */ + void DeleteCopyNext(); + + /** + * Starts next copy or move operation + */ + void MakeNextDeleteCopyL(); + + private: // Functions from base classes + + /** + * From CActive + */ + void DoCancel(); + /** + * From CActive + */ + void RunL(); + + private: + + /** + * Constructor. + */ + CSimDeleteCopyOperation( + CMsvSession& aMsvSession, + CSmsMtmUi& aSmsMtmUi, + TRequestStatus& aObserverRequestStatus, + TMsvId aDestinationId, + CAknProgressDialog& aProgressDialog, + TBool aCopying, + CCoeEnv* aCoeEnv ); + + /** + * Constructor. + */ + void ConstructL( + CMsvEntrySelection* aSelection ); + + + private: // Data + CMsvOperation* iOperation; + CMsvEntrySelection* iEntrySelection; + TMsvId iDestinationId; + TBool iCopying; + TInt iCurrentEntryIndex; + TInt iEntryCount; + TBool iCanceling; + CSmsMtmUi& iSmsMtmUi; + CAknProgressDialog& iProgressDialog; + CCoeEnv* iCoeEnv; + TBuf8<1> iBlank; + TMsvId iSmsServiceId; + HBufC* iNoteString; + }; + +#endif + +// End of File