imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp
branchRCL_3
changeset 11 dea39715fc05
parent 0 2014ca87e772
child 13 ee674526fac5
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp	Mon Mar 15 12:41:55 2010 +0200
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp	Wed Mar 31 22:04:49 2010 +0300
@@ -109,28 +109,28 @@
     User::LeaveIfError( iFs.ShareProtected());
 
     if ( !RFbsSession::GetSession() )
+        {
+        // We need to connect to Fbs (first user in this thread)
+        // Maintain a reference count in TLS
+        User::LeaveIfError( iFbsSession.Connect()); 
+        Dll::SetTls( (TAny*)1 ); 
+        TN_DEBUG2( "CThumbnailManagerImpl::ConstructL() - update sessionCount == %d to TLS", 1 );
+        }
+    else
+        {
+        TInt sessionCount = (TInt)Dll::Tls(); 
+        if( sessionCount++ > 0 )
             {
-            // We need to connect to Fbs (first user in this thread)
-            // Maintain a reference count in TLS
-            User::LeaveIfError( iFbsSession.Connect()); 
-            Dll::SetTls( (TAny*)1 ); 
-		    TN_DEBUG2( "CThumbnailManagerImpl::ConstructL() - update sessionCount == %d to TLS", 1 );
-            }
+            // Increase the reference count in TLS
+            Dll::SetTls( (TAny*)sessionCount );
+            TN_DEBUG2( "CThumbnailManagerImpl::ConstructL() - update sessionCount == %d to TLS", sessionCount );
+            } 
         else
             {
-            TInt sessionCount = (TInt)Dll::Tls(); 
-            if( sessionCount++ > 0 )
-                {
-                // Increase the reference count in TLS
-                Dll::SetTls( (TAny*)sessionCount );
-			    TN_DEBUG2( "CThumbnailManagerImpl::ConstructL() - update sessionCount == %d to TLS", sessionCount );
-                } 
-            else
-                {
-                // Fbs connection was available in the beginning, no need to
-                // increase the reference count
-                }
+            // Fbs connection was available in the beginning, no need to
+            // increase the reference count
             }
+        }
     
     // request processor
     iRequestQueue = CThumbnailRequestQueue::NewL();
@@ -151,26 +151,28 @@
     
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
 
+    TInt priority = ValidatePriority(aPriority);
+    
     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-        ( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue );
+        ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
     CleanupStack::PushL( getThumbnailActive );
     
     if(aObjectSource.Id() > 0)
         {
         getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags,
-            iQualityPreference, iSize, iDisplayMode, aPriority, aClientData, aGeneratePersistentSizesOnly,
+            iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly,
             KNullDesC, iThumbnailSize);
         }
     else if ( aObjectSource.Uri().Length())
         {
         getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags,
-            iQualityPreference, iSize, iDisplayMode, aPriority, aClientData, aGeneratePersistentSizesOnly,
+            iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly,
             KNullDesC, iThumbnailSize );
         }
     else
         {
         getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), iFlags,
-            iQualityPreference, iSize, iDisplayMode, aPriority, aClientData, aGeneratePersistentSizesOnly,
+            iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly,
             KNullDesC, iThumbnailSize );
         }
     
@@ -210,12 +212,14 @@
 
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
 
+    TInt priority = ValidatePriority(aPriority);
+    
     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-        ( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue );
+        ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
     CleanupStack::PushL( getThumbnailActive );
     
     getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, iFlags,
-                       iQualityPreference, iSize, iDisplayMode, aPriority, aClientData,
+                       iQualityPreference, iSize, iDisplayMode, priority, aClientData,
                        EFalse, KNullDesC, iThumbnailSize );
     
     iRequestQueue->AddRequestL( getThumbnailActive );
@@ -242,20 +246,22 @@
 
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
 
+    TInt priority = ValidatePriority(aPriority);
+    
     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-        ( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue );
+        ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
     CleanupStack::PushL( getThumbnailActive );
 
     if ( aObjectSource.Uri().Length())
         {
         getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags,
-            iQualityPreference, iSize, iDisplayMode, aPriority, aClientData,
+            iQualityPreference, iSize, iDisplayMode, priority, aClientData,
             EFalse, aTargetUri, iThumbnailSize );
         }
     else
         {
         getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), 
