sl@0: /* sl@0: * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: sl@0: sl@0: /** sl@0: @test sl@0: @internalComponent sl@0: sl@0: This contains CT_FileData sl@0: */ sl@0: sl@0: #if (!defined __T_FILE_DATA_H__) sl@0: #define __T_FILE_DATA_H__ sl@0: sl@0: // User Includes sl@0: #include "DataWrapperBase.h" sl@0: #include "T_FsData.h" sl@0: #include "T_FileActiveCallback.h" sl@0: sl@0: // EPOC includes sl@0: #include sl@0: sl@0: class CT_FileData: public CDataWrapperBase sl@0: { sl@0: public: sl@0: static CT_FileData* NewL(); sl@0: ~CT_FileData(); sl@0: sl@0: virtual TBool DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex); sl@0: virtual TAny* GetObject(); sl@0: sl@0: protected: sl@0: CT_FileData(); sl@0: void ConstructL(); sl@0: sl@0: private: sl@0: // Commands sl@0: void DoCmdNewL(); sl@0: void DoCmdDestructor(); sl@0: void DoCmdCreateL(const TDesC& aSection); sl@0: void DoCmdOpenL(const TDesC& aSection); sl@0: void DoCmdWriteL(const TDesC& aSection, const TInt aSyncErrorIndex); sl@0: void DoCmdClose(); sl@0: void DoCmdReplaceL(const TDesC& aSection); sl@0: void DoCmdReadL(const TDesC& aSection, const TInt aAsyncErrorIndex); sl@0: void DoCmdFlushL(const TDesC& aSection, const TInt aAsyncErrorIndex); sl@0: void DoCmdTempL(const TDesC& aSection); sl@0: void DoCmdRenameL(const TDesC& aSection); sl@0: void DoCmdSeekL(const TDesC& aSection); sl@0: void DoCmdReadCancelL(const TDesC& aSection); sl@0: void DoCmdLockL(const TDesC& aSection); sl@0: void DoCmdUnLockL(const TDesC& aSection); sl@0: void DoCmdSizeL(const TDesC& aSection); sl@0: void DoCmdSetSizeL(const TDesC& aSection); sl@0: void DoCmdAttL(const TDesC& aSection); sl@0: void DoCmdSetAttL(const TDesC& aSection); sl@0: void DoCmdModifiedL(const TDesC& aSection); sl@0: void DoCmdSetModifiedL(const TDesC& aSection); sl@0: void DoCmdSetL(const TDesC& aSection); sl@0: void DoCmdChangeModeL(const TDesC& aSection); sl@0: void DoCmdDriveL(const TDesC& aSection); sl@0: void DoCmdBlockMap(const TDesC& aSection); sl@0: void DoCmdDuplicateL(const TDesC& aSection); sl@0: void DoCmdFullName(const TDesC& aSection); sl@0: void DoCmdNameL(const TDesC& aSection); sl@0: sl@0: sl@0: sl@0: // Helpers sl@0: inline void DoCleanup(); sl@0: sl@0: TBool GetFileModeL(const TDesC& aParameterName, const TDesC& aSection, TUint& aFileMode); sl@0: TBool ConvertToSeek(const TDesC& aParameterName, const TDesC& aSection, TSeek& aSeek); sl@0: TBool ConvertToOwnerType(const TDesC& aParameterName, const TDesC& aSection, TOwnerType& aResult); sl@0: TBool ConvertToAttributeL(const TDesC& aParameterName, const TDesC& aSection, TUint& aAttribute); sl@0: TBool ConvertToBlockMapUsage(const TDesC& aParameterName, const TDesC& aSection, TBlockMapUsage& aResult); sl@0: sl@0: void RunL(CActive* aActive, const TInt aIndex); sl@0: void DoCancel(CActive* aActive, TInt aIndex); sl@0: sl@0: void ReadCancelAll(); sl@0: void ReadCancel(); sl@0: void DoAsynchronousWritesL(const TDesC& aSection, const TInt aSyncErrorIndex); sl@0: void DoSynchronousWritesL(const TDesC& aSection); sl@0: void HandleExpectedString(const TDesC8& aReadedData, const TDesC& aSection); sl@0: void HandleExpectedString(const TDesC& aReadedData, const TDesC& aSection); sl@0: void DoSynchronousReadsL(const TDesC& aSection); sl@0: void DoAsynchronousReadsL(const TDesC& aSection, const TInt aAsyncErrorIndex); sl@0: sl@0: void PrintFileAttributes(TUint aAttValue); sl@0: sl@0: void ToArrayL(RPointerArray& aArray, HBufC*& aBuffer); sl@0: RPointerArray SplitL(const TDesC& aInput, const char* aToken); sl@0: sl@0: sl@0: private: sl@0: /** Instance for handling to resource file */ sl@0: RPointerArray iReadCallbackArray; sl@0: RPointerArray iWriteCallbackArray; sl@0: RPointerArray iFlushCallbackArray; sl@0: RFile* iFile; sl@0: TBool iFileOpened; sl@0: }; sl@0: sl@0: #endif /* __T_FILE_DATA_H__ */