imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp
branchRCL_3
changeset 28 ff2fb7658ff7
parent 24 f0aa341a25bf
child 38 2b4b06654caa
equal deleted inserted replaced
24:f0aa341a25bf 28:ff2fb7658ff7
    46     if(iTimer)
    46     if(iTimer)
    47         {
    47         {
    48         iTimer->Cancel();
    48         iTimer->Cancel();
    49         }
    49         }
    50     delete iTimer;
    50     delete iTimer;
       
    51     iTimer = NULL;
    51     
    52     
    52     ReleaseServerBitmap();
    53     ReleaseServerBitmap();
    53     delete iCallbackThumbnail;
    54     delete iCallbackThumbnail;
       
    55     iCallbackThumbnail = NULL;
    54     delete iParams.iBuffer;
    56     delete iParams.iBuffer;
       
    57     iParams.iBuffer = NULL;
    55     delete iBitmap;
    58     delete iBitmap;
       
    59     iBitmap = NULL;
    56     iFile.Close();
    60     iFile.Close();
    57     iMyFileHandle.Close();
    61     iMyFileHandle.Close();
    58     }
    62     }
    59 
    63 
    60 
    64 
    87     MThumbnailManagerRequestObserver* aRequestObserver,
    91     MThumbnailManagerRequestObserver* aRequestObserver,
    88     TThumbnailRequestId aId, TInt aPriority, CThumbnailRequestQueue* aQueue ):
    92     TThumbnailRequestId aId, TInt aPriority, CThumbnailRequestQueue* aQueue ):
    89     CActive( aPriority ), iSession( aThumbnailSession ), iParamsPckg( iParams ),
    93     CActive( aPriority ), iSession( aThumbnailSession ), iParamsPckg( iParams ),
    90     iObserver( aObserver ), iRequestObserver( aRequestObserver ), iFs( aFs ), iBitmapHandle( 0 ), 
    94     iObserver( aObserver ), iRequestObserver( aRequestObserver ), iFs( aFs ), iBitmapHandle( 0 ), 
    91     iRequestId( aId ), iRequestQueue( aQueue ), iCanceled( EFalse )
    95     iRequestId( aId ), iRequestQueue( aQueue ), iCanceled( EFalse )
       
    96 #ifdef __RETRY_ON_SERVERCRASH
       
    97     ,iRetry(0)
       
    98 #endif
    92     {
    99     {
    93     CActiveScheduler::Add( this );
   100     CActiveScheduler::Add( this );
    94     TN_DEBUG2( "CThumbnaiRequestActive::CThumbnailRequestActive() AO's priority = %d", Priority());
   101     TN_DEBUG2( "CThumbnaiRequestActive::CThumbnailRequestActive() AO's priority = %d", Priority());
    95     
   102     
    96     iBitmap = NULL;
   103     iBitmap = NULL;
   570 	        // don't leak internal TNM codes
   577 	        // don't leak internal TNM codes
   571 	        if (iError == KThumbnailErrThumbnailNotFound)
   578 	        if (iError == KThumbnailErrThumbnailNotFound)
   572 	            {
   579 	            {
   573 	            iError = KErrNotFound;
   580 	            iError = KErrNotFound;
   574 	            }
   581 	            }
   575 			
   582 	        
   576             TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady %d", iParams.iRequestId );
   583 #ifdef __RETRY_ON_SERVERCRASH
   577             iObserver.ThumbnailReady( iError, *iCallbackThumbnail, iParams.iRequestId );
   584 	        if(iError == KErrServerTerminated )
       
   585 	            {
       
   586                   
       
   587                 if(iRetry < KMaxRequestRetryCount )
       
   588                     {
       
   589                     iRetry++;
       
   590                     TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - KErrServerTerminated, retry %d", iRetry);
       
   591                     iError = KErrNone;
       
   592                     TRAPD(err, StartL());
       
   593                     return;
       
   594                     }
       
   595 	            }
       
   596 #endif
       
   597 	        TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady %d", iParams.iRequestId );
       
   598 	        iObserver.ThumbnailReady( iError, *iCallbackThumbnail, iParams.iRequestId );
       
   599 	            
   578             }
   600             }
   579         
   601         
   580         iError = KErrNone;
   602         iError = KErrNone;
   581         }
   603         }
   582     
   604