filemanager/GFLM/src/CGflmDirectoryListingCache.cpp
changeset 14 1957042d8c7e
parent 1 d1daf54a55b5
child 16 ada7962b4308
--- a/filemanager/GFLM/src/CGflmDirectoryListingCache.cpp	Tue Feb 02 00:03:31 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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:  Provides directory listing cache
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmDirectoryListingCache.h"
-#include "GFLM.hrh"
-#include "GflmUtils.h"
-#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <f32file.h>
-#else
-#include <f32file.h>
-#include <f32file_private.h>
-#endif
-#include <e32std.h>
-
-
-// CONSTANTS
-const TInt KListingGranularity = 0x2000; // 8KB
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::CGflmDirectoryListingCache
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmDirectoryListingCache::CGflmDirectoryListingCache(
-        RFs& aFss,
-        const TBool& aCancelIndicator ) :
-    iFss( aFss ),
-    iCancelIndicator( aCancelIndicator )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGflmDirectoryListingCache* CGflmDirectoryListingCache::NewL(
-        RFs& aFss,
-        const TBool& aCancelIndicator )
-    {
-    return new( ELeave ) CGflmDirectoryListingCache(
-        aFss, aCancelIndicator );
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::~CGflmDirectoryListingCache()
-// -----------------------------------------------------------------------------
-//
-CGflmDirectoryListingCache::~CGflmDirectoryListingCache()
-    {
-    delete iCache;
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::ClearCache()
-// -----------------------------------------------------------------------------
-//
-void CGflmDirectoryListingCache::ClearCache()
-    {
-    iClearCache = ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::ListingL()
-// Looks if a directory's listing is already loaded and returns it. If the
-// the listing is not found, it's read and added to the cache.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const CGflmDirectoryListingCache::CEntryArray*
-    CGflmDirectoryListingCache::ListingL( const TDesC& aDirectory )
-    {
-
-    TIMESTAMP( "GFLM listing fetch started: " )
-
-    // Clear directory cache first if needed
-    if ( iClearCache )
-        {
-        delete iCache;
-        iCache = NULL;
-        iClearCache = EFalse;
-        }
-
-    // Check if directory is already cached
-    TBool found( EFalse );
-    if ( iCache && !aDirectory.Compare( *( iCache->iDirectory ) ) )
-        {
-        found = ETrue;
-        }
-
-    if ( !found )
-        {
-        // Read directory to cache
-        CListingNamePair* newPair = CListingNamePair::NewLC( aDirectory );
-        GetDirL( *newPair );
-        CleanupStack::Pop( newPair );
-        delete iCache;
-        iCache = NULL;
-        iCache = newPair;
-        }
-
-    TIMESTAMP( "GFLM listing fetch ended: " )
-
-    return iCache->iListing;
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::GetDirL
-// -----------------------------------------------------------------------------
-//
-void CGflmDirectoryListingCache::GetDirL( CListingNamePair& aPair )
-    {
-    RDir dir;
-    User::LeaveIfError( dir.Open(
-        iFss,
-        *aPair.iDirectory,
-        KEntryAttNormal | KEntryAttDir ) );
-    CleanupClosePushL( dir );
-
-    TInt err( KErrNone );
-
-	do
-		{
-        if ( iCancelIndicator )
-            {
-            // User has canceled the operation, abort
-            User::Leave( KErrCancel );
-            }
-
-		err = dir.Read( iEntryBuffer );
-		if ( err == KErrNone || err == KErrEof )
-			{
-			TInt entryCount( iEntryBuffer.Count() );
-			if ( !entryCount )
-			    {
-				break;
-				}
-            for ( TInt i( 0 ); i < entryCount; i++ )
-			    {
-                const TEntry& entry( iEntryBuffer[ i ] );
-                TInt entrySize( EntrySize( entry ) );
-                aPair.iListing->AppendL( entry, entrySize );
-				}
-			}
-
-		}while ( err == KErrNone );
-
-    if ( err != KErrNone && err != KErrEof )
-        {
-        User::Leave( err );
-        }
-
-    CleanupStack::PopAndDestroy( &dir );
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::CListingNamePair::~CListingNamePair()
-// -----------------------------------------------------------------------------
-//
-CGflmDirectoryListingCache::CListingNamePair::~CListingNamePair()
-    {
-    delete iDirectory;
-
-    if ( iListing )
-        {
-        iListing->Reset();
-        delete iListing;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::CListingNamePair::ConstructL()
-// -----------------------------------------------------------------------------
-//
-void CGflmDirectoryListingCache::CListingNamePair::ConstructL(
-        const TDesC& aDirectory )
-    {
-    iDirectory = aDirectory.AllocL();
-    iListing = new( ELeave ) CEntryArray( KListingGranularity );
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDirectoryListingCache::CListingNamePair::NewLC()
-// -----------------------------------------------------------------------------
-//
-CGflmDirectoryListingCache::CListingNamePair*
-    CGflmDirectoryListingCache::CListingNamePair::NewLC(
-        const TDesC& aDirectory )
-    {
-    CListingNamePair* self = new ( ELeave ) CListingNamePair();
-    CleanupStack::PushL( self );
-    self->ConstructL( aDirectory );
-    return self;
-    }
-
-//  End of File