--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/pop3andsmtpmtm/clientmtms/inc/cimencodedheader.h Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,113 @@
+// CImEncodedHeader.h
+//
+
+// Copyright (c) 2003-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:
+//
+
+/**
+ @file
+ @internalTechnology
+*/
+
+#ifndef __CIMENCODEDHEADER_H__
+#define __CIMENCODEDHEADER_H__
+
+#include <msvstore.h> // CMsvStore
+#include "MIUTHDR.H"
+
+#if (defined SYMBIAN_MESSAGESTORE_HEADER_BODY_USING_SQLDB)
+ class CCHeaderFields;
+#endif
+
+// IMail-specific stream type within an IMail file store for CImEncodedHeader
+const TUid KUidMsgFileIMailEncodedHeader = {0x101FD0E3}; // 270520547 decimal
+
+//------------------------------------------------------------------------------
+
+class CImEncodedHeader : public CBase
+/** Encapsulates an undecoded Internet Mail header.
+This class encapsulates the 8 bit data of supported fields for the CImHeader
+prior to decoding. It allows this information to populate an associated
+CImHeader class for redecoding.
+
+@internalTechnology
+@released
+*/
+ {
+public:
+
+ static CImEncodedHeader* NewLC();
+ static CImEncodedHeader* NewL();
+ ~CImEncodedHeader();
+ void Reset();
+
+ void InternalizeL(RMsvReadStream& aReadStream);
+ void ExternalizeL(RMsvWriteStream& aWriteStream) const;
+ void RestoreL(CMsvStore& aMessageStore);
+ void StoreL (CMsvStore& aMessageStore) const;
+ // From field
+ const TPtrC8 From() const;
+ void SetFromL(const TDesC8& aFrom);
+
+ // Subject field
+ const TPtrC8 Subject() const;
+ void SetSubjectL(const TDesC8& aSubject);
+
+ // ReplyTo field
+ const TPtrC8 ReplyTo() const;
+ void SetReplyToL(const TDesC8& aReplyTo);
+ void CopyFromHeaderL(
+ const CImHeader& aFromHeader, TBool aDeleteExistingData = false);
+ void CopyToHeaderL(CImHeader& aToHeader) const;
+
+ void SetDecodeCharset(TUint aCharset);
+ TUint DecodeCharset() const;
+
+ TUint16 Version() const;
+ void SetVersion(TUint16 aVersion);
+ TInt DataSize() const;
+
+ CDesCArray& ToRecipients ();
+ CDesCArray& CcRecipients ();
+ CDesCArray& BccRecipients();
+
+ const CDesCArray& ToRecipients () const;
+ const CDesCArray& CcRecipients () const;
+ const CDesCArray& BccRecipients() const;
+
+#if (defined SYMBIAN_MESSAGESTORE_HEADER_BODY_USING_SQLDB)
+ void StoreEncodedDBL (CMsvStore& aMessageStore) const;
+ void ReStoreEncodedDBL(CMsvStore& aMessageStore);
+ void CreateEncodedArrayListL(TPtrC16 aEncodedStr ,TInt aI);
+ TInt EncodedBufSize()const;
+#endif
+
+private:
+ CImEncodedHeader();
+ void ConstructL();
+ friend void CopyArrayL(const CDesCArray& aSource, CDesCArray& aDestination);
+
+private:
+ TUint16 iVersion;
+ HBufC8* iFrom;
+ HBufC8* iSubject;
+ HBufC8* iReplyTo;
+ CDesCArray* iTo;
+ CDesCArray* iCc;
+ CDesCArray* iBcc;
+ TUint iDecodeCharset;
+ };
+
+#endif