diff -r ebe688cedc25 -r 7fdbb852d323 email/imum/Mtms/Inc/SelectionOperationBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/Mtms/Inc/SelectionOperationBase.h Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,138 @@ +/* +* 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: +* Base class for operations which perform the same function on +* all entries of a CMsvEntrySelection +* +*/ + +#ifndef __SELECTIONOPERATIONBASE_H__ +#define __SELECTIONOPERATIONBASE_H__ + +#include + +// Forward declarations +class CMsvEntrySelection; +class CMsvEntry; + +/** +* CSelectionOperationBase +* Base class for operations which perform the same function on +* all entries of a CMsvEntrySelection +*/ +class CSelectionOperationBase : public CMsvOperation + { + public: + + /** + * + */ + CSelectionOperationBase( + CImumInternalApi& aMailboxApi, + TInt aPriority, + TRequestStatus& aObserverRequestStatus, + CMsvEntrySelection* aEntrySelection ); + + /** + * + */ + CSelectionOperationBase(); + + /** + * + */ + inline void SetSelectionOwnershipExternal( TBool aExternalOwnership ); + /** + * + */ + inline TBool SelectionOwnershipExternal() const; + + /** + * + */ + inline TInt NumItems() const; + + /** + * + */ + inline TInt CurrentItemIndex() const; + + /** + * Should be called in ConstructL of derived class + * before SetActive(); + */ + void StartL(); + + protected: + /** + * Destructor + */ + ~CSelectionOperationBase(); + + /** + * + */ + void Complete(TInt aCompletionCode); + + /** + * From CActive + */ + virtual void DoCancel(); + + private: + /** + * From CActive + */ + virtual void RunL(); + + /** + * From CActive + */ + void DoRunL(); + + /** + * From CActive + */ + virtual TInt RunError(TInt aError); + + /** + * + */ + virtual CMsvOperation* CreateOperationL( TMsvId aMsvId )=0; + + /** + * + */ + virtual TBool StopOnError( TInt aErrorCode )=0; + + /** + * Called if DoRunL leaves. + */ + virtual void OpRunError( TInt aErrorCode ) = 0; + /** + * Get error from progress buffer. + */ + virtual TInt CheckForError(const TDesC8& aProgress)=0; + + protected: + CMsvOperation* iOperation; + private: + CMsvEntrySelection* iEntrySelection; + TInt iCurrentEntryIndex; + TBool iSelectionOwnershipExternal; + }; + +#include "SelectionOperationBase.inl" + +#endif //__SELECTIONOPERATIONBASE_H__