--- a/homesync/contentmanager/cmserver/cmmemorymanager/src/cmmmmain.cpp Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,367 +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: Main class in the Memory manager component
-*
-*/
-
-
-#include <e32std.h>
-#include <e32base.h>
-#include <MCLFContentListingEngine.h>
-#include <ContentListingFactory.h>
-#include <mpxharvesterutility.h>
-#include <mpxcollectionhelperfactory.h>
-#include <mpxcollectionhelper.h>
-#include <pathinfo.h>
-
-#include "cmdmmain.h"
-#include "msdebug.h"
-#include "cmmmmain.h"
-#include "cmdriveinfo.h"
-#include "cmmmquotalistener.h"
-#include "cmmmshrinker.h"
-#include "cmmmobserver.h"
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::NewL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CCmMmMain* CCmMmMain::NewL( CCmDmMain& aDbManager )
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::NewL() start"));
- CCmMmMain* self = CCmMmMain::NewLC( aDbManager );
- CleanupStack::Pop( self );
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::NewL() end"));
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::NewLC
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CCmMmMain* CCmMmMain::NewLC( CCmDmMain& aDbManager )
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::NewLC() start"));
- CCmMmMain* self = new ( ELeave ) CCmMmMain( aDbManager );
- CleanupStack::PushL( self );
- self->ConstructL();
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::NewLC() end"));
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// C++ destructor
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CCmMmMain::~CCmMmMain()
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::~CCmMmMain() start"));
-
- iFileSession.Close();
- iQuotaListeners.ResetAndDestroy();
- delete iDeleter;
- delete iFilesToDelete;
- delete iFilesToShrink;
-
- if( iHarvester )
- {
- iHarvester->Close();
- }
-
- CloseMpxCollectionHelper();
-
- delete iObserver;
- delete iShrinker;
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::~CCmMmMain() end"));
- }
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::Cancel
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CCmMmMain::Cancel()
- {
- if ( iDeleter )
- {
- iDeleter->Cancel();
- if ( iObserver )
- {
- // Trap here, do nothing if it leaves.
- TRAP_IGNORE( iObserver->DeleteCompleteL( KErrCancel ) );
- }
- }
- if ( iShrinker )
- {
- iShrinker->Cancel();
- if ( iObserver )
- {
- // Trap here, do nothing if it leaves
- TRAP_IGNORE( iObserver->ShrinkCompleteL( KErrCancel ) );
- }
- }
- for( TInt i = 0; i < iQuotaListeners.Count(); i++ )
- {
- iQuotaListeners[i]->Cancel();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::DeleteFilesL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CCmMmMain::DeleteFilesL( CDesCArray& aFiles )
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::DeleteFilesL() start"));
-
- if ( &aFiles && aFiles.Count() > 0 )
- {
- delete iFilesToDelete;
- iFilesToDelete = NULL;
- iFilesToDelete = new ( ELeave ) CDesC16ArrayFlat( aFiles.Count() );
- for ( TInt i = 0; i < aFiles.Count(); i++ )
- {
- iFilesToDelete->AppendL( aFiles[i] );
- }
- }
- iDeleteIndex = 0;
-
- if ( iDeleter )
- {
- CloseMpxCollectionHelper();
- iMpxCollectionHelper = CMPXCollectionHelperFactory::NewCollectionHelperL();
- iDeleter->Start( TCallBack( BackgroundDeleteL, this ) );
- }
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::DeleteFilesL() end"));
- }
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::SetObserver
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CCmMmMain::SetObserver( MCmMmObserver& aObserver )
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::SetObserver() start"));
- iObserver = &aObserver;
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::SetObserver() end"));
- }
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::SetQuotaListenerStateL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CCmMmMain::SetQuotaListenerStateL( TBool aState )
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::SetQuotaListenerStateL() start"));
-
- if( !aState )
- {
- iQuotaListeners.ResetAndDestroy();
- iQuotaListeners.Close();
- LOG(_L("[MEMORY MNGR]\t Quotalisteners deleted"));
- }
- else
- {
- iDbManager.PrepareQueryCmdL( EDrivesQuery );
- RPointerArray<CCmDriveInfo> drives;
- TRAP_IGNORE( iDbManager.QueryDrivesL( drives ) );
- iQuotaListeners.ResetAndDestroy();
- for( TInt i = 0 ; i < drives.Count(); i++ )
- {
- TRACE(Print(_L("[MEMORY MNGR]\t Starting quota listener to \
- drive = %d"), drives[i]->DriveNumber() ));
- CCmMmQuotaListener* listener =
- CCmMmQuotaListener::NewL(
- iDbManager,
- drives[i]->DriveNumber() );
- iQuotaListeners.AppendL( listener );
- }
- drives.ResetAndDestroy();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::ShrinkImagesL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CCmMmMain::ShrinkImagesL( CDesCArray& aFiles )
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::ShrinkImagesL() start"));
-
- if ( !iShrinker )
- {
- iShrinker = CCmMmShrinker::NewL( iDbManager );
- }
- else
- {
- // Cancel the possible ongoing operation
- iShrinker->Cancel();
- }
- iShrinker->SetObserver( iObserver );
- iShrinker->ShrinkImagesL( aFiles );
-
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::ShrinkImagesL() end"));
- }
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::MmcState
-// ---------------------------------------------------------------------------
-//
-TBool CCmMmMain::DriveState( const RFs& aFileServer, TInt aDriveNumber )
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::DriveState() start"));
-
- TDriveInfo driveInfo;
- TInt error = aFileServer.Drive( driveInfo, aDriveNumber );
-
- //check if MMC is present
- TBool status = EFalse;
- if ( error == KErrNone && driveInfo.iType == EMediaHardDisk )
- {
- status = ETrue;
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::DriveState() Drive found"));
- }
-
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::DriveState() end"));
- return status;
- }
-
-// ---------------------------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------------------------
-//
-CCmMmMain::CCmMmMain( CCmDmMain& aDbManager ) :
- iDeleteIndex( 0 ),
- iQuotaListenerState( ETrue ),
- iDbManager( aDbManager )
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::CCmMmMain() start"));
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::CCmMmMain() end"));
- }
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CCmMmMain::ConstructL()
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::ConstructL() start"));
-
- User::LeaveIfError( iFileSession.Connect() );
- iDeleter = CIdle::NewL( CActive::EPriorityIdle );
- iHarvester = CMPXHarvesterFactory::NewL();
- SetQuotaListenerStateL( ETrue );
-
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::ConstructL() end"));
- }
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::BackgroundDeleteL
-// ---------------------------------------------------------------------------
-//
-TInt CCmMmMain::BackgroundDeleteL( TAny* aMm )
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::BackgroundDeleteL() start"));
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::BackgroundDeleteL() end"));
- return ((CCmMmMain*)aMm)->DoBackgroundDeleteL();
- }
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::DoBackgroundDeleteL
-// ---------------------------------------------------------------------------
-//
-TInt CCmMmMain::DoBackgroundDeleteL()
- {
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::DoBackgroundDeleteL() start"));
- TInt moreFiles = EFalse;
- TInt error = KErrNone;
- TInt trapinfo( KErrNone );
-
- if ( iFilesToDelete )
- {
- if ( iDeleteIndex < iFilesToDelete->Count() )
- {
- TPtrC filenameTemp = (*iFilesToDelete)[iDeleteIndex];
- // Delete file from filesystem
- error = iFileSession.Delete( filenameTemp );
-
- TRACE(Print(_L("[MEMORY MNGR]\t CCmMmMain:DoBackgroundDeleteL \
-error: %d"), error));
-
-#ifdef _DEBUG
-
- TRACE(Print(_L("[MEMORY MNGR]\t CCmMmMain: File %S deleted"),
- &filenameTemp ));
-#endif // _DEBUG
- TRAP( trapinfo, iMpxCollectionHelper->RemoveL( filenameTemp ) );
- TRACE(Print(_L("[MEMORY MNGR]\t CCmMmMain:DoBackgroundDeleteL \
-RemoveL: %d"), trapinfo));
-
- iDeleteIndex++;
- }
-
- // return ETrue if there are more files to delete
- if ( iDeleteIndex < iFilesToDelete->Count() )
- {
- moreFiles = ETrue;
- }
- // No more files to be deleted. Call Media Gallery update.
- else if ( iFilesToDelete->Count() )
- {
- MCLFContentListingEngine* clfEngine =
- ContentListingFactory::NewContentListingEngineLC();
- if( clfEngine )
- {
- TRAP_IGNORE( clfEngine->UpdateItemsL() );
-
- TRAP_IGNORE( iHarvester->RemoveFilesL( *iFilesToDelete ) );
- }
- CleanupStack::PopAndDestroy();
-
- }
-
- }
-
- // If all files are deleted, inform observer that deletion is ready.
- if ( !moreFiles )
- {
- CloseMpxCollectionHelper();
- }
-
- if ( !moreFiles && iObserver )
- {
- delete iFilesToDelete;
- iFilesToDelete = NULL;
- iObserver->DeleteCompleteL( error );
- }
- LOG(_L("[MEMORY MNGR]\t CCmMmMain::DoBackgroundDeleteL() end"));
-
- // Return EFalse if background deletion is done, ETrue if there are more
- // files to be deleted.
- return moreFiles;
- }
-
-// ---------------------------------------------------------------------------
-// CCmMmMain::CloseMpxCollectionHelper
-// ---------------------------------------------------------------------------
-//
-void CCmMmMain::CloseMpxCollectionHelper()
- {
- if( iMpxCollectionHelper )
- {
- iMpxCollectionHelper->Close();
- }
- iMpxCollectionHelper = NULL;
- }
-
-// End of file