diff -r 491b3ed49290 -r 65326cf895ed deviceencryption/DevEncUi/inc/DevEncUiMemoryEntity.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deviceencryption/DevEncUi/inc/DevEncUiMemoryEntity.h Wed Sep 01 12:31:07 2010 +0100 @@ -0,0 +1,187 @@ +/* +* Copyright (c) 2005 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: Class for managing different types of memory on a +* very abstract level. +* +*/ + +#ifndef DEVENCUI_MEMORYENTITY_H +#define DEVENCUI_MEMORYENTITY_H + +#include +#include + +#include "DevEnc.hrh" +#include "DevEncUiMemInfoObserver.h" +#include "DevEncDiskStatusObserver.h" + +class CDevEncSession; +class CDevEncUiInfoObserver; + +class CDevEncUiMemoryEntity : public CBase, + public MDiskStatusObserver + { + public: + /** + * Constructs the CDevEncUiMemoryEntity using the NewLC method, popping + * the constructed object from the CleanupStack before returning it. + * + * @return The newly constructed CDevEncUiMemoryEntity + */ + static CDevEncUiMemoryEntity* NewL( CEikonEnv* aEikonEnv, + TDevEncUiMemoryType aType ); + + /** + * Constructs the CDevEncUiMemoryEntity using the constructor and ConstructL + * method, leaving the constructed object on the CleanupStack before returning it. + * + * @return The newly constructed CDevEncUiMemoryEntity + */ + static CDevEncUiMemoryEntity* NewLC( CEikonEnv* aEikonEnv, + TDevEncUiMemoryType aType ); + + /** + * Adds an observer to this object's list of observers. + * @param aInfoObserver The observer to add + * @leave Symbian error code + */ + void AddObserverL( MDevEncUiMemInfoObserver* aInfoObserver ); + + /** + * Removes an observer from this object's list of observers. + * Any errors are ignored. + * @param aInfoObserver The observer to remove + */ + void RemoveObserver( MDevEncUiMemInfoObserver* aInfoObserver ); + + /** + * Called periodically. Not intended for use by other classes. + * @param aPtr Pointer to an instance of this class. + */ + static TInt ProgressTick( TAny* aPtr ); + + /** + * Called periodically. Not intended for use by other classes. + * @param aPtr Pointer to an instance of this class. + */ + static TInt PollTick( TAny* aPtr ); + + /** + * Destructor. + */ + virtual ~CDevEncUiMemoryEntity(); + + /** + * Starts the encryption of this memory. + */ + void StartEncryptionL(); + + /** + * Starts the decryption of this memory. + */ + void StartDecryptionL(); + + void Cancel(); + + /** + * Gets the state of this memory entity. + * @return the current state + */ + TUint State() const; + + /** + * Sends the current memory state information to all observers. + * @return none + */ + virtual void UpdateMemoryInfo(); + + /* + * From MDiskStatusObserver + */ + void DiskStatusChangedL( TInt aStatus ); + + private: + // functions + + /** + * C++ Constructor + **/ + CDevEncUiMemoryEntity( CEikonEnv* aEikonEnv, TDevEncUiMemoryType aType ); + + /** + * Second-phase constructor + **/ + virtual void ConstructL(); + + /** + * Sets the internal state and calls UpdateMemoryInfo() + * @param aState the new state + **/ + virtual void SetState( TUint aState ); + + /** + * Starts a timer to periodically update the memory state in the UI. + * @param aInterval the polling interval + **/ + void StartPolling( TTimeIntervalMicroSeconds32 aInterval ); + + /** + * Helper function, called by StartPolling. + * Starts a timer to periodically update the memory state in the UI. + * @param aInterval the polling interval + **/ + void DoStartPollingL( TTimeIntervalMicroSeconds32 aInterval ); + + /** + * Fetches the encryption state and progress. Called periodically. + **/ + virtual void CheckProgress(); + + /** + * Performs periodical processing of timeouts. Calls CheckProgress(). + **/ + virtual void DoProgressTick(); + + /** + * Performs periodical processing of timeouts. + * Checks if the encryption status has changed. + **/ + virtual void DoPollTickL(); + + void RestoreAutolockSettings(); + + // Data + /** Not owned */ + CEikonEnv* iEikEnv; + + /** Owned */ + CDiskStatusObserver* iDiskStatusObserver; + + /** Owned */ + CPeriodic* iPeriodic; + + /** Owned */ + RArray iObservers; + + /** Owned */ + CDevEncSession* iSession; + + TUint iState; + TUint iPrevState; + const TDevEncUiMemoryType iType; + TInt iPercentDone; + TInt iPrevPercentDone; + }; + +#endif // DEVENCUI_MEMORYENTITY_H