filemanager/GFLM/src/CGflmDriveResolver.cpp
branchRCL_3
changeset 38 491b3ed49290
parent 36 95243422089a
child 39 65326cf895ed
--- a/filemanager/GFLM/src/CGflmDriveResolver.cpp	Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-/*
-* Copyright (c) 2002-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:  Resolves different media types' drive letters
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CGflmDriveResolver.h"
-#include "CGflmDriveItem.h"
-#include "MGflmItemFilter.h"
-#include "GflmUtils.h"
-#include <f32file.h>
-#ifdef RD_MULTIPLE_DRIVE
- #include <driveinfo.h>
-#endif // RD_MULTIPLE_DRIVE
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::CGflmDriveResolver
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CGflmDriveResolver::CGflmDriveResolver( RFs& aFs ) :
-        iFs( aFs )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGflmDriveResolver* CGflmDriveResolver::NewL( RFs& aFs )
-    {
-    CGflmDriveResolver* self = new ( ELeave ) CGflmDriveResolver( aFs );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGflmDriveResolver::ConstructL()
-    {
-    User::LeaveIfError( iCs.CreateLocal() );
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::~CGflmDriveResolver
-//
-// -----------------------------------------------------------------------------
-//
-CGflmDriveResolver::~CGflmDriveResolver()
-    {
-    iDrives.ResetAndDestroy();
-    iDrives.Close();
-    iCs.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::RefreshDrives()
-//
-// -----------------------------------------------------------------------------
-//
-TInt CGflmDriveResolver::RefreshDrives( MGflmItemFilter* aFilter )
-    {
-    iCs.Wait();
-
-    TRAPD( ret, RefreshDrivesL( aFilter ) );
-
-    LOG_IF_ERROR1(
-        ret, "CGflmDriveResolver::RefreshDrives-ret=%d", ret )
-
-    iCs.Signal();
-
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::RefreshDrivesL()
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmDriveResolver::RefreshDrivesL( MGflmItemFilter* aFilter )
-    {
-    TIMESTAMP( "GFLM refresh drives started: " )
-
-    if ( !iRefreshed )
-        {
-        iDrives.ResetAndDestroy();
-        TDriveList drives;
-        User::LeaveIfError( iFs.DriveList( drives, KDriveAttAll ) );
-        TInt count( drives.Length() );
-        for ( TInt i( 0 ); i < count; i++ )
-            {
-            if ( drives[ i ] )
-                {
-                AppendDriveL( i, aFilter );
-                }
-            }
-        iRefreshed = ETrue;
-        }
-
-    TIMESTAMP( "GFLM refresh drives ended: " )
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::DriveCount()
-//
-// -----------------------------------------------------------------------------
-//
-TInt CGflmDriveResolver::DriveCount() const
-    {
-    return iDrives.Count();
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::DriveAt()
-//
-// -----------------------------------------------------------------------------
-//
-CGflmDriveItem* CGflmDriveResolver::DriveAt( const TInt aIndex ) const
-    {
-    return iDrives[ aIndex ];
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::DriveFromPath()
-//
-// -----------------------------------------------------------------------------
-//
-CGflmDriveItem* CGflmDriveResolver::DriveFromPath( const TDesC& aPath ) const
-    {
-    TInt drv( 0 );
-    if ( aPath.Length() &&
-         RFs::CharToDrive( aPath[ 0 ], drv ) == KErrNone )
-        {
-        return DriveFromId( drv );
-        }
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::ClearDrives()
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmDriveResolver::ClearDrives()
-    {
-    iRefreshed = EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::IsRootPath()
-//
-// -----------------------------------------------------------------------------
-//
-TBool CGflmDriveResolver::IsRootPath( const TDesC& aPath ) const
-    {
-    TInt count( iDrives.Count() );
-    TInt pathLen( aPath.Length() );
-
-    for ( TInt i( 0 ); i < count; i++ )
-        {
-        CGflmDriveItem* drvItem = iDrives[ i ];
-        TPtrC root( drvItem->RootDirectory() );
-
-        if ( pathLen == root.Length() && !root.CompareF( aPath ) )
-            {
-            return ETrue;
-            }
-        }
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::AppendDriveL()
-//
-// -----------------------------------------------------------------------------
-//
-void CGflmDriveResolver::AppendDriveL(
-        const TInt aDrive, MGflmItemFilter* aFilter )
-    {
-    INFO_LOG1( "CGflmDriveResolver::AppendDriveL()-aDrive=%d", aDrive )
-
-    TVolumeInfo volInfo;
-    TInt err( iFs.Volume( volInfo, aDrive ) );
-
-    LOG_IF_ERROR1( err, "CGflmDriveResolver::AppendDriveL()-err=%d", err )
-
-    if ( err != KErrNone )
-        {
-        TInt err2( iFs.Drive( volInfo.iDrive, aDrive ) );
-
-        LOG_IF_ERROR1( err2, "CGflmDriveResolver::AppendDriveL()-err2=%d", err )
-
-        if ( err2 != KErrNone )
-            {
-            return;
-            }
-        }
-
-    TDriveInfo& drvInfo( volInfo.iDrive );
-    if ( drvInfo.iMediaAtt & KMediaAttLocked )
-        {
-        err = KErrLocked;
-        }
-    if ( drvInfo.iType == EMediaNotPresent )
-        {
-        err = KErrNotReady;
-        }
-
-    TUint drvStatus( 0 );
-
-#ifdef RD_MULTIPLE_DRIVE
-    TInt err3( DriveInfo::GetDriveStatus( iFs, aDrive, drvStatus ) );
-    LOG_IF_ERROR1( err3, "CGflmDriveResolver::AppendDriveL()-err3=%d", err3 )
-    if ( err3 != KErrNone )
-        {
-        // Supress error
-        }
-#endif // RD_MULTIPLE_DRIVE
-
-    CGflmDriveItem* drvItem = CGflmDriveItem::NewLC(
-        aDrive, volInfo, err, drvStatus );
-
-    if ( drvInfo.iDriveAtt & KDriveAttRemote )
-        {
-        // Get remote drive name
-        if ( iFs.GetDriveName( aDrive, iReadBuffer ) == KErrNone )
-            {
-            drvItem->SetLocalizedNameL( iReadBuffer );
-            }
-        }
-
-    TBool allowed( ETrue );
-    if ( aFilter )
-        {
-        allowed = aFilter->FilterItemL( drvItem, 0, NULL );
-        }
-    if ( allowed )
-        {
-        iDrives.AppendL( drvItem );
-        CleanupStack::Pop( drvItem );
-        }
-    else
-        {
-        CleanupStack::PopAndDestroy( drvItem );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::IsRemoteDrive()
-//
-// -----------------------------------------------------------------------------
-//
-TBool CGflmDriveResolver::IsRemoteDrive( const TDesC& aPath ) const
-    {
-    CGflmDriveItem* drv = DriveFromPath( aPath );
-    if ( drv )
-        {
-        const TVolumeInfo& vol( drv->VolumeInfo() );
-        if ( vol.iDrive.iDriveAtt & KDriveAttRemote )
-            {
-            return ETrue;
-            }
-        }
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CGflmDriveResolver::DriveFromId()
-//
-// -----------------------------------------------------------------------------
-//
-CGflmDriveItem* CGflmDriveResolver::DriveFromId( const TInt aDrive ) const
-    {
-    TInt count( iDrives.Count() );
-    for ( TInt i( 0 ); i < count; i++ )
-        {
-        CGflmDriveItem* drvItem = iDrives[ i ];
-        if ( aDrive == drvItem->Drive() )
-            {
-            return drvItem;
-            }
-        }
-    return NULL;
-    }
-
-//  End of File