diff -r 000000000000 -r 96e5fb8b040d baseapitest/basesvs/validation/f32/sfsrv/inc/T_FsData.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/baseapitest/basesvs/validation/f32/sfsrv/inc/T_FsData.h Thu Dec 17 09:24:54 2009 +0200 @@ -0,0 +1,261 @@ +/* +* Copyright (c) 2005-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: +* +*/ + + +/** +@test +@internalComponent + +This contains CT_FsData +*/ + +#if (!defined __T_FS_DATA_H__) +#define __T_FS_DATA_H__ + +// User Includes +#include "DataWrapperBase.h" +#include "T_DirData.h" + +// EPOC includes +#include +#include +#include + +// User includes +#include "T_ActiveNotifyChange.h" + +const TInt KBufferStringLength = 256; + + +class CT_FsData: public CDataWrapperBase + { +public: + static CT_FsData* NewL(); + ~CT_FsData(); + + /** + * Process a command read from the ini file + * + * @param aCommand requiring command to be processed + * @param aSection the section in the ini file requiring the command to be processed + * @param aAsyncErrorIndex the index of asynchronous command error code belongs to. + * + * @leave system wide error + * + * @return ETrue if the command is processed + */ + virtual TBool DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex); + + /** + * Return a pointer to the object that the data wraps + * + * @return pointer to the object that the data wraps + */ + virtual TAny* GetObject(); + + /** + * Query to see if there are any outstanding requests + * + * @return ETrue if there are any outstanding requests + */ + + void RunL(CActive* aActive, TInt aIndex); + void DoCancel(CActive* aActive, TInt aIndex); + +protected: + CT_FsData(); + void ConstructL(); + +private: + + virtual TBool DoCommandDrivesL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex); + virtual TBool DoCommandFilesL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex); + virtual TBool DoCommandMountsL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex); + + + void DoCmdNewL(); + void DoCmdClose(); + void DoCmdDestructor(); + + // Mount commands + void DoCmdAddFileSystem(const TDesC& aSection); + void DoCmdMountFileSystem(const TDesC& aSection); + void DoCmdMountFileSystemAndScan(const TDesC& aSection); + void DoCmdDismountFileSystem(const TDesC& aSection); + void DoCmdRemoveFileSystem(const TDesC& aSection); + void DoCmdFileSystemName(const TDesC& aSection); + void DoCmdAddExtension(const TDesC& aSection); + void DoCmdMountExtension(const TDesC& aSection); + void DoCmdDismountExtension(const TDesC& aSection); + void DoCmdRemoveExtension(const TDesC& aSection); + void DoCmdExtensionName(const TDesC& aSection); + void DoCmdRemountDriveL(const TDesC& aSection); + void DoCmdNotifyDismountL(const TDesC& aSection, const TInt aAsyncErrorIndex); + void DoCmdNotifyDismountCancel(const TDesC& aSection); + void DoCmdAllowDismount(const TDesC& aSection); + void DoCmdSetStartupConfigurationL(const TDesC& aSection); + void DoCmdAddCompositeMount(const TDesC& aSection); + void DoCmdStartupInitCompleteL(TInt aAsyncErrorIndex); + void DoCmdSetLocalDriveMappingL(const TDesC& aSection); + void DoCmdSwapFileSystem(const TDesC& aSection); + void DoCmdFinaliseDrives(); + void DoCmdFileSystemSubType(const TDesC& aSection); + + // Misc commands + void DoCmdConnect(const TDesC& aSection); + void DoCmdVersion(const TDesC& aSection); + void DoCmdNotifyChangeL(const TDesC& aSection, const TInt aAsyncErrorIndex); + void DoCmdNotifyChangeCancel(const TDesC& aSection); + void DoCmdNotifyDiskSpaceL(const TDesC& aSection, const TInt aAsyncErrorIndex); + void DoCmdNotifyDiskSpaceCancel(const TDesC& aSection); + void DoCmdIsRomAddress(const TDesC& aSection); + void DoCmdResourceCountMarkStart(); + void DoCmdResourceCountMarkEnd(); + void DoCmdResourceCount(const TDesC& aSection); + void DoCmdGetNotifyUser(const TDesC& aSection); + void DoCmdSetNotifyUser(const TDesC& aSection); + void DoCmdLoaderHeapFunctionL(const TDesC& aSection); + void DoCmdSetNotifyChange(const TDesC& aSection); + void DoCmdInitialisePropertiesFile(const TDesC& aSection); + + // Files commands + void DoCmdRealName(const TDesC& aSection); + void DoCmdSessionPath(const TDesC& aSection); + void DoCmdSetSessionPath(const TDesC& aSection); + void DoCmdParse(const TDesC& aSection); + void DoCmdMkDir(const TDesC& aSection); + void DoCmdMkDirAll(const TDesC& aSection); + void DoCmdRmDir(const TDesC& aSection); + void DoCmdGetDir(const TDesC& aSection); + void DoCmdDelete(const TDesC& aSection); + void DoCmdRename(const TDesC& aSection); + void DoCmdReplace(const TDesC& aSection); + void DoCmdAtt(const TDesC& aSection); + void DoCmdSetAtt(const TDesC& aSection); + void DoCmdModified(const TDesC& aSection); + void DoCmdSetModified(const TDesC& aSection); + void DoCmdEntryL(const TDesC& aSection); + void DoCmdSetEntry(const TDesC& aSection); + void DoCmdReadFileSectionL(const TDesC& aSection); + void DoCmdIsFileOpen(const TDesC& aSection); + void DoCmdGetShortName(const TDesC& aSection); + void DoCmdGetLongName(const TDesC& aSection); + void DoCmdIsFileInRom(const TDesC& aSection); + void DoCmdIsValidName(const TDesC& aSection); + void DoCmdSetSessionToPrivate(const TDesC& aSection); + void DoCmdPrivatePath(const TDesC& aSection); + void DoCmdCreatePrivatePath(const TDesC& aSection); + + // Drives commands + void DoCmdDriveList(const TDesC& aSection); + void DoCmdDriveL(const TDesC& aSection); + void DoCmdVolumeL(const TDesC& aSection); + void DoCmdSetVolumeLabel(const TDesC& aSection); + void DoCmdSubst(const TDesC& aSection); + void DoCmdSetSubst(const TDesC& aSection); + void DoCmdGetMediaSerialNumber(const TDesC& aSection); + void DoCmdIsValidDrive(const TDesC& aSection); + void DoCmdCharToDrive(const TDesC& aSection); + void DoCmdDriveToChar(const TDesC& aSection); + void DoCmdCheckDisk(const TDesC& aSection); + void DoCmdScanDrive(const TDesC& aSection); + void DoCmdGetDriveName(const TDesC& aSection); + void DoCmdSetDriveName(const TDesC& aSection); + void DoCmdLockDrive(const TDesC& aSection); + void DoCmdUnlockDrive(const TDesC& aSection); + void DoCmdClearPassword(const TDesC& aSection); + void DoCmdErasePassword(const TDesC& aSection); + void DoCmdReserveDriveSpace(const TDesC& aSection); + void DoCmdGetReserveAccess(const TDesC& aSection); + void DoCmdReleaseReserveAccess(const TDesC& aSection); + void DoCmdGetSystemDrive(const TDesC& aSection); + void DoCmdSetSystemDrive(const TDesC& aSection); + void DoCmdGetSystemDriveChar(const TDesC& aSection); + void DoCmdVolumeIOParam(const TDesC& aSection); + + // Helpers + void DoCleanup(); + void DoCmdPromptL(const TDesC &aSection); + inline RFs& CT_FsData::FileServer(){ return iFs2; } + TBool VerifyTDriveInfoDataFromIniL(const TDesC& aSection, TDriveInfo& aDriveInfo); + + + + const TDesC& ConvertToStrAttMask(TUint aAttMask); + TBool ConvertToSortKey(const TDesC& aSortKeyStr, TUint& aSortKey); + TBool ConvertToNotifyType(const TDesC& aNotifyTypeStr, TNotifyType& aNotifyType); + TBool ConvertToMediaAtts(const TDesC& aMediaAttStr, TUint& aMediaAtt); + TBool ConvertToDriveAtts(const TDesC& aMediaAttStr, TUint& aMediaAtt); + TBool GetDriveNumberFromConfig(const TDesC& aSection, const TDesC& aParameterName, TDriveNumber& aDriveNumber); + TBool GetMediaTypeFromConfig(const TDesC& aSection, TMediaType& aMediaType); + TBool GetMediaAttsFromConfig(const TDesC& aSection, TUint& aMediaAtt); + TBool GetDriveAttsFromConfig(const TDesC& aSection, TUint& aDriveAtt); + TBool GetBatteryStateFromConfig(const TDesC& aSection, TBatteryState& aBatteryState); + TBool GetDrvMapOperationFromConfig(const TDesC& aSection, const TDesC& aParameterName, TLocalDriveMappingInfo::TDrvMapOperation& aOperation); +public: + TUint64 ThreadId(); + +private: + /** RFs class instance that is tested */ + RFs* iFs; + + /** RFs class instance for additional purpoces */ + RFs iFs2; + + /** The request status for files/dir events */ + RPointerArray iNotifyChange; + + /** The request status for disk space events */ + RPointerArray iNotifyDiskSpace; + + /** The request status for dismounts a file system on a drive */ + RPointerArray iNotifyDismount; + + /** The request status for dismounts a file system on a drive */ + RPointerArray iStartupInitComplete; + + /** The volume label for a drive */ + TVolumeInfo iVolumeInfo; + + /** Optional name of the volume */ + TFileName iDriveName; + TFileName iVolumeLabel; + + /** Extension name */ + TFullName iExtensionName; + + /** IsFileInRom result */ + TUint8* iIsFileInRom; + + /** FileSystemName retuned value */ + TFullName iFileSystemName; + + /** LockDrive password */ + TMediaPassword iPassword; + }; + +#define GET_MANDATORY_STRING_PARAMETER(aParamName, aSection, aResult) GetCommandStringParameter(aParamName, aSection, aResult, (TText8*)__FILE__, __LINE__, ETrue) +#define GET_MANDATORY_INT_PARAMETER(aParamName, aSection, aResult) GetCommandIntParameter(aParamName, aSection, aResult,(TText8*) __FILE__, __LINE__, ETrue) +#define GET_MANDATORY_INT64_PARAMETER(aParamName, aSection, aResult) GetCommandInt64Parameter(aParamName, aSection, aResult,(TText8*) __FILE__, __LINE__, ETrue) +#define GET_MANDATORY_BOOL_PARAMETER(aParamName, aSection, aResult) GetCommandBoolParameter(aParamName, aSection, aResult, (TText8*)__FILE__, __LINE__, ETrue) + +#define GET_OPTIONAL_STRING_PARAMETER(aParamName, aSection, aResult) GetCommandStringParameter(aParamName, aSection, aResult, (TText8*) __FILE__, __LINE__, EFalse) +#define GET_OPTIONAL_INT_PARAMETER(aParamName, aSection, aResult) GetCommandIntParameter(aParamName, aSection, aResult,(TText8*) __FILE__, __LINE__, EFalse) +#define GET_OPTIONAL_INT64_PARAMETER(aParamName, aSection, aResult) GetCommandInt64Parameter(aParamName, aSection, aResult,(TText8*) __FILE__, __LINE__, EFalse) +#define GET_OPTIONAL_BOOL_PARAMETER(aParamName, aSection, aResult) GetCommandBoolParameter(aParamName, aSection, aResult,(TText8*) __FILE__, __LINE__, EFalse) + +#endif /* __T_FS_DATA_H__ */