diff -r 000000000000 -r ba25891c3a9e appinstaller/AppMngr2/src/appmngr2packageinfomaker.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/appinstaller/AppMngr2/src/appmngr2packageinfomaker.cpp Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,139 @@ +/* +* 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: Creates PackageInfo objects asynchronously +* +*/ + + +#include "appmngr2packageinfomaker.h" // CAppMngr2PackageInfoMaker +#include "appmngr2infomakerobserver.h" // MAppMngr2InfoMakerObserver +#include // CAppMngr2Runtime +#include // CAppMngr2PackageInfo +#include // CAppMngr2RecognizedFile +#include // FLOG macros + + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CAppMngr2PackageInfoMaker::NewL() +// --------------------------------------------------------------------------- +// +CAppMngr2PackageInfoMaker* CAppMngr2PackageInfoMaker::NewL( CAppMngr2Runtime& aPlugin, + MAppMngr2InfoMakerObserver& aObserver, RFs& aFs ) + { + CAppMngr2PackageInfoMaker* self = CAppMngr2PackageInfoMaker::NewLC( aPlugin, + aObserver, aFs ); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CAppMngr2PackageInfoMaker::NewLC() +// --------------------------------------------------------------------------- +// +CAppMngr2PackageInfoMaker* CAppMngr2PackageInfoMaker::NewLC( CAppMngr2Runtime& aPlugin, + MAppMngr2InfoMakerObserver& aObserver, RFs& aFs ) + { + CAppMngr2PackageInfoMaker* self = new (ELeave) CAppMngr2PackageInfoMaker( aPlugin, + aObserver, aFs ); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// CAppMngr2PackageInfoMaker::~CAppMngr2PackageInfoMaker() +// --------------------------------------------------------------------------- +// +CAppMngr2PackageInfoMaker::~CAppMngr2PackageInfoMaker() + { + Cancel(); + iFiles.ResetAndDestroy(); + iPackageInfos.ResetAndDestroy(); + } + +// --------------------------------------------------------------------------- +// CAppMngr2PackageInfoMaker::DoCancel() +// --------------------------------------------------------------------------- +// +void CAppMngr2PackageInfoMaker::DoCancel() + { + iPlugin.CancelGetInstallationFiles(); + } + +// --------------------------------------------------------------------------- +// CAppMngr2PackageInfoMaker::RunL() +// --------------------------------------------------------------------------- +// +void CAppMngr2PackageInfoMaker::RunL() + { + if( iStatus.Int() == KErrNone ) + { + iObserver.NewPackagesCreatedL( *this, iPackageInfos ); + } + else + { + iObserver.ErrorInCreatingPackagesL( *this, iStatus.Int() ); + } + } + +// --------------------------------------------------------------------------- +// CAppMngr2PackageInfoMaker::AddFileL() +// --------------------------------------------------------------------------- +// +void CAppMngr2PackageInfoMaker::AddFileL( CAppMngr2RecognizedFile* aFile ) + { + iFiles.AppendL( aFile ); + } + +// --------------------------------------------------------------------------- +// CAppMngr2PackageInfoMaker::StartGettingInstallationFilesL() +// --------------------------------------------------------------------------- +// +void CAppMngr2PackageInfoMaker::StartGettingInstallationFilesL() + { + if( !IsActive() ) + { + TRAPD( err, iPlugin.GetInstallationFilesL( iPackageInfos, iFiles, + iFs, iStatus ) ); + SetActive(); + + // Complete immediately if there was some error + if( err != KErrNone ) + { + TRequestStatus* status = &iStatus; + User::RequestComplete( status, err ); + } + } + } + +// --------------------------------------------------------------------------- +// CAppMngr2PackageInfoMaker::CAppMngr2PackageInfoMaker() +// --------------------------------------------------------------------------- +// +CAppMngr2PackageInfoMaker::CAppMngr2PackageInfoMaker( CAppMngr2Runtime& aPlugin, + MAppMngr2InfoMakerObserver& aObserver, RFs& aFs ) : + CAppMngr2InfoMaker( aPlugin , aObserver, aFs ) + { + } + +// --------------------------------------------------------------------------- +// CAppMngr2PackageInfoMaker::ConstructL() +// --------------------------------------------------------------------------- +// +void CAppMngr2PackageInfoMaker::ConstructL() + { + } +