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 |