--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceencryption/DevEncUi/inc/DevEncUiMemoryEntity.h Mon Jan 18 20:09:41 2010 +0200
@@ -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 <e32base.h>
+#include <eikenv.h>
+
+#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<MDevEncUiMemInfoObserver*> iObservers;
+
+ /** Owned */
+ CDevEncSession* iSession;
+
+ TUint iState;
+ TUint iPrevState;
+ const TDevEncUiMemoryType iType;
+ TInt iPercentDone;
+ TInt iPrevPercentDone;
+ };
+
+#endif // DEVENCUI_MEMORYENTITY_H