imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtaskprocessor.cpp
changeset 33 221be23823c5
parent 30 b67379558a75
child 39 1a8af2cd6858
equal deleted inserted replaced
31:d429f823a6b7 33:221be23823c5
   103     if(iPeriodicTimer)
   103     if(iPeriodicTimer)
   104        {
   104        {
   105        iPeriodicTimer->Cancel();
   105        iPeriodicTimer->Cancel();
   106        }
   106        }
   107     delete iPeriodicTimer;
   107     delete iPeriodicTimer;
   108     
   108     iPeriodicTimer = NULL;
   109     }
   109     }
   110 
   110 
   111 
   111 
   112 // ---------------------------------------------------------------------------
   112 // ---------------------------------------------------------------------------
   113 // CThumbnailTaskProcessor::AddTaskL()
   113 // CThumbnailTaskProcessor::AddTaskL()
   153             {
   153             {
   154             if ( task->State() != CThumbnailTask::ERunning )
   154             if ( task->State() != CThumbnailTask::ERunning )
   155                 {
   155                 {
   156                 // Remove task from queue
   156                 // Remove task from queue
   157                 delete task;
   157                 delete task;
       
   158                 task = NULL;
   158                 iTasks.Remove( i );
   159                 iTasks.Remove( i );
   159                 
   160                 
   160                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTask() - removed request ID: %d", aRequestId.iRequestId);
   161                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTask() - removed request ID: %d", aRequestId.iRequestId);
   161                 }
   162                 }
   162             else
   163             else
   163                 {
   164                 {
   164                 // Task is already running, canceled first
   165                 // Task is already running, canceled first
   165                 task->Cancel();
   166                 task->Cancel();
   166                 delete task;
   167                 delete task;
       
   168                 task = NULL;
   167                 iTasks.Remove( i );
   169                 iTasks.Remove( i );
   168                 cancel = ETrue;
   170                 cancel = ETrue;
   169                 
   171                 
   170                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTask() - canceled & removed request ID: %d", aRequestId.iRequestId);
   172                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTask() - canceled & removed request ID: %d", aRequestId.iRequestId);
   171                 }
   173                 }
   205     TBool cancel = EFalse;
   207     TBool cancel = EFalse;
   206     
   208     
   207     for ( TInt i = iTasks.Count(); --i >= 0; )
   209     for ( TInt i = iTasks.Count(); --i >= 0; )
   208         {
   210         {
   209         CThumbnailTask* task = iTasks[i];
   211         CThumbnailTask* task = iTasks[i];
       
   212         
   210         if ( task->RequestId().iSession == aSession)
   213         if ( task->RequestId().iSession == aSession)
   211             {
   214             {
   212             if ( task->State() != CThumbnailTask::ERunning )
   215             if ( task->State() != CThumbnailTask::ERunning )
   213                 {
   216                 {
   214                 TThumbnailRequestId id = task->RequestId().iRequestId;
   217                 TThumbnailRequestId id = task->RequestId().iRequestId;
   215                 
   218                 
   216                 // Remove task from queue
   219                 // Remove task from queue
   217                 delete task;
   220                 delete task;
       
   221                 task = NULL;
   218                 iTasks.Remove( i );
   222                 iTasks.Remove( i );
   219                 
   223                 
   220                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - removed request ID: %d", id);
   224                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - removed request ID: %d", id);
   221                 }
   225                 }
   222             else
   226             else
   226                 TThumbnailRequestId id = task->RequestId().iRequestId;
   230                 TThumbnailRequestId id = task->RequestId().iRequestId;
   227                 
   231                 
   228                 // Task is already running, canceled first
   232                 // Task is already running, canceled first
   229                 task->Cancel();
   233                 task->Cancel();
   230                 delete task;
   234                 delete task;
       
   235                 task = NULL;
   231                 iTasks.Remove( i );
   236                 iTasks.Remove( i );
   232                 cancel = ETrue;
   237                 cancel = ETrue;
   233                 
   238                 
   234                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - canceled & removed request ID: %d", id);
   239                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - canceled & removed request ID: %d", id);
   235                 }
   240                 }
   264             {
   269             {
   265             TThumbnailRequestId id = task->RequestId().iRequestId;
   270             TThumbnailRequestId id = task->RequestId().iRequestId;
   266             
   271             
   267             // Remove task from queue
   272             // Remove task from queue
   268             delete task;
   273             delete task;
       
   274             task = NULL;
   269             iTasks.Remove( i );
   275             iTasks.Remove( i );
   270             
   276             
   271             TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - removed request ID: %d", id);
   277             TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - removed request ID: %d", id);
   272             }
   278             }
   273         else
   279         else
   277             TThumbnailRequestId id = task->RequestId().iRequestId;
   283             TThumbnailRequestId id = task->RequestId().iRequestId;
   278             
   284             
   279             // Task is already running, canceled first
   285             // Task is already running, canceled first
   280             task->Cancel();
   286             task->Cancel();
   281             delete task;
   287             delete task;
       
   288             task = NULL;
   282             iTasks.Remove( i );
   289             iTasks.Remove( i );
   283             cancel = ETrue;
   290             cancel = ETrue;
   284             
   291             
   285             TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - canceled & removed request ID: %d", id);
   292             TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - canceled & removed request ID: %d", id);
   286             }
   293             }
   340         CThumbnailTask* task = iTasks[i];
   347         CThumbnailTask* task = iTasks[i];
   341         if ( task->State() == CThumbnailTask::EComplete )
   348         if ( task->State() == CThumbnailTask::EComplete )
   342             {
   349             {
   343             // Delete completed task
   350             // Delete completed task
   344             delete task;
   351             delete task;
       
   352             task = NULL;
   345             iTasks.Remove( i );
   353             iTasks.Remove( i );
   346             }
   354             }
   347         else
   355         else
   348             {
   356             {
   349             if( task->State() == CThumbnailTask::EIdle )
   357             if( task->State() == CThumbnailTask::EIdle )