imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestqueue.cpp
changeset 54 48dd0f169f0d
parent 42 2e2a89493e2b
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestqueue.cpp	Fri Sep 03 10:29:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,299 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Processor object for running thumbnail requests
-*
-*/
-
-
-#include "thumbnailrequestqueue.h"
-#include "thumbnailrequestactive.h"
-#include "thumbnaillog.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "thumbnailrequestqueueTraces.h"
-#endif
-
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestQueue::NewL()
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CThumbnailRequestQueue* CThumbnailRequestQueue::NewL()
-    {
-    CThumbnailRequestQueue* self = new( ELeave )CThumbnailRequestQueue();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestQueue::CThumbnailRequestQueue()
-// C++ default constructor can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-//
-CThumbnailRequestQueue::CThumbnailRequestQueue()
-    {
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestQueue::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestQueue::ConstructL()
-    {
-    iActiveRequests = 0;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestQueue::~CThumbnailRequestQueue()
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-CThumbnailRequestQueue::~CThumbnailRequestQueue()
-    {
-    TN_DEBUG1( "CThumbnailRequestQueue::~CThumbnailRequestQueue()");
-    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_CTHUMBNAILREQUESTQUEUE, "CThumbnailRequestQueue::~CThumbnailRequestQueue" );
-    
-    iRequests.ResetAndDestroy();
-    
-    TN_DEBUG1( "CThumbnailRequestQueue::~CThumbnailRequestQueue() - All requests deleted");
-    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTQUEUE_CTHUMBNAILREQUESTQUEUE, "CThumbnailRequestQueue::~CThumbnailRequestQueue - All requests deleted" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestQueue::Process()
-// Activates next request if possible.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestQueue::Process()
-    {
-    TN_DEBUG1( "CThumbnailRequestQueue::Process()");
-    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process" );
-    
-    while ( (iActiveRequests < KMaxClientRequests) &&
-            (iRequests.Count() > iActiveRequests) )
-        {             
-        CThumbnailRequestActive* selectedRequest = NULL;
-        TInt priority( KMinTInt );
-        TInt reqPriority;
-        CThumbnailRequestActive* request = NULL;
-        
-        for ( TInt i = 0; i < iRequests.Count(); i++ )
-           {
-           request = iRequests[i];
-
-           // this task is not yet activated or processed
-           if( request && !request->RequestCompleted() && !request->IsRequestActive()  )
-               {
-               TN_DEBUG4( "CThumbnailRequestQueue::Process() - candidate at %d, id = %d, (0x%08x)", i, 
-                       request->RequestId(), 
-                       request);
-               OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process;request->RequestId()=%u", request->RequestId() );
-               OstTrace1( TRACE_NORMAL, DUP5_CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process;request=%o", request );
-               
-               reqPriority = request->Priority();
-               if ( reqPriority > priority )
-                   {
-                   priority = reqPriority;
-                   selectedRequest = request;
-                   }
-               }
-           }
-        
-        // activate selected
-        if ( selectedRequest )
-           {
-           TN_DEBUG1( "CThumbnailRequestQueue::Process() - starting next request");
-           OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process - starting next request" );
-                    
-           iActiveRequests++;
-           
-           TRAPD(err, selectedRequest->StartL());
-           if (err != KErrNone)
-               {
-               TN_DEBUG1( "CThumbnailRequestQueue::Process() - starting request failed");
-               OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process - starting request failed" );
-               
-               selectedRequest->StartError(err);
-               }
-           }
-         else
-            {
-            break;
-            }
-        }
-    
-    TN_DEBUG3( "CThumbnailRequestQueue::Process() end - requests: %d, active requests: %d",
-               iRequests.Count(), iActiveRequests );
-    OstTraceExt2( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process;iRequests.Count()=%d;iActiveRequests=%d", iRequests.Count(), iActiveRequests );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestQueue::AddRequestL()
-// Adds new request to the queue.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestQueue::AddRequestL( CThumbnailRequestActive* aRequest )
-    {
-    RemoveCompleted(NULL);
-    iRequests.AppendL( aRequest );
-    
-    TN_DEBUG3( "CThumbnailRequestQueue::AddRequestL() end - requests: %d, active requests: %d",
-               iRequests.Count(), iActiveRequests );
-    OstTraceExt2( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_ADDREQUESTL, "CThumbnailRequestQueue::AddRequestL;iRequests.Count()=%d;iActiveRequests=%d", iRequests.Count(), iActiveRequests );
-    }
-
-void CThumbnailRequestQueue::RemoveCompleted( CThumbnailRequestActive* aRequestAO)
-    {       
-    //process completed queue and remove finished tasks
-    for ( TInt i = iRequests.Count() -1; i >= 0 && iRequests.Count(); i-- )
-         {
-         CThumbnailRequestActive* request = iRequests[i];
-         
-         // remove completed task if it's not active anymore and not this
-         if ( request->RequestCompleted() && !request->IsRequestActive() && aRequestAO != request)
-             {
-             // delete completed task
-             TN_DEBUG3( "CThumbnailRequestQueue::RemoveCompleted() - deleted id = %d (0x%08x)", request->RequestId(), request);
-             OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTQUEUE_REMOVECOMPLETED, "CThumbnailRequestQueue::RemoveCompleted;request=%o", request );
-             OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTQUEUE_REMOVECOMPLETED, "CThumbnailRequestQueue::RemoveCompleted;request->RequestId()=%u", request->RequestId() );
-             
-             delete request;
-             request = NULL;
-             iRequests.Remove( i );
-             }
-         }
-    
-    if(!iRequests.Count())
-        {
-        iRequests.Compress();
-        }
-     
-     TN_DEBUG3( "CThumbnailRequestQueue::RemoveCompleted() end - requests: %d, active requests: %d",
-                    iRequests.Count(), iActiveRequests );
-     OstTraceExt2( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTQUEUE_REMOVECOMPLETED, "CThumbnailRequestQueue::RemoveCompleted;iRequests.Count()=%d;iActiveRequests=%d", iRequests.Count(), iActiveRequests );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestQueue::CancelRequest()
-// Removes specific request from the queue.
-// ---------------------------------------------------------------------------
-//
-TInt CThumbnailRequestQueue::CancelRequest( const TThumbnailRequestId aRequestId )
-    {
-    TN_DEBUG2( "CThumbnailRequestQueue::CancelRequest() - request ID: %d", aRequestId);
-    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_CANCELREQUEST, "CThumbnailRequestQueue::CancelRequest;aRequestId=%u", aRequestId );
-    
-    TInt res = KErrNotFound;
-
-    for ( TInt i = iRequests.Count(); --i >= 0; )
-        {
-        CThumbnailRequestActive* request = iRequests[i];
-        if ( request->RequestId() == aRequestId )
-            {
-            if (iRequests[i]->IsActive()) 
-                {
-                // this doesn't yet actually cancel/complete the AO
-                iRequests[i]->AsyncCancel();
-                
-                TN_DEBUG2( "CThumbnailRequestQueue::CancelRequest() - canceled request ID: %d", aRequestId);
-                OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTQUEUE_CANCELREQUEST, "CThumbnailRequestQueue::CancelRequest;aRequestId=%u", aRequestId );
-                }
-            else
-                {
-                delete request;
-                request = NULL;
-                iRequests.Remove( i );
-                          
-                TN_DEBUG2( "CThumbnailRequestQueue::CancelRequest() - removed request ID: %d", aRequestId);
-                OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTQUEUE_CANCELREQUEST, "CThumbnailRequestQueue::CancelRequest;aRequestId=%u", aRequestId );
-                }
-
-            res = KErrNone;
-            break;
-            }
-        }
-    
-	RemoveCompleted(NULL);
-	
-    Process();
-    
-    return res;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestQueue::ChangeReqPriority()
-// Changes priority of a request.
-// ---------------------------------------------------------------------------
-//
-TInt CThumbnailRequestQueue::ChangePriority( const TThumbnailRequestId aRequestId,
-                                             const TInt aNewPriority )
-    {
-    TN_DEBUG1( "CThumbnailRequestQueue::ChangePriority()");
-    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_CHANGEPRIORITY, "CThumbnailRequestQueue::ChangePriority" );
-    
-    TInt err = KErrNotFound;
-    const TInt count = iRequests.Count();
-    
-    for ( TInt i( 0 ); i < count; i++ )
-        {
-        if ( iRequests[i]->RequestId() == aRequestId )
-            {
-            iRequests[i]->ChangePriority( aNewPriority );
-            
-            err = KErrNone;
-            break;
-            }
-        }
-    
-    return err;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailRequestQueue::RequestComplete()
-// Completes the request
-// ---------------------------------------------------------------------------
-//
-void CThumbnailRequestQueue::RequestComplete(CThumbnailRequestActive* aRequestAO)
-    {
-    TN_DEBUG2( "CThumbnailRequestQueue::RequestComplete(0x%08x)", aRequestAO);
-    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_REQUESTCOMPLETE, "CThumbnailRequestQueue::RequestComplete;aRequestAO=%o", aRequestAO );
-    
-    iActiveRequests--;
-    if(iActiveRequests <= -1)
-        {
-        iActiveRequests = 0;
-        }
-    
-    RemoveCompleted( aRequestAO );
-    
-    Process();
-    }
-
-
-// End of file