diff -r 7cee158cb8cd -r 26b2b12093af javamanager/javabackup/midp2backup_usif/src.s60/midp2backupplugin.h --- a/javamanager/javabackup/midp2backup_usif/src.s60/midp2backupplugin.h Wed Sep 15 12:05:25 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,412 +0,0 @@ -/* -* Copyright (c) 2008-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: Header file for CMidp2BackupPlugin class -* -*/ - - -#ifndef MIDP2BACKUPPLUGIN_H -#define MIDP2BACKUPPLUGIN_H - -#include "backupplugin.h" -#include -#include "logger.h" - -class RDesWriteStream; -class RDesReadStream; - - - -namespace java -{ -namespace backup -{ - -class CAppArcBackupUtil; -class CJavaVersionBackupUtil; -class CStorageBackupUtil; - - - -/** - * CMidp2BackupPlugin class is handling backup and restore operations - * for MIDlets - * - * This class is instantiated when a BUR operation is starting. - */ -class CMidp2BackupPlugin : public CBackupPlugin -{ - -public: - - /** - * Instantiates an object of this type - */ - static CMidp2BackupPlugin* NewL(); - - ~CMidp2BackupPlugin(); - - - // from base class CBackupPlugin - - /** - * This method is called when a backup or restore operation is - * starting. Preparations can be done to prepare for BUR. - * - * @param aBackupStateValue the value of the current backup state - */ - void PrepareForBURL(TInt aBackupStateValue); - - /** - * This method receives all or part of a snapshot of data to allow - * calculation of an incremental backup. The snapshot is one that - * was previously supplied by the data owner. The snapshot data - * should be read from the location supplied. The snapshot data may - * be larger than the location supplied in which case the routine - * will be called repeatedly until all data has been supplied. - * - * Snapshot data will also be supplied as part of a restore operation - * - * @param aDrive the drive being backed up - * @param aBuffer a pointer to the base of the location from whence - * data can be copied. - * @param aLastSection ETrue if this is the last section of snapshot - * data, else EFalse. - */ - void ReceiveSnapshotDataL(TDriveNumber aDrive, - TDesC8& aBuffer, - TBool aLastSection); - - /** - * This method returns the expected size of backup data that will be - * supplied. If an incremental backup is underway then this method - * will not be called until after ReceiveSnapshotDataL(). - * The size data will be used for the purpose of tracking progess - * during a backup. If it is inaccurate then the user may see - * irregular progress but the actual backup data will not be - * affected so it is acceptable to return an estimated value. - * - * @param aDrive the drive being backed up. - * @return the size of the data that will be returned - */ - TUint GetExpectedDataSize(TDriveNumber aDrive); - - /** - * This method returns a snapshot of data to accompany a backup. The - * snapshot is expected to contain details on files / data being - * backed up. The format of the snapshot is only meaningful to the - * data owner. The snapshot will be supplied if the data owner is - * asked for an incremental backup and for a restore operation. The - * snapshot data should be copied to the location supplied. - * - * The snapshot data may be larger than the location supplied in - * which case the routine will be called repeatedly until all data - * has been retrieved. - * - * @param aDrive the drive being backed up - * @param aBuffer a pointer to the base of the location where data - * can be copied. - * @param aFinished on return ETrue if all data has been returned - * for this drive, else EFalse. - */ - void GetSnapshotDataL(TDriveNumber aDrive, - TPtr8& aBuffer, - TBool& aFinished); - - /** - * This method prepares the implementor to return backup data. It - * will be followed by a sequence of calls to request the actual - * data. - * - * @param aDrive the drive being backed up. - */ - void InitialiseGetBackupDataL(TDriveNumber aDrive); - - /** - * This method requests a section of backup data. - * InitialiseGetBackupDataL() will have been called previously to - * specify the drive concerned. The data returned may be base or - * incremental depending on the type of backup and the capability of - * the data owner. - * - * @param aBuffer a pointer to the base of the location where data - * can be copied. - * @param aFinished on return ETrue if all data has been returned - * for this drive, else EFalse. - */ - void GetBackupDataSectionL(TPtr8& aBuffer, - TBool& aFinished); - - /** - * This method prepares the implementor to receive base restore data - * for a drive. It will be followed by a sequence of calls to supply - * the actual data. - * - * @param aDrive the drive being restored. - */ - void InitialiseRestoreBaseDataL(TDriveNumber aDrive); - - /** - * This method receives a section of base restore data. - * InitialiseRestoreBaseDataL() will have been called previously to - * specify the drive concerned. - * - * @param aBuffer a pointer to the base of the location whence data - * can be read. - * @param aFinished ETrue if all data has been returned for this - * drive, else EFalse. - */ - void RestoreBaseDataSectionL(TDesC8& aBuffer, - TBool aFinished); - - /** - * This method prepares the implementor to receive incremental - * restore data for a drive. It will be followed by a sequence - * of calls to supply the actual data. If multiple increments - * are supplied then this methid will be called before each increment - * - * @param aDrive the drive being restored. - */ - void InitialiseRestoreIncrementDataL(TDriveNumber aDrive); - - /** - * This method receives a section of increment restore data. - * InitialiseRestoreIncrementDataL() will have been called - * previously to specify the drive concerned. - * - * @param aBuffer a pointer to the base of the location whence data - * can be read. - * @param aFinished ETrue if all data has been returned for this - * increment, else EFalse. - */ - void RestoreIncrementDataSectionL(TDesC8& aBuffer, - TBool aFinished); - - /** - * This method is called when all data to be restored has been - * supplied. - * - * @param aDrive the drive being restored. - */ - void RestoreComplete(TDriveNumber aDrive); - -private: - - CMidp2BackupPlugin(); - - void ConstructL(); - - /** - * This method is called to get the unique Id of the current MMC - * - * @return The Id of the MMC, or 0, if no MMC is inserted - */ - TUint MmcIdL(); - - /** - * This method is called to process the content of the buffer - * provided in active phase of restore - * - * @param aBuffer the buffer to process - */ - void ProcessBufferL(RDesReadStream& stream); - - /** - * This method is called to restore the Java Registry entries - * on the MMC, if needed - */ - void RestoreMmcRegistryL(); - - /** - * This method creates the path for the Java Registry entries on - * the specified MMC - * - * @param [out] aPathName path of the entries of the MMC - * @param aDrive drive of the MMC - * @param aUniqueId Unique Id of the MMC - */ - void CreateMmcPath(TDes& aPathName, - TInt aDrive, - TUint aUniqueId); - - /** - * This method gets the path for the next icon file to be backed up - * - * @param [out] aCurrentUid Uid of the next icon - * @param [out] aFullFileName path of the next icon - * @return EFalse if there are no more icons in the array, ETrue - * otherwise - */ - TBool NextIcon(TUid& aCurrentUid, HBufC*& aFullFileName); - - /** - * Process buffer when restore state is EFirstBuffer - * - * @param aStream readstream of buffer to process - * @param aBufferSpaceLeft space left of buffer to be processed - */ - void ProcessFirstBufferL(RDesReadStream& aStream, TInt& aBufferSpaceLeft); - - /** - * Process buffer when restore state is EInIcon - * - * @param aStream readstream of buffer to process - * @param aBufferSpaceLeft space left of buffer to be processed - */ - void ProcessInIconL(RDesReadStream& aStream, TInt& aBufferSpaceLeft); - - /** - * Process buffer when restore state is EInSize - * - * @param aStream readstream of buffer to process - * @param aBufferSpaceLeft space left of buffer to be processed - */ - void ProcessInSizeL(RDesReadStream& aStream, TInt& aBufferSpaceLeft); - - /** - * Resets the array of icons to be backed up - */ - void ResetIconArray(); - -private: // data - - /** - * File session - * Own. - */ - RFs iFs; - - /** - * AppArcBackupUtil object for AppArc operations - * Own. - */ - CAppArcBackupUtil* iAppArcUtil; - - /** - * StorageBackupUtil object for storage B&R - * Own. - */ - CStorageBackupUtil* iStorageBackupUtil; - /** - * The drive that is backed up or restored currently - * Own. - */ - TDriveNumber iDrive; - - /** - * Id of backed up drive, gets its value from restored data - * Own. - */ - TInt32 iBackupDrive; - - /** - * Id of backed up MMC, gets its value from restored data - * Own. - */ - TUint32 iBackupMmc; - - /** - * State of streaming during restore - * Own. - */ - TInt iRestoreState; - - /** - * Shows if it's the first call to GetBackupDataSectionL - * Own. - */ - TBool iFirstCallToGetBackupDataSection; - - /** - * Shows if Backup of storage data is finished or not - * Own. - */ - TBool iStorageDataBackup; - - /** - * Shows if Restore of storage data is finished or not - * Own. - */ - TBool iStorageDataRestore; - - /** - * Shows if Java version information is already written or not - * Own - */ - TBool iJavaVersionInfoWritten; - - /** - * Shows if its the first call to restore data or not. - * Own. - */ - TBool iFirstCallToRestoreBackupDataSection; - - /** - * Stores the uids of the midlets whose icons are to be backed up. - * Own. - */ - RArray iIconUidArray; - - /** - * The current index in the icon file array - * Own. - */ - TInt iIconFilePointer; - - /** - * Stores the current icon file for streaming - * This descriptor will be streamed at subsequent calls of - * GetBackupDataSectionL() - * Own. - */ - HBufC8* iIconDesc; - - /** - * Stores the current icon file being restored - * Own. - */ - HBufC8* iRestoreIconDesc; - - /** - * Size of the icon to be still read during restore - * Own. - */ - TInt32 iIconFileSizeLeft; - - /** - * Current index of iIconDesc - * Own. - */ - TInt iIconDescIndex; - - /** - * Holds the remaining bytes in the buffer - * Own - */ - - TInt iBufferSpaceLeft; - - /** - * Buffer for storing data size in restore - * Own. - */ - TBuf8<4> iSizeBuffer; -}; - - - -} //namespace backup -} //namespace java - -#endif // MIDP2BACKUPPLUGIN_H