williamr@2: // Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #if !defined (__MIUTATCH_H__) williamr@2: #define __MIUTATCH_H__ williamr@2: williamr@2: williamr@2: #if !defined (__S32FILE_H__) williamr@2: #include williamr@2: #endif williamr@2: williamr@2: const TInt KDataLineBufferLength = 4096; williamr@2: _LIT(KImcvAttachFormatStr, "%S(%d)%S"); williamr@2: williamr@2: /** williamr@2: @internalTechnology williamr@2: @released williamr@2: */ williamr@2: enum TImAttachmentFileState williamr@2: { williamr@2: EFileNotOpen, williamr@2: EFileIsOpen, williamr@2: EFileIsClosed, williamr@2: EFileIsCorrupt, // UU data being decoded is corrupt williamr@2: EFileIsIncomplete, // file write failed williamr@2: EFileFailedToOpen, // can't open attach file williamr@2: EFileTopIncomplete // File is incomplete due to top williamr@2: }; williamr@2: williamr@2: class TImAttachmentFile // utility class to handle file operations with Email attachments williamr@2: /** williamr@2: @internalAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: enum TImFileOpenMode williamr@2: { williamr@2: /** williamr@2: File opened for read mode williamr@2: */ williamr@2: EImFileRead = 0, williamr@2: /** williamr@2: File opened for write mode williamr@2: */ williamr@2: EImFileWrite, williamr@2: }; williamr@2: public: williamr@2: IMPORT_C TImAttachmentFile(RFs& aFileSession); // constructor williamr@2: IMPORT_C ~TImAttachmentFile(); // destructor williamr@2: williamr@2: IMPORT_C TInt MakeDir (const TDesC& aDirPath); williamr@2: IMPORT_C TInt OpenFile (const TDesC& aDirPath ,const TDesC& aFileName ); williamr@2: IMPORT_C TInt CreateFile (const TDesC& aDirPath ,const TDesC& aFileName ); williamr@2: IMPORT_C TInt ReadFile (TDes8& rBuffer, TInt aNumBytes ); williamr@2: IMPORT_C TInt WriteFile (const TDesC8& aBuffer); williamr@2: IMPORT_C TInt WriteFile (const TDesC16& aBuffer); williamr@2: IMPORT_C TInt CloseFile(); williamr@2: IMPORT_C TInt DeleteAttachment(const TDesC& aDirPath,const TDesC& aFileName); williamr@2: williamr@2: IMPORT_C void SetFileHandle(RFile& aFile,TImFileOpenMode aFileMode); williamr@2: williamr@2: TInt AppendValidFile(const TDesC& aDirPath, const TDesC& aFileName, TFileName& rFullFilePath); williamr@2: private: williamr@2: void Reset(); williamr@2: TInt WriteFile (); williamr@2: TInt ReadFile (); williamr@2: TInt FlushFile(); williamr@2: TPtrC8 SelectFileData(TInt& abufLen, TInt& aDataLen); williamr@2: williamr@2: private: williamr@2: RFs& iFileSession; williamr@2: RFile iFile; williamr@2: TFileText iFileText; williamr@2: TFileName iFullFilePath; williamr@2: TBuf8 iDataLine; williamr@2: TBool iWritingToFile; williamr@2: TInt iSpaceOnCache; williamr@2: TInt iPositionInCache; williamr@2: }; williamr@2: williamr@2: #endif