imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp
changeset 54 48dd0f169f0d
parent 42 2e2a89493e2b
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp	Fri Sep 03 10:29:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,775 +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:  Implementation class of Thumbnail Manager.
- *
-*/
-
-
-#include <e32base.h>
-#include <akniconconfig.h>
-#include <fbs.h>
-#include <badesca.h>
-#include <centralrepository.h>
-
-#include <thumbnailmanager.h>
-
-#include "thumbnailmanagerimpl.h"
-#include "thumbnailrequestactive.h"
-#include "thumbnailprovider.h"
-#include "thumbnailsession.h"
-#include "thumbnailmanageruids.hrh"
-#include "thumbnailmanagerprivatecrkeys.h"
-#include "thumbnailpanic.h"
-
-#include "thumbnaildata.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "thumbnailmanagerimplTraces.h"
-#endif
-
-
-const TInt KThumbnailMimeTypeListGranularity = 8;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::~CThumbnailManagerImpl()
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-CThumbnailManagerImpl::~CThumbnailManagerImpl()
-    {
-    TN_DEBUG1( "CThumbnailManagerImpl::~CThumbnailManagerImpl() - start" );
-	OstTrace0( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_CTHUMBNAILMANAGERIMPL, "CThumbnailManagerImpl::~CThumbnailManagerImpl - start" );
-	
-    delete iRequestQueue;  
-    iRequestQueue = NULL;
-    
-    iSession.Close();
-    iFs.Close();
-
-    // Check if we need to disconnect Fbs
-    TInt sessionCount = (TInt)Dll::Tls(); 
-    if ( sessionCount > 0)
-        { 
-        if( --sessionCount == 0 )
-            {
-		    TN_DEBUG1( "CThumbnailManagerImpl::~CThumbnailManagerImpl() - Disconnect FBS" );
-            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_CTHUMBNAILMANAGERIMPL, "CThumbnailManagerImpl::~CThumbnailManagerImpl - Disconnect FBS" );
-            iFbsSession.Disconnect();
-            }
-	    TN_DEBUG2( "CThumbnailManagerImpl::~CThumbnailManagerImpl() - update sessionCount == %d to TLS", sessionCount );
-        OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILMANAGERIMPL_CTHUMBNAILMANAGERIMPL, "CThumbnailManagerImpl::~CThumbnailManagerImpl - update sessionCount == %d to TLS", sessionCount );
-        Dll::SetTls( (TAny*)sessionCount );
-        }
-
-    delete iMimeTypeList;
-    iMimeTypeList = NULL;
-	
-	TN_DEBUG1( "CThumbnailManagerImpl::~CThumbnailManagerImpl() - end" );
-    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILMANAGERIMPL_CTHUMBNAILMANAGERIMPL, "CThumbnailManagerImpl::~CThumbnailManagerImpl - end" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::NewLC()
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CThumbnailManagerImpl* CThumbnailManagerImpl::NewLC( MThumbnailManagerObserver&
-    aObserver )
-    {
-    CThumbnailManagerImpl* self = new( ELeave )CThumbnailManagerImpl( aObserver );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::CThumbnailManagerImpl()
-// C++ default constructor can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-//
-CThumbnailManagerImpl::CThumbnailManagerImpl( MThumbnailManagerObserver&
-    aObserver ): iObserver( aObserver ), iRequestObserver( NULL ), iDisplayMode(
-    KThumbnailDefaultDisplayMode ), iFlags( EDefaultFlags ), iQualityPreference
-    ( EOptimizeForQuality ), iRequestId( 0 )
-    {
-    // No implementation required
-    TN_DEBUG1( "CThumbnailManagerImpl::CThumbnailManagerImpl()" );
-    OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILMANAGERIMPL_CTHUMBNAILMANAGERIMPL, "CThumbnailManagerImpl::CThumbnailManagerImpl" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailManagerImpl::ConstructL()
-    {
-    TN_DEBUG1( "CThumbnailManagerImpl::ConstructL - start");
-    OstTrace0( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_CONSTRUCTL, "CThumbnailManagerImpl::ConstructL - start" );
-    
-    User::LeaveIfError( iSession.Connect());
-    User::LeaveIfError( iFs.Connect());
-    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 );
-        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_CONSTRUCTL, "CThumbnailManagerImpl::ConstructL - update sessionCount == %d to TLS", 1 );
-        }
-    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 );
-            OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILMANAGERIMPL_CONSTRUCTL, "CThumbnailManagerImpl::ConstructL - update sessionCount == %d to TLS", sessionCount );
-            } 
-        else
-            {
-            // Fbs connection was available in the beginning, no need to
-            // increase the reference count
-            TN_DEBUG1( "CThumbnailManagerImpl::ConstructL - no need to update sessionCount");
-            OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILMANAGERIMPL_CONSTRUCTL, "CThumbnailManagerImpl::ConstructL - no need to update sessionCount" );
-            }
-        }
-    
-    // request processor
-    iRequestQueue = CThumbnailRequestQueue::NewL();
-    
-    TN_DEBUG1( "CThumbnailManagerImpl::ConstructL - end");
-    OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILMANAGERIMPL_CONSTRUCTL, "CThumbnailManagerImpl::ConstructL - end" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::GetThumbnailL
-// Get a thumbnail for an object file.
-// ---------------------------------------------------------------------------
-//
-TThumbnailRequestId CThumbnailManagerImpl::GetThumbnailL(
-    CThumbnailObjectSource& aObjectSource, TAny* aClientData /*= NULL*/, const
-    TInt aPriority, TBool aGeneratePersistentSizesOnly)
-    {
-    iRequestId++;
-    TN_DEBUG4( "CThumbnailManagerImpl::GetThumbnailL() URI==%S, iThumbnailSize==%d, req %d", &aObjectSource.Uri(), iThumbnailSize, iRequestId );
-    OstTraceExt3( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_GETTHUMBNAILL, "CThumbnailManagerImpl::GetThumbnailL;aObjectSource.Uri()=%S;iThumbnailSize=%d;iRequestId=%d", aObjectSource.Uri(), iThumbnailSize, iRequestId );
-    
-    __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-
-    TInt priority = ValidatePriority(aPriority);
-    
-    CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-        ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
-    CleanupStack::PushL( getThumbnailActive );
-    
-    if(aObjectSource.Id() > 0)
-        {
-        getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), 
-            aObjectSource.MimeType(),iFlags, iQualityPreference, iSize, iDisplayMode, 
-            priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize);
-        }
-    else if ( aObjectSource.Uri().Length())
-        {
-        getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(),
-            aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, 
-            priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize );
-        }
-    else
-        {
-        getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), 
-            aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, 
-            priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize );
-        }
-    
-    iRequestQueue->AddRequestL( getThumbnailActive );
-    CleanupStack::Pop( getThumbnailActive );
-    
-    iRequestQueue->Process();
-    
-    TN_DEBUG2( "CThumbnailManagerImpl::GetThumbnailL() - request ID: %d", iRequestId );
-    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_GETTHUMBNAILL, "CThumbnailManagerImpl::GetThumbnailL;iRequestId=%u", iRequestId );
-    
-    return iRequestId;
-    }
-    
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::GetThumbnailL
-// Get a thumbnail for an object file.
-// ---------------------------------------------------------------------------
-//
-TThumbnailRequestId CThumbnailManagerImpl::GetThumbnailL(
-    CThumbnailObjectSource& aObjectSource, TAny* aClientData /*= NULL*/, const
-    TInt aPriority )
-    {
-    return GetThumbnailL( aObjectSource, aClientData, aPriority, EFalse );
-    }    
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::GetThumbnailL
-// Get a thumbnail for an object file.
-// ---------------------------------------------------------------------------
-//
-TThumbnailRequestId CThumbnailManagerImpl::GetThumbnailL( const TThumbnailId
-    aThumbnailId, TAny* aClientData /*= NULL*/, TInt aPriority)
-    {
-    iRequestId++;
-    TN_DEBUG4( "CThumbnailManagerImpl::GetThumbnailL() aThumbnailId==%d, iThumbnailSize==%d, req %d", aThumbnailId, iThumbnailSize, iRequestId );
-    OstTraceExt3( TRACE_NORMAL, DUP2_CTHUMBNAILMANAGERIMPL_GETTHUMBNAILL, "CThumbnailManagerImpl::GetThumbnailL;aThumbnailId=%u;iThumbnailSize=%u;iRequestId=%u", aThumbnailId, iThumbnailSize, iRequestId );
-
-    __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-
-    TInt priority = ValidatePriority(aPriority);
-    
-    CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-        ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
-    CleanupStack::PushL( getThumbnailActive );
-    
-    getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, KNullDesC8,
-            iFlags, iQualityPreference, iSize, iDisplayMode, priority, aClientData,
-            EFalse, KNullDesC, iThumbnailSize );
-    
-    iRequestQueue->AddRequestL( getThumbnailActive );
-    CleanupStack::Pop( getThumbnailActive );
-    
-    iRequestQueue->Process();
-    
-    TN_DEBUG2( "CThumbnailManagerImpl::GetThumbnailL() - request ID: %d", iRequestId );
-    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILMANAGERIMPL_GETTHUMBNAILL, "CThumbnailManagerImpl::GetThumbnailL;iRequestId=%u", iRequestId );
-    
-    return iRequestId;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::ImportThumbnailL
-// Import an image to be used as thumbnail for an object.
-// ---------------------------------------------------------------------------
-//
-TThumbnailRequestId CThumbnailManagerImpl::ImportThumbnailL(
-    CThumbnailObjectSource& aObjectSource, const TDesC& aTargetUri,
-    TAny* aClientData /*= NULL*/, const TInt aPriority)
-    {
-    iRequestId++;
-
-    __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-
-    TInt priority = ValidatePriority(aPriority);
-    
-    CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-        ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
-    CleanupStack::PushL( getThumbnailActive );
-
-    if ( aObjectSource.Uri().Length())
-        {
-        getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), 
-            aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, 
-            priority, aClientData, EFalse, aTargetUri, iThumbnailSize );
-        }
-    else
-        {
-        getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), 
-            aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode,
-            priority, aClientData, EFalse, aTargetUri, iThumbnailSize );
-        }
-    
-    iRequestQueue->AddRequestL( getThumbnailActive );
-    CleanupStack::Pop( getThumbnailActive );
-    
-    iRequestQueue->Process();
-    
-    TN_DEBUG2( "CThumbnailManagerImpl::ImportThumbnailL() - request ID: %d", iRequestId );
-    OstTrace1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_IMPORTTHUMBNAILL, "CThumbnailManagerImpl::ImportThumbnailL;iRequestId=%u", iRequestId );
-    
-    return iRequestId;
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::SetThumbnailL
-// Import an image to be used as thumbnail for an object.
-// ---------------------------------------------------------------------------
-//
-TThumbnailRequestId CThumbnailManagerImpl::SetThumbnailL( CThumbnailObjectSource& aObjectSource,
-    TAny* aClientData, TInt aPriority )
-    {
-    iRequestId++;
-
-    __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-
-    TInt priority = ValidatePriority(aPriority);
-    
-    CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-        ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
-    CleanupStack::PushL( getThumbnailActive );
-    
-    if (aObjectSource.Uri().Length() &&
-        aObjectSource.TargetUri().Length())
-        {
-        // from path
-        getThumbnailActive->SetThumbnailL( aObjectSource.Uri(),
-            aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, 
-            priority, aClientData, ETrue, aObjectSource.TargetUri(), iThumbnailSize, ETrue);
-        } 
-    else if (aObjectSource.Uri().Length() &&
-             aObjectSource.Bitmap() != NULL)
-        {
-        // from bitmap
-        getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(),
-            aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference, iSize, iDisplayMode,
-            priority, aClientData, ETrue, aObjectSource.Uri(), iThumbnailSize, ETrue);
-        } 
-    else if (aObjectSource.Uri().Length() &&
-             aObjectSource.Buffer() != NULL &&
-             aObjectSource.MimeType() != KNullDesC8)
-        {
-        // from buffer
-        getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), aObjectSource.Id(),
-            aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode,
-            priority, aClientData, ETrue, aObjectSource.Uri(), iThumbnailSize, ETrue);
-        }
-    
-    iRequestQueue->AddRequestL( getThumbnailActive );
-    CleanupStack::Pop( getThumbnailActive );
-
-    iRequestQueue->Process();
-    
-    TN_DEBUG2( "CThumbnailManagerImpl::SetThumbnailL() - request ID: %d", iRequestId );
-    OstTrace1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_SETTHUMBNAILL, "CThumbnailManagerImpl::SetThumbnailL;iRequestId=%u", iRequestId );
-    
-    return iRequestId;
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::CreateThumbnails
-// Create persistent size thumbnails for an object.
-// ---------------------------------------------------------------------------
-//
-TThumbnailRequestId CThumbnailManagerImpl::CreateThumbnails(
-	CThumbnailObjectSource& aObjectSource, TInt aPriority )
-	{
-	TRAPD(err,
-		TN_DEBUG2( "CThumbnailManagerImpl::CreateThumbnails() aObjectSource==%S ", &aObjectSource.Uri() );
-		OstTraceExt1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_CREATETHUMBNAILS, "CThumbnailManagerImpl::CreateThumbnails;aObjectSource.Uri()=%S", aObjectSource.Uri() );
-		iRequestId++;
-
-		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-
-		TInt priority = ValidatePriority(aPriority);
-		
-		CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-			( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
-		
-		CleanupStack::PushL( getThumbnailActive );
-		
-		if (aObjectSource.Bitmap())
-			{
-			// from bitmap
-			getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(),
-						 aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference,
-						 iSize, iDisplayMode, priority, NULL, ETrue,
-						 aObjectSource.Uri(), EUnknownThumbnailSize, EFalse);
-			}
-		else if( !aObjectSource.Buffer() )
-			{        
-			getThumbnailActive->GetThumbnailL( aObjectSource.Id(), 
-						 aObjectSource.Uri(), aObjectSource.MimeType(), iFlags, 
-						 iQualityPreference, iSize, iDisplayMode, priority, NULL, 
-						 ETrue, aObjectSource.Uri(), EUnknownThumbnailSize);      
-			}
-		else
-			{
-			// from buffer
-			getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(),
-						 aObjectSource.Id(), aObjectSource.MimeType(), iFlags,
-						 iQualityPreference, iSize, iDisplayMode, priority, NULL,
-						 ETrue, aObjectSource.Uri(), EUnknownThumbnailSize, EFalse);
-			}
-		
-		iRequestQueue->AddRequestL( getThumbnailActive );
-		
-		CleanupStack::Pop( getThumbnailActive );
-		
-		iRequestQueue->Process();
-		
-		TN_DEBUG2( "CThumbnailManagerImpl::CreateThumbnails() - request ID: %d", iRequestId );
-		OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_CREATETHUMBNAILS, "CThumbnailManagerImpl::CreateThumbnails;iRequestId=%u", iRequestId );
-	);
-	
-	if( err != KErrNone)
-	    {
-	    return err;
-	    }
-    
-    return iRequestId;		
-	}
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::DisplayMode()
-// Get the current display mode for thumbnail bitmaps.
-// ---------------------------------------------------------------------------
-//
-TDisplayMode CThumbnailManagerImpl::DisplayMode()const
-    {
-    return iDisplayMode;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::SetDisplayModeL()
-// Set the current display mode for thumbnail bitmaps.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailManagerImpl::SetDisplayModeL( const TDisplayMode aDisplayMode )
-    {
-    iDisplayMode = aDisplayMode;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::QualityPreference()
-// Get the current quality versus performance preference.
-// ---------------------------------------------------------------------------
-//
-CThumbnailManager::TThumbnailQualityPreference CThumbnailManagerImpl
-    ::QualityPreference()const
-    {
-    return iQualityPreference;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::SetQualityPreferenceL()
-// Set quality versus performance preference.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailManagerImpl::SetQualityPreferenceL( const
-    TThumbnailQualityPreference aQualityPreference )
-    {
-    iQualityPreference = aQualityPreference;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::ThumbnailSize()
-// Get the current desired size for thumbnail bitmaps.
-// ---------------------------------------------------------------------------
-//
-const TSize& CThumbnailManagerImpl::ThumbnailSize()const
-    {
-    return iSize;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::SetThumbnailSizeL()
-// Set desired size for thumbnail bitmaps.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailManagerImpl::SetThumbnailSizeL( const TSize& aThumbnailSize )
-    {
-    iSize = aThumbnailSize;
-    iThumbnailSize = ECustomThumbnailSize;
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::SetThumbnailSizeL()
-// Set desired size for thumbnail bitmaps.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailManagerImpl::SetThumbnailSizeL( const TThumbnailSize aThumbnailSize )
-    {
-    iThumbnailSize = aThumbnailSize;
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::Flags()
-// Get current flags for thumbnail generation.
-// ---------------------------------------------------------------------------
-//
-CThumbnailManager::TThumbnailFlags CThumbnailManagerImpl::Flags()const
-    {
-    return iFlags;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::SetFlagsL()
-// Set flags for thumbnail generation. Several flags may be enabled
-// by combining the values using bitwise or.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailManagerImpl::SetFlagsL( const TThumbnailFlags aFlags )
-    {
-    iFlags = aFlags;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::DeleteThumbnails()
-// Delete all thumbnails for a given object.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailManagerImpl::DeleteThumbnails( CThumbnailObjectSource&
-    aObjectSource )
-    {
-	TRAP_IGNORE(
-		iRequestId++;
-		TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() URI==%S ", &aObjectSource.Uri() );
-		OstTraceExt1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_DELETETHUMBNAILS, "CThumbnailManagerImpl::DeleteThumbnails;aObjectSource.Uri()=%S", aObjectSource.Uri() );
-
-		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-		
-		CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-			( iFs, iSession, iObserver, iRequestObserver, iRequestId, CActive::EPriorityIdle, 
-			  iRequestQueue );
-
-		CleanupStack::PushL( getThumbnailActive );
-		
-		const TDesC& uri = aObjectSource.Uri();
-		
-		if ( uri.Length())
-			{
-			getThumbnailActive->DeleteThumbnails( uri, 0, CActive::EPriorityIdle );
-			}
-		else
-			{
-			TInt err = aObjectSource.FileHandle().FullName( iFileNameBuf );
-			if ( !err )
-				{
-				getThumbnailActive->DeleteThumbnails( iFileNameBuf, 0, CActive::EPriorityIdle );
-				}
-			}
-		
-		iRequestQueue->AddRequestL( getThumbnailActive );
-		
-		CleanupStack::Pop( getThumbnailActive );
-		 
-		iRequestQueue->Process();   
-	);
-    }
-    
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::DeleteThumbnailsL()
-// Delete thumbnails by TThumbnailId.
-// ---------------------------------------------------------------------------
-//
-void CThumbnailManagerImpl::DeleteThumbnails( const TThumbnailId aItemId )
-    {
-	TRAP_IGNORE(
-		iRequestId++;
-		TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() aItemId==%d ", aItemId );
-		OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_DELETETHUMBNAILS, "CThumbnailManagerImpl::DeleteThumbnails;aItemId=%u", aItemId );
-		
-		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-		
-		CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-			( iFs, iSession, iObserver, iRequestObserver, iRequestId, CActive::EPriorityIdle, 
-			  iRequestQueue );
-		
-		CleanupStack::PushL( getThumbnailActive );
-		
-		getThumbnailActive->DeleteThumbnails( KNullDesC, aItemId, CActive::EPriorityIdle );
-		
-		iRequestQueue->AddRequestL( getThumbnailActive );
-		
-		CleanupStack::Pop( getThumbnailActive );
-		
-		iRequestQueue->Process();
-	);
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::CancelRequest()
-// Cancel a thumbnail operation.
-// ---------------------------------------------------------------------------
-//
-TInt CThumbnailManagerImpl::CancelRequest( const TThumbnailRequestId aId )
-    {
-    __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-    
-    TN_DEBUG2( "CThumbnailManagerImpl::CancelRequest() - request ID: %d", aId );
-    OstTrace1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_CANCELREQUEST, "CThumbnailManagerImpl::CancelRequest;aId=%u", aId );
-    
-    return iRequestQueue->CancelRequest(aId);
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::ChangePriority()
-// Change the priority of a queued thumbnail operation.
-// ---------------------------------------------------------------------------
-//
-TInt CThumbnailManagerImpl::ChangePriority( const TThumbnailRequestId aId,
-    const TInt aNewPriority )
-    {
-    __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-    
-    TInt priority = ValidatePriority(aNewPriority);
-    
-    TN_DEBUG2( "CThumbnailManagerImpl::ChangePriority() - request ID: %d", aId );
-    OstTrace1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_CHANGEPRIORITY, "CThumbnailManagerImpl::ChangePriority;aId=%u", aId );
-    
-    return iRequestQueue->ChangePriority(aId, priority);
-    }
-
-// ---------------------------------------------------------------------------
-// Get the list of supported file systems from server
-// ---------------------------------------------------------------------------
-//
-const CDesCArray& CThumbnailManagerImpl::GetSupportedMimeTypesL()
-    {
-    if ( !iMimeTypeList )
-        {
-        iMimeTypeList = new( ELeave )CDesCArraySeg(
-            KThumbnailMimeTypeListGranularity );
-        HBufC* buf = iSession.GetMimeTypeListL();
-        CleanupStack::PushL( buf );
-        TLex lex( *buf );
-        while ( !lex.Eos())
-            {
-            iMimeTypeList->AppendL( lex.NextToken());
-            }
-        CleanupStack::PopAndDestroy( buf );
-        }
-    return * iMimeTypeList;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::UpdateThumbnails()
-// Update thumbnails by given ID
-// ---------------------------------------------------------------------------
-//
-void CThumbnailManagerImpl::UpdateThumbnailsL( const TThumbnailId aItemId, const TDesC& aPath,
-                                               const TInt aOrientation, const TInt64 aModified, 
-                                               TInt aPriority )
-    {
-    iRequestId++;
-    TN_DEBUG4( "CThumbnailManagerImpl::UpdateThumbnailsL() URI==%S, aItemId==%d, req %d", &aPath, aItemId, iRequestId); 
-    OstTraceExt3( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_UPDATETHUMBNAILSL, "CThumbnailManagerImpl::UpdateThumbnailsL;aPath=%S;aItemId=%d;iRequestId=%d", aPath, aItemId, iRequestId );
-    
-    __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-    
-    TInt priority = ValidatePriority(aPriority);
-    
-    CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-        ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
-    CleanupStack::PushL( getThumbnailActive );
-    
-    getThumbnailActive->UpdateThumbnailsL( aPath, aItemId, iFlags, iQualityPreference,
-            iDisplayMode, priority, aOrientation, aModified );
-    
-    iRequestQueue->AddRequestL( getThumbnailActive );
-    CleanupStack::Pop( getThumbnailActive );
-    
-    iRequestQueue->Process();
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::RenameThumbnailsL()
-// Renames thumbnails by given path
-// ---------------------------------------------------------------------------
-//
-TThumbnailRequestId CThumbnailManagerImpl::RenameThumbnailsL( const TDesC& aCurrentPath, 
-        const TDesC& aNewPath, TInt aPriority )
-    {
-    iRequestId++;
-    TN_DEBUG3( "CThumbnailManagerImpl::RenameThumbnailsL() URI==%S, req %d", &aCurrentPath, iRequestId); 
-     OstTraceExt1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_RENAMETHUMBNAILSL, "CThumbnailManagerImpl::RenameThumbnailsL;aCurrentPath=%S", aCurrentPath );
-    
-    __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
-    
-    TInt priority = ValidatePriority(aPriority);
-    
-    CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL
-        ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
-    CleanupStack::PushL( getThumbnailActive );
-    
-    getThumbnailActive->RenameThumbnails( aCurrentPath, aNewPath, priority );
-    
-    iRequestQueue->AddRequestL( getThumbnailActive );
-    CleanupStack::Pop( getThumbnailActive );
-    
-    iRequestQueue->Process();
-    
-    return iRequestId;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::SetRequestObserver()
-// Adds optional request observer
-// ---------------------------------------------------------------------------
-//
-void CThumbnailManagerImpl::SetRequestObserver( MThumbnailManagerRequestObserver& aObserver )
-    {
-    iRequestObserver = NULL;
-    iRequestObserver = &aObserver;
-    }
-
-// ---------------------------------------------------------------------------
-// CThumbnailManagerImpl::RemoveRequestObserver()
-// Removes optional request observer
-// ---------------------------------------------------------------------------
-//
-void CThumbnailManagerImpl::RemoveRequestObserver()
-    {
-    if (iRequestObserver)
-        {
-        iRequestObserver = NULL;
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// 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 );
-        OstTrace1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_VALIDATEPRIORITY, "CThumbnailManagerImpl::ValidatePriority  - priority too low for CActive;aPriority=%d", aPriority );
-        return CActive::EPriorityIdle;
-        }
-    else if (aPriority > CActive::EPriorityHigh)
-        {
-        TN_DEBUG2( "CThumbnailManagerImpl::ValidatePriority() - priority %d too high for CActive", aPriority );
-        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_VALIDATEPRIORITY, "CThumbnailManagerImpl::ValidatePriority - priority too high for CActive;aPriority=%d", aPriority );
-        return CActive::EPriorityHigh;
-        }
-    else
-        {
-        return aPriority;
-        }
-    }
-
-// End of file