imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtask.cpp
branchRCL_3
changeset 9 dea39715fc05
parent 5 82749d516180
child 14 ad31f4183ddc
equal deleted inserted replaced
8:7403edfcf0fb 9:dea39715fc05
    83 // ---------------------------------------------------------------------------
    83 // ---------------------------------------------------------------------------
    84 //
    84 //
    85 void CThumbnailTask::StartL()
    85 void CThumbnailTask::StartL()
    86     {
    86     {
    87     TN_DEBUG3( "CThumbnailTask(0x%08x)::StartL() iState == %d ", this, iState );
    87     TN_DEBUG3( "CThumbnailTask(0x%08x)::StartL() iState == %d ", this, iState );
    88     __ASSERT_DEBUG(( iState != ERunning ), ThumbnailPanic( EAlreadyRunning ));
    88     __ASSERT_DEBUG(( iState != ERunning ), ThumbnailPanic( EThumbnailAlreadyRunning ));
    89     iState = ERunning;
    89     iState = ERunning;
    90     }
    90     }
    91 
    91 
    92 
    92 
    93 // ---------------------------------------------------------------------------
    93 // ---------------------------------------------------------------------------
   172 // ---------------------------------------------------------------------------
   172 // ---------------------------------------------------------------------------
   173 // CThumbnailTask::SetMessageData()
   173 // CThumbnailTask::SetMessageData()
   174 // ---------------------------------------------------------------------------
   174 // ---------------------------------------------------------------------------
   175 //
   175 //
   176 void CThumbnailTask::SetMessageData( const TThumbnailServerRequestId&
   176 void CThumbnailTask::SetMessageData( const TThumbnailServerRequestId&
   177     aRequestId, const RMessage2& aMessage )
   177     aRequestId, const RMessage2& aMessage, const RThread& aClientThread )
   178     {
   178     {
   179     iMessage = aMessage;
   179     iMessage = aMessage;
   180     iRequestId = aRequestId;
   180     iRequestId = aRequestId;
       
   181     
       
   182     if ( iMessage.Handle())
       
   183         {
       
   184         // copy client thread handle
       
   185         iClientThread.Duplicate(aClientThread);
       
   186         }
       
   187     else
       
   188         {
       
   189         TN_DEBUG2( "CThumbnailTask(0x%08x)::ClientThreadAlive() - message null", this);
       
   190         }
   181     }
   191     }
   182 
   192 
   183 // ---------------------------------------------------------------------------
   193 // ---------------------------------------------------------------------------
   184 // CThumbnailTask::SetMessageData()
   194 // CThumbnailTask::SetMessageData()
   185 // ---------------------------------------------------------------------------
   195 // ---------------------------------------------------------------------------
   220 //
   230 //
   221 void CThumbnailTask::CancelMessage()
   231 void CThumbnailTask::CancelMessage()
   222     {
   232     {
   223     if ( iMessage.Handle())
   233     if ( iMessage.Handle())
   224         {
   234         {
   225         iMessage.Complete( KErrCancel );
   235         if ( ClientThreadAlive() )
       
   236             {
       
   237             iMessage.Complete( KErrCancel );
       
   238             }
       
   239         
   226         ResetMessageData();
   240         ResetMessageData();
   227         }
   241         }
   228     }
   242     }
   229 
   243 
   230 // ---------------------------------------------------------------------------
   244 // ---------------------------------------------------------------------------
   232 // Checks if client thread is still alive and RMessage2 handle valid.
   246 // Checks if client thread is still alive and RMessage2 handle valid.
   233 // ---------------------------------------------------------------------------
   247 // ---------------------------------------------------------------------------
   234 //
   248 //
   235 TBool CThumbnailTask::ClientThreadAlive(const TBool aGetThread)
   249 TBool CThumbnailTask::ClientThreadAlive(const TBool aGetThread)
   236     {
   250     {
       
   251     TN_DEBUG1( "CThumbnailTask::ClientThreadAlive()");
       
   252     
   237     if ( iMessage.Handle())
   253     if ( iMessage.Handle())
   238         {
   254         {
   239         if (aGetThread)
   255         if (aGetThread)
   240             {
   256             {
   241             // get client thread
   257             // get client thread