-            iFlags, iQualityPreference, iSize, iDisplayMode, aPriority, aClientData,
+            iFlags, iQualityPreference, iSize, iDisplayMode, priority, aClientData,
             EFalse, aTargetUri, iThumbnailSize );
         }
     
@@ -281,8 +287,10 @@
 
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
 
+    TInt priority = ValidatePriority(aPriority);
+    
     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-        ( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue );
+        ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
     CleanupStack::PushL( getThumbnailActive );
     
     if ( aObjectSource.Uri().Length() &&
@@ -291,7 +299,7 @@
         {
         getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), aObjectSource.Id(),
             aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode,
-            aPriority, aClientData, EFalse, aObjectSource.Uri(), iThumbnailSize);
+            priority, aClientData, EFalse, aObjectSource.Uri(), iThumbnailSize);
         }
     
     iRequestQueue->AddRequestL( getThumbnailActive );
@@ -318,8 +326,10 @@
 
 		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
 
+		TInt priority = ValidatePriority(aPriority);
+		
 		CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-			( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue );
+			( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
 		
 		CleanupStack::PushL( getThumbnailActive );
 		
@@ -328,14 +338,14 @@
 			// from bitmap
 			getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(),
 						 aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference,
-						 iSize, iDisplayMode, aPriority, NULL, ETrue,
+						 iSize, iDisplayMode, priority, NULL, ETrue,
 						 aObjectSource.Uri(), EUnknownThumbnailSize);
 			}
 		else if( !aObjectSource.Buffer() )
 			{        
 			getThumbnailActive->GetThumbnailL( aObjectSource.Id(), 
 						 aObjectSource.Uri(), iFlags, iQualityPreference, iSize,
-						 iDisplayMode, aPriority, NULL, ETrue, aObjectSource.Uri(), 
+						 iDisplayMode, priority, NULL, ETrue, aObjectSource.Uri(), 
 						 EUnknownThumbnailSize);      
 			}
 		else
@@ -343,7 +353,7 @@
 			// from buffer
 			getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(),
 						 aObjectSource.Id(), aObjectSource.MimeType(), iFlags,
-						 iQualityPreference, iSize, iDisplayMode, aPriority, NULL,
+						 iQualityPreference, iSize, iDisplayMode, priority, NULL,
 						 ETrue, aObjectSource.Uri(), EUnknownThumbnailSize);
 			}
 		
@@ -563,9 +573,11 @@
     {
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
     
+    TInt priority = ValidatePriority(aNewPriority);
+    
     TN_DEBUG2( "CThumbnailManagerImpl::ChangePriority() - request ID: %d", aId );
     
-    return iRequestQueue->ChangePriority(aId, aNewPriority);
+    return iRequestQueue->ChangePriority(aId, priority);
     }
 
 // ---------------------------------------------------------------------------
@@ -605,12 +617,14 @@
     
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
     
+    TInt priority = ValidatePriority(aPriority);
+    
     CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-        ( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue );
+        ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue );
     CleanupStack::PushL( getThumbnailActive );
     
     getThumbnailActive->UpdateThumbnailsL( aPath, aItemId, iFlags, iQualityPreference,
-            iDisplayMode, aPriority, aOrientation, aModified );
+            iDisplayMode, priority, aOrientation, aModified );
     
     iRequestQueue->AddRequestL( getThumbnailActive );
     CleanupStack::Pop( getThumbnailActive );
@@ -618,4 +632,27 @@
     iRequestQueue->Process();
     }
 
+// ---------------------------------------------------------------------------
+// CThumbnailManagerImpl::ValidatePriority()
+// Check that given priority is in range of CActive::TPriority 
+// ---------------------------------------------------------------------------
+//
+TInt CThumbnailManagerImpl::ValidatePriority( const TInt aPriority )
+    {
+    if (aPriority < CActive::EPriorityIdle)
+        {
+        TN_DEBUG2( "CThumbnailManagerImpl::ValidatePriority() - priority %d too low for CActive", aPriority );
+        return CActive::EPriorityIdle;
+        }
+    else if (aPriority > CActive::EPriorityHigh)
+        {
+        TN_DEBUG2( "CThumbnailManagerImpl::ValidatePriority() - priority %d too high for CActive", aPriority );
+        return CActive::EPriorityHigh;
+        }
+    else
+        {
+        return aPriority;
+        }
+    }
+
 // End of file