apicompatanamdw/bcdrivers/os/kernelhwsrv/base/validation/f32/sfsrv/inc/T_FsData.h
New BC drivers added are - Phonebook, Speed dial utility control, MMS Client MTM, Plugin Bio control, Organizer,
Startup List Management, Flash viewer framework, Network Status, Profile engine wrapper, Drm helper, OMA Drm CAF Agent,
SIP, Connection settings & UI, BLID, Landmarks, Send UI, Media Fetch, WebServices, Cellular services, Device services,
Graphics, Kernel and OSSrv, XML Services, Multimedia.
/*
* Copyright (c) 2007-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:
*
*/
/**
@test
@internalComponent
This contains CT_FsData
*/
#if (!defined __T_FS_DATA_H__)
#define __T_FS_DATA_H__
// User Includes
#include "DataWrapperBase.h"
// EPOC includes
#include <e32std.h>
#include <f32file.h>
#include <TestExecuteServerUtils.h>
#include <TestExecuteStepBase.h>
// 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 DoCmdStartupInitCompleteL(TInt aAsyncErrorIndex);
void DoCmdSetLocalDriveMappingL(const TDesC& aSection);
void DoCmdSwapFileSystem(const TDesC& aSection);
void DoCmdFinaliseDrives();
// 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);
// 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 DoCmdDrive(const TDesC& aSection);
void DoCmdVolume(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);
// Helpers
void DoCleanup();
void DoCmdPromptL(const TDesC &aSection);
inline RFs& CT_FsData::FileServer(){ return iFs2; }
const TDesC& ConvertToStrAttMask(TUint aAttMask);
TBool ConvertToSortKey(const TDesC& aSortKeyStr, TUint& aSortKey);
TBool ConvertToAttMask(const TDesC& aAttMaskStr, TUint& aAttMask);
TBool ConvertToNotifyType(const TDesC& aNotifyTypeStr, TNotifyType& aNotifyType);
TBool ConvertToMediaAtts(const TDesC& aMediaAttStr, TUint& aMediaAtt);
TBool ConvertToDriveAtts(const TDesC& aMediaAttStr, TUint& aMediaAtt);
TBool GetAttMask(const TDesC& aParameterName, const TDesC& aSection, TUint& aFormatMode);
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);
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<CT_ActiveNotifyChange> iNotifyChange;
/** The request status for disk space events */
RPointerArray<CActiveCallback> iNotifyDiskSpace;
/** The request status for dismounts a file system on a drive */
RPointerArray<CActiveCallback> iNotifyDismount;
/** The request status for dismounts a file system on a drive */
RPointerArray<CActiveCallback> 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_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_BOOL_PARAMETER(aParamName, aSection, aResult) GetCommandBoolParameter(aParamName, aSection, aResult,(TText8*) __FILE__, __LINE__, EFalse)
#endif /* __T_FS_DATA_H__ */