1.1 --- a/epoc32/include/cmsvplainbodytext.h Tue Mar 16 16:12:26 2010 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,156 +0,0 @@
1.4 -// CMSVPLAINBODYTEXT.H
1.5 -
1.6 -// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
1.7 -// All rights reserved.
1.8 -// This component and the accompanying materials are made available
1.9 -// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
1.10 -// which accompanies this distribution, and is available
1.11 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.12 -//
1.13 -// Initial Contributors:
1.14 -// Nokia Corporation - initial contribution.
1.15 -//
1.16 -// Contributors:
1.17 -//
1.18 -// Description:
1.19 -//
1.20 -
1.21 -#ifndef __CMSVPLAINBODYTEXT_H__
1.22 -#define __CMSVPLAINBODYTEXT_H__
1.23 -
1.24 -
1.25 -#include <msvstore.h>
1.26 -#include <mentact.h>
1.27 -#include <charconv.h>
1.28 -
1.29 -class CMsvStore;
1.30 -class CRichText;
1.31 -class CParaFormatLayer;
1.32 -class CCharFormatLayer;
1.33 -class CCnvCharacterSetConverter;
1.34 -
1.35 -/**
1.36 -This class encapsulates plainbody text information for storage within the
1.37 -Message Store.It also populates a CRichText object with the 8 bit data
1.38 -decoded to the specified character set.If a character set is not specified,
1.39 -then the default character set is used.
1.40 -
1.41 -@publishedAll
1.42 -@released
1.43 -*/
1.44 -class CMsvPlainBodyText : public CMsgActive
1.45 - {
1.46 -public:
1.47 - static CMsvPlainBodyText* NewL(MMsvStoreManager& aMsvStoreManager, CMsvStore& aStore, TBool aIs8Bit, TUint aCharsetId, TUint aDefaultCharsetId, TMsvId aMessageId, RFs& aFs);
1.48 - static CMsvPlainBodyText* NewL(MMsvStoreManager& aMsvStoreManager, CMsvStore& aStore, TMsvId aMessageId, RFs& aFs, TInt aChunkLength);
1.49 -
1.50 - IMPORT_C ~CMsvPlainBodyText();
1.51 -
1.52 - IMPORT_C void StoreChunkL(const TDesC8& aChunk, TRequestStatus& aStatus);
1.53 - IMPORT_C void StoreChunkL(const TDesC8& aChunk);
1.54 -
1.55 - IMPORT_C void StoreChunkL(const TDesC16& aChunk, TRequestStatus& aStatus);
1.56 - IMPORT_C void StoreChunkL(const TDesC16& aChunk);
1.57 -
1.58 - IMPORT_C void StoreRichTextAsPlainTextL(CRichText& aRichText);
1.59 -
1.60 - IMPORT_C void CommitL();
1.61 -
1.62 - IMPORT_C void NextChunkL(TDes8& aChunk, TRequestStatus& aStatus);
1.63 - IMPORT_C void NextChunkL(TDes8& aChunk);
1.64 -
1.65 - IMPORT_C void NextChunkL(TDes16& aChunk, TRequestStatus& aStatus);
1.66 - IMPORT_C void NextChunkL(TDes16& aChunk);
1.67 -
1.68 - IMPORT_C void PreviousChunkL(TDes8& aChunk, TRequestStatus& aStatus);
1.69 - IMPORT_C void PreviousChunkL(TDes8& aChunk);
1.70 -
1.71 - IMPORT_C void PreviousChunkL(TDes16& aChunk, TRequestStatus& aStatus);
1.72 - IMPORT_C void PreviousChunkL(TDes16& aChunk);
1.73 -
1.74 -
1.75 - IMPORT_C void SetCharacterSetL(const TUint aCharset);
1.76 - IMPORT_C TUint CharacterSet();
1.77 - IMPORT_C TUint DefaultCharacterSet();
1.78 -
1.79 - IMPORT_C TInt Size();
1.80 -
1.81 -private:
1.82 - CMsvPlainBodyText(MMsvStoreManager& aMsvStoreManager, CMsvStore& aStore, TBool aIs8Bit, TUint aCharsetId, TUint aDefaultCharsetId, TMsvId aMessageId, RFs& aFs);
1.83 - void ConstructWriteL();
1.84 -
1.85 - CMsvPlainBodyText(MMsvStoreManager& aMsvStoreManager, CMsvStore& aStore,TMsvId aMessageId, RFs& aFs,TInt aChunkLength);
1.86 - void ConstructReadL();
1.87 -
1.88 - void PrepareToConvertL();
1.89 - void ConvertChunkToUnicodeForStoreL(const TDesC8& aChunk);
1.90 - TInt ConvertChunkToUnicodeForRestoreL();
1.91 - void ExtractNextChunkFromRichText(TDes16& aChunk);
1.92 - void ExtractPreviousChunkFromRichText(TDes16& aChunk);
1.93 - void RevertL();
1.94 - void DoRunL();
1.95 - void DoComplete();
1.96 - void DoCancel();
1.97 -
1.98 -private:
1.99 - /** To access APIs related to RFile operations.*/
1.100 - MMsvStoreManager& iMsvStoreManager;
1.101 - CMsvStore& iStore;
1.102 - /** Indicates whether to store text as 8 bit or 16 bit.*/
1.103 - TBool iIs8Bit;
1.104 - /** The charset of the body text*/
1.105 - TUint iCharsetId;
1.106 - TUint iDefaultCharsetId;
1.107 -
1.108 - /** The RFile Path.*/
1.109 - HBufC* iFilePath;
1.110 - TMsvId iMessageId;
1.111 - RFs& iFSession;
1.112 -
1.113 - /** The RFile to which body text is written.*/
1.114 - RFile iFile;
1.115 - /** Character converter for 8 to 16 bit conversion.*/
1.116 - CCnvCharacterSetConverter* iConverter;
1.117 - CRichText* iRichText;
1.118 - CParaFormatLayer* iParaLayer;
1.119 - CCharFormatLayer* iCharLayer;
1.120 - TInt iReadChunkLength;
1.121 - /** Temporary buffer created to Store chunk while it is being written aynchronously.*/
1.122 - RBuf16 iTempChunk16;
1.123 - /** Buffer used to read data from RFile.*/
1.124 - RBuf8 iRfileReadBuf8;
1.125 - /** Pointer to 8-bit buffer that needs to be written to RFile.*/
1.126 - TPtrC8 iRfileWritePtr8;
1.127 - /** The position from where to extract data in CRichText*/
1.128 - TInt iPos;
1.129 - /** Contains the size of the chunk that will be read or write in the RFile*/
1.130 - TInt iChunkMaxLength;
1.131 - /** Contains the remaining unconverted Unicode Data*/
1.132 - HBufC8* iRemainingUnConvertedData;
1.133 - /** Array that stores the start positions of each chunk,in Rfile*/
1.134 - RArray<TInt> iStartPosOfEachChunkInFile;
1.135 - /** Contains the start position of the next chunk*/
1.136 - TInt iStartPosOfNextChunk;
1.137 - /** Contains the remaining converted Unicode Data*/
1.138 - RBuf16 iRemainingConvertedData;
1.139 - /** Pointer to a 16 bit chunk that is being read from the store.*/
1.140 - TDes16* iChunk16;
1.141 - /** Pointer to a 8 bit chunk that is being read from the store.*/
1.142 - TDes8* iChunk8;
1.143 - /** Indicates whether the Rfile is commited or not.*/
1.144 - TBool iIsCommitted;
1.145 -
1.146 - /** Indicates whether the chunk being read is last.*/
1.147 - TBool iIsLastChunk;
1.148 - /** Indicates whether call to DoRunl was initiated by PreviousChunkL method.*/
1.149 - TBool iPrevChunk;
1.150 - /** Indicates whether call to DoRunl was initiated by 8 bit PreviousChunkL and NextChunkL methods.*/
1.151 - TBool iRetrieving8bit;
1.152 - /** Enum indicating if RFile is being written or read */
1.153 - enum {EMsvFileReading, EMsvFileWriting} iMsvFileStatus;
1.154 - CCnvCharacterSetConverter::TAvailability iAvailable;
1.155 - //Containes current position of the Rfile
1.156 - TInt iCurrentFilePos;
1.157 - };
1.158 -
1.159 -#endif//__CMSVPLAINBODYTEXT_H__