imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp
changeset 54 48dd0f169f0d
parent 42 2e2a89493e2b
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp	Fri Sep 03 10:29:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1192 +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:  Active object for an asynchronous thumbnail request
- *
-*/
-
-
-#include <e32base.h>
-#include <hal.h>
-#include <hal_data.h>
-#include <apmstd.h>
-
-#include "thumbnailrequestactive.h"
-#include "thumbnailrequestqueue.h"
-#include "thumbnailsession.h"
-#include "thumbnailmanagerobserver.h"
-#include "thumbnailmanagerconstants.h"
-#include "thumbnaildataimpl.h"
-#include "thumbnailpanic.h"
-#include "thumbnaillog.h"
-
-#include "thumbnailmanagerimpl.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "thumbnailrequestactiveTraces.h"
-#endif
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::~CThumbnailRequestActive()
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-CThumbnailRequestActive::~CThumbnailRequestActive()
-    {
-    Cancel();
-    
-    if(iTimer)
-        {
-        iTimer->Cancel();
-        }
-    
-    delete iTimer;
-    iTimer = NULL;
-    
-    ReleaseServerBitmap();
-    delete iCallbackThumbnail;
-    iCallbackThumbnail = NULL;
-    delete iParams.iBuffer;
-    iParams.iBuffer = NULL;
-    delete iBitmap;
-    iBitmap = NULL;
-    iFile.Close();
-    iMyFileHandle.Close();
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::NewL
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CThumbnailRequestActive* CThumbnailRequestActive::NewL( RFs& aFs,
-    RThumbnailSession& aThumbnailSession, MThumbnailManagerObserver& aObserver,
-    MThumbnailManagerRequestObserver* aRequestObserver,
-    TThumbnailRequestId aId, TInt aPriority, CThumbnailRequestQueue* aQueue )
-    {
-    CThumbnailRequestActive* self = new( ELeave )CThumbnailRequestActive( aFs,
-        aThumbnailSession, aObserver, aRequestObserver, aId, aPriority, aQueue );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::CThumbnailRequestActive()
-// C++ default constructor can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-//
-CThumbnailRequestActive::CThumbnailRequestActive( RFs& aFs, RThumbnailSession&
-    aThumbnailSession, MThumbnailManagerObserver& aObserver,
-    MThumbnailManagerRequestObserver* aRequestObserver,
-    TThumbnailRequestId aId, TInt aPriority, CThumbnailRequestQueue* aQueue ):
-    CActive( aPriority ), iSession( aThumbnailSession ), iParamsPckg( iParams ),
-    iObserver( aObserver ), iRequestObserver( aRequestObserver ), iFs( aFs ), iBitmapHandle( 0 ), 
-    iRequestId( aId ), iRequestQueue( aQueue ), iCanceled( EFalse )
-#ifdef __RETRY_ON_SERVERCRASH
-    ,iRetry(0)
-#endif
-    {
-    CActiveScheduler::Add( this );
-    TN_DEBUG2( "CThumbnaiRequestActive::CThumbnailRequestActive() AO's priority = %d", Priority());
-    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_CTHUMBNAILREQUESTACTIVE, "CThumbnailRequestActive::CThumbnailRequestActive - AO's priority;Priority()=%d", Priority() );
-    
-    iBitmap = NULL;
-    iRequestCompleted = EFalse;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::ConstructL()
-    {
-    iCallbackThumbnail = new( ELeave )CThumbnailDataImpl();
-
-    iTimer = CPeriodic::NewL(CActive::EPriorityIdle);
-    iStartError = KErrNone;
-    
-#ifdef _DEBUG
-    iStartExecTime.UniversalTime();
-#endif
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::StartL()
-// Start active request.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::StartL()
-    {
-    TN_DEBUG3( "CThumbnailRequestActive::StartL(0x%08x) reqid = %d", this, iRequestId );
-    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL;iRequestId=%u", iRequestId );
-    
-    iRequestActive = ETrue;
-
-#ifdef _DEBUG
-    TTime stop;
-    stop.UniversalTime();
-    TN_DEBUG3( "CThumbnailRequestActive::StartL() req id = %d, queuing time %d ms",
-               iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
-    OstTraceExt2( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL - req id = %d, queuing time %d ms",
-               iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
-#endif
-    
-    switch (iRequestType)
-        {
-        case EReqGetThumbnailHandle:
-            {
-            iSession.RequestThumbnailL( iFile, iTargetUri, iParamsPckg, iStatus );
-            break;
-            }        
-        case EReqGetThumbnailPath:
-            {
-            // for custom size requests file handle can be opened here already, because
-            // custom thumbnails are never stored in db  
-            if (iParams.iThumbnailSize == ECustomThumbnailSize &&
-                iParams.iOriginalControlFlags != EThumbnailGeneratePersistentSizesOnly)
-                {
-                TN_DEBUG1( "CThumbnaiRequestActive::StartL()- custom size request" );
-                OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL - custom size request" );
-                  
-                iFile.Close();
-                User::LeaveIfError( iFile.Open( iFs, iPath, EFileShareReadersOrWriters ) );  
-                
-                TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iPath );
-                OstTraceExt1( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL;iPath=%S", iPath );
-                
-                CleanupClosePushL( iFile );
-                
-                if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview )
-                    {
-                    // We may need the file handle later for the 2nd phase thumbnail
-                    iMyFileHandle.Close();
-                    User::LeaveIfError( iMyFileHandle.Duplicate( iFile ));
-                    }
-                
-                iSession.RequestThumbnailL( iFile, iPath, iParamsPckg, iStatus );
-                CleanupStack::PopAndDestroy( &iFile );   
-                }
-            else
-                {
-                iSession.RequestThumbnailL( iPath, iTargetUri, iParams.iThumbnailId, 
-                                            iParamsPckg, iStatus );
-                }            
-            break;
-            }  
-        case EReqSetThumbnailBuffer:
-            {
-            iSession.RequestSetThumbnailL( iParams.iBuffer, iTargetUri, iParamsPckg, iStatus );
-            break;
-            }  
-        case EReqSetThumbnailBitmap:
-            {
-            iSession.RequestSetThumbnailL( iBitmap->Handle(), iTargetUri, iParamsPckg, iStatus );
-            break;
-            }  
-        case EReqUpdateThumbnails:
-            {
-            iSession.UpdateThumbnails( iPath, iOrientation, iModified, iParamsPckg, iStatus );
-            break;
-            }       
-        case EReqGetThumbnailHandleLater:
-            {
-            // open file handle
-            iFile.Close();
-            User::LeaveIfError( iFile.Open( iFs, iTargetUri, EFileShareReadersOrWriters ) );  
-            
-            TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iTargetUri );
-            OstTraceExt1( TRACE_NORMAL, DUP4_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL - file handle opened;iTargetUri=%S", iTargetUri );
-            
-            CleanupClosePushL( iFile );
-            
-            if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview )
-                {
-                // We may need the file handle later for the 2nd phase thumbnail
-                iMyFileHandle.Close();
-                User::LeaveIfError( iMyFileHandle.Duplicate( iFile ));
-                }
-            
-            iSession.RequestThumbnailL( iFile, iTargetUri, iParamsPckg, iStatus );
-            CleanupStack::PopAndDestroy( &iFile );
-            break;
-            }  
-        case EReqDeleteThumbnails:
-            {
-            // by path
-            if (iPath != KNullDesC)
-                {
-                iSession.DeleteThumbnails( iPath, iParamsPckg, iStatus );
-                }
-            // by id
-            else
-                {
-                iSession.DeleteThumbnails( iParams.iThumbnailId, iParamsPckg, iStatus );
-                }
-            break;
-            }
-        case EReqRenameThumbnails:
-            {
-            iSession.RenameThumbnails( iParamsPckg, iStatus );
-            break;
-            }  
-        case EReqSetThumbnailPath:
-            {
-            // open file handle
-            iFile.Close();
-            User::LeaveIfError( iFile.Open( iFs, iParams.iFileName, EFileShareReadersOrWriters ) );  
-            
-            TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iParams.iFileName );
-            OstTraceExt1( TRACE_NORMAL, DUP5_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL;iParams.iFileName=%S", iParams.iFileName );
-            
-            CleanupClosePushL( iFile );
-            
-            if ( iParams.iQualityPreference == CThumbnailManager::EOptimizeForQualityWithPreview )
-                {
-                // We may need the file handle later for the 2nd phase thumbnail
-                iMyFileHandle.Close();
-                User::LeaveIfError( iMyFileHandle.Duplicate( iFile ));
-                }
-            
-            iSession.RequestThumbnailL( iFile, iTargetUri, iParamsPckg, iStatus );
-            CleanupStack::PopAndDestroy( &iFile );
-
-            break;
-            } 
-            
-        default:
-            {
-            break;
-            }
-        }
-    
-    iTimer->Cancel();
-    iTimer->Start( KClientRequestTimeout, KClientRequestTimeout, 
-                   TCallBack(TimerCallBack, this));
-    SetActive();
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::RunL()
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::RunL()
-    {
-    TN_DEBUG2( "CThumbnailRequestActive::RunL() - request ID: %d", iParams.iRequestId );
-    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId );
- 
-    if ( iParams.iControlFlags == EThumbnailPreviewThumbnail )
-        {
-        iRequestCompleted = EFalse;
-		iProcessingPreview = ETrue;
-        }
-    else
-        {
-        iRequestCompleted = ETrue;
-        }
-    
-    iTimer->Cancel();
-    
-    if (iRequestType == EReqDeleteThumbnails)
-        {
-        TN_DEBUG1( "CThumbnailRequestActive::RunL() - delete" );
-    
-        if (iRequestObserver)
-            {
-            iRequestObserver->ThumbnailRequestReady(iStatus.Int(), ERequestDeleteThumbnails ,iParams.iRequestId);
-            }
-        
-        iFile.Close();
-        iMyFileHandle.Close();
-    
-        // no action for delete/rename or canceled request
-        iRequestQueue->RequestComplete(this);
-        
-#ifdef _DEBUG
-    TTime stop;
-    stop.UniversalTime();
-    TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time of req %d is %d ms",
-                iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
-    OstTraceExt2( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - total execution time of req %d is %d ms",
-                iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
-#endif
-        }
-    else if (iCanceled || iRequestType == EReqRenameThumbnails)
-        {
-        if (iCanceled)
-            {
-            TN_DEBUG1( "CThumbnailRequestActive::RunL() - canceled" );
-            }
-        else if (iRequestType == EReqRenameThumbnails)
-            {
-            TN_DEBUG1( "CThumbnailRequestActive::RunL() - rename" );
-            }
-    
-        iFile.Close();
-        iMyFileHandle.Close();
-    
-        // no action for delete/rename or canceled request
-        iRequestQueue->RequestComplete(this);
-        
-#ifdef _DEBUG
-    TTime stop;
-    stop.UniversalTime();
-    TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time of req %d is %d ms",
-                iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
-    OstTraceExt2( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - total execution time of req %d is %d ms",
-                iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
-#endif
-        }
-    else if ( iStatus.Int() == KThumbnailErrThumbnailNotFound && iParams.iFileName.Length() && 
-         !( iParams.iFlags& CThumbnailManager::EDoNotCreate ))
-        {
-        TN_DEBUG2( "CThumbnaiRequestActive::RunL() - no thumbnail found - lets try with file handle %S", &iParams.iFileName );
-        OstTraceExt1( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - no thumbnail found - lets try with file handle;iParams.iFileName=%S", iParams.iFileName );
-        iRequestCompleted = EFalse;
-        
-        // We tried to get thumbnail using file path, but it was not found in
-        // the database. We need to open the file now (on the client side) and
-        // use file handle.     
-        iFile.Close();
-        TInt err = iFile.Open( iFs, iParams.iFileName, EFileShareReadersOrWriters );
-        TN_DEBUG2( "CThumbnaiRequestActive::RunL() - file handle open err = %d", err );
-        OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - file handle open err;err=%d", err );
-        User::LeaveIfError( err );
-        
-        CleanupClosePushL( iFile );
-        
-        TN_DEBUG2( "CThumbnaiRequestActive::RunL() - file handle opened for %S", &iParams.iFileName );
-        OstTraceExt1( TRACE_NORMAL, DUP5_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iFileName=%S", iParams.iFileName );
-        
-        iSession.RequestThumbnailL( iFile, iParams.iFileName, iParamsPckg, iStatus );
-        CleanupStack::PopAndDestroy( &iFile );
-        
-        iTimer->Start( KClientRequestTimeout, KClientRequestTimeout, 
-                           TCallBack(TimerCallBack, this));
-        SetActive();
-        }
-    else if ( iStatus.Int() )
-        {
-        TN_DEBUG2( "CThumbnailRequestActive::RunL() - error (%d) occured", iStatus.Int() );
-        // An error occurred
-        iError = iStatus.Int();
-        HandleError();
-        }
-    //1st round thumb ready from exif (stored)
-    else if (iParams.iOriginalControlFlags == EThumbnailGeneratePersistentSizesOnly && !iProcessingPreview)
-	    {
-	    TN_DEBUG1( "CThumbnaiRequestActive::RunL()- generate persistent sizes thumbnailready" );
-	    OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - generate persistent sizes thumbnailready" );
-	    iBitmapHandle = iParams.iBitmapHandle;
-	    
-	    TN_DEBUG2( "CThumbnaiRequestActive::RunL() - iObserver.ThumbnailReady %d", iParams.iRequestId );
-	    OstTrace1( TRACE_NORMAL, DUP7_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId );
-	    iObserver.ThumbnailReady( iStatus.Int(), *iCallbackThumbnail, iParams.iRequestId );
-	  
-	    ReleaseServerBitmap();
-	    
-	    iFile.Close();
-	    iMyFileHandle.Close();
-	    
-	    iRequestQueue->RequestComplete(this);
-	    
-        #ifdef _DEBUG
-            TTime stop;
-            stop.UniversalTime();
-            TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time %d, %d ms",
-                       iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
-            OstTraceExt2( TRACE_NORMAL, DUP8_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - total execution time %d, %d ms",
-                       iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
-            
-        #endif
-	    }
-    //1st round preview ready from too low quality exif/exif not found (not-stored)
-    //relauch using normal decoding
-    else if (iParams.iOriginalControlFlags == EThumbnailGeneratePersistentSizesOnly && iProcessingPreview)
-        {
-        TN_DEBUG1( "CThumbnaiRequestActive::RunL()- generate persistent sizes thumbnailpreviewready" );
-        OstTrace0( TRACE_NORMAL, DUP9_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - generate persistent sizes thumbnailpreviewready" );
-        iBitmapHandle = iParams.iBitmapHandle;
-        
-        TN_DEBUG2( "CThumbnaiRequestActive::RunL() - iObserver.ThumbnailPreviewReady %d", iParams.iRequestId );
-        OstTrace1( TRACE_NORMAL, DUP10_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId );
-        iObserver.ThumbnailPreviewReady( *iCallbackThumbnail, iParams.iRequestId );
-        
-        iProcessingPreview = EFalse;
-      
-        ReleaseServerBitmap();
-        
-        iFile.Close();
-        
-        //set flags so that EThumbnailGeneratePersistentSizesOnly is done aka check all missing sizes 
-        iParams.iQualityPreference = CThumbnailManager::EOptimizeForQuality;
-        iParams.iControlFlags = EThumbnailGeneratePersistentSizesOnly;
-        iRequestType = EReqUpdateThumbnails;
-        
-        //increase priority
-        this->SetPriority(this->Priority() + 1);
-        iParams.iPriority++;
-        
-        iSession.UpdateThumbnails( iPath, iOrientation, iModified, iParamsPckg, iStatus );
-        
-        SetActive();
-           
-    	#ifdef _DEBUG
-        TTime stop;
-        stop.UniversalTime();
-        TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time %d, %d ms",
-                   iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
-    	#endif
-        }
-    else
-        {
-        TN_DEBUG1( "CThumbnailRequestActive::RunL() - succesful" );
-        OstTrace0( TRACE_NORMAL, DUP11_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - succesful" );
-        
-        // Success
-        iBitmapHandle = iParams.iBitmapHandle;
-        
-        if( iBitmapHandle )
-            {
-            CFbsBitmap* bitmap = new( ELeave )CFbsBitmap();
-            CleanupStack::PushL( bitmap );
-            User::LeaveIfError( bitmap->Duplicate( iBitmapHandle ));
-            CleanupStack::Pop( bitmap );
-            
-            // reduce bpp value (displaymode to match reqested bits per pixel)
-            #ifdef _DEBUG
-            TN_DEBUG2( "CThumbnailRequestActive::RunL() - displaymode is %d", bitmap->DisplayMode());
-            OstTrace1( TRACE_NORMAL, DUP12_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;bitmap->DisplayMode()=%u", bitmap->DisplayMode() );
-            #endif
-            
-            if( bitmap->DisplayMode() > iParams.iDisplayMode )
-                {
-                bitmap->SetDisplayMode( iParams.iDisplayMode );
-                #ifdef _DEBUG
-                TN_DEBUG2( "CThumbnailRequestActive::RunL() - displaymode is now %d", bitmap->DisplayMode());
-                OstTrace1( TRACE_NORMAL, DUP13_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;bitmap->DisplayMode()=%u", bitmap->DisplayMode() );
-                #endif
-                }
-            
-            iCallbackThumbnail->Set( bitmap, iClientData );
-            bitmap = NULL; // Owned by iCallbackThumbnail or client now
-            }
-
-        if ( iProcessingPreview )
-            {
-            TN_DEBUG2( "CThumbnailRequestActive::RunL() - iObserver.ThumbnailPreviewReady %d", iParams.iRequestId );
-			OstTrace1( TRACE_NORMAL, DUP14_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - iObserver.ThumbnailPreviewReady;iParams.iRequestId=%u", iParams.iRequestId );
-			
-            //increase priority of 2nd round (both, AO and request itself)
-            this->SetPriority(this->Priority() + 1);
-            iParams.iPriority++;
-            iObserver.ThumbnailPreviewReady( *iCallbackThumbnail, iParams.iRequestId );
-            iProcessingPreview = EFalse;
-            
-            ReleaseServerBitmap();
-            
-            iFile.Close();
-            
-            Get2ndPhaseThumbnailL();
-            }
-        else
-            {
-            TN_DEBUG2( "CThumbnailRequestActive::RunL() - iObserver.ThumbnailReady %d", iParams.iRequestId );
-            OstTrace1( TRACE_NORMAL, DUP15_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId );
-            
-            iObserver.ThumbnailReady( iStatus.Int(), * iCallbackThumbnail, iParams.iRequestId );
-            ReleaseServerBitmap();    
-            
-            iFile.Close();
-            iMyFileHandle.Close();
-            
-            iRequestQueue->RequestComplete(this);
-            
-#ifdef _DEBUG
-        TTime stop;
-        stop.UniversalTime();
-        TInt tookTime = (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000;
-        TN_DEBUG4( "CThumbnailRequestActive::RunL(0x%08x) total execution time of req %d is %d ms",
-                this, iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
-        OstTrace1( TRACE_NORMAL, DUP16_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;this=%o", this );
-        OstTraceExt2( TRACE_NORMAL, DUP17_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u;tookTime=%d", iParams.iRequestId, tookTime );
-#endif
-            }
-        }
-    
-    delete iBitmap;
-    iBitmap = NULL;
-    
-    //if request is complete set it also not active -> really finished
-    if(iRequestCompleted)
-        {
-        iRequestActive = EFalse;
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::RunError()
-// ---------------------------------------------------------------------------
-//
-TInt CThumbnailRequestActive::RunError( TInt aError )
-    {
-    TN_DEBUG1( "CThumbnailRequestActive::RunError");
-    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_RUNERROR, "CThumbnailRequestActive::RunError" );
-    
-    iTimer->Cancel();
-    
-    // If RunL() left, the client did not get any callbacks yet.
-    // We need to notify it of the error now.
-    iError = aError;
-    HandleError();
-    
-    return KErrNone;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::DoCancel()
-    {
-    TN_DEBUG1( "CThumbnailRequestActive::DoCancel");
-    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_DOCANCEL, "CThumbnailRequestActive::DoCancel" );
-    iTimer->Cancel();
-    
-    __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-
-    iCanceled = ETrue;
-    iSession.CancelRequest( iRequestId );
-    ReleaseServerBitmap();
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::AsyncCancel()
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::AsyncCancel()
-    {
-    TN_DEBUG1( "CThumbnailRequestActive::AsyncCancel");
-    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_ASYNCCANCEL, "CThumbnailRequestActive::AsyncCancel" );
-
-    __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-    
-    iCanceled = ETrue;
-    iSession.CancelRequest( iRequestId );
-    ReleaseServerBitmap();
-
-    // AO stays active until request is complete or timeout is reached
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::ReleaseServerBitmap()
-// Releases reserved bitmap.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::ReleaseServerBitmap()
-    {
-    if ( iBitmapHandle && iSession.Handle())
-        {
-    	TN_DEBUG1( "CThumbnailRequestActive::ReleaseServerBitmap");
-    	OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_RELEASESERVERBITMAP, "CThumbnailRequestActive::ReleaseServerBitmap" );
-    
-        iSession.ReleaseBitmap( iBitmapHandle );
-        iBitmapHandle = 0;
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::HandleError()
-// Error handling function.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::HandleError()
-    {
-    TN_DEBUG1( "CThumbnailRequestActive::HandleError");
-    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError" );
-    
-    if ( iError )
-        {
-        if( iError == KErrServerTerminated)
-            {
-            iSession.Close();
-            TInt connErr = iSession.Connect();
-            if (connErr != KErrNone)
-                {
-                TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - session reconnect err %d", connErr );
-                OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError;err=%d", connErr );
-                }
-            else
-                {
-                TN_DEBUG1( "CThumbnailRequestActive::HandleError() - session reconnected");
-                OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError - session reconnected" );
-                }
-            }
-
-        if (iRequestObserver && iRequestType == EReqDeleteThumbnails)
-             {
-             TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - iRequestObserver->ThumbnailRequestReady %d", iParams.iRequestId );
-             OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError;iParams.iRequestId=%u", iParams.iRequestId );
-             iRequestObserver->ThumbnailRequestReady(iError, ERequestDeleteThumbnails ,iParams.iRequestId);
-             }
-        else
-            {			
-			 iCallbackThumbnail->Set( NULL, iClientData );
-        
-	        // don't leak internal TNM codes
-	        if (iError == KThumbnailErrThumbnailNotFound)
-	            {
-	            iError = KErrNotFound;
-	            }
-	        
-#ifdef __RETRY_ON_SERVERCRASH
-	        if(iError == KErrServerTerminated )
-	            {
-                  
-                if(iRetry < KMaxRequestRetryCount )
-                    {
-                    iRetry++;
-                    TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - KErrServerTerminated, retry %d", iRetry);
-                    OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError - KErrServerTerminated;iRetry=%d", iRetry );
-                    iError = KErrNone;
-                    TRAPD(err, StartL());
-                    return;
-                    }
-	            }
-#endif
-	        TN_DEBUG3( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady req=%d err=%d", iParams.iRequestId, iError );
-	        OstTrace1( TRACE_NORMAL, DUP5_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError - iObserver.ThumbnailReady %u", iParams.iRequestId );
-	        iObserver.ThumbnailReady( iError, *iCallbackThumbnail, iParams.iRequestId );
-	            
-            }
-        
-        iError = KErrNone;
-        }
-    
-    ReleaseServerBitmap();
-    
-    iFile.Close();
-    iMyFileHandle.Close();
-    
-    iRequestCompleted = ETrue;
-    iRequestQueue->RequestComplete(this);
-    iRequestActive = EFalse;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::GetThumbnailL()
-// Get a thumbnail for an object file.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId,
-    const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
-    ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
-    TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
-    const TDesC& aTargetUri, TThumbnailSize aThumbnailSize)
-    {
-    iRequestType = EReqGetThumbnailHandle;
-
-    if ( aQualityPreference == CThumbnailManager
-        ::EOptimizeForQualityWithPreview )
-        {
-        // We may need the file handle later for the 2nd phase
-        // thumbnail
-        iMyFileHandle.Close();
-        User::LeaveIfError( iMyFileHandle.Duplicate( aFile ));
-        }
-
-    iClientData = aClientData;
-    iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
-    						EThumbnailGeneratePersistentSizesOnly :
-    						EThumbnailNoControlFlags);    
-    iParams.iOriginalControlFlags = iParams.iControlFlags;
-    iParams.iMimeType = TDataType( aMimeType );
-    iParams.iBitmapHandle = 0;
-    iParams.iSize = aSize;
-    iParams.iDisplayMode = aDisplayMode;
-    User::LeaveIfError( aFile.FullName( iParams.iFileName ));
-    iParams.iRequestId = iRequestId;
-    iParams.iPriority = aPriority;
-    iParams.iFlags = aFlags;
-    iParams.iQualityPreference = aQualityPreference;
-    iParams.iThumbnailSize = aThumbnailSize;
-    iParams.iThumbnailId = aThumbnailId;
-    iParams.iOverwrite = EFalse;
-    iParams.iImport = EFalse;
-    
-    User::LeaveIfError( iFile.Duplicate( aFile ));
-    
-    iTargetUri = aTargetUri;
-    
-    if (iParams.iFileName.Length() && IsVirtualUri(iParams.iFileName))
-        {
-        iParams.iVirtualUri = ETrue;
-        }
-    else
-        {
-        iParams.iVirtualUri = EFalse;
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::GetThumbnailL()
-// Get a thumbnail opening an object file later.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::GetThumbnailL( TThumbnailId aThumbnailId,
-    const TDesC& aPath, const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, 
-    CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
-    TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
-    const TDesC& aTargetUri, TThumbnailSize aThumbnailSize)
-    {
-    iRequestType = EReqGetThumbnailHandleLater;
-
-    iClientData = aClientData;
-    iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
-                            EThumbnailGeneratePersistentSizesOnly :
-                            EThumbnailNoControlFlags);
-    iParams.iOriginalControlFlags = iParams.iControlFlags;
-    iParams.iMimeType = TDataType( aMimeType );
-    iParams.iBitmapHandle = 0;
-    iParams.iSize = aSize;
-    iParams.iDisplayMode = aDisplayMode;
-    iParams.iFileName = aPath;
-    iParams.iRequestId = iRequestId;
-    iParams.iPriority = aPriority;
-    iParams.iFlags = aFlags;
-    iParams.iQualityPreference = aQualityPreference;
-    iParams.iThumbnailSize = aThumbnailSize;
-    iParams.iThumbnailId = aThumbnailId;
-    iParams.iOverwrite = EFalse;
-    iParams.iImport = EFalse;
-    
-    iTargetUri = aTargetUri;
-    
-    if (iPath.Length() && IsVirtualUri(iPath))
-        {
-        iParams.iVirtualUri = ETrue;
-        }
-    else
-        {
-        iParams.iVirtualUri = EFalse;
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::GetThumbnailL()
-// Get a thumbnail for an object file.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::GetThumbnailL( const TDesC& aPath, TThumbnailId aThumbnailId,
-    const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
-    ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
-    TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
-    const TDesC& aTargetUri, TThumbnailSize aThumbnailSize)
-    {
-    iRequestType = EReqGetThumbnailPath;
-
-    iClientData = aClientData;
-    iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
-    						EThumbnailGeneratePersistentSizesOnly :
-    						EThumbnailNoControlFlags);
-    iParams.iOriginalControlFlags = iParams.iControlFlags;
-    iParams.iMimeType = TDataType( aMimeType );
-    iParams.iBitmapHandle = 0;
-    iParams.iSize = aSize;
-    iParams.iDisplayMode = aDisplayMode;
-    iParams.iRequestId = iRequestId;
-    iParams.iPriority = aPriority;
-    iParams.iFlags = aFlags;
-    iParams.iQualityPreference = aQualityPreference;
-    iParams.iThumbnailSize = aThumbnailSize;
-    iParams.iThumbnailId = aThumbnailId;
-    iParams.iFileName = aPath;
-    iParams.iOverwrite = EFalse;
-    iParams.iImport = EFalse;
-    
-    iPath = aPath;
-    iTargetUri = aTargetUri;
-    
-    if (iPath.Length() && IsVirtualUri(iPath))
-        {
-        iParams.iVirtualUri = ETrue;
-        }
-    else
-        {
-        iParams.iVirtualUri = EFalse;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::SetThumbnailL()
-// Get a thumbnail for an object file.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::SetThumbnailL( TDesC8* aBuffer, TThumbnailId aThumbnailId,
-    const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags,
-    CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize,
-    const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData,
-    TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize,
-    TBool aOverwrite)
-    {
-    iRequestType = EReqSetThumbnailBuffer;
-
-    iClientData = aClientData;
-    iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
-                            EThumbnailGeneratePersistentSizesOnly :
-                            EThumbnailNoControlFlags);
-    iParams.iOriginalControlFlags = iParams.iControlFlags;  
-    iParams.iMimeType = TDataType( aMimeType );
-    iParams.iBitmapHandle = 0;
-    iParams.iSize = aSize;
-    iParams.iBuffer = aBuffer; // save pointer for deletion (~CThumbnailRequestActive())
-    iParams.iThumbnailSize = aThumbnailSize;
-    iParams.iDisplayMode = aDisplayMode;
-    iParams.iRequestId = iRequestId;
-    iParams.iPriority = aPriority;
-    iParams.iFlags = aFlags;
-    iParams.iQualityPreference = aQualityPreference;
-    iParams.iThumbnailId = aThumbnailId;
-    iParams.iOverwrite = aOverwrite;
-    iParams.iImport = EFalse;
-    
-    iTargetUri = aTargetUri;
-    
-    if (iTargetUri.Length() && IsVirtualUri(iTargetUri))
-        {
-        iParams.iVirtualUri = ETrue;
-        }
-    else
-        {
-        iParams.iVirtualUri = EFalse;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::SetThumbnailL()
-// Get a thumbnail for an object file.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::SetThumbnailL( CFbsBitmap* aBitmap, TThumbnailId aThumbnailId,
-    const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags,
-    CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize,
-    const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData,
-    TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize,
-    TBool aOverwrite)
-    {    
-    iClientData = aClientData;
-    iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
-                            EThumbnailGeneratePersistentSizesOnly :
-                            EThumbnailNoControlFlags);
-    iParams.iOriginalControlFlags = iParams.iControlFlags;  
-    iParams.iBitmapHandle = 0;
-    iParams.iSize = aSize;
-    iParams.iThumbnailSize = aThumbnailSize;
-    iParams.iDisplayMode = aDisplayMode;
-    iParams.iRequestId = iRequestId;
-    iParams.iPriority = aPriority;
-    iParams.iFlags = aFlags;
-    iParams.iQualityPreference = aQualityPreference;
-    iParams.iThumbnailId = aThumbnailId;
-    iParams.iFileName = aTargetUri;
-    iParams.iOverwrite = aOverwrite;
-    iParams.iImport = EFalse;
-    
-    iTargetUri = aTargetUri;
-    
-    if (iTargetUri.Length() && IsVirtualUri(iTargetUri))
-        {
-        iParams.iVirtualUri = ETrue;
-        }
-    else
-        {
-        iParams.iVirtualUri = EFalse;
-        }
-    
-    TInt memoryFree( 0 );
-    HAL::Get( HALData::EMemoryRAMFree, memoryFree );
-    
-    TN_DEBUG2( "CThumbnaiRequestActive::SetThumbnailbyBitmap() - memoryFree %d", memoryFree );
-    
-    if(memoryFree > KMemoryNeed)
-        {
-        // save parameter bitmap, it will be deleted when request is complete
-        iBitmap = aBitmap;                   
-        iParams.iMimeType = TDataType( aMimeType );
-        iRequestType = EReqSetThumbnailBitmap;
-        }
-    else if (!iParams.iVirtualUri)
-        {
-        // memory low, create thumbs using filehandle
-        TN_DEBUG1( "CThumbnaiRequestActive::SetThumbnailbyBitmap() - memory low, create thumbs using filehandle!" );
-        OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_SETTHUMBNAILL, "CThumbnailRequestActive::SetThumbnailL - memory low, create thumbs using filehandle!" );
-        delete aBitmap;
-        aBitmap = NULL;
-        iParams.iPriority = aPriority - 1;
-        iRequestType = EReqGetThumbnailHandleLater;
-        }
-    else
-        {
-        User::Leave(KErrNoMemory);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::UpdateThumbnailsL()
-// Update thumbnails by Id.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::UpdateThumbnailsL( const TDesC& aPath, 
-    const TThumbnailId aThumbnailId, CThumbnailManager::TThumbnailFlags aFlags, 
-    CThumbnailManager::TThumbnailQualityPreference aQualityPreference, 
-    const TDisplayMode aDisplayMode, const TInt aPriority, const TInt aOrientation,
-    const TInt64 aModified )
-    {
-    iRequestType = EReqUpdateThumbnails;
-    
-    iParams.iControlFlags = EThumbnailGeneratePersistentSizesOnly;   
-    iParams.iOriginalControlFlags = iParams.iControlFlags;
-    iParams.iBitmapHandle = 0;
-    iParams.iDisplayMode = aDisplayMode;
-    iParams.iRequestId = iRequestId;
-    iParams.iPriority = aPriority;
-    iParams.iFlags = aFlags;
-    iParams.iQualityPreference = aQualityPreference;
-    iParams.iThumbnailId = aThumbnailId;
-    iParams.iOverwrite = EFalse;
-    iParams.iVirtualUri = EFalse;
-    iParams.iImport = EFalse;
-    
-    iPath = aPath;
-    iOrientation = aOrientation;
-    iModified = aModified;
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::DeleteThumbnails()
-// Delete thumbnails.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::DeleteThumbnails( const TDesC& aPath, 
-    const TThumbnailId aThumbnailId, const TInt aPriority )
-    {
-    iRequestType = EReqDeleteThumbnails;
-    
-    iParams.iRequestId = iRequestId;
-    iParams.iPriority = aPriority;
-    iParams.iThumbnailId = aThumbnailId;
-    
-    iPath = aPath;
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::RenameThumbnails()
-// Rename thumbnails.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::RenameThumbnails( const TDesC& aCurrentPath, 
-        const TDesC& aNewPath, const TInt aPriority )
-    {
-    iRequestType = EReqRenameThumbnails;
-    
-    iParams.iRequestId = iRequestId;
-    iParams.iPriority = aPriority;
-    iParams.iFileName = aCurrentPath;
-    iParams.iTargetUri = aNewPath;
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::SetThumbnailL()
-// Set thumbnail from file path.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::SetThumbnailL( const TDesC& aPath, const TDesC8& aMimeType,
-    CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
-    ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
-    TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData,
-    TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, 
-    TThumbnailSize aThumbnailSize, TBool aOverwrite)
-    {
-    iRequestType = EReqSetThumbnailPath;
-    
-    iClientData = aClientData;
-    iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
-                            EThumbnailGeneratePersistentSizesOnly :
-                            EThumbnailNoControlFlags);
-    iParams.iOriginalControlFlags = iParams.iControlFlags;
-    iParams.iMimeType = TDataType( aMimeType );
-    iParams.iBitmapHandle = 0;
-    iParams.iSize = aSize;
-    iParams.iDisplayMode = aDisplayMode;
-    iParams.iFileName = aPath;
-    iParams.iRequestId = iRequestId;
-    iParams.iPriority = aPriority;
-    iParams.iFlags = aFlags;
-    iParams.iQualityPreference = aQualityPreference;
-    iParams.iThumbnailSize = aThumbnailSize;
-    iParams.iOverwrite = aOverwrite;
-    
-    iTargetUri = aTargetUri;
-    
-    if (iTargetUri.Length() && IsVirtualUri(iTargetUri))
-        {
-        iParams.iVirtualUri = ETrue;
-        }
-    else
-        {
-        iParams.iVirtualUri = EFalse;
-        }
-    
-    iParams.iImport = ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// Request 2nd phase thumbnail
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::Get2ndPhaseThumbnailL()
-    {
-    TN_DEBUG2( "CThumbnailRequestActive::Get2ndPhaseThumbnailL() %d", iParams.iRequestId );
-    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_GET2NDPHASETHUMBNAILL, "CThumbnailRequestActive::Get2ndPhaseThumbnailL;iParams.iRequestId=%u", iParams.iRequestId );
-    
-    iParams.iQualityPreference = CThumbnailManager::EOptimizeForQuality;
-    iParams.iControlFlags = EThumbnailNoControlFlags;
-    
-    if ( iMyFileHandle.SubSessionHandle())
-        {
-        User::LeaveIfError( iMyFileHandle.FullName( iParams.iFileName ));
-        iSession.RequestThumbnailL( iMyFileHandle, iParams.iTargetUri, iParamsPckg, iStatus );
-        SetActive();
-        }
-    else
-        {
-        iSession.RequestThumbnailL( iParams.iFileName, iParams.iTargetUri, iParams.iThumbnailId, iParamsPckg, iStatus );
-        SetActive();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::ChangePriority()
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::ChangePriority( const TInt aNewPriority )
-    {
-    TN_DEBUG1( "CThumbnailRequestActive::ChangePriority");
-    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_CHANGEPRIORITY, "CThumbnailRequestActive::ChangePriority" );
-    
-    iParams.iPriority = aNewPriority;
-    
-    if (!IsActive())
-        {
-        this->SetPriority(aNewPriority);
-        }
-    else
-        {
-        iSession.ChangePriority(iRequestId, aNewPriority);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::StartError()
-// Error handling function.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestActive::StartError( const TInt aErr )
-    {
-    TN_DEBUG1( "CThumbnailRequestActive::StartError");
-    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_STARTERROR, "CThumbnailRequestActive::StartError" );
-    
-    iStartError = aErr;
-    iRequestActive = ETrue;
-    
-    if (!iTimer->IsActive())
-        {
-        iTimer->Start( KClientRequestStartErrorTimeout, KClientRequestStartErrorTimeout, 
-                       TCallBack(TimerCallBack, this));
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::TimerCallBack()
-// ---------------------------------------------------------------------------
-//
-TInt CThumbnailRequestActive::TimerCallBack(TAny* aAny)
-    {
-    TN_DEBUG1( "CThumbnailRequestActive::TimerCallBack() - request timeout");
-    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_TIMERCALLBACK, "CThumbnailRequestActive::TimerCallBack" );
-    
-    CThumbnailRequestActive* self = static_cast<CThumbnailRequestActive*>( aAny );
-    
-    self->iTimer->Cancel();
-    
-    self->Cancel();
-    
-    if (self->iStartError != KErrNone)
-        {
-        self->iError = self->iStartError;
-        }
-    else
-        {
-        self->iError = KErrTimedOut;
-        }
-    
-    self->HandleError();
-    
-    TN_DEBUG1( "CThumbnailRequestActive::TimerCallBack() - end");
-    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTACTIVE_TIMERCALLBACK, "CThumbnailRequestActive::TimerCallBack - end" );
-    
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestActive::IsVirtualUri()
-// Checks if URI is virtual.
-// ---------------------------------------------------------------------------
-//
-TBool CThumbnailRequestActive::IsVirtualUri( const TDesC& aPath )
-    {
-    TInt pos = aPath.Find(KBackSlash);
-    
-    // normal URI
-    if ( pos == 2 )
-        {
-        return EFalse;
-        }
-    // virtual URI
-    else
-        {
-        TN_DEBUG1( "CThumbnailRequestActive::IsVirtualUri() - yes");
-        OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_ISVIRTUALURI, "CThumbnailRequestActive::IsVirtualUri - yes" );
-        return ETrue;
-        }    
-    }
-
-// End of file