diff -r dea39715fc05 -r ee674526fac5 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp Wed Mar 31 22:04:49 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp Wed Apr 14 16:16:51 2010 +0300 @@ -36,6 +36,7 @@ #include "thumbnailcenrep.h" #include "thumbnailmemorycardobserver.h" #include "tmgetimei.h" +#include "thumbnailfetchedchecker.h" _LIT8( KThumbnailMimeWildCard, "*" ); @@ -73,7 +74,7 @@ ERequestThumbByBufferAsync, ERequestSetThumbnailByBuffer, EDeleteThumbnailsById, - EReserved1, + ERenameThumbnails, EUpdateThumbnails, ERequestSetThumbnailByBitmap, EThumbnailServerRequestCount, @@ -96,7 +97,7 @@ CPolicyServer::ECustomCheck, // ERequestThumbByBufferAsync CPolicyServer::ECustomCheck, // ERequestSetThumbnailByBuffer CPolicyServer::ECustomCheck, // EDeleteThumbnailsById - CPolicyServer::ECustomCheck, + CPolicyServer::ECustomCheck, // ERenameThumbnails CPolicyServer::ECustomCheck, // EUpdateThumbnails CPolicyServer::ECustomCheck, // ERequestSetThumbnailByBitmap CPolicyServer::ECustomCheck, // EThumbnailServerRequestCount @@ -142,7 +143,8 @@ case EGetMimeTypeList: case ERequestSetThumbnailByBuffer: case EDeleteThumbnailsById: - case EUpdateThumbnails: + case EUpdateThumbnails: + case ERenameThumbnails: case ERequestSetThumbnailByBitmap: { if( aMsg.HasCapability( ECapabilityReadDeviceData ) && @@ -152,8 +154,6 @@ } break; } - - case EReserved1: case EThumbnailServerRequestCount: default: { @@ -254,6 +254,7 @@ //OpenStoresL(); AddUnmountObserversL(); + iFetchedChecker = CThumbnailFetchedChecker::NewL(); } @@ -267,6 +268,7 @@ iShutdown = ETrue; + delete iFetchedChecker; delete iShutdownObserver; delete iProcessor; @@ -536,6 +538,10 @@ { TN_DEBUG1( "CThumbnailServer::StoreThumbnailL() - file doesn't exists anymore, skip store!"); } + if( iFetchedChecker ) + { + iFetchedChecker->SetFetchResult( aPath, KErrNone ); + } } @@ -547,8 +553,23 @@ aThumbnail, TDesC8* & aData, const TThumbnailSize aThumbnailSize, TSize &aOriginalSize ) { TN_DEBUG3( "CThumbnailServer::FetchThumbnailL(aPath=%S aThumbnailSize=%d)", &aPath, aThumbnailSize ); - - StoreForPathL( aPath )->FetchThumbnailL( aPath, aThumbnail, aData, aThumbnailSize, aOriginalSize); + if( iFetchedChecker ) + { + TInt err( iFetchedChecker->LastFetchResult( aPath ) ); + if ( err == KErrNone ) // To avoid useless sql gets that fails for sure + { + TRAP( err, StoreForPathL( aPath )->FetchThumbnailL( aPath, aThumbnail, aData, aThumbnailSize, aOriginalSize) ); + if ( err != KErrNone ) + { + iFetchedChecker->SetFetchResult( aPath, err ); + } + } + User::LeaveIfError( err ); + } + else + { + StoreForPathL( aPath )->FetchThumbnailL( aPath, aThumbnail, aData, aThumbnailSize, aOriginalSize); + } } @@ -600,6 +621,10 @@ TN_DEBUG2( "CThumbnailServer::DeleteThumbnailsL(%S)", &aPath); StoreForPathL( aPath )->DeleteThumbnailsL( aPath ); + if( iFetchedChecker ) + { + iFetchedChecker->SetFetchResult( aPath, KErrNone ); + } } // ----------------------------------------------------------------------------- @@ -1193,6 +1218,17 @@ } // ----------------------------------------------------------------------------- +// Renames thumbnails. +// ----------------------------------------------------------------------------- +// +void CThumbnailServer::RenameThumbnailsL( const TDesC& aCurrentPath, const TDesC& aNewPath ) + { + TN_DEBUG2( "CThumbnailServer::RenameThumbnailsL(%S)", &aCurrentPath); + + StoreForPathL( aCurrentPath )->RenameThumbnailsL( aCurrentPath, aNewPath ); + } + +// ----------------------------------------------------------------------------- // CThumbnailServer::MimeTypeFromFileExt() // ----------------------------------------------------------------------------- //