imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp
branchRCL_3
changeset 10 ee674526fac5
parent 9 dea39715fc05
child 11 85a88bc05e45
--- 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()
 // -----------------------------------------------------------------------------
 //