--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp Tue May 11 16:30:11 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp Tue May 25 13:01:47 2010 +0300
@@ -65,10 +65,11 @@
//
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, aId, aPriority, aQueue );
+ aThumbnailSession, aObserver, aRequestObserver, aId, aPriority, aQueue );
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop( self );
@@ -83,10 +84,11 @@
//
CThumbnailRequestActive::CThumbnailRequestActive( RFs& aFs, RThumbnailSession&
aThumbnailSession, MThumbnailManagerObserver& aObserver,
+ MThumbnailManagerRequestObserver* aRequestObserver,
TThumbnailRequestId aId, TInt aPriority, CThumbnailRequestQueue* aQueue ):
CActive( aPriority ), iSession( aThumbnailSession ), iParamsPckg( iParams ),
- iObserver( aObserver ), iFs( aFs ), iBitmapHandle( 0 ), iRequestId( aId ),
- iRequestQueue( aQueue ), iCanceled( EFalse )
+ iObserver( aObserver ), iRequestObserver( aRequestObserver ), iFs( aFs ), iBitmapHandle( 0 ),
+ iRequestId( aId ), iRequestQueue( aQueue ), iCanceled( EFalse )
{
CActiveScheduler::Add( this );
TN_DEBUG2( "CThumbnaiRequestActive::CThumbnailRequestActive() AO's priority = %d", Priority());
@@ -244,10 +246,38 @@
iTimer->Cancel();
- if (iRequestType == EReqDeleteThumbnails || iCanceled ||
- iRequestType == EReqRenameThumbnails)
+ if (iRequestType == EReqDeleteThumbnails)
{
- TN_DEBUG1( "CThumbnailRequestActive::RunL() - rename/delete/canceled" );
+ 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 );
+#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();
@@ -287,7 +317,7 @@
TCallBack(TimerCallBack, this));
SetActive();
}
- else if ( iStatus.Int())
+ else if ( iStatus.Int() )
{
TN_DEBUG2( "CThumbnailRequestActive::RunL() - error (%d) occured", iStatus.Int() );
// An error occurred
@@ -527,17 +557,26 @@
TN_DEBUG1( "CThumbnailRequestActive::HandleError() - session reconnected");
}
}
- iCallbackThumbnail->Set( NULL, iClientData );
+
+ if (iRequestObserver && iRequestType == EReqDeleteThumbnails)
+ {
+ TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - iRequestObserver->ThumbnailRequestReady %d", iParams.iRequestId );
+ iRequestObserver->ThumbnailRequestReady(iError, ERequestDeleteThumbnails ,iParams.iRequestId);
+ }
+ else
+ {
+ iCallbackThumbnail->Set( NULL, iClientData );
- // don't leak internal TNM codes
- if (iError == KThumbnailErrThumbnailNotFound)
- {
- iError = KErrNotFound;
+ // don't leak internal TNM codes
+ if (iError == KThumbnailErrThumbnailNotFound)
+ {
+ iError = KErrNotFound;
+ }
+
+ TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady %d", iParams.iRequestId );
+ iObserver.ThumbnailReady( iError, *iCallbackThumbnail, iParams.iRequestId );
}
- TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady %d", iParams.iRequestId );
- iObserver.ThumbnailReady( iError, *iCallbackThumbnail, iParams.iRequestId );
-
iError = KErrNone;
}
@@ -589,6 +628,7 @@
iParams.iQualityPreference = aQualityPreference;
iParams.iThumbnailSize = aThumbnailSize;
iParams.iThumbnailId = aThumbnailId;
+ iParams.iOverwrite = EFalse;
User::LeaveIfError( iFile.Duplicate( aFile ));
@@ -624,6 +664,7 @@
iParams.iQualityPreference = aQualityPreference;
iParams.iThumbnailSize = aThumbnailSize;
iParams.iThumbnailId = aThumbnailId;
+ iParams.iOverwrite = EFalse;
iTargetUri = aTargetUri;
}
@@ -657,6 +698,7 @@
iParams.iThumbnailSize = aThumbnailSize;
iParams.iThumbnailId = aThumbnailId;
iParams.iFileName = aPath;
+ iParams.iOverwrite = EFalse;
iPath = aPath;
iTargetUri = aTargetUri;
@@ -671,7 +713,8 @@
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 aGeneratePersistentSizesOnly, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize,
+ TBool aOverwrite)
{
iRequestType = EReqSetThumbnailBuffer;
@@ -691,6 +734,7 @@
iParams.iFlags = aFlags;
iParams.iQualityPreference = aQualityPreference;
iParams.iThumbnailId = aThumbnailId;
+ iParams.iOverwrite = aOverwrite;
iTargetUri = aTargetUri;
}
@@ -704,7 +748,8 @@
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 aGeneratePersistentSizesOnly, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize,
+ TBool aOverwrite)
{
iClientData = aClientData;
iParams.iControlFlags = (aGeneratePersistentSizesOnly ?
@@ -721,6 +766,7 @@
iParams.iQualityPreference = aQualityPreference;
iParams.iThumbnailId = aThumbnailId;
iParams.iFileName = aTargetUri;
+ iParams.iOverwrite = aOverwrite;
iTargetUri = aTargetUri;
@@ -769,6 +815,7 @@
iParams.iFlags = aFlags;
iParams.iQualityPreference = aQualityPreference;
iParams.iThumbnailId = aThumbnailId;
+ iParams.iOverwrite = EFalse;
iPath = aPath;
iOrientation = aOrientation;