appinstaller/AppMngr2/src/appmngr2scanner.cpp
changeset 80 9dcba1ee99f7
parent 77 d1838696558c
--- a/appinstaller/AppMngr2/src/appmngr2scanner.cpp	Thu Oct 14 14:11:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,260 +0,0 @@
-/*
-* Copyright (c) 2008 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:   Directory scanner
-*
-*/
-
-
-#include "appmngr2scanner.h"            // CAppMngr2Scanner
-#include "appmngr2scannerdir.h"         // CAppMngr2ScannerDir
-#include "appmngr2scannerobserver.h"    // MAppMngr2ScannerObserver
-#include "appmngr2filerecognizer.h"     // CAppMngr2FileRecognizer
-#include <appmngr2debugutils.h>         // FLOG macros
-#include <driveinfo.h>                  // DriveInfo
-
-
-// ======== LOCAL FUNCTIONS =========
-
-static TBool EqualF( const CAppMngr2ScannerDir& p, const CAppMngr2ScannerDir& q )
-    {
-    return ( p.DirName().CompareF( q.DirName() ) == 0 );
-    }
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::NewL()
-// ---------------------------------------------------------------------------
-//
-CAppMngr2Scanner* CAppMngr2Scanner::NewL( MAppMngr2ScannerObserver& aObs )
-    {
-    CAppMngr2Scanner* self = new (ELeave) CAppMngr2Scanner( aObs );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::~CAppMngr2Scanner()
-// ---------------------------------------------------------------------------
-//
-CAppMngr2Scanner::~CAppMngr2Scanner()
-    {
-    Cancel();
-    iDirs.ResetAndDestroy();
-    delete iRecognizer;
-    iFs.Close();
-    }
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CAppMngr2Scanner::DoCancel()
-    {
-    switch( iState )
-        {
-        case EScanning:
-            iRecognizer->CancelRecognizeFiles();
-            iState = EIdle;
-            break;
-            
-        default:
-            break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::RunL()
-// ---------------------------------------------------------------------------
-//
-void CAppMngr2Scanner::RunL()
-    {
-    switch( iState )
-        {
-        case EScanning:
-            HandleScanningResultsL();
-            break;
-
-        default:
-            break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::RunError()
-// ---------------------------------------------------------------------------
-//
-TInt CAppMngr2Scanner::RunError( TInt aError )
-    {
-    FLOG( "Scanning error %d", aError );
-    
-    // RunL() leaved, scanner is not active any more, inform observer
-    iObserver.ScanningComplete();
-    iState = EIdle;
-    return aError;
-    }
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::DirectoryChangedL()
-// ---------------------------------------------------------------------------
-//
-void CAppMngr2Scanner::DirectoryChangedL( const TDesC& aDirName )
-    {
-    iObserver.DirectoryChangedL( aDirName );
-    }
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::AddDirectoryL()
-// ---------------------------------------------------------------------------
-//
-void CAppMngr2Scanner::AddDirectoryL( const TDesC& aPath )
-    {
-    __ASSERT_ALWAYS( iState == EIdle, User::Leave( KErrInUse ) );
-
-    // ignore invalid directory names, CAppMngr2ScannerDir checks it
-    CAppMngr2ScannerDir* dir = NULL;
-    TRAPD( err, dir = CAppMngr2ScannerDir::NewL( iFs, aPath, *this ) );
-    if( err == KErrNone )
-        {
-        CleanupStack::PushL( dir );
-        
-        // add to scanning directories, ignore duplicates
-        TIdentityRelation<CAppMngr2ScannerDir> match( EqualF );
-        TInt findResult = iDirs.Find( dir, match ); 
-        if( findResult == KErrNotFound )
-            {
-            FLOG( "Scanner: dir %S added", &( dir->DirName() ) );
-            iDirs.AppendL( dir );
-            CleanupStack::Pop( dir );
-            }
-        else
-            {
-            CleanupStack::PopAndDestroy( dir );
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::StartScanningL()
-// ---------------------------------------------------------------------------
-//
-void CAppMngr2Scanner::StartScanningL()
-    {
-    FLOG( "CAppMngr2Scanner::StartScanningL()" );
-    
-    // cancel possible previous, still on-going scanning
-    if( IsActive() )
-        {
-        FLOG( "CAppMngr2Scanner::StartScanningL(): previous scan cancelled" );
-        Cancel();
-        iObserver.ScanningComplete();
-        }
-    
-    // find first valid directory name to scan
-    iScanningIndex = -1;
-    NextValidScanningIndex();
-    
-    // start scanning
-    FLOG( "Scanning %d: %S", iScanningIndex, &( iDirs[ iScanningIndex ]->DirName() ) );
-    iDirs[ iScanningIndex ]->StopWatchingChanges();
-    iRecognizer->RecognizeFilesL( iDirs[ iScanningIndex ]->DirName(), iStatus );
-    iState = EScanning;
-    SetActive();
-    }
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::CAppMngr2Scanner()
-// ---------------------------------------------------------------------------
-//
-CAppMngr2Scanner::CAppMngr2Scanner( MAppMngr2ScannerObserver& aObs ) :
-        CActive( CActive::EPriorityStandard ), iObserver( aObs )
-    {
-    CActiveScheduler::Add( this );
-    }
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CAppMngr2Scanner::ConstructL()
-    {
-    User::LeaveIfError( iFs.Connect() );
-    iRecognizer = CAppMngr2FileRecognizer::NewL( iFs );
-    }
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::NextValidScanningIndex()
-// ---------------------------------------------------------------------------
-//
-void CAppMngr2Scanner::NextValidScanningIndex()
-    {
-    TInt err;
-    TEntry entry;
-    TInt dirCount = iDirs.Count();
-    
-    iScanningIndex++;
-    while( iScanningIndex < dirCount )
-        {
-        err = iFs.Entry( iDirs[ iScanningIndex ]->DirName(), entry );
-        if( err == KErrNone )
-            {
-            break;
-            }
-        FLOG( "Scanner skips %d: %S, err = %d", iScanningIndex,
-                &( iDirs[ iScanningIndex ]->DirName() ), err );
-        iScanningIndex++;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAppMngr2Scanner::HandleScanningResultsL()
-// ---------------------------------------------------------------------------
-//
-void CAppMngr2Scanner::HandleScanningResultsL()
-    {
-    FLOG( "Scanning result: %d, for %S, %d files", iStatus.Int(),
-            &( iDirs[ iScanningIndex ]->DirName() ), iRecognizer->Results().Count() );
-
-    // start monitoring changes in this directory
-    iDirs[ iScanningIndex ]->StartWatchingChanges();
-    
-    // report results if there were no errors
-    if( iStatus.Int() == KErrNone )
-        {
-        TRAP_IGNORE( iObserver.ScanningResultL( iRecognizer->Results() ) );
-        }
-    
-    // get next valid directory name
-    NextValidScanningIndex();
-
-    // start file recognizer, or notify that all done
-    if( iScanningIndex < iDirs.Count() )
-        {
-        FLOG( "Scanning %d: %S", iScanningIndex,
-                &( iDirs[ iScanningIndex ]->DirName() ) );
-        iDirs[ iScanningIndex ]->StopWatchingChanges();
-        iRecognizer->RecognizeFilesL( iDirs[ iScanningIndex ]->DirName(), iStatus );
-        SetActive();
-        }
-    else
-        {
-        FLOG( "Scanning complete" );
-        iObserver.ScanningComplete();
-        iState = EIdle;
-        }
-    }
-