contentmgmt/contentaccessfwfordrm/source/cafutils/cafmimeheader.cpp
changeset 8 35751d3474b7
parent 0 2c201484c85f
--- a/contentmgmt/contentaccessfwfordrm/source/cafutils/cafmimeheader.cpp	Tue Jul 21 01:04:32 2009 +0100
+++ b/contentmgmt/contentaccessfwfordrm/source/cafutils/cafmimeheader.cpp	Thu Sep 10 14:01:51 2009 +0300
@@ -1,243 +1,243 @@
-/*
-* 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 the License "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: 
-*
-*/
-
-
-#ifndef REMOVE_CAF1
-
-#include <caf/caftypes.h>
-#include <s32strm.h>
-#include "cafmimeheader.h"
-#include "mimefieldanddata.h"
-
-using namespace ContentAccess;
-
-EXPORT_C CCafMimeHeader* CCafMimeHeader::NewL(const TDesC8 &aContentType)
-	{
-	CCafMimeHeader *self = new (ELeave) CCafMimeHeader();
-	CleanupStack::PushL(self);
-	self->ConstructL(aContentType);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CCafMimeHeader::CCafMimeHeader() 
-	{
-	}
-
-void CCafMimeHeader::ConstructL(const TDesC8 &aContentType) 
-	{
-	SetStandardMimeDataL(EContentType, aContentType);
-	}
-
-EXPORT_C CCafMimeHeader::~CCafMimeHeader()
-	{
-	TInt i=0;
-	iNonStandardMimeHeaders.ResetAndDestroy();
-	iNonStandardMimeHeaders.Close();
-	
-	for(i = 0; i < EMimeMax; i++)
-		{
-		delete iStandardMimeHeader[i];
-		}
-	}
-
-EXPORT_C void CCafMimeHeader::SetStandardMimeDataL(const TMimeFields &aIndex, const TDesC8& aData)
-	{
-	HBufC8 *data = aData.AllocLC();
-
-	// make sure mime types are lower case
-	if(aIndex == EContentType)
-		{
-		data->Des().LowerCase();
-		}
-	
-	// replace whatever value was there before
-	delete iStandardMimeHeader[aIndex];
-	iStandardMimeHeader[aIndex] = data;
-		
-	CleanupStack::Pop(data); 
-	}
-
-EXPORT_C TPtrC8 CCafMimeHeader::StandardMimeData(const TMimeFields &aIndex) const
-	{
-	// If the field value has not been set, return a null string
-	if(iStandardMimeHeader[aIndex] == NULL)
-		{
-		return KNullDesC8();
-		}
-	return TPtrC8(iStandardMimeHeader[aIndex]->Des());
-	}
-
-
-EXPORT_C TInt CCafMimeHeader::NonStandardMimeCount() const
-	{
-	return iNonStandardMimeHeaders.Count();
-	}
-
-EXPORT_C void CCafMimeHeader::AddNonStandardMimeL(const TDesC8& aFieldName, const TDesC8& aData)
-	{
-	CMimeFieldAndData *mimeData = CMimeFieldAndData::NewL(aFieldName, aData);
-	CleanupStack::PushL(mimeData);
-	iNonStandardMimeHeaders.Append(mimeData);
-	CleanupStack::Pop(mimeData);
-	}
-
-EXPORT_C TPtrC8 CCafMimeHeader::NonStandardMimeField(TInt aIndex) const
-	{
-	return iNonStandardMimeHeaders[aIndex]->FieldName();
-	}
-
-EXPORT_C TPtrC8 CCafMimeHeader::NonStandardMimeData(TInt aIndex) const
-	{
-	return iNonStandardMimeHeaders[aIndex]->Data();
-	}
-
-EXPORT_C void CCafMimeHeader::ExternalizeL(RWriteStream& aStream) const
-	{
-	TInt i=0;
-	
-	// Write the contents of this class out to a stream
-
-	// Write the number of standard mime headers
-	aStream.WriteInt32L(EMimeMax);
-	
-	// Write out the standard mime data, each one preceeded by it's length
-	for(i = 0; i < EMimeMax; i++)
-		{
-		TInt length=0;
-		
-		// Length is zero if the mime field has not been set, 
-		if(iStandardMimeHeader[i] == NULL)
-			{
-			length = 0;
-			}
-		else 
-			{
-			length = iStandardMimeHeader[i]->Length();
-			}
-
-		// write the field length
-		aStream.WriteInt16L(length);
-		if(length > 0)
-			{
-			// write the field value if length > 0
-			aStream.WriteL(*iStandardMimeHeader[i]);
-			}
-		}
-
-	aStream.WriteInt32L(iNonStandardMimeHeaders.Count());
-
-	// Write out non standard mime headers and data, each Des preceeded by it's length
-	for(i = 0; i < iNonStandardMimeHeaders.Count(); i++)
-		{
-		aStream.WriteInt16L(iNonStandardMimeHeaders[i]->FieldName().Length());
-		if(iNonStandardMimeHeaders[i]->FieldName().Length() > 0)
-			{
-			aStream.WriteL(iNonStandardMimeHeaders[i]->FieldName());
-			}
-		aStream.WriteInt16L(iNonStandardMimeHeaders[i]->Data().Length());
-		if(iNonStandardMimeHeaders[i]->Data().Length() > 0)
-			{
-			aStream.WriteL(iNonStandardMimeHeaders[i]->Data());
-			}
-		}
-	}
-
-EXPORT_C void CCafMimeHeader::InternalizeL(RReadStream& aStream)
-	{
-	TInt i=0;
-	TInt fieldCount=0;
-	TInt16 length=0;
-	HBufC8 *field=NULL;
-	HBufC8 *data=NULL;
-	
-
-	// clear any existing headers	
-	iNonStandardMimeHeaders.ResetAndDestroy();
-	for(i = 0; i < EMimeMax; i++)
-		{
-		// delete the existing data for the mime field
-		delete iStandardMimeHeader[i];
-		iStandardMimeHeader[i] = NULL;
-		}
-
-
-	fieldCount= aStream.ReadInt32L();
-	if(fieldCount != EMimeMax)
-		{
-		// something is seriously wrong, should always be EMimeMax standard headers
-		User::Leave(KErrGeneral);
-		}
-	
-	for(i = 0; i < EMimeMax; i++)
-		{
-		// read the length from the stream
-		length = aStream.ReadInt16L();
-		if(length > 0)
-			{
-			// read in non zero fields, others will remain NULL
-			data = HBufC8::NewLC(length);
-			TPtr8 dataPtr = data->Des();
-			aStream.ReadL(dataPtr,length);
-			SetStandardMimeDataL(static_cast <TMimeFields>(i), dataPtr);
-			CleanupStack::PopAndDestroy(data);
-			}
-		}
-
-	fieldCount= aStream.ReadInt32L();
-
-	for(i = 0; i < fieldCount; i++)
-		{
-		// Read mime field name
-		length = aStream.ReadInt16L();
-		if(length < 0)
-			{
-			User::Leave(KErrCorrupt);
-			}
-
-		field = HBufC8::NewLC(length);
-		TPtr8 fieldPtr = field->Des();
-		if(length > 0)
-			{
-			aStream.ReadL(fieldPtr,length);
-			}
-		
-		// Read data
-		length = aStream.ReadInt16L();
-		if(length < 0)
-			{
-			User::Leave(KErrCorrupt);
-			}
-
-		data = HBufC8::NewLC(length);
-		TPtr8 dataPtr = data->Des();
-		if(length > 0)
-			{
-			aStream.ReadL(dataPtr,length);
-			}
-
-		// Add a new mime field and data to our array
-		AddNonStandardMimeL(fieldPtr, dataPtr);
-
-		// free memory allocated
-		CleanupStack::PopAndDestroy(data);
-		CleanupStack::PopAndDestroy(field); 
-		}
-	}
-
-
-#endif // #ifndef REMOVE_CAF1
+/*
+* 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 the License "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: 
+*
+*/
+
+
+#ifndef REMOVE_CAF1
+
+#include <caf/caftypes.h>
+#include <s32strm.h>
+#include <caf/cafmimeheader.h>
+#include "mimefieldanddata.h"
+
+using namespace ContentAccess;
+
+EXPORT_C CCafMimeHeader* CCafMimeHeader::NewL(const TDesC8 &aContentType)
+	{
+	CCafMimeHeader *self = new (ELeave) CCafMimeHeader();
+	CleanupStack::PushL(self);
+	self->ConstructL(aContentType);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CCafMimeHeader::CCafMimeHeader() 
+	{
+	}
+
+void CCafMimeHeader::ConstructL(const TDesC8 &aContentType) 
+	{
+	SetStandardMimeDataL(EContentType, aContentType);
+	}
+
+EXPORT_C CCafMimeHeader::~CCafMimeHeader()
+	{
+	TInt i=0;
+	iNonStandardMimeHeaders.ResetAndDestroy();
+	iNonStandardMimeHeaders.Close();
+	
+	for(i = 0; i < EMimeMax; i++)
+		{
+		delete iStandardMimeHeader[i];
+		}
+	}
+
+EXPORT_C void CCafMimeHeader::SetStandardMimeDataL(const TMimeFields &aIndex, const TDesC8& aData)
+	{
+	HBufC8 *data = aData.AllocLC();
+
+	// make sure mime types are lower case
+	if(aIndex == EContentType)
+		{
+		data->Des().LowerCase();
+		}
+	
+	// replace whatever value was there before
+	delete iStandardMimeHeader[aIndex];
+	iStandardMimeHeader[aIndex] = data;
+		
+	CleanupStack::Pop(data); 
+	}
+
+EXPORT_C TPtrC8 CCafMimeHeader::StandardMimeData(const TMimeFields &aIndex) const
+	{
+	// If the field value has not been set, return a null string
+	if(iStandardMimeHeader[aIndex] == NULL)
+		{
+		return KNullDesC8();
+		}
+	return TPtrC8(iStandardMimeHeader[aIndex]->Des());
+	}
+
+
+EXPORT_C TInt CCafMimeHeader::NonStandardMimeCount() const
+	{
+	return iNonStandardMimeHeaders.Count();
+	}
+
+EXPORT_C void CCafMimeHeader::AddNonStandardMimeL(const TDesC8& aFieldName, const TDesC8& aData)
+	{
+	CMimeFieldAndData *mimeData = CMimeFieldAndData::NewL(aFieldName, aData);
+	CleanupStack::PushL(mimeData);
+	iNonStandardMimeHeaders.Append(mimeData);
+	CleanupStack::Pop(mimeData);
+	}
+
+EXPORT_C TPtrC8 CCafMimeHeader::NonStandardMimeField(TInt aIndex) const
+	{
+	return iNonStandardMimeHeaders[aIndex]->FieldName();
+	}
+
+EXPORT_C TPtrC8 CCafMimeHeader::NonStandardMimeData(TInt aIndex) const
+	{
+	return iNonStandardMimeHeaders[aIndex]->Data();
+	}
+
+EXPORT_C void CCafMimeHeader::ExternalizeL(RWriteStream& aStream) const
+	{
+	TInt i=0;
+	
+	// Write the contents of this class out to a stream
+
+	// Write the number of standard mime headers
+	aStream.WriteInt32L(EMimeMax);
+	
+	// Write out the standard mime data, each one preceeded by it's length
+	for(i = 0; i < EMimeMax; i++)
+		{
+		TInt length=0;
+		
+		// Length is zero if the mime field has not been set, 
+		if(iStandardMimeHeader[i] == NULL)
+			{
+			length = 0;
+			}
+		else 
+			{
+			length = iStandardMimeHeader[i]->Length();
+			}
+
+		// write the field length
+		aStream.WriteInt16L(length);
+		if(length > 0)
+			{
+			// write the field value if length > 0
+			aStream.WriteL(*iStandardMimeHeader[i]);
+			}
+		}
+
+	aStream.WriteInt32L(iNonStandardMimeHeaders.Count());
+
+	// Write out non standard mime headers and data, each Des preceeded by it's length
+	for(i = 0; i < iNonStandardMimeHeaders.Count(); i++)
+		{
+		aStream.WriteInt16L(iNonStandardMimeHeaders[i]->FieldName().Length());
+		if(iNonStandardMimeHeaders[i]->FieldName().Length() > 0)
+			{
+			aStream.WriteL(iNonStandardMimeHeaders[i]->FieldName());
+			}
+		aStream.WriteInt16L(iNonStandardMimeHeaders[i]->Data().Length());
+		if(iNonStandardMimeHeaders[i]->Data().Length() > 0)
+			{
+			aStream.WriteL(iNonStandardMimeHeaders[i]->Data());
+			}
+		}
+	}
+
+EXPORT_C void CCafMimeHeader::InternalizeL(RReadStream& aStream)
+	{
+	TInt i=0;
+	TInt fieldCount=0;
+	TInt16 length=0;
+	HBufC8 *field=NULL;
+	HBufC8 *data=NULL;
+	
+
+	// clear any existing headers	
+	iNonStandardMimeHeaders.ResetAndDestroy();
+	for(i = 0; i < EMimeMax; i++)
+		{
+		// delete the existing data for the mime field
+		delete iStandardMimeHeader[i];
+		iStandardMimeHeader[i] = NULL;
+		}
+
+
+	fieldCount= aStream.ReadInt32L();
+	if(fieldCount != EMimeMax)
+		{
+		// something is seriously wrong, should always be EMimeMax standard headers
+		User::Leave(KErrGeneral);
+		}
+	
+	for(i = 0; i < EMimeMax; i++)
+		{
+		// read the length from the stream
+		length = aStream.ReadInt16L();
+		if(length > 0)
+			{
+			// read in non zero fields, others will remain NULL
+			data = HBufC8::NewLC(length);
+			TPtr8 dataPtr = data->Des();
+			aStream.ReadL(dataPtr,length);
+			SetStandardMimeDataL(static_cast <TMimeFields>(i), dataPtr);
+			CleanupStack::PopAndDestroy(data);
+			}
+		}
+
+	fieldCount= aStream.ReadInt32L();
+
+	for(i = 0; i < fieldCount; i++)
+		{
+		// Read mime field name
+		length = aStream.ReadInt16L();
+		if(length < 0)
+			{
+			User::Leave(KErrCorrupt);
+			}
+
+		field = HBufC8::NewLC(length);
+		TPtr8 fieldPtr = field->Des();
+		if(length > 0)
+			{
+			aStream.ReadL(fieldPtr,length);
+			}
+		
+		// Read data
+		length = aStream.ReadInt16L();
+		if(length < 0)
+			{
+			User::Leave(KErrCorrupt);
+			}
+
+		data = HBufC8::NewLC(length);
+		TPtr8 dataPtr = data->Des();
+		if(length > 0)
+			{
+			aStream.ReadL(dataPtr,length);
+			}
+
+		// Add a new mime field and data to our array
+		AddNonStandardMimeL(fieldPtr, dataPtr);
+
+		// free memory allocated
+		CleanupStack::PopAndDestroy(data);
+		CleanupStack::PopAndDestroy(field); 
+		}
+	}
+
+
+#endif // #ifndef REMOVE_CAF1