imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmdsquerytask.cpp
branchRCL_3
changeset 5 82749d516180
parent 0 2014ca87e772
child 9 2eb74cf6572e
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmdsquerytask.cpp	Tue Feb 02 00:23:15 2010 +0200
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmdsquerytask.cpp	Fri Feb 19 23:07:36 2010 +0200
@@ -90,8 +90,8 @@
             if( iUpdateToDb)
                 {
                 //update IDs to database by Path
-                if (iMessage.Handle())
-                    {
+                if (ClientThreadAlive(EFalse))
+                    {               
                     TInt err = iMessage.Read( 0, iRequestParams );
                     if( err == KErrNone)
                         {
@@ -101,7 +101,7 @@
                     }
                 }
     
-           // return path to client side            
+            // return path to client side            
             ReturnPath(object->Uri());
             }
         else if (iQueryType == EId )
@@ -119,7 +119,7 @@
                 else
                     {
                     // add Id to message
-                    if (iMessage.Handle())
+                    if (ClientThreadAlive(EFalse))
                         {
                         TInt ret = iMessage.Read( 0, iRequestParams );
                         if( ret == KErrNone)
@@ -134,36 +134,48 @@
             
             // complete the message with a code from which client side
             // knows to make a new request using the path
-            Complete( KThumbnailErrThumbnailNotFound );
-            ResetMessageData();
+            if (ClientThreadAlive(EFalse))
+                {  
+                Complete( KThumbnailErrThumbnailNotFound );
+                ResetMessageData();
+                }
             }
         else
             {
             TN_DEBUG1( "CThumbnailMDSQueryTask::HandleQueryCompleted() - Don't ever come here" );
-            Complete( KErrNotFound );
-            ResetMessageData();
+            if (ClientThreadAlive(EFalse))
+                {  
+                Complete( KErrNotFound );
+                ResetMessageData();
+                }
             }
         }
     else
         {
         TN_DEBUG1( "CThumbnailMDSQueryTask::HandleQueryCompleted() - No results." );
         
-	        if( iQueryType == EId )
-	            {
-	               if( iUpdateToDb)
-	                    {
-	                    TN_DEBUG2( "CThumbnailMDSQueryTask::HandleQueryCompleted() delete %S", &iUri );
-	                    TRAP_IGNORE( iServer.DeleteThumbnailsL( iUri ) );
-	                    }
-	               
-	            Complete( KThumbnailErrThumbnailNotFound );
-	            ResetMessageData();
-	            }
-	        else 
-	            {
-	            Complete( KErrNotFound );
-	            ResetMessageData();
-            	}
+        if( iQueryType == EId )
+            {
+            if( iUpdateToDb)
+                {
+                TN_DEBUG2( "CThumbnailMDSQueryTask::HandleQueryCompleted() delete %S", &iUri );
+                TRAP_IGNORE( iServer.DeleteThumbnailsL( iUri ) );
+                }
+               
+            if (ClientThreadAlive(EFalse))
+                {     
+                Complete( KThumbnailErrThumbnailNotFound );
+                ResetMessageData();
+                }
+            }
+        else 
+            {
+            if (ClientThreadAlive(EFalse))
+                {  
+                Complete( KErrNotFound );
+                ResetMessageData();
+                }
+            }
         }
    }
 
@@ -178,6 +190,15 @@
 
     CThumbnailTask::StartL();
 
+    // get client thread
+    TInt err = iMessage.Client( iClientThread );
+    if (err != KErrNone)
+        {
+        TN_DEBUG2( "CThumbnailTask(0x%08x)::ClientThreadAlive() - client thread not found", this);
+    
+        ResetMessageData();
+        }
+    
     // start query
     iQuery->FindL();
     }
@@ -232,20 +253,17 @@
 //
 void CThumbnailMDSQueryTask::ReturnPath(const TDesC& aUri)
     {
-    if ( iMessage.Handle())
+    if ( ClientThreadAlive(EFalse) )
         {
         // add path to message
-        if (iMessage.Handle())
+        TInt ret = iMessage.Read( 0, iRequestParams );      
+        if(ret == KErrNone)
             {
-            TInt ret = iMessage.Read( 0, iRequestParams );      
-            if(ret == KErrNone)
-                {
-                TThumbnailRequestParams& params = iRequestParams();
-                params.iFileName = aUri;
-                ret = iMessage.Write( 0, iRequestParams );
-                }
+            TThumbnailRequestParams& params = iRequestParams();
+            params.iFileName = aUri;
+            ret = iMessage.Write( 0, iRequestParams );
             }
-    
+            
         // complete the message with a code from which client side
         // knows to make a new request using the path
         Complete( KThumbnailErrThumbnailNotFound );