diff -r 95243422089a -r 491b3ed49290 filemanager/Engine/inc/CFileManagerRemovableDriveHandler.h --- a/filemanager/Engine/inc/CFileManagerRemovableDriveHandler.h Thu Aug 19 09:42:45 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,309 +0,0 @@ -/* -* Copyright (c) 2006-2008 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: Wraps removable drive functionality -* -*/ - - -#ifndef C_FILEMANAGERREMOVABLEDRIVEHANDLER_H -#define C_FILEMANAGERREMOVABLEDRIVEHANDLER_H - - -// INCLUDES -#include -#include -#include "MFileManagerProcessObserver.h" -#include "MMMCScBkupEngineObserver.h" -#include "CMMCScBkupArchiveInfo.h" -#include "CFileManagerRestoreSettings.h" - - -// FORWARD DECLARATIONS -class CMMCScBkupEngine; -class CFileManagerUtils; -class CFileManagerEngine; -class CBaBackupSessionWrapper; -class CFileManagerBackupSettings; - - -// CLASS DECLARATION -/** -* This class wraps removable drive functionality -* -* @lib FileManagerEngine.lib -* @since S60 3.1 -*/ -NONSHARABLE_CLASS(CFileManagerRemovableDriveHandler) : - public CActive, - public MMMCScBkupEngineObserver - { - -public: - /** - * Two-phased constructor. - */ - static CFileManagerRemovableDriveHandler* NewL( - RFs& aFs, - CFileManagerUtils& aUtils, - CFileManagerEngine& aEngine ); - - /** - * Destructor - */ - virtual ~CFileManagerRemovableDriveHandler(); - -public: // New methods - /** - * Sets process observer for memory card operations - * @param aObserver Pointer to observer or NULL, - * ownership is not transferred - */ - void SetObserver( MFileManagerProcessObserver* aObserver ); - - /** - * Starts eject process - */ - void StartEjectL(); - - /** - * Starts format process - * @param aDrive Drive number EDriveA...EDriveZ - */ - void StartFormatL( const TInt aDrive ); - - /** - * Cancels ongoing process - */ - void CancelProcess(); - - /** - * Checks does backup file exists - * @return ETrue if exists. Otherwise EFalse. - */ - TBool BackupFileExistsL( const TInt aDrive ); - - /** - * Starts backup process - * @param aProcess Backup process to start - */ - void StartBackupL( - MFileManagerProcessObserver::TFileManagerProcess aProcess ); - - /** - * Starts restore process - */ - void StartRestoreL(); - - /** - * Gets restore info array - * @param aArray For storing restore info - * @param aDrive For getting info from specific drive - */ - void GetRestoreInfoArrayL( - RArray< CFileManagerRestoreSettings::TInfo >& aArray, - const TInt aDrive ); - - /** - * Checks is process ongoing - */ - TBool IsProcessOngoing() const; - - /** - * Gets create time of the latest backup archive - * @param aBackupTime Stores the time - */ - void LatestBackupTimeL( TTime& aBackupTime ); - - /** - * Deletes selected backups - */ - void DeleteBackupsL(); - -private: // From CActive - /** - * @see CActive - */ - void DoCancel(); - - /** - * @see CActive - */ - void RunL(); - - /** - * @see CActive - */ - TInt RunError( TInt aError ); - -private: - /** - * Constructors - */ - CFileManagerRemovableDriveHandler( - RFs& aFs, - CFileManagerUtils& aUtils, - CFileManagerEngine& aEngine ); - - void ConstructL(); - - /** - * For periodic eject scan - */ - static TInt EjectScanAndShutdownApps( TAny* ptr ); - - /** - * For periodic eject scan - */ - void DoEjectScanAndShutdownL(); - - /** - * For periodic eject scan - */ - void EjectComplete( TInt aErr ); - - /** - * Gets backup file name - */ - HBufC* BackupFileNameLC( TBool aFullPath ) const; - - /** - * Starts eject scan - */ - void StartEjectScanL(); - - void InformStartL( TInt aTotalCount ); - - void InformUpdateL( TInt aCount ); - - void InformFinishL( ); - - void InformError( TInt aErr ); - - void StartFormatProcessL(); - - void EndFormatProcessL( TInt aErr ); - - void CloseAppsL(); - - void RestartAppsL(); - - static void ResetAndDestroyArchives( TAny* aPtr ); - - static TUint32 BkupToFmgrMask( const TUint32 aBkupMask ); - - static TUint32 FmgrToBkupMask( const TUint32 aFmrgMask ); - - void PublishBurStatus( TInt aType ); - - TBool IsInternalMassStorage( TInt aDrive ); - - void StoreVolumeNameL( TInt aDrive ); - - void RestoreVolumeNameL( TInt aDrive ); - - void ListArchivesL( - RPointerArray< CMMCScBkupArchiveInfo >& aArchives, - const CFileManagerBackupSettings& aBackupSettings ); - -private: // From MMMCScBkupEngineObserver - TInt HandleBkupEngineEventL( - MMMCScBkupEngineObserver::TEvent aEvent, TInt aAssociatedData ); - -private: // Data - /** - * Backup engine - * Own. - */ - CMMCScBkupEngine* iBkupEngine; - - /** - * Pointer to observer - * Not own. - */ - MFileManagerProcessObserver* iObserver; - - /** - * Observed process - */ - MFileManagerProcessObserver::TFileManagerProcess iProcess; - - /** - * For file operations - * Not own. - */ - RFs& iFs; - - /** - * For utility access - * Not own. - */ - CFileManagerUtils& iUtils; - - /** - * For file manager engine access - * Not own. - */ - CFileManagerEngine& iEngine; - - /** - * Last process error - */ - TInt iLastError; - - /** - * Final progress value - */ - TInt iFinalValue; - - /** - * For timed eject scanning steps - * Own. - */ - CPeriodic* iEjectScanPeriodic; - - /** - * For eject scan round counting - */ - TInt iEjectScanRounds; - - /** - * Indicates if backup or restore is in progress - */ - TBool iBackupRestoreInprogress; - - /** - * For formatting drives - */ - RFormat iFormatter; - - /** - * For keeping track of formatting process progress - */ - TPckgBuf< TInt > iFormatCountBuf; - - /** - * For closing and restarting open files while formatting - */ - CBaBackupSessionWrapper* iBSWrapper; - - /** - * Target drive of the process - */ - TInt iDrive; - - }; - -#endif // C_FILEMANAGERREMOVABLEDRIVEHANDLER_H - -// End of File