internetradio2.0/dataprovidersrc/irlogodownloadengine.cpp
changeset 14 896e9dbc5f19
parent 12 608f67c22514
child 15 065198191975
--- a/internetradio2.0/dataprovidersrc/irlogodownloadengine.cpp	Tue Jul 06 14:07:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1587 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:  Engine to fetch the logos 
-*
-*/
-
-
-#include <aknnotewrappers.h> 
-
-#include "irlogodownloadengine.h"
-#include "irnetworkcontroller.h"
-#include "ircachemgmt.h"
-#include "irhttprequestdata.h"
-#include "irdebug.h"
-#include "irdataproviderconstants.h"
-#include "iractivenetworkobserver.h"
-
-
-
-_LIT(KLogoX, "?x=");
-_LIT(KLogoY, "&y=");
-const TInt KPresetsArrayMaxLength = 50;
-const TInt KLogoSize = 59;
-const TInt KParameterSize = 12;
-const TInt KTen = 10;
-const TInt KCacheAvailable = 4;
-const TInt KLogo = 4;
-const TInt KStatusOK = 200;
-const TInt KStatusMultipleChoices = 300;
-const TInt KStatusNotModified = 304;
-const TInt KStatusGatewayTimeout = 504;
-
-
-// ---------------------------------------------------------------------------
-// CIRLogoDownloadEngine::NewL()
-// Creates instance of CIRLogoDownloadEngine.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CIRLogoDownloadEngine* CIRLogoDownloadEngine::NewL()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::NewL - Entering" );
-    CIRLogoDownloadEngine* self = new(ELeave) CIRLogoDownloadEngine();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    IRLOG_DEBUG( "CIRLogoDownloadEngine::NewL - Exiting" );
-    return self;
-	}
-
-// ---------------------------------------------------------------------------
-// CIRLogoDownloadEngine::CIRLogoDownloadEngine()
-// Standard C++ constructor
-// ---------------------------------------------------------------------------
-//
-CIRLogoDownloadEngine::CIRLogoDownloadEngine()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::CIRLogoDownloadEngine " );
-	//code here, if needed
-	}
-	
-	
-	
-// ---------------------------------------------------------------------------
-// CIRLogoDownloadEngine::~CIRLogoDownloadEngine()
-// Destructs instance of CIRLogoDownloadEngine.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CIRLogoDownloadEngine::~CIRLogoDownloadEngine()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::~CIRLogoDownloadEngine - Entering" );
-    if(iReqBody)
-    	{
-    	delete iReqBody;
-    	iReqBody = NULL;
-    	}
-    if(iRespBody)
-    	{
-    	delete iRespBody;
-    	iRespBody = NULL;
-    	}
-	CancelTransaction();
-	iLogoSession.Close();
-	
-	if(iCopyPreset)
-		{
-		delete iCopyPreset;
-		}
-	if(iCacheTempPreset)
-		{
-		delete iCacheTempPreset;			
-		}
-	if(iTempPreset)
-		{
-		delete iTempPreset;			
-		}
-	if(iPresetArray)
-		{
-		iPresetArray->ResetAndDestroy();
-		}
-	delete iPresetArray;
-	if(iObserverArray)
-		{
-		delete iObserverArray;
-		iObserverArray = NULL;
-		}
-	if(iReqFromArray)
-		{
-		delete iReqFromArray;
-		iReqFromArray = NULL;
-		}
-	if(iCachePresetArray)
-		{
-		iCachePresetArray->ResetAndDestroy();
-		}
-	delete iCachePresetArray;
-	if(iCacheObserverArray)
-		{
-		delete iCacheObserverArray;
-		iCacheObserverArray = NULL;
-		}
-	if(iCacheReqFromArray)
-		{
-		delete iCacheReqFromArray;
-		iCacheReqFromArray = NULL;
-		}
-	if(iIRNetworkControllerHandle)
-    	{
-    	iIRNetworkControllerHandle->DeleteActiveNetworkObserver(*this);
-    	iIRNetworkControllerHandle->Close();
-        }		
-    if (iCache)
-	    {
-	    iCache->RemoveObserver(this);
-	    iCache->Close();
-	    }
-	if( iResponseHeaders )
-		{
-        delete iResponseHeaders;
-		}
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::~CIRLogoDownloadEngine - Exiting" );
-	}
-
-
-
-// ---------------------------------------------------------------------------
-// CIRLogoDownloadEngine::ConstructL()
-// 2nd phase construction
-// ---------------------------------------------------------------------------
-//
-void CIRLogoDownloadEngine::ConstructL()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::ConstructL - Entering" );
-	iPresetArray = new (ELeave) CArrayPtrFlat<CIRIsdsPreset>(KPresetsArrayMaxLength);
-	iObserverArray = new (ELeave) CArrayPtrFlat<MLogoDownloadObserver>(KPresetsArrayMaxLength);
-	iReqFromArray = new (ELeave) CArrayFixFlat<TInt>(KPresetsArrayMaxLength);
-	iCachePresetArray = new (ELeave) CArrayPtrFlat<CIRIsdsPreset>(KPresetsArrayMaxLength);
-	iCacheObserverArray = new (ELeave) CArrayPtrFlat<MLogoDownloadObserver>(KPresetsArrayMaxLength);
-	iCacheReqFromArray = new (ELeave) CArrayFixFlat<TInt>(KPresetsArrayMaxLength);
-	
-	iPresetArrayPos = 0;
-	iReqFromArrayPos = 0;
-	iObserverArrayPos = 0;
-	iCachePresetArrayPos = 0;
-	iCacheReqFromArrayPos = 0;
-	iCacheObserverArrayPos = 0;
-	iImageIndex = 0; //using temporarily till the isds provides urls
-
-	iPresetModifiedStatus = EFalse;
-	iFirstTime = ETrue;
-	iIRNetworkControllerHandle = CIRNetworkController::OpenL();
-	iIRNetworkControllerHandle->RegisterActiveNetworkObserverL(*this);
-	iCache = CIRCacheMgmt::OpenL(*this);
-	iCache->AddObserverL(this);
-	iResponseHeaders = new ( ELeave ) CIRHttpResponseData;
-
-	//change to use the new session for logo downloading
-	TRAPD( LeaveValue, iLogoSession.OpenL() );
-    if ( LeaveValue != KErrNone )
-        {
-        // Most common error; no access point configured, and session creation
-        // leaves with KErrNotFound.
-        // Load a string from the resource file and add the error code to string
-        User::Leave( LeaveValue );
-        }
-    IRLOG_DEBUG( "CIRLogoDownloadEngine::ConstructL - Exiting" );
-	}
-
-
-// ---------------------------------------------------------------------------
-// CIRLogoDownloadEngine::IsRunning()
-// To know the status of downloading logo
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool CIRLogoDownloadEngine::IsRunning() const
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::IsRunning" );
-    return iRunning;
-	}
-
-
-// ---------------------------------------------------------------------------
-// CIRLogoDownloadEngine::SetHeaderL(RHTTPHeaders aHeaders, TInt aHdrField,
-//                              const TDesC8& aHdrValue)
-// to set the headers of the http transaction
-// ---------------------------------------------------------------------------
-//
-void CIRLogoDownloadEngine::SetHeaderL(RHTTPHeaders aHeaders, TInt aHdrField,
-					 const TDesC8& aHdrValue) const
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::SetHeaderL - Entering" );
-	RStringF valStr = iLogoSession.StringPool().OpenFStringL(aHdrValue);
-	CleanupClosePushL(valStr);
-	THTTPHdrVal val(valStr);
-	aHeaders.SetFieldL(iLogoSession.StringPool().StringF(aHdrField, RHTTPSession::GetTable()), val);
-	CleanupStack::PopAndDestroy(&valStr); // valStr
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::SetHeaderL - Exiting" );
-	}
-
-// ----------------------------------------------------------------------------------
-// CIRLogoDownloadEngine::SendRequestL(CIRIsdsPreset* aPreset,TInt aXValue,TInt aYValue)
-// API is called from the SearchResultsView for to download logo while doing Add to Favorites
-// ----------------------------------------------------------------------------------
-//
-EXPORT_C void CIRLogoDownloadEngine::SendRequestL(CIRIsdsPreset* aPreset,TInt aXValue,TInt aYValue)
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::SendRequestL - Entering" );
-	if(!iCheckingCache)
-		{
-		++iImageIndex;
-		iCheckingCache = ETrue;
-		iCacheReqFrom = 0;
-		if(iCacheTempPreset)
-			{
-			delete iCacheTempPreset;				
-			}
-		iCacheTempPreset = NULL;
-		iCacheTempPreset = CIRIsdsPreset::NewL();
-		*iCacheTempPreset = *aPreset;
-
-		if(iCacheTempPreset->GetImgUrl().Length() != 0)
-			{
-			if((aXValue > 0)&&(aYValue > 0))
-				{
-				//Append the parameters(width,height) of the logo size to imgUrl
-				TInt size = iCacheTempPreset->GetImgUrl().Length() + KParameterSize;
-				RBuf urlWithSize;
-				urlWithSize.Create(size);
-				urlWithSize.Copy(iCacheTempPreset->GetImgUrl());
-				urlWithSize.Append(KLogoX);
-				urlWithSize.AppendNum(aXValue);
-				urlWithSize.Append(KLogoY);
-				urlWithSize.AppendNum(aYValue);
-				
-				//set the imgUrl with parameters to the preset
-				iCacheTempPreset->SetImgUrl(urlWithSize);
-				urlWithSize.Close();
-				}
-			//This method checks whether the logo is available
- 			// for the request made
-			iForceGet = EFalse; 			
-			CheckCacheForLogoL(0);
-			}
-		else
-			{
-			//imgUrl doesnt exist in the Preset
-		    iCheckingCache = EFalse;
-			return;			
-			}
-
-		iCheckingCache = EFalse;
-		if(!iLogoCached)	
-			{
-			FetchLogoDataL(iCacheTempPreset);				
-			}
-		}
-	else
-		{
-		CIRIsdsPreset* tempPreset;
-		tempPreset = CIRIsdsPreset::NewL();
-		*tempPreset = *aPreset;
-		if(tempPreset->GetImgUrl().Length() != 0)
-			{
-			if((aXValue > 0)&&(aYValue > 0))
-				{
-				//Append the parameters(width,height) of the logo size to imgUrl
-				TInt size = tempPreset->GetImgUrl().Length() + KParameterSize;
-				RBuf urlWithSize;
-				urlWithSize.Create(size);
-				urlWithSize.Copy(tempPreset->GetImgUrl());
-				urlWithSize.Append(KLogoX);
-				urlWithSize.AppendNum(aXValue);
-				urlWithSize.Append(KLogoY);
-				urlWithSize.AppendNum(aYValue);
-				
-				//set the imgUrl with parameters to the preset
-				tempPreset->SetImgUrl(urlWithSize);
-				urlWithSize.Close();				
-				}
-			}
-		iCachePresetArray->AppendL(tempPreset);
- 		iCacheReqFromArray->AppendL(0);	
-		}	
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::SendRequestL - Exiting" );
-	}
-
-
-EXPORT_C TBool CIRLogoDownloadEngine::isLogoCachedL(CIRIsdsPreset* aPreset, TInt aXValue, TInt aYValue)
-{
-    TInt cached = 0;
-    
-    if(iCacheTempPreset)
-    {
-        delete iCacheTempPreset;
-        iCacheTempPreset = NULL;
-    }
-    
-    iCacheTempPreset = CIRIsdsPreset::NewL();
-    *iCacheTempPreset = *aPreset;
-    iCacheReqMade = EFalse;
-    
-    if (iCacheTempPreset->GetImgUrl().Length() != 0)
-    {
-        if ((aXValue > 0) && (aYValue > 0))
-        {
-            //Append the parameters(width,height) of the logo size to imgUrl
-            TInt size = iCacheTempPreset->GetImgUrl().Length() + KParameterSize;
-            RBuf urlWithSize;
-            urlWithSize.Create(size);
-            urlWithSize.Copy(iCacheTempPreset->GetImgUrl());
-            urlWithSize.Append(KLogoX);
-            urlWithSize.AppendNum(aXValue);
-            urlWithSize.Append(KLogoY);
-            urlWithSize.AppendNum(aYValue);
-
-            //set the imgUrl with parameters to the preset
-            iCacheTempPreset->SetImgUrl(urlWithSize);
-            urlWithSize.Close();
-        }
-    }
-    
-    iCache->CheckCacheL(KLogo,iCacheTempPreset->GetImgUrl(),EFalse,cached);
-    
-    return (CIRCacheMgmt::ECacheUseable == cached)?ETrue:EFalse;     
-}
-// ----------------------------------------------------------------------------------------------
-// CIRLogoDownloadEngine::SendRequestL(CIRIsdsPreset* aPreset,MLogoDownloadObserver* aLogoHandle,
-//													TInt aNPVReq,TInt aXValue,TInt aYValue)
-// API is called from several views for to download logo 
-// ----------------------------------------------------------------------------------------------
-//
-EXPORT_C void CIRLogoDownloadEngine::SendRequestL(CIRIsdsPreset* aPreset,
-			MLogoDownloadObserver* aLogoHandle,TInt aNPVReq,TInt aXValue,TInt aYValue)
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::SendRequestL - Entering" );
-	if(aPreset->GetChannelType()==0)
-		{
-		aLogoHandle->PresetLogoDownloadedL(aPreset);
-		}
-	else if(!iCheckingCache)
-		{
-		++iImageIndex;
-		iCheckingCache = ETrue;
-		if(aNPVReq==2)
-			{
-			iCacheReqFrom=2;			
-			}
-		else
-			{
-			iCacheReqFrom=1;			
-			}
-
-		if(iCacheTempPreset)
-			{
-			delete iCacheTempPreset;
-			iCacheTempPreset = NULL;				
-			}
-		iCacheTempPreset = CIRIsdsPreset::NewL();
-		*iCacheTempPreset = *aPreset;
-		iCacheTempLogoHandle = aLogoHandle;
-		
-		if(iCacheTempPreset->GetImgUrl().Length() != 0)
-			{
-			if((aXValue > 0)&&(aYValue > 0))
-				{
-				//Append the parameters(width,height) of the logo size to imgUrl
-				TInt size = iCacheTempPreset->GetImgUrl().Length() + KParameterSize;
-				RBuf urlWithSize;
-				urlWithSize.Create(size);
-				urlWithSize.Copy(iCacheTempPreset->GetImgUrl());
-				urlWithSize.Append(KLogoX);
-				urlWithSize.AppendNum(aXValue);
-				urlWithSize.Append(KLogoY);
-				urlWithSize.AppendNum(aYValue);
-				
-				//set the imgUrl with parameters to the preset
-				iCacheTempPreset->SetImgUrl(urlWithSize);
-				urlWithSize.Close();
-				}
-			if(iCacheReqFrom==1 || iCacheReqFrom==2)
-				{
-				//This method checks whether the logo is available
-		 		// for the request made
-				iForceGet = EFalse;		 		
-				CheckCacheForLogoL(0);	
-				}
-/*			else if(iCacheReqFrom==2)
-				{
-				//the request has come from NowPlayingView(NPV)
-				//dont check for logo availability in cache
-				//download the logo freshly
-				iLogoCached=EFalse;								
-				}
-*/			}
-		else
-			{
-			//imgUrl doesnt exist in the Preset
-		    iCheckingCache = EFalse;
-			return;			
-			}
-		
-		iCheckingCache = EFalse;
-		if(!iLogoCached)	
-			{
-			FetchLogoDataL(iCacheTempPreset,aLogoHandle,iCacheReqFrom);				
-			}
-		}
-	else
-		{
-		CIRIsdsPreset* tempPreset;
-		tempPreset = CIRIsdsPreset::NewL();
-		*tempPreset = *aPreset;
-		if(tempPreset->GetImgUrl().Length() != 0)
-			{
-			if((aXValue > 0)&&(aYValue > 0))
-				{
-				//Append the parameters(width,height) of the logo size to imgUrl
-				TInt size = tempPreset->GetImgUrl().Length() + KParameterSize;
-				RBuf urlWithSize;
-				urlWithSize.Create(size);
-				urlWithSize.Copy(tempPreset->GetImgUrl());
-				urlWithSize.Append(KLogoX);
-				urlWithSize.AppendNum(aXValue);
-				urlWithSize.Append(KLogoY);
-				urlWithSize.AppendNum(aYValue);
-				
-				//set the imgUrl with parameters to the preset
-				tempPreset->SetImgUrl(urlWithSize);
-				urlWithSize.Close();				
-				}
-			}
-		iCachePresetArray->AppendL(tempPreset);
- 		iCacheObserverArray->AppendL(aLogoHandle);
- 		if(aNPVReq == 2)
-	 		{
-	 		iCacheReqFromArray->AppendL(2);		
-	 		}
- 		else
-	 		{
-	 		iCacheReqFromArray->AppendL(1);		
-	 		}
-		}
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::SendRequestL - Exiting" );
-	}
-
-
-
-// ----------------------------------------------------------------------------------
-// CIRLogoDownloadEngine::GetCacheLogoL(TDesC& aUrl,TInt& aStatus)
-// takes the url as a parameter and returns the logo data which is in cache
-// this API is called form the search results for to display logo on the view
-// ----------------------------------------------------------------------------------
-//
-EXPORT_C void CIRLogoDownloadEngine::GetCacheLogoL(const TDesC& aUrl,TInt& aStatus)
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::GetCacheLogoL - Entering" );
-	iSendingLogo=2;
-	iResult = 0;
-	iForceGet = EFalse;
-	//2 means, this API is called for the search results view
-	iCacheReqMade = ETrue;
-	iCache->CheckCacheL(KLogo,aUrl,iForceGet,iResult);		
-	aStatus = iResult;
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::GetCacheLogoL - Exiting" );
-
-	}
-	
-	
-// ----------------------------------------------------------------------------------
-// CIRLogoDownloadEngine::SendCacheLogo()
-// sends the logo which is cached
-// ----------------------------------------------------------------------------------
-//
-EXPORT_C TDesC8& CIRLogoDownloadEngine::SendCacheLogo()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::SendCacheLogo" );
-	return iCache->iLogoData;
-	}
-
-
-
-
-// ------------------------------------------------------------------------
-// CIRLogoDownloadEngine::FetchLogoDataL(CIRIsdsPreset* aPreset)
-// API is used to download logo from isds/internet
-// called in the API SendRequestL(CIRIsdsPreset* aPreset)
-// ------------------------------------------------------------------------
-//
-void CIRLogoDownloadEngine::FetchLogoDataL(CIRIsdsPreset* aPreset)
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::FetchLogoDataL - Entering" );
- 	if(!iRunning)
-	 	{
-
-	  	iTempReqFrom = 0;//which means the request came from SearchView while doing Add to Favorite
-	 	if( iReqBody )
-		 	{
-		 	delete iReqBody;
-		    iReqBody = NULL;
-		 	}
-	    if( iRespBody )
-		    {
-		    delete iRespBody;
-		    iRespBody = NULL;
-		    }
-		if(iTempPreset)
-			{
-			delete iTempPreset;
-			iTempPreset = NULL;				
-			}
-		iTempPreset = CIRIsdsPreset::NewL();
-	    *iTempPreset = *aPreset;
-   	    if(iTempPreset->GetImgUrl().Length() != 0)
-		    {
-	    	IssueLogoDownloadRequestL();
-		   	}
-	    else /*ImgUrl doesnt exist in the iTempPreset*/
-		    {
-	    	//simply ignore it
-		    }
-	    }
- 	else
-	 	{
-	 	CIRIsdsPreset* tempPreset;
-	 	tempPreset = CIRIsdsPreset::NewL();
-	 	CleanupStack::PushL(tempPreset);
-	 	*tempPreset = *aPreset;
-	 	iPresetArray->AppendL(tempPreset);
-	 	CleanupStack::Pop(tempPreset);
- 		iReqFromArray->AppendL(0);
-	 	}
- 	IRLOG_DEBUG( "CIRLogoDownloadEngine::FetchLogoDataL - Exiting" );
-	}
-
-
-// -------------------------------------------------------------------------------------------------
-// CIRLogoDownloadEngine::FetchLogoDataL(CIRIsdsPreset* aPreset,MLogoDownloadObserver* aLogoHandle)
-// API is used to download logo from isds/internet
-// called in the API SendRequestL(CIRIsdsPreset* aPreset,MLogoDownloadObserver* aLogoHandle)
-// -------------------------------------------------------------------------------------------------
-//
-void CIRLogoDownloadEngine::FetchLogoDataL(CIRIsdsPreset* aPreset,
-				MLogoDownloadObserver* aLogoHandle,TInt aNPVReq)
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::FetchLogoDataL - Entering" );
-	if(!iRunning)
-	 	{
-	 	if(aNPVReq==2)
-		 	{
-		 	iTempReqFrom = 2;//which means the request came from NowPlayingView	 		
-		 	}
-	 	else
-		 	{
-		 	iTempReqFrom = 1;//which means the request came from other than NowPlayingView	 		
-		 	}
-
-		iTempLogoHandle = aLogoHandle;
-		if( iReqBody )
-		 	{
-		 	delete iReqBody;
-		    iReqBody = NULL;
-		 	}
-	    if( iRespBody )
-		    {
-		    delete iRespBody;
-		    iRespBody = NULL;
-		    }
-		if(iTempPreset)
-			{
-			delete iTempPreset;
-			iTempPreset = NULL;				
-			}
-		iTempPreset = CIRIsdsPreset::NewL();
-	    *iTempPreset = *aPreset;
-	    if(iTempPreset->GetImgUrl().Length() != 0)
-		    {
-	    	IssueLogoDownloadRequestL();
-			}
-	    else /*ImgUrl doesnt exist in the iTempPreset*/
-		    {
-	    	//simply ignore it
-		    }
-	    }
- 	else
-	 	{
-	 	CIRIsdsPreset* tempPreset;
-	 	tempPreset = CIRIsdsPreset::NewL();
-	 	CleanupStack::PushL(tempPreset);
-	 	*tempPreset = *aPreset;
-	 	iPresetArray->AppendL(tempPreset);
-	 	CleanupStack::Pop(tempPreset);
-		iObserverArray->AppendL(aLogoHandle);
-		if(aNPVReq==2)
-			{
-	 		iReqFromArray->AppendL(2);
-			}
-		else
-			{
-	 		iReqFromArray->AppendL(1);
-			}
-	 	}
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::FetchLogoDataL - Exiting" );
-	}
-
-
-// ----------------------------------------------------------------------------------
-// CIRLogoDownloadEngine::CheckCacheForLogoL(TInt aValue)
-// Checks the cache whether the logo is available or not
-// ----------------------------------------------------------------------------------
-//
-void CIRLogoDownloadEngine::CheckCacheForLogoL(TInt aValue)
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::CheckCacheForLogoL - Entering" );
-	iSendingLogo=aValue;
-	iResult = 0;
-	if(iSendingLogo==0)//0 means, this API is called for the usecase of checking cache
-		{
-		iCacheReqMade = ETrue;
-		iCache->CheckCacheL(KLogo,iCacheTempPreset->GetImgUrl(),iForceGet,iResult);		
-		}
-	else if(iSendingLogo==1)//1 means, this API is called for the usecase of downloading logo
-		{
-		iCacheReqMade = ETrue;
-		iCache->CheckCacheL(KLogo,iTempPreset->GetImgUrl(),iForceGet,iResult);		
-		}
-	if((iResult == 0))//not available in the cache
-		{
-		iLogoCached = EFalse;
-		iIsConditionalGET = EFalse;
-		}
-	else if(iResult == -1)//cache is stale/not useable
-		{
-		iLogoCached = EFalse;
-		iIsConditionalGET = ETrue;			
-		}
-	else if(iResult == 1)//cache is useable
-		{
-		iLogoCached = ETrue;	
-		}
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::CheckCacheForLogoL - Exiting" );
-	}
-
-
-// ----------------------------------------------------------------------------------
-// CIRLogoDownloadEngine::IssueLogoDownloadRequest()
-// submits the transaction for to download the logo
-// ----------------------------------------------------------------------------------
-//
-void CIRLogoDownloadEngine::IssueLogoDownloadRequestL()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::IssueLogoDownloadRequestL - Entering" );
-	///////////////////////////////////////////////////////////////////////////////////
-	//This piece of code is for selecting the access point which is already
-	//set at the begining of the application.  To download the logo the same
-	//accesse point will be used.
-	
-	
-	
-		
-	
-	if(!iIRNetworkControllerHandle->GetNetworkStatus())
-		{
-		iIRNetworkControllerHandle->ChooseAccessPointL();
-		iLogoRequestPending = ETrue;
-		}
-	
-	else
-		{
-		if( iFirstTime )
-			{
-			iLogoSession.Close();
-			TRAPD( LeaveValue, iLogoSession.OpenL() );
-	    	if ( LeaveValue != KErrNone )
-	        {
-	        // Most common error; no access point configured, and session creation
-	        // leaves with KErrNotFound.
-	        // Load a string from the resource file and add the error code to string
-	        User::Leave( LeaveValue );
-	        }
-			// Set the HTTP connection properties
-		    RStringPool strP = iLogoSession.StringPool();
-		    RHTTPConnectionInfo connInfo = iLogoSession.ConnectionInfo();
-		    // RSocketServ Handle
-		    connInfo.SetPropertyL( strP.StringF( HTTP::EHttpSocketServ,
-				RHTTPSession::GetTable() ),
-				THTTPHdrVal( iIRNetworkControllerHandle->GetIRSocketServer().Handle() ) );
-
-		    // RConnection Handle
-		    TInt connPtr = REINTERPRET_CAST( TInt,
-				&( iIRNetworkControllerHandle->GetIRConnection() ) );
-		    connInfo.SetPropertyL( strP.StringF( HTTP::EHttpSocketConnection,
-				RHTTPSession::GetTable() ), THTTPHdrVal( connPtr ) );
-
-		    // HTTP Version ( Specify that i am using HTTP/1.1
-			connInfo.SetPropertyL( strP.StringF( HTTP::EVersion,
-				RHTTPSession::GetTable() ),
-				THTTPHdrVal( strP.StringF( HTTP::EHttp11, RHTTPSession::GetTable() ) ) );
-
-			// Set RHttpSession into NetworkController for logo byte counter
-			iIRNetworkControllerHandle->RegisterLogoDataTransferTrackerL( iLogoSession );
-
-			iFirstTime = EFalse;
-			}
-
-
-		HBufC8* buffertmp = HBufC8::NewLC( iTempPreset->GetImgUrl().Length() + 1 );
-		TPtr8 buffertmpPtr( buffertmp->Des() );
-		buffertmpPtr.Copy( iTempPreset->GetImgUrl() );
-
-		TUriParser8 uri;
-		uri.Parse(buffertmpPtr);
-		RStringF method = iLogoSession.StringPool().StringF(HTTP::EGET,RHTTPSession::GetTable());
-		iTransaction = iLogoSession.OpenTransactionL(uri, *this, method);
-		RHTTPHeaders hdr = iTransaction.Request().GetHeaderCollection();
-	    // Set the User-Agent header to UAProf string
-	    SetHeaderL( hdr, HTTP::EUserAgent,
-			   iIRNetworkControllerHandle->GetUAProfString()->Des() );
-
-		_LIT8(KAccept,"image/jpeg,image/png,image/gif");
-		SetHeaderL(hdr, HTTP::EAccept, KAccept);
-		SetHeaderL( hdr, HTTP::EAcceptLanguage, KAcceptLanguage );
-		
-		if(iIsConditionalGET)
-			{
-			RStringF valStr = iLogoSession.StringPool().OpenFStringL(iETag);
-			CleanupClosePushL(valStr);
-			THTTPHdrVal val(valStr);
-			hdr.SetFieldL(iLogoSession.StringPool().StringF(
-						HTTP::EIfNoneMatch, RHTTPSession::GetTable()), val);
-			CleanupStack::PopAndDestroy(&valStr); // valStr
-			}
-		CleanupStack::PopAndDestroy(buffertmp); // buffertmp
-		
-		//setting the member variable to zero
-		iRespBodySize = 0;
-		iTransaction.SubmitL();
-
-		iRunning = ETrue;
-		iLogoRequestPending = ETrue;
-		iState = ESendingEvent;
-		}
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::IssueLogoDownloadRequestL - Exiting" );
-	}
-
-
-// ----------------------------------------------------------------------------------
-// CIRLogoDownloadEngine::CancelTransaction()
-// cancels the current transaction
-// ----------------------------------------------------------------------------------
-//
-EXPORT_C void CIRLogoDownloadEngine::CancelTransaction()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::CancelTransaction - Entering" );
-	if(!iRunning)
-	    {
-		return;
-	    }
-	iTransaction.Close();
-	iRunning = EFalse;
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::CancelTransaction - Exiting" );
-	}
-
-
-// ----------------------------------------------------------------------------------
-// CIRLogoDownloadEngine::SendPresetWithLogoL()
-// sends the preset with logo to the requestors
-// ----------------------------------------------------------------------------------
-//
-EXPORT_C void CIRLogoDownloadEngine::SendPresetWithLogoL()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::SendPresetWithLogoL - Entering" );
-	//Logo has downloaded, so update the status of the variable iLogoRequestPending
-	iLogoRequestPending = EFalse;
-	//Remove the imgUrl with parameters from the Preset
-	//now set imgUrl without parameters in to the Preset
-	TInt sizeImgUrlWithPar = iTempPreset->GetImgUrl().Length();
-	TBool hasParameters = EFalse;
-	RBuf urlWithPar;
-	urlWithPar.Create(sizeImgUrlWithPar);
-	urlWithPar.Copy(iTempPreset->GetImgUrl());
-	RBuf tempBuf;
-	tempBuf.Create(sizeImgUrlWithPar);
-
-	TLex urlLex(urlWithPar);
-	for(;!urlLex.Eos();)
-		{
-		tempBuf.Zero();
-		while(urlLex.Peek() != '?' && !urlLex.Eos())		
-			{
-			tempBuf.Append(urlLex.Get());
-			}
-		if(urlLex.Peek() == '?')
-			{
-			hasParameters = ETrue;			
-			}
-		urlLex.Inc();	
-		}
-	
-	RBuf imgUrl;		
-	if(hasParameters)		
-		{
-		//let say urlWithPar has the value http://www.logos.com/images/test.pngx=100&y=100
-		//now the tempBuf contains the value  x=100&y=100
-		TInt sizeUrlParameters = tempBuf.Length();
-		sizeUrlParameters++; // now this integer contains the size of x=100&y=100 
-		TInt sizeImgUrl = sizeImgUrlWithPar - sizeUrlParameters;
-		
-		//Create a buffer to store the imgUrl without parameters
-		imgUrl.Create(sizeImgUrl);
-		imgUrl.Copy(urlWithPar.Left(sizeImgUrl));
-		iTempPreset->SetImgUrl(imgUrl);
-		}
-	else
-		{
-		//nothing to be done
-		//the imgUrl present in the preset is correct, no need to change anything
-		}
-
-	//set the downloaded logo to the preset with the API SetLogoData()
-	iTempPreset->SetLogoData(*iRespBody);
-	if(iTempReqFrom == 0)//which means the request came from SearchView while doing Add to Favorite
-		{
-		iPresetModifiedStatus = ETrue;
-		}
-	else if(iTempReqFrom == 1)//which menas the request came from a view other than NowPlayingView
-		{
-		iTempLogoHandle->PresetLogoDownloadedL(iTempPreset);
-		}
-	else if(iTempReqFrom == 2)//which menas the request came from NowPlayingView
-		{
-		//(1)logo has downloaded freshly
-		//(2)send the logo to the NPV through PresetLogoDownloadedL
-		//(3)check whether the preset exists in favdb; if so replace that with new logo
-		iTempLogoHandle->PresetLogoDownloadedL(iTempPreset);
-		}
-		
-    
-	iTempPreset->SetImgUrl(urlWithPar);	
-	//Cache the newly downloaded logo
-	iCache->CacheLogoL(*iRespBody,iTempPreset->GetImgUrl(),*iResponseHeaders);
-
-	//close all the buffers
-	imgUrl.Close();
-	tempBuf.Close();
-	urlWithPar.Close();
-	
-	iRunning = EFalse;
-	iState = EIdle;
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::SendPresetWithLogoL - Exiting" );
-	}
-
-
-
-// ---------------------------------------------------------------------------------------
-// CIRLogoDownloadEngine::MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent& aEvent)
-// callback API from MHTTPTransactionCallback
-// ---------------------------------------------------------------------------------------
-//
-void CIRLogoDownloadEngine::MHFRunL(RHTTPTransaction aTransaction, const THTTPEvent& aEvent)
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::MHFRunL - Entering" );
-	switch (aEvent.iStatus)
-		{
-		case THTTPEvent::EGotResponseHeaders:
-			{
-		    RHTTPResponse resp = aTransaction.Response();
-		    TInt status = resp.StatusCode();
-		    iRespCode = status;
-            ExtractResponseHeadersL(aTransaction);
-	        if(status >= KStatusOK &&  status < KStatusMultipleChoices)
-		    {
-	            THTTPHdrVal headerValue(0);
-	            RHTTPHeaders headers = resp.GetHeaderCollection();
-	            TInt error = headers.GetField(iLogoSession.StringPool().StringF(HTTP::EContentLength,
-	            				 RHTTPSession::GetTable()), 0, headerValue);
-	            iRespBodySize = 0;
-	            if (KErrNone == error)
-	            {
-	                iRespBodySize = headerValue.Int();
-	            }
-                iRespBody = HBufC8::NewL(iRespBodySize+1);
-		    }
-			else if( status == KStatusNotModified )//304 means, the content has not modified
-			    {
-			    if(iIsConditionalGET)
-				    {
-				    iIsConditionalGET = EFalse;
-				    iRunning = EFalse;
-				    //update the trust period 
-					//no problem if it leaves
-					TRAP_IGNORE(iCache->UpdateTrustPeriodL(KLogo,iTempPreset->GetImgUrl(),
-												*iResponseHeaders))
-					//do a forced get because the data is notmodifed in isds and 
-					//trustable
-					iForceGet = ETrue;
-					CheckCacheForLogoL(1);
-				    }
-		        }
-	        else if( status == KStatusGatewayTimeout )
-		        {
-				//implementation, if needed
-				CancelTransaction();
-				if(iTempReqFrom == 0)
-					{
-					//do nothing	
-					}
-				else
-					{
-					iTempLogoHandle->PresetLogoDownloadError(iTempPreset);					
-					}
-				ManagePresetArrayIndexL();
-				}
-
-			}
-			break;
-
-		case THTTPEvent::EGotResponseBodyData:
-			{
-			MHTTPDataSupplier* body = aTransaction.Response().Body();
-			TPtrC8 dataChunk;
-			body->GetNextDataPart(dataChunk);
-			if(iRespBodySize > 0)
-				{
-	            iRespBody->Des().Append((const TDesC8&)dataChunk);
-				}
-			else if(iRespBody)
-				{
-				//which means the body of the response has come
-				//but in the response headers Content-Length is missing
-				//for this usecase realloc the iRespBody with the data received					
-				HBufC8* buffertmp = HBufC8::NewLC( dataChunk.Length() + 1 );
-        		TPtr8 buffertmpPtr( buffertmp->Des() );
-        		buffertmpPtr.Copy( (const TDesC8&)dataChunk );
-        		
-   				TInt tempSize;
-				tempSize = iRespBody->Length() + dataChunk.Length();
-				
-				iRespBody = iRespBody->ReAllocL( tempSize );
-				TPtr8 ibufferPtr( iRespBody->Des() );
-				ibufferPtr.Append(buffertmpPtr);
-
-
-        		
-				CleanupStack::PopAndDestroy(buffertmp); // buffertmp        		
-				}
-			body->ReleaseData();
-			}
-			break;
-
-		case THTTPEvent::EResponseComplete:
-			{
-			//No implementation
-			}
-			break;
-
-		case THTTPEvent::ESucceeded:
-	        {
-			iTransaction.Close();
-			if(iIsConditionalGET)
-				{
-				iIsConditionalGET = EFalse;					
-				}
-		 
-			iRunning = EFalse;
-			//set the downloaded logo in the preset and send it back to the requestor
-			SendPresetWithLogoL();
-			ManagePresetArrayIndexL();
-	        }
-			break;
-
-		case THTTPEvent::EFailed:
-			{
-			aTransaction.Close();
-			iRunning = EFalse;
-			iState = EIdle;
-			if( iRespCode == KStatusNotModified )//304 means, the content has not modified
-				{
-				//do nothing;					
-				}
-			else
-				{
-				if(iTempReqFrom == 0)
-					{
-					//do nothing
-					}
-				else
-					{
-					iTempLogoHandle->PresetLogoDownloadError(iTempPreset);					
-					}
-				}
-			ManagePresetArrayIndexL();
-			}
-	        break;
-
-		default:
-
-			if (aEvent.iStatus < 0)
-				{
-				aTransaction.Close();
-				iRunning = EFalse;
-				iState = EIdle;
-				if(iTempReqFrom == 0)
-					{
-					//do nothing
-					}
-				else
-					{
-					iTempLogoHandle->PresetLogoDownloadError(iTempPreset);					
-					}
-				ManagePresetArrayIndexL();
-		        }
-			break;
-		}
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::MHFRunL - Exiting" );
-	}
-
-
-// ------------------------------------------------------------------------------------------------------------------
-// CIRLogoDownloadEngine::MHFRunError(TInt /*aError*/, RHTTPTransaction aTransaction, const THTTPEvent& /*aEvent*/)
-// callback API from MHTTPTransactionCallback
-// ------------------------------------------------------------------------------------------------------------------
-//
-TInt CIRLogoDownloadEngine::MHFRunError(TInt /*aError*/, RHTTPTransaction aTransaction, const THTTPEvent& /*aEvent*/)
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::MHFRunError - Entering" );
-	aTransaction.Close();
-	iRunning = EFalse;
-	iState = EIdle;
-	if(iIsConditionalGET)
-		{
-		iIsConditionalGET = EFalse;	
-		}
-	if(iTempReqFrom == 0)
-		{
-		//do nothing	
-		}
-	else
-		{
-		iTempLogoHandle->PresetLogoDownloadError(iTempPreset);		
-		}
-	TRAP_IGNORE(ManagePresetArrayIndexL())
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::MHFRunError - Exiting" );
-	return KErrNone;
-	}
-
-// --------------------------------------------------------------------
-// CIRLogoDownloadEngine::GetNextDataPart(TPtrC8& aDataPart)
-// callback API from MHTTPDataSupplier
-// --------------------------------------------------------------------
-TBool CIRLogoDownloadEngine::GetNextDataPart(TPtrC8& aDataPart)
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::GetNextDataPart - Entering" );
-    aDataPart.Length();
-    iReqBody->Length();
-    aDataPart.Set(*iReqBody);
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::GetNextDataPart - Exiting" );
-	return ETrue;
-	}
-
-// --------------------------------------------------------------------
-// CIRLogoDownloadEngine::ReleaseData()
-// callback API from MHTTPDataSupplier
-// --------------------------------------------------------------------
-void CIRLogoDownloadEngine::ReleaseData()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::ReleaseData" );
-   //No implementaion
-	}
-
-
-// --------------------------------------------------------------------
-// CIRLogoDownloadEngine::Reset()
-// callback API from MHTTPDataSupplier
-// --------------------------------------------------------------------
-TInt CIRLogoDownloadEngine::Reset()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::Reset" );
-	return KErrNone;
-	}
-
-
-// --------------------------------------------------------------------
-// CIRLogoDownloadEngine::OverallDataSize()
-// callback API from MHTTPDataSupplier
-// --------------------------------------------------------------------
-TInt CIRLogoDownloadEngine::OverallDataSize()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::OverallDataSize" );
-	return iReqBody->Length();
-	}
-
-// ---------------------------------------------------------------------------
-// CIRLogoDownloadEngine::ExtractResponseHeadersL( RHTTPTransaction aTransaction )
-// Used to Extract the response headers.
-// ---------------------------------------------------------------------------
-//
-
-void CIRLogoDownloadEngine::ExtractResponseHeadersL(const RHTTPTransaction&
-	aTransaction )
-    {
-    IRLOG_DEBUG( "CIRHttpDataProvider::ExtractResponseHeadersL - Entering" );
-    RHTTPResponse response = aTransaction.Response();
-    RHTTPHeaders respHeader = response.GetHeaderCollection();
-    THTTPHdrFieldIter iterator = respHeader.Fields();
-    RStringPool httpStringPool = aTransaction.Session().StringPool();
-    iterator.First();
-    HBufC8 *headerField = HBufC8::NewLC( KMaxHeaderNameLength +
-		KMaxHeaderValueLength );
-    HBufC8 *fieldValBuf = HBufC8::NewLC( KMaxHeaderValueLength );
-    while ( iterator.AtEnd() == EFalse )
-        {
-        RStringTokenF fieldName = iterator();
-        RStringF fieldNameStr = httpStringPool.StringF( fieldName );
-        THTTPHdrVal fieldVal;
-        if ( respHeader.GetField( fieldNameStr, 0, fieldVal ) == KErrNone )
-            {
-            const TDesC8 &fieldNameDesC = fieldNameStr.DesC();
-            headerField->Des().Copy( fieldNameDesC.Left(
-				KMaxHeaderNameLength ) );
-            fieldValBuf->Des().Zero();
-            switch ( fieldVal.Type() )
-                {
-                // the value is an integer
-                //lint restore -e747:Significant prototype
-                //coercion (arg. no. 1) int to long long  :
-                case THTTPHdrVal::KTIntVal: fieldValBuf->Des().Num(
-					fieldVal.Int() );
-                break;
-                // the value is a case-insensitive string
-                case THTTPHdrVal::KStrFVal:
-                    {
-                    RStringF fieldValStr = httpStringPool.StringF(
-						fieldVal.StrF() );
-                    const TDesC8 &fieldValDesC = fieldValStr.DesC();
-                    fieldValBuf->Des().Copy( fieldValDesC.Left(
-						KMaxHeaderValueLength ) );
-                    }
-                break;
-                // the value is a case-sensitive string
-                case THTTPHdrVal::KStrVal:
-                    {
-                    RString fieldValStr = httpStringPool.String(
-						fieldVal.Str() );
-                    const TDesC8 &fieldValDesC = fieldValStr.DesC();
-                    fieldValBuf->Des().Copy( fieldValDesC.Left(
-						KMaxHeaderValueLength ) );
-                    }
-                break;
-                // the value is a date/time
-                case THTTPHdrVal::KDateVal:
-                    {
-                    TDateTime date = fieldVal.DateTime();
-                    TTime t( date );
-//                    if ( iSetNonUAProfUserAgent )
-//       					{
-       		            HttpDateHeaderReceived( *headerField ,t );
-//       					}
-                    }
-                break;
-                // the value is type is unknown
-                default:
-                    break;
-                }
-            // Display HTTP header field name and value
-            headerField->Des().Append( KDPColon );
-            headerField->Des().Append( *fieldValBuf );
-            HttpHeaderReceived( *headerField );
-            }
-        ++iterator;
-        }
-    
-    CleanupStack::PopAndDestroy( fieldValBuf );
-    CleanupStack::PopAndDestroy( headerField );
-    IRLOG_DEBUG( "CIRLogoDownloadEngine::ExtractResponseHeadersL - Exiting." );
-    }
-
-
-
-// ---------------------------------------------------------------------------
-//  CIRLogoDownloadEngine::HttpHeaderReceived( const TDesC8& aHeaderData )
-//  indicate that an HTTP header is received.
-// ---------------------------------------------------------------------------
-//
-void CIRLogoDownloadEngine::HttpHeaderReceived( const TDesC8& aHeaderData )
-    {
-    IRLOG_DEBUG( "CIRLogoDownloadEngine::HttpHeaderReceived - Entering." );
-	_LIT8(KDelim,":");
-	_LIT8(KContentType,"Content-Type");
-	ExtractHeaderValue(aHeaderData,KContentType,KDelim,iResponseHeaders->
-		iContentType);
-	_LIT8(KMaxAge,"max-age");
-	_LIT8(KDelimEqual,"=");
-	ExtractHeaderValue(aHeaderData,KMaxAge,KDelimEqual,iResponseHeaders->
-		iMaxAge);
-	_LIT8(KContentLength,"Content-Length");
-	ExtractHeaderValue(aHeaderData,KContentLength,KDelim,iResponseHeaders->
-		iContentLength);
-	_LIT8(KExpires,"Expires");
-	ExtractHeaderValue(aHeaderData,KExpires,KDelim,iResponseHeaders->iExpires);
-	_LIT8(KETag,"ETag");
-	ExtractHeaderValue(aHeaderData,KETag,KDelim,iResponseHeaders->iETag);
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::HttpHeaderReceived - Exiting." );
-    }
-
-// ---------------------------------------------------------------------------
-//  CIRLogoDownloadEngine::ExtractHeaderValue(const TDesC8& aHeaderData,const
-//	TDesC8& aHeaderName,const TDesC8& aDelimeter,TDes8& aHolder) const
-//  Used to build the CIRHttpResponseData
-// ---------------------------------------------------------------------------
-//
-void CIRLogoDownloadEngine::ExtractHeaderValue(const TDesC8& aHeaderData,const
-	TDesC8& aHeaderName,const TDesC8& aDelimeter,TDes8& aHolder) const
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::ExtractHeaderValue - Entering" );
-	TInt position = aHeaderData.Find(aHeaderName);
-	if( position >= 0)
-		{
-		TPtrC8 headerValue = aHeaderData.Mid(position);
-		TInt delimeterPosition = headerValue.Find(aDelimeter);
-		if( delimeterPosition != KErrNotFound )
-			{
-			delimeterPosition++;
-			TPtrC8 value = headerValue.Mid(delimeterPosition);
-			aHolder.Copy(value);
-			aHolder.TrimAll();
-			}
-		}
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::ExtractHeaderValue - Exiting." );
-	}
-
-// ---------------------------------------------------------------------------
-//  CIRLogoDownloadEngine::HttpDateHeaderReceived(const TDesC8 &aHeader,
-//	const TTime& aTime )
-//  Used to build the CIRHttpResponseData members
-// ---------------------------------------------------------------------------
-//
-void CIRLogoDownloadEngine::HttpDateHeaderReceived(const TDesC8 &aHeader,
-	const TTime& aTime )
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::HttpDateHeaderReceived - Entering." );
-	_LIT8(KDate,"Date");
-	_LIT8(KLastModified,"Last-Modified");
-	TInt position = aHeader.Find(KDate);
-	if( position != KErrNotFound )
-		{
-		iResponseHeaders->iDate = aTime;
-		return ;
-		}
-	position = aHeader.Find(KLastModified);
-	if( position != KErrNotFound )
-		{
-		iResponseHeaders->iLastModified = aTime;
-		}
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::HttpDateHeaderReceived - Exiting." );
-	}
-
-
-
-
-
-// --------------------------------------------------------------------
-// CIRLogoDownloadEngine::ManagePresetArrayIndexL()
-// To make another download request if exists in the queue
-// To update the iPresetArray current index
-// --------------------------------------------------------------------
-void CIRLogoDownloadEngine::ManagePresetArrayIndexL()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::ManagePresetArrayIndexL - Entering" );
-	TInt PresetArrayLength = iPresetArray->Count();
-	if((PresetArrayLength>0) && (iPresetArrayPos < PresetArrayLength))
-		{
-		CIRIsdsPreset* tempPreset = CIRIsdsPreset::NewL();
-		CleanupStack::PushL(tempPreset);
-    	*tempPreset = *(iPresetArray->At(iPresetArrayPos));
-    		if(iReqFromArrayPos < iReqFromArray->Count()  &&  iReqFromArray->At(iReqFromArrayPos) == 0 )
-        		{
-    			FetchLogoDataL(tempPreset);
-        		}
-        	else if(iObserverArrayPos < iObserverArray->Count())
-    	    	{
-    			FetchLogoDataL(tempPreset,iObserverArray->At(iObserverArrayPos),
-    							iReqFromArray->At(iReqFromArrayPos));
-    			++iObserverArrayPos;
-    	    	}
-		++iPresetArrayPos;
-		++iReqFromArrayPos;
-//		delete tempPreset;
-		CleanupStack::PopAndDestroy(tempPreset);
-		}
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::ManagePresetArrayIndexL - Exiting" );
-	}
-
-
-// --------------------------------------------------------------------
-// CIRLogoDownloadEngine::ManageCachePresetArrayIndexL()
-// To make another download request if exists in the queue
-// To update the iCachePresetArray current index
-// --------------------------------------------------------------------
-void CIRLogoDownloadEngine::ManageCachePresetArrayIndexL()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::ManageCachePresetArrayIndexL - Exiting" );
- 	TInt CachePresetArrayLength = iCachePresetArray->Count();
-	if((CachePresetArrayLength>0) && (iCachePresetArrayPos < CachePresetArrayLength))
-		{
-		CIRIsdsPreset* tempPreset;
-		tempPreset = CIRIsdsPreset::NewL();
-		CleanupStack::PushL(tempPreset);
-		*tempPreset = *(iCachePresetArray->At(iCachePresetArrayPos));
-		
-		if(iCacheReqFromArrayPos < iCacheReqFromArray->Count()  &&
-					 iCacheReqFromArray->At(iCacheReqFromArrayPos) == 0 )
-    		{
-			SendRequestL(tempPreset,KLogoSize,KLogoSize);
-    		}
-    	else if(iCacheObserverArrayPos < iCacheObserverArray->Count())
-	    	{
-			SendRequestL(tempPreset,iCacheObserverArray->At(iCacheObserverArrayPos),
-					iCacheReqFromArray->At(iCacheReqFromArrayPos));
-			++iCacheObserverArrayPos;
-	    	}
-		++iCachePresetArrayPos;
-		++iCacheReqFromArrayPos;
-//		delete tempPreset;
-		CleanupStack::PopAndDestroy(tempPreset);
- 		}
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::ManageCachePresetArrayIndexL - Exiting" );
-	}
-
-// -----------------------------------------------------
-// CIRLogoDownloadEngine::CacheError()
-// Called from cachemgmt in case of an error
-// callback API from MIRCacheObserver
-// -----------------------------------------------------
-void CIRLogoDownloadEngine::CacheError()
- 	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::CacheError" );
-
- 	//code here, if needed
- 	}
-
-// -----------------------------------------------------
-// CIRLogoDownloadEngine::CacheFailed()
-// Called from cachemgmt in case of cache failure
-// callback API from MIRCacheObserver
-// -----------------------------------------------------
-void CIRLogoDownloadEngine::CacheFailed()
- 	{
- 	IRLOG_DEBUG( "CIRLogoDownloadEngine::CacheFailed" );
- 	//code here, if needed
- 	}
-
-// -----------------------------------------------------
-// CIRLogoDownloadEngine::CacheInvalid()
-// Called from cachemgmt in case cache is invalid
-// callback API from MIRCacheObserver
-// -----------------------------------------------------
-void CIRLogoDownloadEngine::CacheInvalid()
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::CacheInvalid - Entering" );
-	iETag = iCache->iETag;
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::CacheInvalid - Exiting" );
-	}
-
-// -----------------------------------------------------
-// CIRLogoDownloadEngine::CachedStructureL(TInt aChoice)
-// Called from cachemgmt data retrival is successful
-// callback API from MIRCacheObserver
-// -----------------------------------------------------
-void CIRLogoDownloadEngine::CachedStructureL(TInt aChoice)
- 	{
- 	IRLOG_DEBUG( "CIRLogoDownloadEngine::CachedStructureL - Entering" );
-	if(iCacheReqMade)
-		{
-		iCacheReqMade = EFalse;
-		if(aChoice == KCacheAvailable)
-			{
-			
-		 	TInt sizeImgUrlWithPmts = 0;
-		 	//Remove the imgUrl with parameters from the Preset
-			//now set imgUrl without parameters in to the Preset
-			if(iSendingLogo==0)
-				{
-				sizeImgUrlWithPmts = iCacheTempPreset->GetImgUrl().Length();		
-				}
-			else if(iSendingLogo==1)
-				{
-				sizeImgUrlWithPmts = iTempPreset->GetImgUrl().Length();		
-				}
-			else if(iSendingLogo==2)
-				{
-				sizeImgUrlWithPmts = KTen;			
-				}
-			TBool hasParameters = EFalse;
-			RBuf urlWithPar;
-			urlWithPar.Create(sizeImgUrlWithPmts);
-			if(iSendingLogo==0)
-				{
-				urlWithPar.Copy(iCacheTempPreset->GetImgUrl());
-				}
-			else if(iSendingLogo==1)
-				{
-				urlWithPar.Copy(iTempPreset->GetImgUrl());
-				}
-			else if(iSendingLogo==2)
-				{
-				_LIT(KNone,"");
-				urlWithPar.Copy(KNone);
-				}
-				
-			RBuf tempBuf;
-			tempBuf.Create(sizeImgUrlWithPmts);
-
-			TLex urlLex(urlWithPar);
-			for(;!urlLex.Eos();)
-				{
-				tempBuf.Zero();
-				while(urlLex.Peek() != '?' && !urlLex.Eos())		
-					{
-					tempBuf.Append(urlLex.Get());
-					}
-				if(urlLex.Peek() == '?')
-					{
-					hasParameters = ETrue;			
-					}
-				urlLex.Inc();	
-				}
-			
-			RBuf imgUrl;		
-			if(hasParameters)		
-				{
-				//let say urlWithPar has the value http://www.logos.com/images/test.pngx=100&y=100
-				//now the tempBuf contains the value  x=100&y=100
-				TInt sizeUrlParameters = tempBuf.Length();
-				sizeUrlParameters++; // now this integer contains the size of x=100&y=100 
-				TInt sizeImgUrl = sizeImgUrlWithPmts - sizeUrlParameters;
-				
-				//Create a buffer to store the imgUrl without parameters
-				imgUrl.Create(sizeImgUrl);
-				imgUrl.Copy(urlWithPar.Left(sizeImgUrl));
-				if(iSendingLogo==0)
-					{
-					iCacheTempPreset->SetImgUrl(imgUrl);			
-					}
-				else if(iSendingLogo==1)
-					{
-					iTempPreset->SetImgUrl(imgUrl);			
-					}
-				}
-			else
-				{
-				//nothing to be done
-				//the imgUrl present in the preset is correct, no need to change anything
-				}
-			
-			
-			
-			if(iSendingLogo==0)
-			 	{
-			 	if(aChoice == KCacheAvailable)//logo is available in the cache
-				 	{
-					iCacheTempPreset->SetLogoData(iCache->iLogoData);	 		
-				 	}
-				if(iCacheReqFrom == 0)
-					{
-					iPresetModifiedStatus = ETrue;
-					}
-				else
-					{
-					iCacheTempLogoHandle->PresetLogoDownloadedL(iCacheTempPreset);
-					}	
-				
-				
-				ManageCachePresetArrayIndexL(); 	
-			 	}
-			else if(iSendingLogo==1)	
-				{
-			 	if(aChoice == KCacheAvailable)//logo is available in the cache
-				 	{
-					iTempPreset->SetLogoData(iCache->iLogoData);	 		
-				 	}
-				if(iTempReqFrom == 0)
-					{
-					iPresetModifiedStatus = ETrue;
-					}
-				else
-					{
-					iTempLogoHandle->PresetLogoDownloadedL(iTempPreset);
-					}		 	
-					
-			 	ManagePresetArrayIndexL();
-			 	}
-			else if(iSendingLogo==2)//logo request from the search results (while displaying logo)
-				{
-				//code here, if needed			
-				}
-
-			//close all the buffers
-			imgUrl.Close();
-			tempBuf.Close();
-			urlWithPar.Close();
-			}
-			
-		}
- 	IRLOG_DEBUG( "CIRLogoDownloadEngine::CachedStructureL - Exiting" );
- 	}
- 	
-// -----------------------------------------------------
-// CIRLogoDownloadEngine::ReleaseResources()
-// Releases the resources held by logo download engine
-// Used to close the Http Session if already open
-// -----------------------------------------------------
-void CIRLogoDownloadEngine::ReleaseResources()
-	{
- 	IRLOG_DEBUG( "CIRLogoDownloadEngine::ReleaseResources - Entering" );
-	CancelTransaction();
-	iLogoSession.Close();
-    iFirstTime = ETrue;
- 	IRLOG_DEBUG( "CIRLogoDownloadEngine::ReleaseResources - Exiting" );
-	} 	
-
-// -----------------------------------------------------------------------------
-// Notified by network controller when network is active, to reissue the request  
-// NotifyActiveNetworkObserversL()
-// -----------------------------------------------------------------------------
-
-void CIRLogoDownloadEngine::NotifyActiveNetworkObserversL(TIRNetworkEvent aEvent)
-	{
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::NotifyActiveNetworkObserversL - Entering" );
-	switch(aEvent)
-		{
-		case ENetworkConnectionDisconnected:
-			{
-			ReleaseResources();
-			}
-			break;
-		case ENetworkConnectionEstablished:
-			{
-			if( iLogoRequestPending )
-				{
-				IssueLogoDownloadRequestL();
-				}
-			}
-		}
-	IRLOG_DEBUG( "CIRLogoDownloadEngine::NotifyActiveNetworkObserversL - Exiting" );
-	}
-
- 	
-// -----------------------------------------------------------------------------
-// Notified by network controller when user cancels network connection, to reset 
-// the pending requests  
-// ResetPendingRequests()
-// -----------------------------------------------------------------------------
-void CIRLogoDownloadEngine::ResetPendingRequests(TBool /*aValue*/)
-	{
-		
-	}
-